:root {
  --bg: #f2f3ee;
  --surface: #fffdfa;
  --surface-soft: #f7f7f2;
  --text: #18352c;
  --muted: #66786f;
  --border: #dfe6e0;
  --accent: #1f6a55;
  --accent-strong: #143f34;
  --accent-soft: #e9f2ed;
  --event: #9a6826;
  --event-soft: #fff4df;
  --shadow: 0 20px 55px rgb(20 55 44 / .11);
  --shadow-soft: 0 9px 26px rgb(20 55 44 / .075);
  --radius-xl: 1.4rem;
  --radius-lg: 1rem;
  --radius-md: .82rem;
  --radius-pill: 999px;
  --max-width: 1760px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-height: 100vh;
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--text);
  background:
    linear-gradient(rgba(242, 243, 238, .9), rgba(242, 243, 238, .9)),
    url("/background.jpg") center / cover fixed no-repeat;
}
button, input, select { font: inherit; }
button { cursor: pointer; }
a { color: inherit; }

.page-shell {
  width: min(var(--max-width), calc(100% - 1.5rem));
  margin: 0 auto;
  padding: .9rem 0 2rem;
}
.site-header { padding: .2rem .15rem 1rem; }
.site-header h1 {
  margin: .16rem 0 0;
  font-size: clamp(2.35rem, 4.5vw, 4rem);
  line-height: .98;
  letter-spacing: -.045em;
}
.eyebrow {
  margin: 0;
  text-transform: uppercase;
  letter-spacing: .15em;
  font-size: .72rem;
  font-weight: 850;
  color: #70827a;
}

.results-shell {
  padding: 1.05rem;
  background: rgb(255 253 250 / .96);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-soft);
  backdrop-filter: blur(10px);
}
.results-header {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 1rem;
  margin-bottom: .9rem;
}
.results-header h3 {
  margin: 0;
  font-size: clamp(1.45rem, 2.5vw, 2rem);
  line-height: 1.08;
  letter-spacing: -.025em;
}
.status-line, .list-summary { margin: .2rem 0 0; color: var(--muted); font-size: .92rem; }
.list-summary { text-align: right; font-weight: 700; }
.hidden { display: none !important; }

/* Discovery/filter bar */
.filters-shell { margin-bottom: .95rem; }
.discovery-bar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .75rem;
  align-items: center;
  padding: .68rem;
  border: 1px solid var(--border);
  border-radius: 1.05rem;
  background: #f8f8f4;
}
.discovery-chips {
  display: flex;
  align-items: center;
  gap: .42rem;
  overflow-x: auto;
  scrollbar-width: none;
  padding: .08rem;
}
.discovery-chips::-webkit-scrollbar { display: none; }
.discovery-chip {
  flex: 0 0 auto;
  border: 1px solid #d8e1db;
  border-radius: var(--radius-pill);
  padding: .6rem .8rem;
  background: #fff;
  color: #365148;
  font-size: .86rem;
  font-weight: 790;
  white-space: nowrap;
  transition: background .15s ease, color .15s ease, border-color .15s ease, transform .15s ease;
}
.discovery-chip:hover { transform: translateY(-1px); border-color: #a9beb4; }
.discovery-chip.active { background: var(--accent-strong); border-color: var(--accent-strong); color: #fff; }
.discovery-tools { display: flex; align-items: center; gap: .42rem; }
.map-search {
  width: min(295px, 28vw);
  min-width: 220px;
  display: flex;
  align-items: center;
  gap: .35rem;
  padding: 0 .72rem;
  border: 1px solid #d7e1dc;
  border-radius: var(--radius-pill);
  background: #fff;
  box-shadow: 0 3px 12px rgb(18 55 43 / .04);
}
.map-search:focus-within { border-color: #84aa9b; box-shadow: 0 0 0 3px rgb(31 106 85 / .1); }
.search-icon { color: #6b7f76; font-size: 1.15rem; transform: rotate(-15deg); }
.map-search input {
  width: 100%;
  min-height: 40px;
  padding: .4rem .15rem;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--text);
}
.map-search input::-webkit-search-cancel-button { cursor: pointer; }
.filter-settings-button {
  width: 42px;
  height: 42px;
  display: inline-grid;
  place-items: center;
  border-radius: 50%;
  border: 1px solid #d7e1dc;
  background: #fff;
  color: var(--accent-strong);
  font-weight: 900;
  font-size: 1.05rem;
}
.filter-settings-button[aria-expanded="true"] { background: var(--accent-soft); border-color: #b6cbbf; }
.search-context-row {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: .6rem;
  padding: .55rem .1rem .05rem;
}
.search-mode-panel { display: flex; gap: .4rem; }
.switch-button, .ghost-button, .dark-button, .segment-button {
  border: 1px solid var(--border);
  border-radius: var(--radius-pill);
  padding: .62rem .88rem;
  background: #fff;
  color: var(--text);
  font-weight: 780;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.switch-button:hover, .ghost-button:hover, .dark-button:hover, .segment-button:hover { transform: translateY(-1px); box-shadow: var(--shadow-soft); }
.switch-button.active { background: var(--accent); color: #fff; border-color: var(--accent); }
.dark-button { background: var(--accent-strong); color: #fff; border-color: var(--accent-strong); }

.more-filters {
  margin-top: .65rem;
  padding: 0 .15rem;
  border: 0;
}
.more-filters > summary { width: fit-content; cursor: pointer; color: #345247; font-size: .9rem; font-weight: 800; }
.filter-grid {
  display: grid;
  grid-template-columns: 1.25fr repeat(3, 1fr);
  gap: .8rem;
  margin: .95rem 0 .8rem;
}
.more-filters-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .7rem; }
.filter-field { display: flex; flex-direction: column; gap: .35rem; color: #314f44; font-size: .89rem; font-weight: 740; }
.filter-field input, .filter-field select, input, select {
  width: 100%;
  min-height: 44px;
  padding: .68rem .78rem;
  border-radius: .8rem;
  border: 1px solid var(--border);
  background: #fff;
  color: var(--text);
}
input:focus, select:focus { outline: none; border-color: #8bb3a4; box-shadow: 0 0 0 3px rgb(31 106 85 / .11); }
.filter-tile {
  display: flex;
  align-items: center;
  gap: .55rem;
  padding: .77rem .82rem;
  border-radius: .82rem;
  border: 1px solid var(--border);
  background: var(--surface-soft);
  font-size: .88rem;
  font-weight: 740;
}
.filter-tile input { width: 1rem; height: 1rem; min-height: 0; padding: 0; margin: 0; }
.more-filters-actions, .utility-buttons { display: flex; justify-content: flex-end; gap: .5rem; margin-top: .65rem; }
.map-hint { margin: .45rem 0 0; color: var(--muted); font-size: .84rem; }
.age-headline { display: flex; justify-content: space-between; align-items: center; gap: .6rem; }
.text-button { border: 0; background: transparent; padding: 0; color: var(--accent); font-weight: 800; }
.dual-range { position: relative; height: 30px; display: flex; align-items: center; }
.range-track, .range-fill { position: absolute; left: 0; right: 0; height: 6px; border-radius: var(--radius-pill); }
.range-track { background: #dce6e0; }
.range-fill { background: var(--accent); }
.dual-range input[type=range] { position: absolute; inset: 0; width: 100%; appearance: none; background: none; border: 0; padding: 0; min-height: 0; pointer-events: none; }
.dual-range input[type=range]::-webkit-slider-runnable-track { appearance: none; background: none; }
.dual-range input[type=range]::-moz-range-track { background: none; }
.dual-range input[type=range]::-webkit-slider-thumb { appearance: none; width: 19px; height: 19px; border-radius: 50%; background: #fff; border: 3px solid var(--accent); pointer-events: auto; box-shadow: 0 3px 9px rgb(0 0 0 / .14); }
.dual-range input[type=range]::-moz-range-thumb { width: 19px; height: 19px; border-radius: 50%; background: #fff; border: 3px solid var(--accent); pointer-events: auto; box-shadow: 0 3px 9px rgb(0 0 0 / .14); }
.age-scale { display: flex; justify-content: space-between; color: var(--muted); font-size: .78rem; font-weight: 700; }

/* Main two-column experience */
.results-layout {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(350px, .95fr);
  gap: .9rem;
  align-items: stretch;
}
.map-column, .list-column { min-width: 0; }
#map {
  width: 100%;
  height: 660px;
  border-radius: 1.15rem;
  overflow: hidden;
  border: 1px solid #d4dfd9;
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / .55), var(--shadow-soft);
}
.mobile-segmented { display: none; }
.place-list {
  display: grid;
  gap: .62rem;
  max-height: 660px;
  overflow: auto;
  padding: .03rem .18rem .2rem .03rem;
  scrollbar-color: #b6c7be transparent;
  scrollbar-width: thin;
}

/* Rich result cards */
.place-card {
  --category-color: #466259;
  --category-soft: #eaf0ed;
  width: 100%;
  min-height: 136px;
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr);
  gap: .82rem;
  padding: .58rem;
  text-align: left;
  border: 1px solid #e0e6e2;
  border-radius: 1rem;
  background: #fff;
  color: var(--text);
  text-decoration: none;
  box-shadow: 0 6px 18px rgb(24 53 44 / .045);
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.place-card:hover, .place-card:focus-visible { transform: translateY(-2px); border-color: color-mix(in srgb, var(--category-color) 45%, #fff); box-shadow: 0 13px 29px rgb(24 53 44 / .10); outline: 0; }
.place-card.is-active { border-color: var(--category-color); box-shadow: 0 0 0 2px color-mix(in srgb, var(--category-color) 13%, transparent), 0 14px 30px rgb(24 53 44 / .1); }
.place-card.has-event { background: linear-gradient(120deg, #fff 70%, #fff9ed 100%); }
.place-card-media {
  position: relative;
  display: block;
  width: 100%;
  min-height: 124px;
  overflow: hidden;
  border-radius: .78rem;
  background: var(--category-soft);
}
.place-card-image { width: 100%; height: 100%; min-height: 124px; display: block; object-fit: cover; transition: transform .25s ease; }
.place-card:hover .place-card-image { transform: scale(1.035); }
.free-badge {
  position: absolute;
  top: .5rem;
  right: .48rem;
  padding: .28rem .48rem;
  border-radius: .42rem;
  background: #173d32;
  color: #fff;
  font-size: .67rem;
  line-height: 1;
  letter-spacing: .07em;
  font-weight: 900;
  box-shadow: 0 4px 12px rgb(0 0 0 / .18);
}
.category-badge {
  position: absolute;
  left: .48rem;
  bottom: .48rem;
  max-width: calc(100% - .96rem);
  padding: .28rem .48rem;
  border-radius: .45rem;
  background: color-mix(in srgb, var(--category-color) 90%, #111);
  color: #fff;
  font-size: .65rem;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: .06em;
  font-weight: 880;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.place-card-content { min-width: 0; display: flex; flex-direction: column; gap: .43rem; padding: .1rem .25rem .08rem 0; }
.place-card-topline { display: flex; align-items: center; gap: .4rem; min-width: 0; }
.place-rank {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  height: 1.55rem;
  padding: 0 .42rem;
  border-radius: var(--radius-pill);
  background: var(--category-soft);
  color: var(--category-color);
  font-size: .69rem;
  font-weight: 900;
}
.place-card-score { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #718179; font-size: .68rem; font-weight: 850; text-transform: uppercase; letter-spacing: .055em; }
.place-card-title { display: block; font-size: 1.04rem; line-height: 1.18; letter-spacing: -.012em; }
.place-card-meta-row { display: flex; flex-wrap: wrap; gap: .32rem .5rem; color: #476258; }
.place-meta-chip { display: inline-flex; align-items: center; gap: .24rem; font-size: .75rem; font-weight: 760; white-space: nowrap; }
.place-meta-chip > span { color: var(--category-color); font-size: .82rem; }
.place-card-description { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; color: var(--muted); font-size: .79rem; line-height: 1.34; }
.event-chip { display: inline-flex; width: fit-content; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin-top: auto; padding: .34rem .5rem; border-radius: var(--radius-pill); border: 1px solid #efd7ad; background: var(--event-soft); color: #845b18; font-size: .69rem; font-weight: 800; }
.empty-state { padding: 1rem; border-radius: 1rem; border: 1px dashed #bed0c6; background: var(--surface-soft); color: var(--muted); }

/* Dialog/details */
.place-badges { display: flex; flex-wrap: wrap; gap: .42rem; margin: .8rem 0 1rem; }
.place-badge { padding: .34rem .66rem; border-radius: var(--radius-pill); background: #eef5f1; border: 1px solid var(--border); font-size: .86rem; font-weight: 700; }
.place-description { font-size: 1.03rem; color: #27473c; }
.place-activity { font-weight: 700; color: #2d4b41; }
.place-meta { display: grid; grid-template-columns: max-content 1fr; gap: .45rem .9rem; }
.place-meta dt { font-weight: 800; }
.place-meta dd { margin: 0; color: #526b62; }
.place-link, .share-button { display: inline-flex; align-items: center; justify-content: center; margin: 1rem .5rem 0 0; padding: .75rem .95rem; border-radius: .8rem; border: 0; background: var(--accent-strong); color: #fff; text-decoration: none; font-weight: 800; }
.place-event { padding: .7rem .8rem; border: 1px solid var(--border); border-radius: .8rem; background: #f8faf8; }
dialog { width: min(760px, calc(100% - 1.4rem)); max-height: 90vh; overflow: auto; padding: 1.2rem 1.25rem 1.5rem; border: 0; border-radius: 1.2rem; box-shadow: var(--shadow); color: var(--text); }
dialog::backdrop { background: rgb(8 20 16 / .46); }
#close-dialog { float: right; padding: .52rem .8rem; border: 1px solid var(--border); border-radius: .75rem; background: #fff; }

/* Map popups */
.maplibregl-popup-content { border-radius: .9rem; padding: .8rem .9rem; font: inherit; box-shadow: var(--shadow-soft); }
.selected-map-popup .maplibregl-popup-content { min-width: 240px; padding: .9rem; border: 1px solid var(--border); border-radius: 1rem; box-shadow: var(--shadow); }
.selected-popup-kicker { margin: 0 0 .15rem; text-transform: uppercase; letter-spacing: .08em; font-size: .67rem; font-weight: 900; color: var(--accent); }
.selected-popup-title { margin: 0; font-size: 1rem; line-height: 1.2; }
.selected-popup-meta { margin: .35rem 0 0; font-size: .84rem; font-weight: 750; color: #355248; }
.selected-popup-why { margin: .38rem 0 0; font-size: .8rem; color: var(--muted); }
.selected-popup-actions { display: flex; gap: .42rem; margin-top: .65rem; }
.selected-popup-actions button { flex: 1; padding: .52rem .65rem; border-radius: var(--radius-pill); font-weight: 800; border: 1px solid var(--border); }
.selected-popup-actions .popup-primary { background: var(--accent-strong); border-color: var(--accent-strong); color: #fff; }
.selected-popup-actions .popup-secondary { background: #fff; color: var(--text); }
.map-popup-title { margin: 0 0 .15rem; font-weight: 800; }
.map-popup-meta { margin: 0; color: var(--muted); font-size: .86rem; }
.maplibregl-ctrl-group { border-radius: .85rem !important; overflow: hidden; box-shadow: var(--shadow-soft); }
.maplibregl-ctrl-attrib { font-size: 10px; }

@media (max-width: 1250px) {
  .discovery-bar { grid-template-columns: 1fr; }
  .discovery-tools { justify-content: flex-end; }
  .map-search { width: min(360px, 100%); }
  .more-filters-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .results-layout { grid-template-columns: minmax(0, 1.7fr) minmax(330px, 1fr); }
  .place-card { grid-template-columns: 112px minmax(0, 1fr); }
}

@media (max-width: 920px) {
  .filter-grid, .more-filters-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .results-layout { grid-template-columns: 1fr; }
  .mobile-segmented { display: flex; gap: .45rem; margin-bottom: .65rem; }
  body.mobile-view-map .list-column .place-list { display: none; }
  body.mobile-view-list .map-column { display: none; }
  body.mobile-view-list .list-column .place-list { display: grid; }
  #map { height: 58vh; min-height: 420px; }
  .place-list { max-height: none; }
}

@media (max-width: 640px) {
  .page-shell { width: min(100% - .65rem, var(--max-width)); padding-top: .45rem; }
  .site-header { padding: .25rem .35rem .75rem; }
  .results-shell { padding: .65rem; border-radius: 1rem; }
  .results-header { align-items: flex-start; }
  .list-summary { text-align: left; }
  .discovery-bar { padding: .5rem; }
  .discovery-tools { width: 100%; }
  .map-search { flex: 1; width: auto; min-width: 0; }
  .search-context-row { justify-content: stretch; }
  .search-mode-panel { width: 100%; }
  .search-mode-panel > * { flex: 1; }
  .filter-grid, .more-filters-grid { grid-template-columns: 1fr; }
  #map { min-height: 380px; }
  .place-card { grid-template-columns: 104px minmax(0, 1fr); min-height: 122px; gap: .65rem; }
  .place-card-media, .place-card-image { min-height: 110px; }
  .place-card-description { -webkit-line-clamp: 1; }
  .place-meta { grid-template-columns: 1fr; }
  .place-link, .share-button { width: 100%; margin-right: 0; }
}

/* Guest suggestions */
.results-header-actions { display:flex; align-items:center; gap:.7rem; flex-wrap:wrap; justify-content:flex-end; }
.suggest-place-button {
  border:1px solid #c9d9d1; border-radius:var(--radius-pill); padding:.66rem .9rem;
  background:#fff; color:var(--accent-strong); font-weight:850; box-shadow:0 5px 16px rgb(24 53 44 / .05);
}
.suggest-place-button:hover { border-color:#91b6a7; transform:translateY(-1px); }
.correction-button {
  display:inline-flex; align-items:center; justify-content:center; margin:1rem 0 0;
  padding:.75rem .95rem; border-radius:.8rem; border:1px solid var(--border);
  background:#fff; color:var(--accent-strong); font-weight:800;
}
.suggestion-dialog { width:min(720px, calc(100% - 1rem)); }
.suggestion-dialog form { display:grid; gap:.9rem; }
.suggestion-dialog-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; padding-right:.15rem; }
.suggestion-dialog-heading h2 { margin:.18rem 0 .25rem; font-size:1.7rem; }
.suggestion-intro { margin:0; color:var(--muted); line-height:1.45; max-width:60ch; }
.dialog-close-button { border:1px solid var(--border); background:#fff; color:var(--text); border-radius:var(--radius-pill); padding:.55rem .78rem; font-weight:800; }
.suggestion-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }
.suggestion-field { display:flex; flex-direction:column; gap:.35rem; }
.suggestion-field label { color:#29483e; font-size:.88rem; font-weight:800; }
.suggestion-field input,.suggestion-field select,.suggestion-field textarea {
  width:100%; border:1px solid var(--border); border-radius:.8rem; padding:.72rem .8rem; background:#fff; color:var(--text);
}
.suggestion-field textarea { resize:vertical; min-height:125px; }
.suggestion-field input:focus,.suggestion-field select:focus,.suggestion-field textarea:focus { outline:none; border-color:#8bb3a4; box-shadow:0 0 0 3px rgb(31 106 85 / .11); }
.suggestion-contact { border:1px solid var(--border); border-radius:.85rem; padding:.72rem .8rem; background:#f8faf8; }
.suggestion-contact summary { cursor:pointer; color:#365148; font-size:.88rem; font-weight:800; }
.suggestion-contact[open] summary { margin-bottom:.75rem; }
.suggestion-privacy { margin:0; color:#718179; font-size:.77rem; line-height:1.4; }
.suggestion-status { min-height:1.2em; margin:0; font-size:.88rem; font-weight:800; color:var(--muted); }
.suggestion-status.success { color:#1d6a4e; }
.suggestion-status.error { color:#a43f3f; }
.suggestion-actions { display:flex; justify-content:flex-end; gap:.55rem; }
.suggestion-honeypot { position:absolute!important; left:-9999px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
@media(max-width:640px){
  .results-header-actions { justify-content:flex-start; width:100%; }
  .suggestion-grid { grid-template-columns:1fr; }
  .suggestion-dialog-heading { flex-direction:column; }
  .suggestion-actions > * { flex:1; }
}

/* ========================================================================== 
   2026-09-28 editorial header + brand system + lower sections
   ========================================================================== */
:root {
  --font-display: "DM Serif Display", Georgia, "Times New Roman", serif;
  --font-ui: "Manrope", Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --ink: #082f2a;
  --cream: #fbfaf6;
  --hero-border: rgba(7, 68, 56, .12);
}

body {
  font-family: var(--font-ui);
  color: var(--ink);
  background: #f4f5ef;
}

.page-shell {
  width: min(1500px, calc(100% - 1.5rem));
  padding: 0 0 2.4rem;
  overflow: clip;
}

/* Header / banner */
.site-header {
  position: relative;
  min-height: 182px;
  padding: 0;
  border: 1px solid var(--hero-border);
  border-top: 0;
  border-radius: 0 0 1.6rem 1.6rem;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(251,250,246,.98) 0%, rgba(251,250,246,.91) 31%, rgba(251,250,246,.22) 55%, rgba(8,47,42,.09) 100%),
    url("/hero-viborg.webp") center 54% / cover no-repeat;
  box-shadow: 0 14px 34px rgba(24, 53, 44, .08);
}

.site-header::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 44px;
  background: linear-gradient(to top, rgba(255,255,255,.42), rgba(255,255,255,0));
  pointer-events: none;
}

.site-header-inner {
  position: relative;
  z-index: 2;
  min-height: 88px;
  display: grid;
  grid-template-columns: minmax(280px, 1fr) auto minmax(320px, 1fr);
  align-items: start;
  gap: 1.2rem;
  padding: 1.05rem 1.35rem 0;
}

.brand {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  gap: .78rem;
  color: var(--ink);
  text-decoration: none;
}

.brand-mark { width: 48px; height: auto; flex: 0 0 auto; }
.brand-copy { display: grid; gap: .12rem; }
.brand-name {
  font-family: var(--font-display);
  font-size: clamp(2rem, 2.7vw, 3.15rem);
  line-height: .92;
  letter-spacing: -.035em;
  white-space: nowrap;
}
.brand-tagline {
  padding-left: .12rem;
  font-size: .61rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .19em;
  color: #4e6c63;
}

.primary-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .15rem;
  padding-top: .28rem;
}
.nav-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  min-height: 48px;
  padding: .52rem .78rem;
  text-decoration: none;
  color: #173b34;
  font-size: .86rem;
  font-weight: 750;
  white-space: nowrap;
}
.nav-link::after {
  content: "";
  position: absolute;
  left: .75rem;
  right: .75rem;
  bottom: 1px;
  height: 2px;
  border-radius: 99px;
  background: transparent;
  transform: scaleX(.55);
  transition: .18s ease;
}
.nav-link:hover::after,
.nav-link.active::after { background: #075846; transform: scaleX(1); }
.nav-link.active { color: #052f29; }
.nav-icon {
  width: 1.35rem;
  height: 1.35rem;
  display: inline-grid;
  place-items: center;
  color: #0a5648;
  font-size: .86rem;
  line-height: 1;
}
.nav-heart { font-size: 1.55rem; font-weight: 400; }
.nav-info { border: 1.5px solid currentColor; border-radius: 50%; font-size: .72rem; font-weight: 850; }

.header-actions {
  display: flex;
  justify-content: flex-end;
  align-items: flex-start;
  gap: .62rem;
  padding-top: .08rem;
}
.header-search {
  width: min(420px, 31vw);
  display: flex;
  align-items: center;
  gap: .5rem;
  min-height: 43px;
  padding: 0 .88rem;
  border: 1px solid rgba(16, 67, 56, .12);
  border-radius: 999px;
  background: rgba(255,255,255,.93);
  box-shadow: 0 7px 22px rgba(15, 52, 43, .11);
  backdrop-filter: blur(10px);
}
.header-search > span { color: #183e36; font-size: 1.2rem; transform: rotate(-12deg); }
.header-search input {
  min-height: 41px;
  padding: 0;
  border: 0;
  outline: 0;
  background: transparent;
  box-shadow: none;
  font-size: .78rem;
  color: #173b34;
}
.header-search input:focus { box-shadow: none; border: 0; }
.header-search input::placeholder { color: #657a73; }
.header-heart {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(16, 67, 56, .14);
  border-radius: 50%;
  background: rgba(255,255,255,.94);
  box-shadow: 0 7px 22px rgba(15, 52, 43, .11);
  text-decoration: none;
  font-size: 1.75rem;
  line-height: 1;
}

.hero-script {
  position: absolute;
  z-index: 2;
  right: 1.7rem;
  bottom: .9rem;
  display: grid;
  justify-items: end;
  color: rgba(255,255,255,.96);
  font-family: "Segoe Print", "Bradley Hand", cursive;
  font-size: .88rem;
  line-height: 1.1;
  transform: rotate(-5deg);
  text-shadow: 0 2px 8px rgba(0,0,0,.36);
}

/* Main map surface overlaps the banner slightly, as in the reference */
main { position: relative; z-index: 3; margin-top: -18px; }
.results-shell {
  border-radius: 1.7rem;
  background: rgba(255,255,253,.975);
  border-color: rgba(20, 74, 61, .11);
  box-shadow: 0 18px 46px rgba(22, 56, 47, .09);
}
.results-header { padding: .12rem .18rem 0; }
.results-header h3,
.story-section h2,
.favorites-section h2 {
  font-family: var(--font-display);
  color: #072f2a;
  font-weight: 400;
  letter-spacing: -.025em;
}
.results-header h3 { font-size: clamp(2rem, 3.2vw, 3.35rem); }
.results-header > div:first-child::after {
  content: "Find oplevelser i Viborg og omegn – fra natur og kultur til sjove aktiviteter for hele familien.";
  display: block;
  margin-top: .22rem;
  max-width: 74ch;
  color: #6c7c7f;
  font-size: .98rem;
  line-height: 1.45;
}

.discovery-chip,
.switch-button,
.ghost-button,
.dark-button,
.segment-button,
.suggest-place-button { font-family: var(--font-ui); }
.discovery-chip { box-shadow: 0 2px 7px rgba(20, 55, 44, .035); }
.discovery-chip.active { background: #075846; border-color: #075846; }

.place-card-title,
.selected-popup-title,
#place-dialog h2,
.about-card h3,
.favorite-card-title {
  font-family: var(--font-display);
  font-weight: 400;
  color: #0a302b;
}
.place-card-title { font-size: 1.12rem; }

/* Favorites buttons on results */
.place-card-wrap { position: relative; }
.place-card-wrap .place-card { padding-right: 2.7rem; }
.favorite-toggle {
  position: absolute;
  z-index: 3;
  top: .72rem;
  right: .72rem;
  width: 31px;
  height: 31px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid #dce5df;
  border-radius: 50%;
  background: rgba(255,255,255,.94);
  color: #153d35;
  font-size: 1.25rem;
  line-height: 1;
  box-shadow: 0 3px 9px rgba(18, 55, 43, .08);
}
.favorite-toggle:hover { transform: translateY(-1px); border-color: #aac3b7; }
.favorite-toggle.is-favorite { background: #fff1f1; color: #c54251; border-color: #f0c9cf; }

/* Lower editorial sections */
.anchor-section { scroll-margin-top: 1rem; }
.story-section,
.favorites-section {
  margin-top: 1rem;
  padding: clamp(1.25rem, 2.6vw, 2.35rem);
  border: 1px solid rgba(20,74,61,.10);
  border-radius: 1.55rem;
  background: rgba(251,250,246,.96);
  box-shadow: 0 10px 30px rgba(22,56,47,.06);
}
.story-section {
  background:
    radial-gradient(circle at 0% 100%, rgba(117,142,102,.11), transparent 28%),
    radial-gradient(circle at 100% 100%, rgba(117,142,102,.09), transparent 24%),
    rgba(251,250,246,.97);
}
.favorites-section {
  background: linear-gradient(180deg, rgba(248,250,245,.98), rgba(242,246,238,.98));
}
.section-heading-row {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 1.4rem;
  margin-bottom: 1.25rem;
}
.section-kicker {
  margin: 0 0 .2rem;
  color: #577269;
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: .67rem;
  font-weight: 850;
}
.story-section h2,
.favorites-section h2 { margin: 0; font-size: clamp(2rem, 3.4vw, 3.45rem); line-height: 1; }
.section-lead { max-width: 62ch; margin: .42rem 0 0; color: #687a75; line-height: 1.55; font-size: .92rem; }
.section-jump { flex: 0 0 auto; padding-bottom: .3rem; color: #244b41; text-decoration: none; font-size: .8rem; font-weight: 800; }
.section-jump:hover { text-decoration: underline; }
.about-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .85rem; }
.about-card {
  min-height: 130px;
  display: grid;
  grid-template-columns: 66px 1fr;
  gap: .9rem;
  align-items: center;
  padding: 1rem;
  border: 1px solid rgba(24,76,63,.1);
  border-radius: 1rem;
  background: rgba(255,255,255,.82);
}
.about-card-icon {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  border-radius: 18px;
  background: #e8f1e9;
  color: #2f694f;
  font-size: 1.65rem;
}
.about-card:nth-child(2) .about-card-icon { background: #e8f0e4; color: #567942; }
.about-card:nth-child(3) .about-card-icon { background: #f3e9ed; color: #98596d; }
.about-card h3 { margin: 0 0 .3rem; font-size: 1.12rem; }
.about-card p { margin: 0; color: #6a7a75; font-size: .8rem; line-height: 1.5; }

.favorites-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .82rem; }
.favorite-card {
  overflow: hidden;
  border: 1px solid rgba(24,76,63,.11);
  border-radius: 1rem;
  background: #fff;
  box-shadow: 0 6px 18px rgba(24,53,44,.045);
}
.favorite-card-button { display: block; width: 100%; padding: 0; border: 0; background: none; text-align: left; color: inherit; }
.favorite-card-media { position: relative; height: 130px; overflow: hidden; background: #e8efea; }
.favorite-card-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.favorite-card-heart {
  position: absolute;
  top: .55rem;
  left: .55rem;
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #fff;
  color: #d54859;
  box-shadow: 0 4px 10px rgba(0,0,0,.12);
  font-size: 1rem;
}
.favorite-card-copy { padding: .72rem .8rem .85rem; }
.favorite-card-title { display: block; font-size: 1.03rem; line-height: 1.2; }
.favorite-card-meta { display: block; margin-top: .22rem; color: #687b74; font-size: .73rem; }
.favorites-empty {
  margin: 0;
  padding: 1.1rem 1.2rem;
  border: 1px dashed #bfd0c7;
  border-radius: 1rem;
  background: rgba(255,255,255,.55);
  color: #71817b;
  font-size: .86rem;
}
.favorites-empty.hidden { display: none; }

@media (max-width: 1120px) {
  .site-header-inner { grid-template-columns: minmax(245px, 1fr) auto; }
  .header-actions { grid-column: 1 / -1; position: absolute; right: 1.25rem; bottom: -71px; }
  .hero-script { display: none; }
  .favorites-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 820px) {
  .page-shell { width: min(100% - .65rem, 1500px); }
  .site-header { min-height: 205px; border-radius: 0 0 1.15rem 1.15rem; }
  .site-header-inner { grid-template-columns: 1fr; gap: .25rem; padding: .85rem .9rem 0; }
  .brand-mark { width: 40px; }
  .brand-name { font-size: 2rem; }
  .brand-tagline { font-size: .54rem; }
  .primary-nav { justify-content: flex-start; overflow-x: auto; padding-top: .35rem; scrollbar-width: none; }
  .primary-nav::-webkit-scrollbar { display: none; }
  .nav-link { min-height: 40px; padding: .35rem .6rem; font-size: .78rem; }
  .header-actions { left: .85rem; right: .85rem; bottom: .72rem; }
  .header-search { width: 100%; flex: 1; }
  .header-heart { flex: 0 0 44px; }
  main { margin-top: -.55rem; }
  .results-header > div:first-child::after { font-size: .84rem; }
  .about-cards { grid-template-columns: 1fr; }
  .favorites-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
  .site-header { min-height: 217px; background-position: 61% 50%; }
  .brand-name { font-size: 1.82rem; }
  .brand-tagline { max-width: 245px; white-space: normal; line-height: 1.2; }
  .nav-icon { display: none; }
  .nav-link { padding-inline: .48rem; }
  .results-header { flex-direction: column; align-items: stretch; }
  .results-header h3 { font-size: 2rem; }
  .section-heading-row { align-items: flex-start; flex-direction: column; }
  .story-section, .favorites-section { padding: 1rem; }
  .favorites-grid { grid-template-columns: 1fr; }
  .favorite-card-media { height: 150px; }
}

/* ========================================================================== 
   Growth platform: decision-first discovery, events, planner and retention
   ========================================================================== */
.page-shell { width: min(1760px, calc(100% - 1.25rem)); }
.site-header { background-position: center 46%; }
.results-shell, .events-section, .inspiration-section, .planner-section, .story-section, .favorites-section { content-visibility: auto; contain-intrinsic-size: 800px; }

.decision-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .8rem;
  padding: .55rem .72rem .45rem;
}
.decision-copy { display: flex; align-items: baseline; gap: .55rem; min-width: 0; }
.decision-label { font-weight: 850; color: #143f34; font-size: .86rem; white-space: nowrap; }
.personalization-summary { color: #6c7d76; font-size: .78rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.personalize-button {
  flex: 0 0 auto;
  border: 0;
  background: transparent;
  color: #0a5c49;
  font-weight: 850;
  font-size: .78rem;
  padding: .35rem .45rem;
}
.personalize-button:hover { text-decoration: underline; }

.intent-bar {
  display: flex;
  gap: .42rem;
  overflow-x: auto;
  padding: .15rem .15rem .62rem;
  scrollbar-width: none;
}
.intent-bar::-webkit-scrollbar { display: none; }
.intent-chip {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: .38rem;
  min-height: 39px;
  padding: .48rem .72rem;
  border: 1px solid #d7e2dc;
  border-radius: 999px;
  background: #fff;
  color: #25483f;
  box-shadow: 0 2px 8px rgba(20,55,44,.035);
  font-size: .78rem;
  font-weight: 800;
  transition: .15s ease;
}
.intent-chip:hover { transform: translateY(-1px); border-color: #aac1b6; }
.intent-chip.active { color: #fff; background: #0b5e4b; border-color: #0b5e4b; box-shadow: 0 6px 16px rgba(11,94,75,.17); }
.intent-chip span { font-size: 1rem; line-height: 1; }

.active-filters {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .35rem;
  padding: 0 .18rem .62rem;
}
.active-filter-pill {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  border: 1px solid #cadbd2;
  border-radius: 999px;
  background: #edf5f1;
  color: #234d41;
  padding: .32rem .55rem;
  font-size: .72rem;
  font-weight: 800;
}
.active-filter-pill button { border: 0; padding: 0; background: none; color: inherit; font-weight: 900; line-height: 1; }
.active-filter-clear { margin-left: .1rem; border: 0; background: none; color: #637a71; font-size: .71rem; font-weight: 800; text-decoration: underline; }

.list-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .7rem;
  min-height: 42px;
  padding: .1rem .25rem .48rem .15rem;
}
#result-count { font-size: .82rem; color: #23483e; }
.sort-control { display: flex; align-items: center; gap: .35rem; color: #718078; font-size: .7rem; }
.sort-control select { min-height: 34px; width: auto; padding: .35rem 1.75rem .35rem .55rem; border-radius: 999px; font-size: .72rem; font-weight: 750; }
.sort-explainer { color:#6b7d75; font-size:.66rem; font-weight:750; text-decoration:underline; text-underline-offset:2px; white-space:nowrap; }

.place-card-wrap .place-card { padding-right: 5.05rem; }
.planner-toggle {
  position: absolute;
  z-index: 3;
  top: .72rem;
  right: 2.78rem;
  width: 31px;
  height: 31px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid #dce5df;
  border-radius: 50%;
  background: rgba(255,255,255,.94);
  color: #153d35;
  font-size: 1.1rem;
  font-weight: 850;
  box-shadow: 0 3px 9px rgba(18,55,43,.08);
}
.planner-toggle:hover { transform: translateY(-1px); border-color: #aac3b7; }
.planner-toggle.is-planned { background: #e7f3ed; color: #096147; border-color: #a7cdbd; }
.availability-chip, .fresh-chip, .verified-chip {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: .22rem .43rem;
  border-radius: 999px;
  font-size: .64rem;
  font-weight: 850;
  line-height: 1.15;
}
.availability-chip.open { background: #e4f3e9; color: #176440; }
.availability-chip.closed { background: #f4ebea; color: #8a4b48; }
.availability-chip.flexible { background: #edf1e7; color: #537045; }
.availability-chip.unknown { background: #f1f1ed; color: #6b746e; }
.fresh-chip { background: #fff1d9; color: #8b5a10; }
.verified-chip { background: #ecf3f0; color: #446b5f; }
.card-signal-row { display: flex; flex-wrap: wrap; gap: .28rem; margin-top: -.06rem; }
.new-badge {
  position: absolute;
  left: .48rem;
  top: .48rem;
  padding: .25rem .42rem;
  border-radius: .42rem;
  background: #f3b94a;
  color: #47320e;
  font-size: .62rem;
  font-weight: 900;
  letter-spacing: .05em;
}
.free-badge + .new-badge { top: 2rem; }

.empty-state-card {
  display: grid;
  gap: .65rem;
  padding: 1.15rem;
  border: 1px dashed #bacbc2;
  border-radius: 1rem;
  background: #fafbf8;
  color: #4e665e;
}
.empty-state-card strong { font-family: var(--font-display); font-size: 1.25rem; font-weight: 400; color: #123a31; }
.empty-state-actions { display: flex; flex-wrap: wrap; gap: .4rem; }

.events-section, .inspiration-section, .planner-section {
  margin-top: 1rem;
  padding: clamp(1.2rem, 2.4vw, 2.2rem);
  border: 1px solid rgba(20,74,61,.10);
  border-radius: 1.55rem;
  background: rgba(251,250,246,.97);
  box-shadow: 0 10px 30px rgba(22,56,47,.055);
  scroll-margin-top: 1rem;
}
.events-section h2, .inspiration-section h2, .planner-section h2,
.inspiration-section h3, .planner-section h3 {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 400;
  color: #082f2a;
  letter-spacing: -.02em;
}
.events-section h2, .inspiration-section h2, .planner-section h2 { font-size: clamp(2rem,3.4vw,3.4rem); line-height: 1; }

.event-period-tabs { display: flex; gap: .35rem; flex-wrap: wrap; justify-content: flex-end; }
.event-period {
  border: 1px solid #d4dfd8;
  border-radius: 999px;
  padding: .46rem .68rem;
  background: #fff;
  color: #36544b;
  font-size: .72rem;
  font-weight: 800;
}
.event-period.active { background: #0b5e4b; color: #fff; border-color: #0b5e4b; }
.events-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .72rem; }
.event-card {
  display: grid;
  grid-template-columns: 58px minmax(0,1fr);
  gap: .7rem;
  padding: .82rem;
  border: 1px solid #dfe6e0;
  border-radius: 1rem;
  background: #fff;
  text-decoration: none;
  box-shadow: 0 5px 16px rgba(22,56,47,.04);
}
.event-card:hover { border-color: #a9c3b6; transform: translateY(-1px); }
.event-date-tile { display: grid; place-items: center; align-content: center; min-height: 58px; border-radius: .8rem; background: #edf4ef; color: #0b5e4b; }
.event-date-tile strong { font-family: var(--font-display); font-size: 1.65rem; font-weight: 400; line-height: .9; }
.event-date-tile span { font-size: .6rem; font-weight: 850; text-transform: uppercase; letter-spacing: .08em; }
.event-card-copy { min-width: 0; }
.event-card-title { display: block; font-family: var(--font-display); font-size: 1.05rem; font-weight: 400; line-height: 1.15; }
.event-card-meta, .event-card-place { display: block; margin-top: .2rem; color: #6b7a75; font-size: .69rem; line-height: 1.35; }
.section-empty { padding: .9rem 1rem; border-radius: .9rem; background: #f6f7f3; color: #6d7d76; font-size: .82rem; }

.smart-collections { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: .62rem; }
.collection-card {
  min-height: 126px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: .16rem;
  padding: .85rem;
  border: 1px solid rgba(24,76,63,.10);
  border-radius: 1rem;
  text-decoration: none;
  overflow: hidden;
  position: relative;
}
.collection-card::after { content:""; position:absolute; width:100px; height:100px; border-radius:50%; right:-34px; top:-42px; background:rgba(255,255,255,.35); }
.collection-card strong { position:relative; z-index:1; font-family: var(--font-display); font-size: 1.05rem; font-weight:400; }
.collection-card > span:last-child { position:relative; z-index:1; color:#587069; font-size:.68rem; }
.collection-icon { position:absolute; top:.75rem; left:.8rem; font-size:1.4rem; }
.collection-free { background:#edf4e9; }
.collection-rain { background:#e9f1f5; }
.collection-family { background:#f4ebf3; }
.collection-nature { background:#e9f2e8; }
.collection-weekend { background:#f7eee5; }
.collection-new { background:#fff3da; }

.personalized-block, .fresh-block, .popular-block, .areas-block { margin-top: 1.5rem; }
.mini-heading { display:flex; justify-content:space-between; align-items:end; gap:1rem; margin-bottom:.7rem; }
.mini-heading h3 { font-size: 1.55rem; }
.personalized-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.7rem; }
.mini-place-card {
  overflow:hidden;
  border:1px solid #dfe6e0;
  border-radius:1rem;
  background:#fff;
  box-shadow:0 5px 16px rgba(22,56,47,.04);
}
.mini-place-button { display:grid; grid-template-columns:104px minmax(0,1fr); width:100%; border:0; padding:0; background:none; text-align:left; color:inherit; }
.mini-place-image { width:104px; height:92px; object-fit:cover; display:block; background:#e8efea; }
.mini-place-copy { display:grid; align-content:center; gap:.2rem; padding:.6rem .7rem; min-width:0; }
.mini-place-title { font-family:var(--font-display); font-weight:400; font-size:1rem; line-height:1.1; }
.mini-place-meta { color:#6b7a75; font-size:.67rem; line-height:1.35; }
.new-since-count { padding:.26rem .48rem; border-radius:999px; background:#fff2d7; color:#815310; font-size:.7rem; font-weight:850; }
.areas-links { display:flex; flex-wrap:wrap; gap:.4rem; }
.area-link { padding:.42rem .68rem; border:1px solid #d6e1db; border-radius:999px; background:#fff; text-decoration:none; color:#31564b; font-size:.72rem; font-weight:800; }
.area-link:hover { background:#edf5f1; border-color:#b8cfc4; }

.planner-actions { display:flex; gap:.45rem; }
.planner-list { display:grid; gap:.55rem; }
.planner-row {
  display:grid;
  grid-template-columns:36px 76px minmax(0,1fr) auto;
  align-items:center;
  gap:.65rem;
  padding:.55rem;
  border:1px solid #dfe6e0;
  border-radius:1rem;
  background:#fff;
}
.planner-rank { width:32px; height:32px; display:grid; place-items:center; border-radius:50%; background:#e9f2ed; color:#155b47; font-weight:900; font-size:.72rem; }
.planner-image { width:76px; height:58px; object-fit:cover; border-radius:.72rem; background:#e8efea; }
.planner-copy strong { display:block; font-family:var(--font-display); font-weight:400; font-size:1.05rem; }
.planner-copy span { color:#6d7b76; font-size:.7rem; }
.planner-row-actions { display:flex; gap:.3rem; }
.planner-row-actions button { width:32px; height:32px; border:1px solid #d8e2dc; border-radius:50%; background:#fff; color:#34554b; }
.shared-list-banner { margin-bottom:.75rem; padding:.8rem 1rem; border-radius:1rem; background:#eaf3ee; color:#255346; font-size:.82rem; }
.shared-list-banner strong { color:#123f34; }

.personalize-dialog { width:min(680px,calc(100% - 1rem)); border:0; padding:0; border-radius:1.2rem; background:#fffdfa; color:var(--text); box-shadow:0 26px 80px rgba(10,45,35,.24); }
.personalize-dialog::backdrop { background:rgba(8,35,29,.42); backdrop-filter:blur(3px); }
.personalize-dialog form { display:grid; gap:1rem; padding:1.2rem; }
.personalize-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }
.interest-picker { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:.45rem .8rem; padding:.8rem; border:1px solid var(--border); border-radius:.85rem; }
.interest-picker legend { padding:0 .25rem; color:#365148; font-size:.78rem; font-weight:850; }
.interest-picker label { display:flex; gap:.35rem; align-items:center; font-size:.78rem; color:#4d655d; }
.interest-picker input { width:auto; min-height:0; }

.place-detail-hero { position:relative; height:220px; margin:-.2rem -.2rem 1rem; overflow:hidden; border-radius:1rem; background:#e6eee9; }
.place-detail-hero img { width:100%; height:100%; object-fit:cover; display:block; }
.place-detail-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(to top,rgba(6,36,29,.35),transparent 48%); pointer-events:none; }
.place-detail-signal { display:flex; flex-wrap:wrap; gap:.35rem; margin:.35rem 0 .8rem; }
.detail-actions { display:flex; flex-wrap:wrap; gap:.42rem; margin-top:.8rem; }
.detail-actions > * { margin:0!important; }
.data-freshness { margin:.8rem 0 0; padding:.6rem .7rem; border-radius:.75rem; background:#f4f6f3; color:#65766f; font-size:.72rem; line-height:1.45; }

.event-page { width:min(1000px,calc(100% - 1.2rem)); margin:2rem auto; font-family:var(--font-ui); color:var(--ink); }
.event-page-back { display:inline-block; margin-bottom:1rem; color:#195343; text-decoration:none; font-weight:800; }
.event-page-card { overflow:hidden; border:1px solid #dce5df; border-radius:1.4rem; background:#fff; box-shadow:var(--shadow-soft); }
.event-page-image { width:100%; height:min(42vw,360px); object-fit:cover; display:block; background:#e9efeb; }
.event-page-copy { padding:clamp(1rem,4vw,2.5rem); }
.event-page-copy h1 { margin:.1rem 0 .5rem; font-family:var(--font-display); font-weight:400; font-size:clamp(2rem,5vw,4rem); line-height:1; }
.event-page-date { color:#4c6a60; font-weight:800; }
.event-booking { display:inline-block; margin-top:.8rem; text-decoration:none; }

@media (max-width: 1180px) {
  .smart-collections { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .events-grid, .personalized-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 760px) {
  .page-shell { width:min(100% - .5rem,1760px); }
  .decision-strip { align-items:flex-start; }
  .decision-copy { display:grid; gap:.05rem; }
  .personalization-summary { white-space:normal; }
  .intent-bar { margin-inline:-.2rem; padding-left:.2rem; }
  .discovery-bar { grid-template-columns:1fr; }
  .discovery-tools { width:100%; }
  .map-search { width:100%; min-width:0; }
  .list-toolbar { position:sticky; top:0; z-index:4; padding:.45rem .3rem; background:rgba(255,253,250,.94); backdrop-filter:blur(8px); }
  .mobile-segmented { position:sticky; top:0; z-index:5; background:#fffdfa; padding:.35rem 0; }
  .place-list { max-height:none; }
  .results-layout { display:block; }
  #map { height:62vh; min-height:430px; }
  .events-section,.inspiration-section,.planner-section { padding:1rem; }
  .events-grid,.personalized-grid,.smart-collections { grid-template-columns:1fr; }
  .collection-card { min-height:105px; }
  .planner-row { grid-template-columns:32px 62px minmax(0,1fr); }
  .planner-image { width:62px; height:52px; }
  .planner-row-actions { grid-column:2/-1; justify-content:flex-end; }
  .personalize-grid { grid-template-columns:1fr; }
  .interest-picker { grid-column:auto; }
  .section-heading-row { gap:.75rem; }
  .event-period-tabs { justify-content:flex-start; overflow-x:auto; flex-wrap:nowrap; width:100%; scrollbar-width:none; }
  .event-period { flex:0 0 auto; }
}
.results-intro { margin:.28rem 0 0; max-width:74ch; color:#6c7c7f; font-size:.96rem; line-height:1.45; }
.results-header > div:first-child::after { content:none!important; display:none!important; }


/* Growth platform: live context and trust signals */
.decision-actions { display:flex; align-items:center; gap:.6rem; flex-wrap:wrap; justify-content:flex-end; }
.weather-context { display:inline-flex; align-items:center; gap:.28rem; min-height:34px; padding:.42rem .68rem; border:1px solid #cfddd5; border-radius:999px; background:rgba(255,255,255,.82); color:#27483c; font-size:.78rem; font-weight:800; white-space:nowrap; }
.intent-chip.weather-suggested { border-color:#7fa8bc; box-shadow:0 0 0 3px rgb(72 139 169 / .10); background:#f2f8fb; }
.social-proof-chip { display:inline-flex; align-items:center; border-radius:999px; padding:.25rem .46rem; background:#f4efe6; color:#765e36; font-size:.68rem; font-weight:800; }
.owner-claim-button { color:#36594c; background:#f5f8f6; }
@media (max-width:760px) { .decision-actions { width:100%; justify-content:space-between; } .weather-context { order:1; } .personalize-button { order:2; } }


/* Editorial guides */
.editorial-collections-block { margin-bottom:1.15rem; }
.editorial-collections-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.75rem; }
.editorial-collection-card { display:grid; grid-template-columns:112px minmax(0,1fr); min-height:112px; overflow:hidden; border:1px solid #dfe7e2; border-radius:1rem; background:#fff; color:inherit; text-decoration:none; box-shadow:0 7px 18px rgb(21 60 48 / .045); transition:.16s ease; }
.editorial-collection-card:hover { transform:translateY(-2px); border-color:#aac1b6; box-shadow:0 12px 26px rgb(21 60 48 / .09); }
.editorial-collection-card img { width:112px; height:100%; min-height:112px; object-fit:cover; background:#e9f0eb; }
.editorial-collection-copy { min-width:0; display:flex; flex-direction:column; gap:.28rem; justify-content:center; padding:.72rem; }
.editorial-collection-copy strong { font-family:var(--font-display); font-size:1.03rem; line-height:1.05; }
.editorial-collection-copy span { color:#63776e; font-size:.73rem; line-height:1.35; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.editorial-collection-copy small { color:#0b604c; font-size:.66rem; font-weight:850; text-transform:uppercase; letter-spacing:.04em; }
@media(max-width:1180px){.editorial-collections-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:640px){.editorial-collections-grid{grid-template-columns:1fr}.editorial-collection-card{grid-template-columns:92px minmax(0,1fr)}.editorial-collection-card img{width:92px}}

/* Discovery, search assistance, planning, newsletter and trust layer */
.header-search-wrap,.map-search-wrap{position:relative;min-width:0}.search-suggestions{position:absolute;z-index:50;top:calc(100% + .38rem);left:0;right:0;display:grid;gap:.12rem;padding:.38rem;border:1px solid #d7e1dc;border-radius:.95rem;background:#fff;box-shadow:0 18px 42px rgb(14 52 41 / .16);max-height:330px;overflow:auto}.search-suggestions.hidden{display:none}.search-suggestion{width:100%;display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:.55rem;padding:.62rem .68rem;border:0;border-radius:.68rem;background:transparent;text-align:left;color:var(--text)}.search-suggestion:hover,.search-suggestion:focus-visible{background:#f1f6f3;outline:0}.search-suggestion-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#e9f2ed;color:#145744;font-weight:900}.search-suggestion-copy{min-width:0;display:grid;gap:.08rem}.search-suggestion-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem}.search-suggestion-copy small{color:#71817a;font-size:.68rem}.header-search-suggestions{min-width:min(420px,80vw);left:auto}
.intent-primary-row{display:flex;align-items:flex-start;gap:.45rem}.intent-more{position:relative;flex:0 0 auto}.intent-more>summary{list-style:none;cursor:pointer;padding:.55rem .7rem;border:1px solid #d8e2dc;border-radius:999px;background:#fff;color:#35544a;font-size:.75rem;font-weight:800}.intent-more>summary::-webkit-details-marker{display:none}.intent-more[open]>summary{background:#eaf2ed;border-color:#9fb8ac}.intent-more .intent-bar{position:absolute;z-index:18;top:calc(100% + .35rem);right:0;min-width:330px;max-width:min(620px,90vw);padding:.5rem;border:1px solid #dce6e0;border-radius:1rem;background:#fff;box-shadow:0 16px 36px rgb(20 57 45 / .14);flex-wrap:wrap;overflow:visible}
.situational-filter-block{margin-top:.85rem;padding:.8rem;border:1px solid var(--border);border-radius:.9rem;background:#fafbf8}.situational-filter-label{display:block;margin-bottom:.5rem;color:#365148;font-size:.78rem;font-weight:850}.situational-filter-chips{display:flex;flex-wrap:wrap;gap:.4rem}.mini-intent-chip{padding:.48rem .62rem;border:1px solid #d6e0da;border-radius:999px;background:#fff;color:#365148;font-size:.74rem;font-weight:780}.mini-intent-chip.active{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff}
.near-match-list{display:grid;gap:.45rem;margin-top:.85rem;padding-top:.75rem;border-top:1px solid #e2e8e4}.near-match-button{display:flex;justify-content:space-between;gap:.75rem;padding:.6rem .7rem;border:1px solid #dce5df;border-radius:.75rem;background:#fff;text-align:left}.near-match-button span{font-weight:780}.near-match-button small{color:#718078;white-space:nowrap}
.planner-start-label{display:flex;align-items:center;gap:.38rem;color:#52675f;font-size:.72rem;font-weight:800}.planner-start-label input{min-height:38px;width:auto;padding:.45rem .55rem;border:1px solid #d6dfda;border-radius:.65rem;background:#fff}.planner-summary{margin:.75rem 0 .45rem;padding:.7rem .8rem;border:1px solid #cfe0d7;border-radius:.8rem;background:#f3f8f5;color:#294b3f;font-size:.78rem;font-weight:780}.planner-warnings{display:grid;gap:.32rem;margin:.45rem 0 .75rem}.planner-warning{padding:.52rem .66rem;border-left:3px solid #c58446;border-radius:.3rem .65rem .65rem .3rem;background:#fff7ed;color:#72502f;font-size:.74rem;line-height:1.4}
.newsletter-section{display:grid;grid-template-columns:minmax(0,.95fr) minmax(340px,1.05fr);gap:1.25rem;margin:1.15rem 0;padding:clamp(1rem,2.4vw,1.7rem);border:1px solid #ceddd4;border-radius:1.25rem;background:linear-gradient(135deg,#eaf4ee,#fffaf2);box-shadow:var(--shadow-soft)}.newsletter-section h2{margin:.12rem 0 .35rem;font-family:var(--font-display);font-size:clamp(1.8rem,3vw,2.6rem);font-weight:400}.newsletter-copy p:last-child{color:#5d7169;line-height:1.55}.newsletter-form{display:grid;align-content:center;gap:.48rem}.newsletter-input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.45rem}.newsletter-consent{display:flex;align-items:flex-start;gap:.4rem;color:#66766f;font-size:.68rem;line-height:1.42}.newsletter-consent input{width:auto;min-height:0;margin-top:.12rem}.newsletter-honeypot,.suggestion-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.newsletter-status{min-height:1.1em;margin:0;color:#225645;font-size:.72rem;font-weight:750}.newsletter-form small{color:#78847f;font-size:.65rem}
.feedback-dialog{width:min(720px,calc(100% - 1rem));border:0;border-radius:1.2rem;padding:0;box-shadow:0 26px 80px rgb(0 0 0 / .24)}.feedback-dialog::backdrop{background:rgb(7 31 25 / .45);backdrop-filter:blur(3px)}.feedback-dialog form{display:grid;gap:1rem;padding:1.2rem}.feedback-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.feedback-grid fieldset{display:flex;flex-wrap:wrap;gap:.45rem .75rem;padding:.7rem;border:1px solid #dfe6e2;border-radius:.8rem}.feedback-grid legend{font-size:.73rem;font-weight:800}.feedback-grid fieldset label{display:flex;align-items:center;gap:.25rem;font-size:.72rem;color:#5a6d65}.feedback-grid input[type=radio]{width:auto;min-height:0}
.site-footer{margin-top:1.1rem;padding:1rem .25rem .35rem;border-top:1px solid #dce4df;display:flex;justify-content:space-between;gap:1rem;color:#5e7169;font-size:.72rem}.site-footer>div{display:grid;gap:.15rem}.site-footer strong{color:#173d32;font-family:var(--font-display);font-size:1.05rem;font-weight:400}.site-footer nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.6rem 1rem}.site-footer a{text-decoration:none}.site-footer a:hover{text-decoration:underline}
.legal-page{width:min(900px,calc(100% - 2rem));margin:0 auto;padding:2rem 0 4rem}.legal-card{padding:clamp(1.2rem,3vw,2.2rem);border:1px solid #d9e3dd;border-radius:1.2rem;background:#fff;box-shadow:var(--shadow-soft)}.legal-card h1,.legal-card h2{font-family:var(--font-display);font-weight:400}.legal-lead{font-size:1.05rem;color:#536b62}.legal-card section{margin-top:1.4rem}.legal-card code{overflow-wrap:anywhere;background:#f3f6f4;padding:.12rem .3rem;border-radius:.25rem}
@media(max-width:760px){.search-suggestions{position:fixed;top:auto;left:.5rem;right:.5rem;max-height:45vh}.header-search-suggestions{min-width:0}.intent-primary-row{display:block}.intent-more{margin-top:.4rem}.intent-more .intent-bar{position:fixed;left:.5rem;right:.5rem;top:auto;min-width:0}.newsletter-section{grid-template-columns:1fr}.feedback-grid{grid-template-columns:1fr}.site-footer{display:grid}.site-footer nav{justify-content:flex-start}.planner-start-label{width:100%;justify-content:space-between}.planner-start-label input{flex:1}}
.similar-places{margin-top:1rem;padding-top:.9rem;border-top:1px solid #e0e7e3}.similar-places h3{margin:0 0 .6rem}.similar-places-grid{display:grid;gap:.45rem}.similar-place-button{display:grid;grid-template-columns:62px minmax(0,1fr);gap:.6rem;align-items:center;padding:.4rem;border:1px solid #dde6e1;border-radius:.75rem;background:#fff;text-align:left}.similar-place-button img{width:62px;height:54px;object-fit:cover;border-radius:.55rem}.similar-place-button span{display:grid;gap:.15rem}.similar-place-button small{color:#708078;font-size:.68rem}

/* Map/discovery refinement 2026-09-29: one toolbar, automatic viewport search */
.quick-discovery-toolbar {
  display: flex;
  align-items: center;
  gap: .45rem;
  padding: .58rem;
  border: 1px solid var(--border);
  border-radius: 1.05rem;
  background: #f8f8f4;
}
.quick-discovery-toolbar .intent-bar-primary {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
}
.quick-toolbar-tools {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: .42rem;
}
.quick-toolbar-tools .map-search-wrap { width: min(330px, 27vw); }
.quick-toolbar-tools .map-search { width: 100%; min-width: 0; }
.filter-settings-button {
  width: auto;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .38rem;
  padding: 0 .82rem;
  border-radius: var(--radius-pill);
  font-size: .8rem;
  white-space: nowrap;
}
.more-filters { margin-top: .55rem; }
.more-filters-summary-hidden { display: none; }
.collection-card[type="button"] {
  width: 100%;
  font: inherit;
  color: inherit;
  text-align: left;
  cursor: pointer;
}
.collection-card[type="button"]:focus-visible {
  outline: 3px solid rgb(31 106 85 / .2);
  outline-offset: 2px;
}

@media (max-width: 1280px) {
  .quick-discovery-toolbar { flex-wrap: wrap; }
  .quick-discovery-toolbar .intent-bar-primary { flex-basis: calc(100% - 150px); }
  .quick-toolbar-tools { width: 100%; justify-content: flex-end; }
  .quick-toolbar-tools .map-search-wrap { width: min(440px, 100%); }
}

@media (max-width: 760px) {
  .quick-discovery-toolbar { align-items: stretch; padding: .5rem; }
  .quick-discovery-toolbar .intent-bar-primary { flex-basis: 100%; margin: 0; padding-left: 0; }
  .quick-discovery-toolbar .intent-more { margin-top: 0; }
  .quick-toolbar-tools { order: 3; width: 100%; }
  .quick-toolbar-tools .map-search-wrap { flex: 1 1 auto; width: auto; }
  .quick-toolbar-tools .filter-settings-button { flex: 0 0 auto; }
  .intent-more .intent-bar { position: fixed; left: .5rem; right: .5rem; top: auto; min-width: 0; }
}


/* ==========================================================================
   Homepage simplification 2026-09-30
   ========================================================================== */

.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0,0,0,0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.site-header {
  min-height: 0;
  border: 0;
  border-radius: 0;
  background: rgba(255,253,250,.97);
  box-shadow: none;
  overflow: visible;
}
.site-header::after,
.hero-script { display:none!important; }

.site-header-inner {
  min-height: 66px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.2rem;
  padding: .7rem 1.15rem;
}
.brand-compact { gap:.55rem; text-decoration:none; }
.brand-compact .brand-mark { width:38px; height:38px; }
.brand-compact .brand-name { font-family:var(--font-display); font-size:1.32rem; color:var(--ink); }
.brand-copy,.brand-tagline,.header-actions { display:none!important; }

.primary-nav {
  display:flex;
  align-items:center;
  gap:1.35rem;
}
.primary-nav .nav-link {
  padding:.45rem 0;
  border:0;
  border-radius:0;
  background:transparent;
  color:#29483e;
  font-size:.83rem;
  font-weight:800;
  text-decoration:none;
}
.primary-nav .nav-link:hover,
.primary-nav .nav-link.active {
  color:#0c5b49;
  background:transparent;
}
.primary-nav .nav-icon { display:none; }

.home-hero {
  position:relative;
  min-height:460px;
  display:grid;
  place-items:center;
  margin:0 0 1rem;
  overflow:hidden;
  border-radius:0 0 1.45rem 1.45rem;
  background:
    linear-gradient(180deg,rgba(7,28,23,.10),rgba(7,28,23,.44)),
    url("/hero-viborg.webp") center 52% / cover no-repeat;
  box-shadow:0 16px 38px rgba(19,47,38,.08);
}
.home-hero-overlay {
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(5,24,20,.60) 0%,rgba(5,24,20,.16) 62%,rgba(5,24,20,.04) 100%);
}
.home-hero-content {
  position:relative;
  z-index:1;
  width:min(820px,calc(100% - 2rem));
  margin-top:6rem;
  text-align:center;
  color:#fff;
}
.home-hero-kicker {
  margin:0 0 .65rem;
  font-size:.75rem;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.12em;
}
.home-hero h1 {
  margin:0;
  font-family:var(--font-display);
  font-size:clamp(2.55rem,5vw,5rem);
  line-height:.96;
  font-weight:400;
  letter-spacing:-.025em;
}
.home-hero p:not(.home-hero-kicker) {
  max-width:650px;
  margin:.9rem auto 1.2rem;
  color:rgba(255,255,255,.92);
  font-size:1rem;
  line-height:1.55;
}
.home-hero-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:.7rem 1rem;
  border:1px solid rgba(255,255,255,.82);
  border-radius:999px;
  background:rgba(14,52,42,.22);
  color:#fff;
  text-decoration:none;
  font-size:.82rem;
  font-weight:850;
  backdrop-filter:blur(6px);
}
.home-hero-button:hover { background:rgba(14,52,42,.45); }

.results-shell { padding-top:.85rem; }
.results-header-utility {
  min-height:38px;
  align-items:center;
  margin-bottom:.55rem;
}
.results-header-utility .status-line { flex:1; margin:0; }
.results-header-utility .results-header-actions { margin-left:auto; }

.list-toolbar { justify-content:flex-end; }
#result-count { display:none!important; }

.planner-section-compact {
  margin-top:1rem;
  padding:1rem 1.05rem;
}
.planner-section-compact .section-heading-row { margin-bottom:.6rem; }
.planner-section-compact .section-lead { max-width:60ch; font-size:.82rem; }
.planner-section-compact .planner-list { gap:.4rem; }
.planner-section-compact .planner-row { padding:.42rem; }
.planner-section-compact .planner-image { width:62px; height:48px; }
.planner-section-compact .planner-copy strong { font-size:.95rem; }
.planner-section-compact .planner-summary { margin:.5rem 0 .35rem; padding:.55rem .65rem; }
.planner-section-compact .planner-actions { gap:.32rem; }
.planner-section-compact .planner-actions button,
.planner-section-compact .planner-start-label input { min-height:36px; padding:.45rem .62rem; }

.inspiration-editorial { margin-top:1rem; }
.inspiration-teasers {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.8rem;
}
.inspiration-teaser {
  display:grid;
  grid-template-rows:180px auto;
  overflow:hidden;
  border:1px solid #dce5df;
  border-radius:1rem;
  background:#fff;
  color:inherit;
  text-decoration:none;
  box-shadow:0 7px 18px rgba(21,60,48,.045);
}
.inspiration-teaser img { width:100%; height:180px; object-fit:cover; display:block; }
.inspiration-teaser > span { display:grid; gap:.28rem; padding:.85rem; }
.inspiration-teaser small {
  color:#0c654f;
  font-size:.66rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.07em;
}
.inspiration-teaser strong { font-family:var(--font-display); font-size:1.15rem; font-weight:400; line-height:1.1; }
.inspiration-teaser em { color:#66786f; font-size:.75rem; line-height:1.45; font-style:normal; }

.popular-section { margin-top:1rem; padding:1rem 1.05rem; }
.popular-top-list {
  margin:0;
  padding:0;
  list-style:none;
  border-top:1px solid #dce5df;
}
.popular-top-item { border-bottom:1px solid #dce5df; }
.popular-top-button {
  width:100%;
  display:grid;
  grid-template-columns:44px minmax(0,1fr) auto;
  align-items:center;
  gap:.8rem;
  padding:.72rem .2rem;
  border:0;
  background:transparent;
  color:inherit;
  text-align:left;
}
.popular-top-button:hover .popular-top-arrow { transform:translateX(3px); }
.popular-top-rank { color:#8a9993; font-size:.72rem; font-weight:900; letter-spacing:.08em; }
.popular-top-copy { display:grid; gap:.14rem; }
.popular-top-copy strong { font-size:.9rem; }
.popular-top-copy small { color:#6a7b74; font-size:.69rem; }
.popular-top-arrow { color:#1c6652; transition:.15s ease; }
.popular-top-empty { padding:.8rem 0; color:#6d7d76; font-size:.78rem; }

.favorites-section { margin-top:1rem; }

@media (max-width:760px) {
  .site-header-inner { min-height:58px; padding:.55rem .7rem; }
  .brand-compact .brand-mark { width:32px; height:32px; }
  .brand-compact .brand-name { font-size:1.08rem; }
  .primary-nav { gap:.75rem; }
  .primary-nav .nav-link { font-size:.72rem; }
  .home-hero { min-height:390px; border-radius:0 0 1rem 1rem; }
  .home-hero-content { margin-top:4.5rem; }
  .home-hero h1 { font-size:clamp(2.25rem,11vw,3.65rem); }
  .home-hero p:not(.home-hero-kicker) { font-size:.9rem; }
  .inspiration-teasers { grid-template-columns:1fr; }
  .inspiration-teaser { grid-template-columns:112px minmax(0,1fr); grid-template-rows:auto; }
  .inspiration-teaser img { width:112px; height:100%; min-height:120px; }
  .planner-section-compact .section-heading-row { align-items:flex-start; }
}


/* Homepage compact inspiration + plain popular list correction 2026-09-30 */
.inspiration-editorial {
  padding: 1rem 1.05rem;
}
.inspiration-editorial .section-heading-row {
  margin-bottom: .75rem;
}
.inspiration-teasers {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: .75rem !important;
  overflow: visible;
}
.inspiration-teaser {
  min-width: 0 !important;
  display: grid !important;
  grid-template-rows: 112px auto !important;
  border: 1px solid #dde5e0 !important;
  border-radius: .85rem !important;
  overflow: hidden !important;
  background: #fff !important;
  box-shadow: none !important;
}
.inspiration-teaser img {
  width: 100% !important;
  height: 112px !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
  object-fit: cover !important;
  display: block !important;
}
.inspiration-teaser > span {
  min-width: 0;
  display: grid !important;
  gap: .18rem !important;
  padding: .62rem .68rem .7rem !important;
}
.inspiration-teaser small {
  font-size: .6rem !important;
}
.inspiration-teaser strong {
  font-size: .98rem !important;
  line-height: 1.12 !important;
}
.inspiration-teaser em {
  font-size: .67rem !important;
  line-height: 1.35 !important;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.popular-section {
  padding: 1rem 1.05rem !important;
}
.popular-section .section-heading-row {
  margin-bottom: .35rem;
}
.popular-top-list {
  display: grid !important;
  gap: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}
.popular-text-link {
  appearance: none;
  width: fit-content;
  max-width: 100%;
  padding: .34rem 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #111 !important;
  font: inherit;
  font-size: .88rem !important;
  font-weight: 600 !important;
  line-height: 1.25;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
}
.popular-text-link:hover,
.popular-text-link:focus-visible {
  color: #0b604c !important;
  text-decoration: underline;
  outline: none;
}
.popular-top-empty {
  margin: .35rem 0 0;
  color: #66786f;
  font-size: .76rem;
}

@media (max-width: 760px) {
  .inspiration-teasers {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: .4rem !important;
  }
  .inspiration-teaser {
    grid-template-columns: 1fr !important;
    grid-template-rows: 82px auto !important;
  }
  .inspiration-teaser img {
    width: 100% !important;
    height: 82px !important;
    min-height: 0 !important;
  }
  .inspiration-teaser > span {
    padding: .48rem .48rem .55rem !important;
  }
  .inspiration-teaser small {
    font-size: .51rem !important;
    letter-spacing: .04em !important;
  }
  .inspiration-teaser strong {
    font-size: .78rem !important;
  }
  .inspiration-teaser em {
    display: none !important;
  }
  .inspiration-editorial .section-lead {
    font-size: .78rem;
  }
}


/* Homepage hierarchy refinement 2026-09-30 */
.home-hero {
  min-height: 590px !important;
}
.home-hero-content {
  width: min(900px, calc(100% - 2rem)) !important;
  margin-top: 8rem !important;
}
.home-hero h1 {
  font-size: clamp(3rem, 5.8vw, 5.8rem) !important;
}
.home-hero p:not(.home-hero-kicker) {
  margin: .9rem auto 1.35rem !important;
  font-size: 1.05rem !important;
}
.home-hero-actions {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: .7rem;
  flex-wrap: wrap;
}
.home-hero-button {
  min-height: 50px !important;
  padding: .78rem 1.18rem !important;
  border-width: 1.5px !important;
  font-size: .86rem !important;
  font-weight: 900 !important;
  cursor: pointer;
  transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
}
.home-hero-button:hover,
.home-hero-button:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(0,0,0,.18);
  outline: none;
}
.home-hero-button-primary {
  background: #fff !important;
  border-color: #fff !important;
  color: #123e33 !important;
}
.home-hero-button-primary:hover,
.home-hero-button-primary:focus-visible {
  background: #f0f7f3 !important;
}
.home-hero-button-secondary {
  background: rgba(10,48,39,.58) !important;
  border-color: rgba(255,255,255,.92) !important;
  color: #fff !important;
}
.home-hero-button-secondary:hover,
.home-hero-button-secondary:focus-visible {
  background: rgba(10,48,39,.82) !important;
}

.results-shell > .status-line:empty { display:none; }
.results-shell { padding-top: .65rem !important; }
.filters-shell { margin-bottom: .7rem !important; }

.list-toolbar {
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:.7rem !important;
}
.list-context-tools {
  min-width:0;
  display:flex;
  align-items:center;
  gap:.45rem;
}
.list-context-tools .weather-context {
  min-height:34px;
  padding:.36rem .58rem;
  font-size:.7rem;
}
.list-context-tools .personalize-button {
  min-height:34px;
  padding:.38rem .58rem;
  border:0;
  background:transparent;
  color:#17604d;
  font-size:.7rem;
  font-weight:850;
  white-space:nowrap;
}
.list-context-tools .personalize-button:hover {
  text-decoration:underline;
}

.suggest-under-map {
  display:flex;
  justify-content:flex-end;
  padding:.38rem .15rem 0;
}
.suggest-place-link {
  border:0;
  padding:.2rem 0;
  background:transparent;
  color:#5d7169;
  font-size:.7rem;
  font-weight:750;
  text-decoration:underline;
  text-decoration-color:#bdc9c3;
  text-underline-offset:3px;
  cursor:pointer;
}
.suggest-place-link:hover,
.suggest-place-link:focus-visible {
  color:#0d604c;
  text-decoration-color:#0d604c;
  outline:none;
}

.home-personal-grid {
  display:grid;
  grid-template-columns:minmax(0, 1.8fr) minmax(260px, .72fr);
  gap:1rem;
  align-items:start;
  margin-top:1rem;
}
.home-personal-main {
  display:grid;
  gap:1rem;
}
.home-personal-grid .favorites-section,
.home-personal-grid .planner-section,
.home-popular-column .popular-section {
  margin:0 !important;
  border:1px solid #dce5df;
  border-radius:1rem;
  background:#fff;
  box-shadow:0 8px 22px rgba(20,55,44,.045);
}
.home-personal-grid .favorites-section,
.home-personal-grid .planner-section {
  padding:1rem 1.05rem;
}
.home-popular-column {
  position:sticky;
  top:1rem;
}
.home-popular-column .popular-section {
  padding:1rem !important;
}
.home-personal-grid .section-heading-row,
.home-popular-column .section-heading-row {
  margin-bottom:.65rem;
}
.home-personal-grid .section-heading-row h2,
.home-popular-column .section-heading-row h2 {
  font-size:clamp(1.45rem,2vw,1.9rem);
}
.home-personal-grid .section-lead {
  font-size:.76rem;
  line-height:1.45;
  max-width:58ch;
}
.home-personal-grid .section-jump {
  font-size:.7rem;
}
.home-personal-grid .planner-section-compact {
  padding:1rem 1.05rem !important;
}
.home-personal-grid .planner-summary,
.home-personal-grid .planner-warnings {
  display:none !important;
}
.home-personal-grid .planner-actions {
  flex-wrap:wrap;
  justify-content:flex-end;
}
.home-personal-grid .planner-row {
  border:0;
  border-top:1px solid #e5ebe7;
  border-radius:0;
  box-shadow:none;
}
.home-personal-grid .planner-row:first-child {
  border-top:0;
}
.home-personal-grid .favorites-grid {
  gap:.55rem;
}
.home-popular-column .popular-text-link {
  width:100% !important;
  padding:.5rem 0 !important;
  border-bottom:1px solid #e5ebe7 !important;
  font-size:.82rem !important;
  font-weight:650 !important;
}
.home-popular-column .popular-text-link:last-child {
  border-bottom:0 !important;
}

.inspiration-editorial {
  margin-top:1rem !important;
}

@media (max-width: 980px) {
  .home-personal-grid {
    grid-template-columns:1fr;
  }
  .home-popular-column {
    position:static;
  }
  .home-popular-column .popular-top-list {
    grid-template-columns:repeat(2,minmax(0,1fr));
    column-gap:1rem !important;
  }
}

@media (max-width: 760px) {
  .primary-nav {
    gap:.55rem !important;
    overflow-x:auto;
    scrollbar-width:none;
  }
  .primary-nav .nav-link {
    flex:0 0 auto;
    font-size:.66rem !important;
  }
  .home-hero {
    min-height:480px !important;
  }
  .home-hero-content {
    margin-top:5.5rem !important;
  }
  .home-hero h1 {
    font-size:clamp(2.55rem,12vw,4rem) !important;
  }
  .home-hero-actions {
    gap:.5rem;
  }
  .home-hero-button {
    min-height:46px !important;
    padding:.68rem .85rem !important;
    font-size:.74rem !important;
  }
  .list-toolbar {
    align-items:flex-end !important;
  }
  .list-context-tools {
    flex-wrap:wrap;
    gap:.2rem .35rem;
  }
  .list-context-tools .weather-context {
    padding:.3rem .45rem;
    font-size:.63rem;
  }
  .list-context-tools .personalize-button {
    padding:.28rem .1rem;
    font-size:.64rem;
  }
  .home-personal-grid .planner-actions {
    width:100%;
    justify-content:flex-start;
  }
  .home-popular-column .popular-top-list {
    grid-template-columns:1fr;
  }
}


/* Social footer 2026-09-30 */
.site-footer {
  display:grid !important;
  grid-template-columns:minmax(180px,.7fr) minmax(0,1.6fr) minmax(220px,.8fr) !important;
  align-items:center !important;
  gap:1.1rem !important;
  margin-top:1.2rem !important;
  padding:1.05rem .25rem .45rem !important;
}
.footer-brand {
  display:grid !important;
  gap:.16rem !important;
}
.footer-brand small {
  max-width:22rem;
  color:#7b8983;
  font-size:.6rem;
  line-height:1.35;
}
.footer-social {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.45rem;
  flex-wrap:wrap;
}
.footer-social-label {
  color:#76867f;
  font-size:.64rem;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin-right:.12rem;
}
.social-link {
  display:inline-flex;
  align-items:center;
  gap:.46rem;
  min-height:42px;
  padding:.42rem .58rem;
  border:1px solid #dce5df;
  border-radius:.78rem;
  background:#fff;
  color:#163c32;
  text-decoration:none !important;
  box-shadow:0 4px 12px rgba(20,55,44,.035);
  transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease,background .15s ease;
}
.social-link:hover,
.social-link:focus-visible {
  transform:translateY(-2px);
  border-color:#9fb9ae;
  box-shadow:0 9px 20px rgba(20,55,44,.08);
  background:#fbfdfb;
  outline:none;
  text-decoration:none !important;
}
.social-icon {
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  border-radius:.55rem;
  background:#eef4f0;
  color:#0f5c49;
}
.social-icon svg {
  width:17px;
  height:17px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.social-facebook .social-icon svg {
  fill:currentColor;
  stroke:none;
}
.social-copy {
  display:grid;
  gap:.02rem;
  min-width:0;
}
.social-copy strong {
  font-family:var(--font-ui) !important;
  font-size:.7rem !important;
  font-weight:850 !important;
  color:#183e34 !important;
  line-height:1.15;
}
.social-copy small {
  color:#78867f;
  font-size:.58rem;
  line-height:1.15;
}
.footer-links {
  display:flex !important;
  flex-wrap:wrap;
  justify-content:flex-end !important;
  gap:.45rem .75rem !important;
}
.footer-links a {
  color:#61736b;
  font-size:.66rem;
}

@media (max-width: 980px) {
  .site-footer {
    grid-template-columns:1fr !important;
    align-items:start !important;
  }
  .footer-social {
    justify-content:flex-start;
  }
  .footer-links {
    justify-content:flex-start !important;
  }
}

@media (max-width: 560px) {
  .footer-social {
    display:grid;
    grid-template-columns:1fr;
    width:100%;
  }
  .footer-social-label {
    margin-bottom:.12rem;
  }
  .social-link {
    width:100%;
  }
}

.filter-tile-wide{grid-column:span 2}
.unverified-chip{display:inline-flex;align-items:center;border-radius:999px;padding:.22rem .5rem;font-size:.72rem;font-weight:700;background:#f3efe4;color:#66552d;border:1px solid rgba(102,85,45,.2)}
@media(max-width:640px){.filter-tile-wide{grid-column:1/-1}}


/* Server-rendered local area context: useful to users and available before JS renders. */
.server-area-intro{max-width:1180px;margin:1.25rem auto .5rem;padding:1.25rem 1.4rem;border:1px solid rgba(43,58,47,.12);border-radius:18px;background:rgba(255,255,255,.86)}
.server-area-intro h1{margin:.15rem 0 .35rem;font-size:clamp(1.65rem,3vw,2.4rem)}
.server-area-intro>p{max-width:760px;margin:.25rem 0 1rem}
.server-area-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.7rem;list-style:none;margin:0;padding:0}
.server-area-links li{padding:.8rem .9rem;border:1px solid rgba(43,58,47,.1);border-radius:12px;background:#fff}
.server-area-links a{color:inherit;text-decoration:none}.server-area-links a:hover{text-decoration:underline}
.server-area-links span{display:block;margin-top:.15rem;font-size:.76rem;color:var(--muted)}
.server-area-links p{margin:.4rem 0 0;font-size:.86rem;line-height:1.45;color:var(--muted)}
@media(max-width:700px){.server-area-intro{margin:.7rem .7rem .25rem;padding:1rem}.server-area-links{grid-template-columns:1fr}}


.skip-link{
  position:fixed;
  left:12px;
  top:12px;
  z-index:10000;
  padding:10px 14px;
  border-radius:10px;
  background:#fff;
  color:#123b32;
  box-shadow:0 4px 20px rgba(0,0,0,.18);
  transform:translateY(-160%);
}
.skip-link:focus{transform:translateY(0);}
.ssr-summary{
  max-width:900px;
  margin:24px auto;
  padding:24px;
  border:1px solid #dfe9e3;
  border-radius:18px;
  background:#fff;
}
.ssr-summary ul{padding-left:20px;}
