:root {
  --navy: #06182d;
  --navy-soft: #0d2947;
  --orange: #f04b23;
  --yellow: #f8d735;
  --green: #17623f;
  --chalk: #f7f5ef;
  --paper: #fffefa;
  --ink: #101a24;
  --muted: #53606c;
  --line: #a7a59c;
  --brass: #ad7e22;
  --brass-light: #e1bc58;
  --focus: #2e78ff;
  --content: min(1480px, calc(100vw - 40px));
  color-scheme: light;
}

* { box-sizing: border-box; hyphens: none; word-break: normal; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; background: var(--navy); }
body {
  margin: 0;
  color: var(--ink);
  background: var(--chalk);
  font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  font-size: 18px;
  line-height: 1.42;
  text-rendering: optimizeLegibility;
}

::selection { color: var(--navy); background: var(--yellow); }
button, input, select { font: inherit; }
button, input:not([type="radio"]), select { min-height: 44px; }
/* iOS Safari 26 telt padding bij datum- en tijdvelden ten onrechte buiten
   width: 100%. De native picker blijft intact; de tekst krijgt intern ruimte. */
input[type="date"], input[type="time"] {
  display: block;
  inline-size: 100%;
  min-inline-size: 0;
  max-inline-size: 100%;
  padding: 0 !important;
  font-size: 16px;
}
input[type="date"]::-webkit-date-and-time-value,
input[type="time"]::-webkit-date-and-time-value {
  min-height: 44px;
  display: flex;
  align-items: center;
  margin-inline: 12px;
  text-align: left;
}
:where(.tool-controls, .full-day-controls, .arrival-controls, .lunch-controls, .toilet-controls, .restaurant-controls),
:where(.tool-controls, .full-day-controls, .arrival-controls, .lunch-controls, .toilet-controls, .restaurant-controls) label,
:where(.tool-controls, .full-day-controls, .arrival-controls, .lunch-controls, .toilet-controls, .restaurant-controls) details {
  min-inline-size: 0;
}
a, button { overflow-wrap: normal; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .22em; }
img { display: block; max-width: 100%; }
svg { display: block; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 4px; }

.skip-link {
  position: fixed;
  z-index: 100;
  top: 12px;
  left: 12px;
  padding: 10px 14px;
  color: white;
  background: var(--navy);
  transform: translateY(-180%);
}
.skip-link:focus { transform: none; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

.site-header { color: white; background: var(--navy); border-bottom: 1px solid rgba(255,255,255,.18); }
.nav-shell {
  width: var(--content);
  min-height: 76px;
  margin: auto;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 38px;
}
.wordmark { min-height: 44px; display: flex; align-items: center; gap: 14px; text-decoration: none; }
.wordmark strong { font-size: 1.5rem; line-height: .95; letter-spacing: -.02em; text-transform: uppercase; }
.wordmark span { padding-left: 14px; border-left: 1px solid rgba(255,255,255,.55); font-size: .72rem; line-height: 1.05; white-space: nowrap; }
.site-header nav { display: flex; justify-content: center; gap: clamp(18px, 3vw, 46px); }
.site-header nav a { min-height: 44px; display: inline-flex; align-items: center; font-size: .88rem; text-decoration: none; }
.site-header nav a:hover, .site-header nav a[aria-current="page"] { color: var(--yellow); }
.nav-action { min-height: 44px; display: inline-flex; align-items: center; padding: 12px 18px; color: white; background: var(--orange); font-weight: 700; text-decoration: none; }
.nav-action:hover { background: #d83a16; }

main { overflow-x: clip; }
.home-stage { width: var(--content); min-height: 650px; margin: 18px auto 0; display: grid; grid-template-columns: 1fr 1.2fr; color: white; background: var(--navy); border: 4px solid var(--navy); }.home-stage > div { align-self: center; padding: clamp(36px,5vw,76px); }.home-stage > div > p { max-width: 52ch; color: #c8d1da; }.home-stage figure { position: relative; min-height: 650px; margin: 0; }.home-stage img { width: 100%; height: 100%; object-fit: cover; }.home-stage figcaption { position: absolute; right: 0; bottom: 0; max-width: 420px; padding: 18px 22px; background: var(--navy); }.home-choices { display: grid; gap: 10px; margin-top: 30px; }.home-choices a { display: grid; gap: 2px; padding: 16px 18px; color: var(--navy); background: var(--yellow); text-decoration: none; }.home-choices a + a { color: white; background: transparent; border: 1px solid rgba(255,255,255,.65); }.home-choices span { font-size: .72rem; font-weight: 700; text-transform: uppercase; }.home-choices strong { font-size: 1.25rem; }.home-choices small { opacity: .8; }.home-proof { width: var(--content); margin: 86px auto; }.home-proof h2 { font-size: 2.4rem; }.home-proof > div { display: grid; grid-template-columns: repeat(3,1fr); border-top: 3px solid var(--navy); }.home-proof p { margin: 0; padding: 24px 24px 24px 0; border-bottom: 1px solid var(--line); }.home-proof p + p { padding-left: 24px; border-left: 1px solid var(--line); }.home-proof strong { display: block; margin-bottom: 5px; }
.decision-stage {
  width: var(--content);
  min-height: 610px;
  margin: 18px auto 0;
  display: grid;
  grid-template-columns: minmax(390px, .88fr) minmax(0, 1.72fr);
  border: 4px solid var(--navy);
  background: var(--navy);
}

.service-pass {
  position: relative;
  z-index: 2;
  padding: clamp(28px, 4vw, 54px);
  background: var(--yellow);
  border: 2px solid var(--navy);
  outline: 1px solid var(--navy);
  outline-offset: -10px;
}
.service-pass::after {
  position: absolute;
  right: -17px;
  top: 22%;
  width: 30px;
  height: 30px;
  content: "";
  border: 3px solid var(--navy);
  border-radius: 50%;
  background: var(--navy);
}
.pass-heading { padding-bottom: 22px; border-bottom: 1px solid rgba(6,24,45,.5); }
.pass-stamp { margin: 0 0 6px; font-size: .76rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
h1, h2, h3, p { text-wrap: pretty; }
h1 { max-width: 15ch; margin: 0 0 12px; font-size: clamp(2.15rem, 3.1vw, 2.875rem); line-height: .98; letter-spacing: -.025em; }
.pass-heading > p:last-child { max-width: 49ch; margin: 0; }
.planner-answer { margin: 18px 0 0; padding: 14px 0 0; border-top: 1px solid rgba(6,24,45,.45); font-size: .86rem; }.planner-answer strong { display: block; margin-bottom: 4px; text-transform: uppercase; font-size: .68rem; letter-spacing: .06em; }

.time-choice { margin: 18px 0 16px; padding: 0; border: 0; }
.time-choice legend { margin-bottom: 7px; font-size: .76rem; font-weight: 700; text-transform: uppercase; }
.time-choice label { display: inline-block; margin-right: -5px; }
.time-choice input { position: absolute; opacity: 0; pointer-events: none; }
.time-choice span { min-width: 92px; min-height: 44px; display: grid; place-items: center; padding: 8px 14px; border: 1px solid var(--navy); cursor: pointer; font-weight: 700; }
.time-choice input:checked + span { color: white; background: var(--navy); }
.time-choice input:focus-visible + span { outline: 3px solid var(--focus); outline-offset: 3px; }

.pass-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pass-fields > label { display: grid; gap: 5px; font-size: .72rem; font-weight: 700; text-transform: uppercase; }
.pass-fields select, .pass-fields input {
  width: 100%;
  min-height: 48px;
  padding: 10px 12px;
  color: var(--ink);
  background: var(--paper);
  border: 1px solid var(--navy);
  border-radius: 0;
}
.pass-fields select {
  height: 48px;
  padding-right: 38px;
  -webkit-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m5 7 5 5 5-5' fill='none' stroke='%2306182d' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 18px 18px;
}
.appointment-field { display: grid; grid-template-columns: 1fr 88px; align-items: center; min-height: 48px; background: var(--paper); border: 1px solid var(--navy); }
.appointment-field strong { padding: 10px 0 8px 12px; font-size: .78rem; line-height: 1; text-transform: none; }
.appointment-field input { border: 0; border-left: 1px solid var(--navy); }

.weather-inline { min-height: 52px; display: grid; grid-template-columns: 34px 1fr; align-items: center; gap: 10px; margin-top: 14px; padding: 8px 10px; border: 1px solid rgba(6,24,45,.55); }
.weather-icon { width: 34px; height: 34px; display: grid; place-items: center; color: var(--navy); background: var(--paper); border: 1px solid var(--navy); }
.weather-icon svg { width: 20px; height: 20px; }
.weather-inline p { margin: 0; font-size: .72rem; }
.primary-action { width: 100%; min-height: 56px; margin-top: 16px; padding: 12px 18px; color: white; background: var(--navy); border: 0; cursor: pointer; font-weight: 700; }
.primary-action { display: flex; align-items: center; justify-content: space-between; }
.primary-action:hover { background: var(--navy-soft); }
.primary-action[aria-busy="true"] { cursor: progress; opacity: .72; }
.pass-note { margin: 10px 0 0; font-size: .72rem; }
.planner-guest-facility { margin-top: 14px; padding-top: 12px; border-top: 1px solid rgba(6,24,45,.5); font-size: .76rem; }
.planner-guest-facility strong { display: block; margin-bottom: 4px; }
.planner-guest-facility p { margin: 0; }

.route-map { min-width: 0; min-height: 610px; display: grid; grid-template-rows: minmax(480px, 1fr) auto; background: #dce4dc; }
#breda-route-map { position: relative; z-index: 1; min-height: 480px; color: var(--navy); background: #dce4dc; }
.map-fallback { position: absolute; inset: 0; background: var(--navy); }
.map-fallback img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.88) contrast(1.03); }
.route-map.is-ready .map-fallback { display: none; }
.map-caption { z-index: 2; display: grid; grid-template-columns: 1fr auto auto; gap: 24px; align-items: center; padding: 17px 20px; color: white; background: var(--navy); }
.map-caption span, .map-caption strong { display: block; }.map-caption > div:first-child > span { color: var(--yellow); font-size: .66rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }.map-caption strong { margin-top: 3px; font-size: 1.08rem; }
.map-caption > a { min-height: 44px; display: inline-flex; align-items: center; padding: 9px 11px; border: 1px solid rgba(255,255,255,.6); font-size: .72rem; font-weight: 800; text-decoration: none; white-space: nowrap; }
.map-key { display: flex; flex-wrap: wrap; gap: 8px 14px; font-size: .68rem; }.map-key > span { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.map-dot { width: 11px; height: 11px; display: inline-block; border: 2px solid white; border-radius: 50%; }.map-dot-place { background: var(--orange); }.map-dot-haven { background: var(--yellow); }
.route-map .leaflet-container { width: 100%; height: 100%; min-height: 480px; font-family: inherit; background: #dce4dc; }
.route-map .leaflet-control-zoom a { width: 44px; height: 44px; line-height: 44px; color: var(--navy); background: var(--paper); }
.route-map .leaflet-control-attribution { padding: 3px 6px; color: var(--navy); background: rgba(255,254,250,.9); font-size: 10px; }
.route-map .leaflet-control-attribution a { min-height: 44px; display: inline-flex; align-items: center; }
.route-map .leaflet-popup-content-wrapper, .route-map .leaflet-popup-tip { color: var(--navy); background: var(--paper); border-radius: 0; }.route-map .leaflet-popup-content { margin: 14px 16px; line-height: 1.35; }.route-map .leaflet-popup-content strong { display: block; font-size: 1rem; }.route-map .leaflet-popup-content span { display: block; margin-top: 4px; color: var(--muted); font-size: .75rem; }
.route-map .leaflet-popup-content { min-width: min(230px, calc(100vw - 92px)); padding-top: 20px; }
.map-popup-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 12px; }.map-popup-actions a { min-width: 46px; min-height: 46px; display: inline-flex; align-items: center; justify-content: center; padding: 7px 9px; border: 1px solid var(--navy); font-size: .7rem; font-weight: 800; text-align: center; text-decoration: none; }
.leaflet-container a.leaflet-popup-close-button { width: 46px; height: 46px; display: grid; place-items: center; padding: 0; font-size: 24px; }
.breda-map-marker { width: 44px; height: 44px; display: grid; place-items: center; color: white; background: var(--orange); border: 3px solid white; border-radius: 50%; box-shadow: 0 2px 0 rgba(6,24,45,.35); font-size: .78rem; font-weight: 800; }
.breda-map-marker-haven { color: var(--navy); background: var(--yellow); border-color: var(--navy); }
.route-map .leaflet-marker-icon:focus-visible { outline: 3px solid var(--focus); outline-offset: 4px; }

.results-rail { position: relative; color: white; background: var(--navy); padding: 32px max(20px, calc((100vw - min(1480px, calc(100vw - 40px))) / 2)) 48px; }
.rail-heading { width: var(--content); margin: auto auto 26px; display: flex; justify-content: space-between; align-items: end; gap: 28px; }
.rail-heading h2 { margin: 0 0 4px; font-size: clamp(1.7rem, 2.5vw, 2.35rem); line-height: 1; }
.rail-heading p { max-width: 68ch; margin: 0; color: #c8d1da; }
.rail-heading button { flex: 0 0 auto; min-height: 44px; padding: 9px 0; color: var(--yellow); background: transparent; border: 0; border-bottom: 1px solid currentColor; cursor: pointer; }
.brass-rail { position: absolute; z-index: 1; left: 0; right: 0; top: 142px; height: 10px; background: var(--brass); border-top: 2px solid var(--brass-light); border-bottom: 2px solid #704b0f; }
.brass-rail i { position: absolute; top: -8px; width: 22px; height: 25px; background: var(--brass); border: 2px solid #704b0f; }
.brass-rail i:nth-child(1) { left: 18%; }.brass-rail i:nth-child(2) { left: 50%; }.brass-rail i:nth-child(3) { left: 82%; }
.ticket-grid { position: relative; z-index: 2; width: var(--content); margin: auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(14px, 2vw, 28px); }
.result-ticket { color: var(--ink); background: var(--paper); clip-path: polygon(0 0, 48% 0, 50% 9px, 52% 0, 100% 0, 100% calc(100% - 11px), 98% 100%, 2% 100%, 0 calc(100% - 11px)); }
.result-ticket > header { min-height: 48px; display: flex; align-items: center; justify-content: space-between; padding: 10px 18px; color: white; background: var(--green); font-size: .78rem; font-weight: 700; text-transform: uppercase; }
.result-ticket.status-tight > header { color: var(--navy); background: var(--yellow); }
.result-ticket.status-not-fit > header, .result-ticket.status-closed > header { background: var(--orange); }
.result-ticket > header span { display: flex; align-items: center; gap: 6px; }
.result-ticket > header svg { width: 18px; height: 18px; }
.ticket-body { padding: 20px; }
.ticket-reason { margin: 0 0 4px; color: var(--muted); font-size: .7rem; letter-spacing: .07em; text-transform: uppercase; }
.ticket-body h3 { margin: 0; font-size: clamp(1.55rem, 2vw, 2rem); line-height: 1; }
.ticket-body > p:not(.ticket-reason, .source-check) { margin: 7px 0 16px; color: var(--muted); }
.ticket-body dl { margin: 0; display: grid; grid-template-columns: 1fr 1fr; border-top: 1px dotted var(--line); border-bottom: 1px dotted var(--line); }
.ticket-body dl div { padding: 12px 10px 10px 0; }
.ticket-body dl div + div { padding-left: 14px; border-left: 1px dotted var(--line); }
.ticket-body dt { color: var(--muted); font-size: .65rem; line-height: 1; text-transform: uppercase; }
.ticket-body dd { margin: 5px 0 0; font-size: 1.1rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.source-check { margin: 12px 0; color: var(--muted); font-size: .68rem; }
.source-warning { margin: -4px 0 12px; padding: 8px 0; border-top: 1px dotted var(--line); border-bottom: 1px dotted var(--line); font-size: .72rem; }
.source-warning summary { cursor: pointer; font-weight: 700; }.source-warning p { margin: 6px 0 0; color: var(--muted); }
.ticket-actions { display: flex; justify-content: space-between; gap: 12px; font-size: .76rem; font-weight: 700; }.ticket-actions a { min-height: 44px; display: inline-flex; align-items: center; padding: 8px 0; }
.method-detail { width: var(--content); margin: 22px auto 0; padding: 18px 20px; color: var(--navy); background: var(--yellow); }
.method-detail p { max-width: 75ch; margin: 5px 0 0; }

.editorial-intro { width: var(--content); margin: 34px auto 0; padding: clamp(28px,5vw,64px); color: white; background: var(--navy); }
.editorial-intro h1 { max-width: 27ch; margin: 10px 0 18px; font-size: clamp(2rem,4.3vw,4.4rem); line-height: .98; }
.editorial-intro > p:not(.tool-kicker,.direct-answer) { max-width: 68ch; color: #d5dde5; font-size: clamp(1rem,1.4vw,1.18rem); line-height: 1.7; }
.editorial-intro .direct-answer { max-width: 72ch; margin: 28px 0 0; padding: 18px 20px; color: var(--navy); background: var(--yellow); }
.editorial-grid { width: var(--content); display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; margin: 1px auto 0; background: var(--navy); border: 1px solid var(--navy); }
.editorial-grid article { min-width: 0; padding: clamp(24px,4vw,44px); background: #f5f0e5; }
.editorial-grid article > span { color: var(--vermilion); font-size: .76rem; font-weight: 900; letter-spacing: .08em; }
.editorial-grid h2 { max-width: 24ch; margin: 10px 0 12px; font-size: clamp(1.35rem,2vw,2rem); line-height: 1.08; }
.editorial-grid p { max-width: 58ch; margin: 0; line-height: 1.7; }
.editorial-correction { width: var(--content); display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 28px; margin: 28px auto 0; padding: clamp(26px,4vw,44px); color: white; background: #173b34; }
.editorial-correction h2 { max-width: 28ch; margin: 8px 0 12px; font-size: clamp(1.5rem,2.6vw,2.6rem); }
.editorial-correction p { max-width: 68ch; margin: 0; line-height: 1.65; }
.editorial-correction > a { min-height: 48px; display: inline-flex; align-items: center; padding: 13px 20px; color: var(--navy); background: var(--yellow); font-weight: 900; text-decoration: none; white-space: nowrap; }
.editorial-owner { width: var(--content); display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 22px; margin: 1px auto 0; padding: 22px 26px; border: 1px solid var(--navy); }
.editorial-owner p { margin: 0; line-height: 1.55; }
.editorial-owner a { color: var(--navy); font-weight: 850; }

@media (max-width: 760px) {
  .editorial-grid { grid-template-columns: 1fr; }
  .editorial-correction, .editorial-owner { grid-template-columns: 1fr; align-items: start; }
  .editorial-correction > a { justify-content: center; white-space: normal; }
}
.empty-result { grid-column: 1 / -1; padding: 28px; color: var(--navy); background: var(--paper); }

.situation-strip { display: grid; grid-template-columns: repeat(4, 1fr); border-bottom: 1px solid var(--line); background: var(--paper); }
.situation-strip > div { min-height: 100px; display: grid; grid-template-columns: 38px 1fr; align-items: center; gap: 14px; padding: 20px clamp(18px, 3vw, 44px); border-right: 1px solid var(--line); }
.situation-strip > div:last-child { border-right: 0; }
.situation-strip svg { width: 34px; height: 34px; color: var(--navy); }
.situation-strip strong, .situation-strip small { display: block; }
.situation-strip small { color: var(--muted); }

.discovery-stage { width: var(--content); min-height: 590px; margin: 18px auto 0; display: grid; grid-template-columns: minmax(360px,.9fr) minmax(0,1.5fr); color: white; background: var(--navy); border: 4px solid var(--navy); }
.discovery-stage > div { align-self: center; padding: clamp(34px,5vw,76px); }.discovery-stage > div > p { max-width: 56ch; color: #c8d1da; }
.direct-answer { margin: 30px 0; padding: 18px 0; border-top: 1px solid rgba(255,255,255,.25); border-bottom: 1px solid rgba(255,255,255,.25); }.direct-answer strong { display: block; margin-bottom: 6px; color: var(--yellow); }
.discovery-actions { display: flex; flex-wrap: wrap; gap: 10px; }.discovery-actions a { min-height: 46px; display: inline-flex; align-items: center; padding: 10px 15px; color: var(--navy); background: var(--yellow); font-weight: 700; text-decoration: none; }.discovery-actions a + a { color: white; background: transparent; border: 1px solid white; }
.discovery-stage figure { position: relative; min-height: 590px; margin: 0; overflow: hidden; }.discovery-stage figure img { width: 100%; height: 100%; object-fit: cover; }.discovery-stage figcaption { position: absolute; right: 0; bottom: 0; padding: 18px 24px; color: white; background: var(--navy); }.discovery-stage figcaption strong, .discovery-stage figcaption span { display: block; }

.city-navigator { width: var(--content); margin: 88px auto 110px; }
.city-navigator-head { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr); gap: 46px; align-items: end; margin-bottom: 24px; }
.city-navigator-head h2 { max-width: 28ch; margin: 0 0 10px; font-size: clamp(1.85rem, 2.8vw, 2.65rem); line-height: 1.02; letter-spacing: -.025em; }
.city-navigator-head > div:first-child > p:last-child { max-width: 68ch; margin: 0; color: var(--muted); }
.city-weather { min-height: 92px; display: grid; grid-template-columns: 44px 1fr; gap: 14px; align-items: center; padding: 18px 20px; color: white; background: var(--green); }
.city-weather > span { width: 44px; height: 44px; display: grid; place-items: center; color: var(--navy); background: var(--yellow); }
.city-weather svg { width: 24px; height: 24px; }.city-weather p { margin: 0; font-size: .82rem; }
.city-map-stage { display: grid; grid-template-columns: minmax(0, 1.75fr) minmax(260px, .55fr); min-height: 620px; border: 3px solid var(--navy); background: var(--navy); }
.city-map-frame { min-width: 0; display: grid; grid-template-rows: minmax(520px, 1fr) auto; background: #dce4dc; }
#breda-city-map { position: relative; z-index: 1; min-height: 520px; color: var(--navy); background: #dce4dc; }
.city-map-fallback { position: absolute; inset: 0; display: grid; align-items: end; overflow: hidden; color: white; background: var(--navy); }
.city-map-fallback img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: saturate(.8) contrast(1.06) brightness(.78); }
.city-map-fallback p { position: relative; z-index: 1; max-width: 46ch; margin: 0; padding: 18px 20px; background: rgba(6,24,45,.92); }
.city-map-frame.is-ready .city-map-fallback { display: none; }
.city-map-caption { z-index: 2; min-height: 92px; display: flex; justify-content: space-between; align-items: center; gap: 18px; padding: 14px 18px; color: white; background: var(--navy); }
.city-map-caption p { margin: 0; }.city-map-caption strong, .city-map-caption span { display: block; }.city-map-caption span { margin-top: 3px; color: #c8d1da; font-size: .7rem; }
.city-map-caption a { min-height: 44px; display: inline-flex; align-items: center; flex: 0 0 auto; padding: 9px 11px; border: 1px solid rgba(255,255,255,.6); font-size: .72rem; font-weight: 800; text-decoration: none; }
.city-map-legend { display: flex; flex-wrap: wrap; gap: 7px 13px; margin-top: 10px; }.city-map-legend span { display: inline-flex; align-items: center; gap: 5px; margin: 0; color: #dbe3e9; font-size: .64rem; }.city-map-legend i { width: 12px; height: 12px; display: inline-block; background: var(--orange); border: 1px solid white; border-radius: 50%; }.city-map-legend .legend-site { border-radius: 2px; }.city-map-legend .legend-departure { background: var(--green); border-radius: 2px; transform: rotate(45deg); }.city-map-legend .legend-viewpoint { color: var(--navy); background: var(--yellow); border-color: var(--navy); }.city-map-legend .legend-context { background: var(--yellow); border: 2px dashed var(--navy); border-radius: 2px; }
.city-map-aside { display: grid; align-content: end; padding: clamp(24px, 3vw, 42px); color: white; background: var(--navy); border-left: 1px solid rgba(255,255,255,.22); }
.city-map-aside .tool-label { color: var(--yellow); }.city-map-aside h3 { max-width: 12ch; margin: 4px 0 14px; font-size: clamp(1.65rem, 2.4vw, 2.35rem); line-height: .98; }
.city-map-aside > p:not(.tool-label) { color: #c8d1da; }.city-map-aside dl { margin: 24px 0 0; border-top: 1px solid rgba(255,255,255,.32); }
.city-map-aside dl div { display: flex; justify-content: space-between; gap: 12px; padding: 11px 0; border-bottom: 1px solid rgba(255,255,255,.22); }.city-map-aside dt { color: #c8d1da; }.city-map-aside dd { margin: 0; font-weight: 800; text-align: right; }
.city-map-scope { display: grid; gap: 8px; margin-top: 20px; }.city-map-scope button { min-height: 46px; padding: 9px 12px; color: var(--navy); background: var(--yellow); border: 1px solid var(--yellow); cursor: pointer; font-size: .72rem; font-weight: 850; }
.city-map-frame .leaflet-container { width: 100%; height: 100%; min-height: 520px; font-family: inherit; background: #dce4dc; }
.city-map-frame .leaflet-control-zoom a { width: 44px; height: 44px; line-height: 44px; color: var(--navy); background: var(--paper); }
.city-map-frame .leaflet-control-attribution { padding: 3px 6px; color: var(--navy); background: rgba(255,254,250,.92); font-size: 10px; }.city-map-frame .leaflet-control-attribution a { min-height: 44px; display: inline-flex; align-items: center; }
.city-map-frame .leaflet-popup-content-wrapper, .city-map-frame .leaflet-popup-tip { color: var(--navy); background: var(--paper); border-radius: 0; }.city-map-frame .leaflet-popup-content { min-width: min(210px, calc(100vw - 150px)); margin: 14px 16px; padding-top: 20px; line-height: 1.35; }.city-map-frame .leaflet-popup-content strong { display: block; font-size: 1rem; }.city-map-frame .leaflet-popup-content span { display: block; margin-top: 5px; color: var(--muted); font-size: .75rem; }
.city-map-marker { width: 44px; height: 44px; display: grid; place-items: center; color: white; background: var(--orange); border: 3px solid white; border-radius: 50%; box-shadow: 0 2px 0 rgba(6,24,45,.35); font-size: .76rem; font-style: normal; font-weight: 850; }.city-map-marker i { font-style: normal; }
.city-map-marker-site { border-radius: 8px; }.city-map-marker-viewpoint, .city-map-marker-context, .city-map-marker-area-centroid { color: var(--navy); background: var(--yellow); border-color: var(--navy); }.city-map-marker-area-centroid { border-radius: 8px; }.city-map-marker-context { border-style: dashed; border-radius: 8px; }
.city-map-marker-departure { background: var(--green); border-radius: 5px; transform: rotate(45deg); }.city-map-marker-departure i { transform: rotate(-45deg); }.city-map-frame .leaflet-marker-icon:focus-visible { outline: 3px solid var(--focus); outline-offset: 4px; }
.mapped-place-ledger { margin-top: 38px; border-top: 3px solid var(--navy); }
.mapped-place-ledger article { display: grid; grid-template-columns: 58px minmax(250px, .95fr) minmax(270px, .8fr) auto; gap: 24px; align-items: start; padding: 24px 0; border-bottom: 1px solid var(--line); }
.mapped-place-number { color: var(--orange); font-size: 1.45rem; font-weight: 850; }.mapped-place-ledger h3 { margin: 2px 0 5px; font-size: 1.5rem; line-height: 1.05; }.mapped-place-ledger p { margin: 0; }.mapped-place-ledger > article > div > p:last-child { max-width: 62ch; color: var(--muted); }
.mapped-place-ledger dl { display: grid; grid-template-columns: .8fr 1.2fr; margin: 0; }.mapped-place-ledger dl div { padding: 0 14px; border-left: 1px solid var(--line); }.mapped-place-ledger dt { font-size: .65rem; font-weight: 800; text-transform: uppercase; }.mapped-place-ledger dd { margin: 5px 0 0; color: var(--muted); font-size: .82rem; }
.mapped-place-ledger > article > a { min-height: 44px; display: inline-flex; align-items: center; padding: 9px 11px; border: 1px solid var(--navy); font-size: .72rem; font-weight: 800; text-decoration: none; }

.city-guide, .day-routes, .hospitality-directory, .beer-guide, .local-highlights, .source-book { width: var(--content); margin: 100px auto; }
.city-guide > header, .hospitality-directory > header, .source-book > header { display: flex; justify-content: space-between; align-items: end; gap: 30px; margin-bottom: 34px; }
.city-guide h2, .day-routes h2, .hospitality-directory h2, .source-book h2, .boat-band h2 { max-width: 22ch; margin: 0 0 9px; font-size: clamp(1.8rem, 2.7vw, 2.6rem); line-height: 1; letter-spacing: -.02em; }
.city-guide header p, .day-routes header p, .hospitality-directory header p, .source-book header p { max-width: 68ch; margin: 0; color: var(--muted); }
.guide-mosaic { display: grid; grid-template-columns: 1.1fr .9fr 1.2fr; grid-template-rows: 430px 330px; gap: 14px; }
.guide-place { position: relative; overflow: hidden; color: white; background: var(--navy); }
.guide-place img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s cubic-bezier(.22,1,.36,1); }
.guide-place:hover img { transform: scale(1.025); }
.guide-place::after { position: absolute; inset: 35% 0 0; content: ""; background: rgba(6,24,45,.74); }
.guide-place > div { position: absolute; z-index: 2; left: 0; right: 0; bottom: 0; padding: 22px; }
.guide-place span { color: var(--yellow); font-size: .7rem; font-weight: 700; text-transform: uppercase; }
.guide-place h3 { margin: 5px 0; font-size: 1.75rem; line-height: 1; }
.guide-place p { max-width: 50ch; margin: 0 0 8px; }
.guide-place-no-image { background: var(--green); }.guide-place-no-image::after { inset: 45% 0 0; background: var(--navy); }.place-art { position: absolute; inset: 0; display: grid; place-content: start center; padding-top: 16px; color: var(--yellow); transform: rotate(-4deg); }.place-art span { font-size: clamp(5rem,12vw,8.5rem); line-height: .72; font-weight: 800; }.place-art i { margin-top: 5px; font-size: .72rem; font-style: normal; letter-spacing: .14em; text-transform: uppercase; }
.guide-place.place-1 { grid-row: 1 / 3; }.guide-place.place-2 { grid-column: 2 / 4; }.guide-place.place-4 { grid-column: 3; }

.day-routes > header { display: grid; grid-template-columns: .7fr 1fr; gap: 40px; align-items: end; margin-bottom: 34px; }
.day-route-list { border-top: 3px solid var(--navy); }
.day-route-list article { display: grid; grid-template-columns: 150px 1fr minmax(240px, .65fr); gap: 34px; padding: 30px 0; border-bottom: 1px solid var(--line); }
.route-meta strong { display: block; font-size: 2rem; }.route-meta span { color: var(--muted); }
.day-route-list h3 { margin: 0; font-size: 1.7rem; }.day-route-list p { margin: 6px 0 0; }
.day-route-list ol { margin: 18px 0 0; padding: 0; list-style: none; }
.route-total { margin-top: 14px !important; padding-top: 10px; border-top: 1px solid var(--navy); font-size: .8rem; font-weight: 700; }
.day-route-list li { display: flex; justify-content: space-between; gap: 20px; padding: 7px 0; border-top: 1px dotted var(--line); text-transform: capitalize; }
.route-condition { align-self: start; padding: 16px; color: white; background: var(--navy); }

.hospitality-directory > header > a { min-height: 44px; flex: 0 0 auto; display: inline-flex; align-items: center; padding: 10px 12px; border: 1px solid var(--navy); font-size: .75rem; font-weight: 800; text-decoration: none; }
.venue-table { border-top: 3px solid var(--navy); }
.venue-table article { display: grid; grid-template-columns: 1.1fr 1fr .8fr; gap: 24px; align-items: center; min-height: 92px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.venue-table h3 { margin: 0; font-size: 1.4rem; }.venue-table p { margin: 3px 0 0; color: var(--muted); }
.venue-proof small { display: block; margin-top: 5px; color: var(--muted); }.venue-proof details { margin-top: 7px; font-size: .75rem; }.venue-proof summary { cursor: pointer; font-weight: 700; }.venue-proof details p { color: var(--ink); }
.venue-table article > div:last-child { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.venue-table article > div:last-child a { min-height: 44px; display: inline-flex; align-items: center; padding: 8px 0; }
.confidence { padding: 5px 7px; font-size: .65rem; text-transform: uppercase; background: #d9e8de; }.confidence-medium { background: #f7e6a8; }

.beer-guide > header { display: grid; grid-template-columns: .8fr 1.2fr; gap: 38px; align-items: end; margin-bottom: 28px; }
.beer-guide > header h2 { max-width: 18ch; margin: 0; font-size: clamp(1.9rem, 3vw, 2.8rem); line-height: 1; }
.beer-guide > header > p { max-width: 65ch; margin: 0; color: var(--muted); }
.beer-choice-list { border-top: 3px solid var(--navy); }
.beer-choice-list article { display: grid; grid-template-columns: 52px minmax(220px,.75fr) 1.25fr auto; gap: 24px; align-items: start; padding: 24px 0; border-bottom: 1px solid var(--line); }
.beer-number { color: var(--orange); font-size: 1.5rem; font-weight: 800; }
.beer-choice-list h3 { margin: 0; font-size: 1.5rem; }
.beer-choice-list p { margin: 5px 0 0; }
.beer-choice-list article > div:nth-child(2) > p, .beer-choice-list small { color: var(--muted); }
.beer-choice-list small { display: block; margin-top: 8px; }
.beer-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.beer-tags span { padding: 5px 8px; color: var(--navy); background: #e8e4d9; font-size: .67rem; font-weight: 800; text-transform: uppercase; }
.beer-choice-list a { min-height: 44px; display: inline-flex; align-items: center; padding: 9px 12px; border: 1px solid var(--navy); text-decoration: none; font-size: .76rem; font-weight: 800; }

.local-highlights > header { display: grid; grid-template-columns: .55fr .9fr 1.1fr; gap: 28px; align-items: end; margin-bottom: 28px; }
.local-highlights > header h2 { max-width: 18ch; margin: 0; font-size: clamp(1.9rem, 3vw, 2.8rem); line-height: 1; }
.local-highlights > header p:last-child { max-width: 54ch; margin: 0; color: var(--muted); }
.local-highlights > div { display: grid; grid-template-columns: 1.15fr .9fr .9fr; gap: 14px; }
.local-highlight { min-width: 0; display: flex; flex-direction: column; min-height: 390px; padding: clamp(24px, 3vw, 38px); color: white; background: var(--navy); }
.local-highlight:nth-child(2) { color: var(--navy); background: var(--yellow); }
.local-highlight:nth-child(3) { background: var(--green); }
.local-highlight h3 { margin: 4px 0 0; font-size: clamp(1.7rem, 2.5vw, 2.35rem); line-height: 1; }
.local-highlight > span { margin-top: 8px; color: var(--yellow); font-size: .78rem; font-weight: 800; text-transform: uppercase; }
.local-highlight:nth-child(2) > span { color: var(--green); }
.local-highlight > p { max-width: 48ch; margin: 22px 0 0; }
.local-highlight > small { display: block; margin-top: 14px; opacity: .78; }
.local-highlight > a { align-self: flex-start; min-height: 46px; display: inline-flex; align-items: center; gap: 22px; margin-top: auto; padding: 11px 15px; color: var(--navy); background: var(--yellow); text-decoration: none; font-weight: 800; }
.local-highlight:nth-child(2) > a { color: white; background: var(--navy); }
.local-offer { margin: 24px 0; padding: 18px; color: var(--navy); background: var(--paper); border-top: 1px solid var(--orange); }
.local-offer strong { display: block; font-size: 1.25rem; }
.local-offer p { margin: 7px 0; }
.local-offer small { display: block; color: var(--muted); }

.huiskamer-perk { width: var(--content); margin: 56px auto 96px; display: grid; grid-template-columns: 1.35fr .5fr auto; gap: 32px; align-items: center; padding: 28px 32px; color: white; background: var(--green); border-top: 4px solid var(--yellow); }
.huiskamer-perk h2 { margin: 0; font-size: clamp(1.55rem, 2.5vw, 2.3rem); line-height: 1; }
.huiskamer-perk p { max-width: 62ch; margin: 8px 0 0; }
.huiskamer-perk > strong { color: var(--yellow); font-size: clamp(1.4rem, 2vw, 2rem); line-height: 1; }
.huiskamer-perk-actions { display: grid; gap: 8px; }
.huiskamer-perk-actions a { min-height: 48px; display: inline-flex; align-items: center; justify-content: space-between; gap: 24px; padding: 12px 16px; color: var(--navy); background: var(--yellow); text-decoration: none; font-weight: 800; }
.huiskamer-perk-actions a + a { color: white; background: transparent; border: 1px solid rgba(255,255,255,.65); }

.build-note { width: var(--content); margin: 0 auto 100px; display: grid; grid-template-columns: .65fr 1.35fr; gap: 34px; padding: 28px 32px; color: var(--navy); background: var(--yellow); }
.build-note strong { font-size: 1.35rem; }.build-note p { max-width: 75ch; margin: 0; }
.boat-band { display: grid; grid-template-columns: minmax(260px, .7fr) 1.3fr; color: white; background: var(--navy); }
.boat-band > div:first-child { max-height: 560px; overflow: hidden; }
.boat-band img { width: 100%; height: 100%; object-fit: cover; }
.boat-index { min-height: 470px; display: grid; place-content: center; padding: 40px; color: var(--yellow); background: var(--green); }.boat-index span { font-size: clamp(7rem,18vw,16rem); line-height: .68; font-weight: 800; }.boat-index strong, .boat-index i { display: block; }.boat-index strong { margin-top: 22px; font-size: 1.8rem; text-transform: uppercase; }.boat-index i { font-style: normal; color: white; }
.boat-band > div:last-child { align-self: center; max-width: 760px; padding: clamp(40px, 7vw, 110px); }
.boat-band p { max-width: 62ch; color: #c8d1da; }
.boat-band a { display: inline-flex; justify-content: space-between; gap: 40px; min-width: 260px; margin-top: 14px; padding: 14px 18px; color: var(--navy); background: var(--yellow); font-weight: 700; text-decoration: none; }
.boat-band small { display: block; max-width: 65ch; margin-top: 12px; color: #aebac6; }

.tool-stage {
  width: var(--content);
  min-height: 650px;
  margin: 18px auto 0;
  display: grid;
  grid-template-columns: minmax(400px, .9fr) minmax(0, 1.35fr);
  border: 4px solid var(--navy);
  background: var(--navy);
}
.tool-intro { align-self: stretch; padding: clamp(32px, 4.5vw, 68px); background: var(--yellow); }
.tool-stage-rain .tool-intro { color: white; background: var(--navy); }
.tool-stage-rain .tool-intro > p:not(.tool-kicker, .direct-answer) { color: #c8d1da; }
.tool-kicker, .tool-label { margin: 0 0 8px; font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.tool-kicker { color: var(--orange); }
.tool-stage-family .tool-kicker { color: var(--navy); }
.tool-intro h1, .atlas-head h1 { max-width: 17ch; }
.tool-intro > p:not(.tool-kicker, .direct-answer) { max-width: 54ch; }
.tool-controls { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 24px; padding-top: 22px; border-top: 1px solid currentColor; }
.tool-controls label { display: grid; gap: 5px; font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.tool-controls select, .tool-controls input { width: 100%; height: 48px; padding: 8px 11px; color: var(--ink); background: var(--paper); border: 1px solid var(--navy); border-radius: 0; }
.tool-controls select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m5 7 5 5 5-5' fill='none' stroke='%2306182d' stroke-width='2'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 10px center; background-size: 18px; }
.tool-controls button { grid-column: 1 / -1; min-height: 54px; display: flex; justify-content: space-between; align-items: center; padding: 12px 16px; color: white; background: var(--orange); border: 0; cursor: pointer; font-weight: 800; }
.tool-stage-family .tool-controls button { background: var(--navy); }
.age-choice { grid-column: 1 / -1; margin: 0; padding: 0; border: 0; }.age-choice legend { margin-bottom: 6px; font-size: .68rem; font-weight: 800; text-transform: uppercase; }.age-choice label { display: inline-block; margin-right: -5px; }.age-choice input { position: absolute; width: 1px; height: 1px; min-height: 0; opacity: 0; pointer-events: none; }.age-choice span { min-width: 64px; min-height: 44px; display: inline-grid; place-items: center; padding: 7px 10px; border: 1px solid var(--navy); cursor: pointer; font-weight: 800; }.age-choice input:checked + span { color: white; background: var(--navy); }.age-choice input:focus-visible + span { outline: 3px solid var(--focus); outline-offset: 3px; }
.family-constraints { grid-column: 1 / -1; padding: 10px 0; border-top: 1px solid rgba(6,24,45,.5); border-bottom: 1px solid rgba(6,24,45,.5); }.family-constraints summary { cursor: pointer; font-size: .72rem; font-weight: 800; text-transform: uppercase; }.family-constraints > div { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 12px; }
.family-counts { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(6, 1fr); gap: 7px; margin: 0; padding: 0; border: 0; }.family-counts legend { grid-column: 1 / -1; margin-bottom: 2px; font-size: .68rem; font-weight: 800; text-transform: uppercase; }.family-counts label { text-align: center; }.family-counts input { text-align: center; }
.tool-panel { min-width: 0; padding: clamp(24px, 3vw, 46px); color: white; background: var(--green); }
.tool-stage-today .tool-intro { color: white; background: var(--navy); }
.tool-stage-today .tool-intro > p:not(.tool-kicker, .direct-answer) { color: #c8d1da; }
.tool-stage-today .tool-controls { border-color: rgba(255,255,255,.55); }
.tool-stage-today .tool-panel { color: var(--navy); background: var(--yellow); }
.today-board > header { display: grid; gap: 4px; margin-bottom: 18px; padding-bottom: 18px; border-bottom: 1px solid rgba(6,24,45,.45); }
.today-board > header span { color: var(--orange); font-size: .7rem; font-weight: 800; text-transform: uppercase; }
.today-board > header h2 { max-width: 34ch; margin: 0; font-size: clamp(1.4rem, 2.3vw, 2rem); line-height: 1.05; }
.today-option { display: grid; grid-template-columns: 44px minmax(190px,.9fr) 1fr minmax(180px,.85fr); gap: 18px; align-items: start; padding: 22px 0; border-bottom: 1px solid rgba(6,24,45,.35); }
.today-rank { color: var(--orange); font-size: 1.5rem; font-weight: 800; }
.today-option h3 { margin: 0; font-size: 1.45rem; line-height: 1; }
.today-option p { margin: 7px 0; }
.today-option dl { display: grid; gap: 6px; margin: 0; }
.today-option dl div { display: flex; justify-content: space-between; gap: 12px; padding-bottom: 6px; border-bottom: 1px dotted rgba(6,24,45,.4); }
.today-option dt { font-size: .62rem; text-transform: uppercase; }
.today-option dd { margin: 0; font-size: .76rem; font-weight: 800; }
.today-option a { min-height: 44px; display: inline-flex; align-items: center; margin-top: 8px; font-size: .76rem; font-weight: 800; }
.today-controls { align-content: start; }
.today-controls .today-moment-fields { grid-column: 1 / -1; padding: 0; border-top: 1px solid rgba(255,255,255,.55); border-bottom: 1px solid rgba(255,255,255,.55); }
.today-moment-fields summary { min-height: 48px; display: flex; align-items: center; cursor: pointer; font-size: .78rem; font-weight: 800; text-transform: uppercase; }
.today-moment-fields > div { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 2px 0 14px; }
.today-weather { grid-column: 1 / -1; min-height: 66px; display: grid; grid-template-columns: 36px 1fr; gap: 12px; align-items: center; padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,.55); }
.today-weather span { width: 36px; height: 36px; display: grid; place-items: center; color: var(--navy); background: var(--yellow); }
.today-weather svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.today-weather p, .today-auto-note { margin: 0; text-transform: none; }
.today-weather p { font-size: .9rem; line-height: 1.35; }
.today-auto-note { grid-column: 1 / -1; color: #c8d1da; font-size: .84rem; line-height: 1.35; }
.today-option { grid-template-columns: minmax(132px,.45fr) minmax(190px,.8fr) 1fr minmax(190px,.85fr); }
.today-rank { font-size: .76rem; line-height: 1.25; text-transform: uppercase; }
.today-option-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.today-option-actions a { min-height: 46px; margin-top: 4px; padding: 9px 11px; border: 1px solid var(--navy); font-size: 1rem; text-decoration: none; }
.today-option-actions a:first-child { color: white; background: var(--navy); }
.today-plan-tools { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 20px; }
.today-plan-tools button { min-height: 46px; padding: 9px 12px; color: white; background: var(--navy); border: 1px solid var(--navy); font-size: 1rem; font-weight: 800; cursor: pointer; }
.today-plan-tools button + button { color: var(--navy); background: transparent; }
.today-plan-tools span { flex-basis: 100%; min-height: 1.4em; font-size: .875rem; }
.today-journey { width: var(--content); margin: 28px auto 88px; display: grid; grid-template-columns: minmax(390px,.82fr) minmax(0,1.18fr); color: white; background: var(--navy); border: 4px solid var(--navy); }
.today-journey-copy { padding: clamp(26px,3.2vw,44px); }
.today-journey-copy h2 { max-width: 17ch; margin: 0; font-size: clamp(1.8rem,3vw,2.65rem); line-height: 1; }
.today-journey-copy > p:not(.tool-label) { max-width: 62ch; color: #c8d1da; }
.today-journey ol { margin: 28px 0 0; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.45); }
.today-journey li { position: relative; display: grid; grid-template-columns: 92px minmax(0,1fr); gap: 16px; padding: 18px 0; border-bottom: 1px solid rgba(255,255,255,.32); }
.today-journey li > strong { color: var(--yellow); font-size: .76rem; text-transform: uppercase; }
.today-journey li span, .today-journey li b, .today-journey li a { display: block; }
.today-journey li b { margin-bottom: 4px; font-size: 1.05rem; }
.today-journey li span { color: #d6dfe7; line-height: 1.42; }
.today-journey li a { width: fit-content; min-height: 44px; margin-top: 8px; color: var(--yellow); font-size: 1rem; font-weight: 800; }
.today-journey-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.today-journey-actions a { min-height: 46px; display: inline-flex; align-items: center; padding: 9px 12px; color: var(--navy); background: var(--yellow); font-size: 1rem; font-weight: 800; text-decoration: none; }
.today-journey-actions a + a { color: white; background: transparent; border: 1px solid rgba(255,255,255,.62); }
.today-map-frame { min-width: 0; display: grid; grid-template-rows: minmax(520px,1fr) auto; background: var(--paper); }
.today-map-frame #breda-today-map, .today-map-frame .leaflet-container { min-height: 520px; background: #dbe3dc; }
.today-map-fallback { height: 100%; min-height: 520px; display: grid; align-content: center; justify-items: center; padding: 28px; color: var(--navy); text-align: center; }
.today-map-fallback img { width: 100%; max-height: 360px; object-fit: cover; }
.today-map-fallback p { max-width: 42ch; }
.today-map-frame.is-ready .today-map-fallback { display: none; }
.today-map-caption { min-height: 64px; display: flex; flex-wrap: wrap; gap: 8px 18px; align-items: center; justify-content: space-between; padding: 12px 16px; color: var(--navy); background: var(--yellow); }
.today-map-caption span { font-size: .875rem; }
.today-map-marker-shell { background: transparent; border: 0; }
.today-map-marker { width: 44px; height: 44px; display: grid; place-items: center; color: white; background: var(--orange); border: 3px solid white; border-radius: 50%; font-size: .72rem; font-weight: 900; }
.today-map-marker-start { background: var(--green); }
.today-map-marker-alternative { color: var(--navy); background: var(--yellow); border-color: var(--navy); }
.today-map-marker-toilet { background: #2e78ff; }
.today-map-marker-food { background: var(--orange); font-size: .6rem; }
.today-map-marker-arrival { background: var(--navy); }
.today-map-frame .leaflet-control-zoom a { width: 44px; height: 44px; line-height: 44px; }
.today-guest-facility { width: var(--content); margin: 0 auto 88px; display: grid; grid-template-columns: minmax(210px,.55fr) minmax(0,1.25fr) auto; gap: 24px; align-items: center; padding: 24px 28px; color: white; background: var(--green); }
.today-guest-facility strong { color: var(--yellow); font-size: 1.2rem; }
.today-guest-facility p { max-width: 72ch; margin: 0; }
.today-guest-facility a { min-height: 46px; display: inline-flex; align-items: center; padding: 9px 12px; color: var(--navy); background: var(--yellow); font-size: 1rem; font-weight: 800; text-decoration: none; }
.today-directory { width: var(--content); margin: 88px auto; }
.today-directory > header { display: grid; grid-template-columns: .9fr 1.1fr; gap: 32px; align-items: end; margin-bottom: 26px; }
.today-directory > header h2 { max-width: 18ch; margin: 0; font-size: clamp(1.8rem, 3vw, 2.8rem); line-height: 1; }
.today-directory > header p { max-width: 64ch; margin: 0; color: var(--muted); }
.today-directory > div { border-top: 3px solid var(--navy); }
.today-directory article { display: grid; grid-template-columns: 48px minmax(220px,.75fr) 1fr auto; gap: 22px; align-items: center; padding: 22px 0; border-bottom: 1px solid var(--line); }
.today-directory article > span { color: var(--orange); font-size: 1.35rem; font-weight: 800; }
.today-directory h3, .today-directory p { margin: 0; }
.today-directory h3 { font-size: 1.45rem; line-height: 1.05; }
.today-directory article > div p, .today-directory article > p { margin-top: 6px; color: var(--muted); }
.today-directory article > a { min-height: 44px; display: inline-flex; align-items: center; padding: 10px 12px; border: 1px solid var(--navy); font-size: .74rem; font-weight: 800; text-decoration: none; }
.today-agenda { width: var(--content); margin: 88px auto; display: grid; grid-template-columns: 1fr auto; gap: 40px; align-items: center; padding: 36px 40px; color: white; background: var(--green); }
.today-agenda h2 { margin: 0; font-size: clamp(1.8rem, 3vw, 2.8rem); line-height: 1; }
.today-agenda p { max-width: 68ch; }
.today-agenda > a { min-height: 48px; display: inline-flex; align-items: center; padding: 12px 16px; color: var(--navy); background: var(--yellow); text-decoration: none; font-weight: 800; }
.event-agenda { width: var(--content); margin: 88px auto; padding: clamp(28px, 4vw, 52px); color: var(--navy); background: #f2eee5; border: 1px solid rgba(6,24,45,.28); }
.event-agenda > header { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 28px; align-items: end; margin-bottom: 30px; }
.event-agenda > header h2 { max-width: 22ch; margin: 3px 0 10px; font-size: clamp(1.75rem, 3vw, 2.65rem); line-height: 1.02; }
.event-agenda > header p { max-width: 68ch; margin: 0; }
.event-agenda > header > strong { max-width: 24ch; padding: 10px 12px; color: white; background: var(--green); font-size: .82rem; line-height: 1.3; }
.event-grid { border-top: 2px solid var(--navy); }
.event-card { min-width: 0; display: grid; grid-template-columns: minmax(150px,.55fr) minmax(190px,.75fr) minmax(240px,1fr) auto; grid-template-rows: auto 1fr; gap: 8px 24px; align-items: start; padding: 24px 0; border-bottom: 1px solid var(--line); }
.event-empty { min-width: 0; padding: 28px 0; border-bottom: 1px solid var(--line); }
.event-card > div:first-child { grid-column: 1; grid-row: 1 / 3; display: grid; gap: 8px; color: var(--green); font-size: .78rem; font-weight: 800; }
.event-card > div:first-child span { text-transform: uppercase; letter-spacing: .06em; }
.event-card h3, .event-empty h3 { grid-column: 2; grid-row: 1; margin: 0; font-size: 1.3rem; line-height: 1.12; }
.event-card > p:not(.event-access) { grid-column: 2; grid-row: 2; margin: 0; line-height: 1.45; }
.event-card .event-access { grid-column: 3; grid-row: 1 / 3; margin: 0; padding: 0 20px; border-left: 1px solid var(--line); font-size: .86rem; line-height: 1.5; }
.event-card > div:last-child { grid-column: 4; grid-row: 1 / 3; display: grid; gap: 8px; }
.event-card a, .event-empty a, .event-agenda > footer a { min-height: 44px; display: inline-flex; align-items: center; padding: 10px 12px; color: white; background: var(--navy); text-decoration: none; font-weight: 800; }
.event-card a + a { color: var(--navy); background: var(--yellow); }
.event-agenda > footer { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 14px; margin-top: 22px; font-size: .82rem; }
.event-agenda > footer a { color: var(--navy); background: transparent; border: 1px solid var(--navy); }

@media (max-width: 1000px) and (min-width: 761px) {
  .event-card { grid-template-columns: minmax(150px,.45fr) minmax(0,1fr); }
  .event-card > div:first-child { grid-column: 1; grid-row: 1 / 5; }
  .event-card h3, .event-card > p:not(.event-access), .event-card .event-access, .event-card > div:last-child { grid-column: 2; grid-row: auto; }
  .event-card .event-access { padding: 12px 0; border-top: 1px solid var(--line); border-left: 0; }
  .event-card > div:last-child { display: flex; }
}

.tool-stage-weekend .tool-intro { color: white; background: var(--navy); }
.tool-stage-weekend .tool-intro > p:not(.direct-answer) { color: #c8d1da; }
.tool-stage-weekend .tool-controls { border-color: rgba(255,255,255,.55); }
.tool-stage-weekend .tool-panel { color: var(--navy); background: var(--yellow); }
.weekend-controls { align-content: start; }
.weekend-time-fields { grid-column: 1 / -1; padding: 0; border-top: 1px solid rgba(255,255,255,.55); border-bottom: 1px solid rgba(255,255,255,.55); }
.weekend-time-fields summary { min-height: 48px; display: flex; align-items: center; cursor: pointer; font-size: .78rem; font-weight: 800; text-transform: uppercase; }
.weekend-time-fields > div { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 2px 0 14px; }
.weekend-board > header { display: grid; gap: 5px; margin-bottom: 18px; padding-bottom: 18px; border-bottom: 1px solid rgba(6,24,45,.45); }
.weekend-board > header span { color: var(--navy); font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.weekend-board > header h2 { max-width: 34ch; margin: 0; font-size: clamp(1.4rem,2.3vw,2rem); line-height: 1.08; }
.weekend-day-passes { display: grid; gap: 12px; }
.weekend-day-passes > article { padding: 20px; color: white; background: var(--navy); border: 1px solid rgba(255,255,255,.34); }
.weekend-day-passes > article:nth-child(2) { background: var(--green); }
.weekend-day-passes article > header { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: baseline; justify-content: space-between; padding-bottom: 12px; border-bottom: 1px solid rgba(255,255,255,.36); }
.weekend-day-passes article > header strong { color: var(--yellow); font-size: 1.15rem; }
.weekend-day-passes article > header span { font-size: .78rem; }
.weekend-day-passes h3 { margin: 17px 0 5px; font-size: clamp(1.35rem,2vw,1.75rem); line-height: 1.05; }
.weekend-day-passes p { margin: 0; color: #d6dfe7; }
.weekend-day-passes dl { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 18px 0 0; }
.weekend-day-passes dl div { padding-top: 10px; border-top: 1px dotted rgba(255,255,255,.38); }
.weekend-day-passes dt { font-size: .65rem; text-transform: uppercase; }
.weekend-day-passes dd { margin: 4px 0 0; font-size: .88rem; font-weight: 800; }
.weekend-day-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 15px; }
.weekend-day-actions a { min-height: 44px; display: inline-flex; align-items: center; padding: 9px 11px; color: var(--navy); background: var(--yellow); text-decoration: none; font-weight: 800; }
.weekend-day-actions a + a { color: white; background: transparent; border: 1px solid rgba(255,255,255,.58); }
.weekend-workbench { width: var(--content); margin: 28px auto 88px; display: grid; grid-template-columns: minmax(390px,.9fr) minmax(0,1.1fr); color: white; background: var(--navy); border: 4px solid var(--navy); }
.weekend-timelines { padding: clamp(26px,3.2vw,44px); }
.weekend-timelines > header h2 { max-width: 18ch; margin: 0; font-size: clamp(1.8rem,3vw,2.65rem); line-height: 1; }
.weekend-timelines > header p { max-width: 62ch; color: #c8d1da; }
.weekend-timelines > section { margin-top: 30px; }
.weekend-timelines > section > h3 { margin: 0; color: var(--yellow); font-size: 1.25rem; }
.weekend-timelines ol { margin: 10px 0 0; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.45); }
.weekend-timelines li { display: grid; grid-template-columns: 82px minmax(0,1fr); gap: 16px; padding: 16px 0; border-bottom: 1px solid rgba(255,255,255,.3); }
.weekend-timelines li > strong { color: var(--yellow); font-size: .76rem; text-transform: uppercase; }
.weekend-timelines li span, .weekend-timelines li b, .weekend-timelines li a { display: block; }
.weekend-timelines li span { color: #d6dfe7; line-height: 1.42; }
.weekend-timelines li b { margin-bottom: 4px; color: white; }
.weekend-timelines li a { width: fit-content; min-height: 44px; margin-top: 8px; color: var(--yellow); font-weight: 800; }
.weekend-map-frame { min-width: 0; display: grid; grid-template-rows: minmax(620px,1fr) auto; background: var(--paper); }
.weekend-map-frame #breda-weekend-map, .weekend-map-frame .leaflet-container { min-height: 620px; background: #dbe3dc; }
.weekend-map-frame.is-ready .today-map-fallback { display: none; }
.weekend-agenda { width: var(--content); margin: 88px auto; display: grid; grid-template-columns: 1fr auto; gap: 40px; align-items: center; padding: 36px 40px; color: white; background: var(--green); }
.weekend-agenda h2 { max-width: 22ch; margin: 0; font-size: clamp(1.75rem,3vw,2.65rem); line-height: 1; }
.weekend-agenda p { max-width: 70ch; }
.weekend-agenda > a { min-height: 48px; display: inline-flex; align-items: center; padding: 12px 16px; color: var(--navy); background: var(--yellow); text-decoration: none; font-weight: 800; }
.weekend-directory { width: var(--content); margin: 88px auto; }
.weekend-directory > header { display: grid; grid-template-columns: .8fr 1.2fr; gap: 32px; align-items: end; margin-bottom: 26px; }
.weekend-directory > header h2 { max-width: 20ch; margin: 0; font-size: clamp(1.8rem,3vw,2.65rem); line-height: 1; }
.weekend-directory > header p { max-width: 68ch; margin: 0; color: var(--muted); }
.weekend-directory > div { border-top: 3px solid var(--navy); }
.weekend-directory article { display: grid; grid-template-columns: 42px minmax(210px,.8fr) 1fr auto; gap: 22px; align-items: center; padding: 22px 0; border-bottom: 1px solid var(--line); }
.weekend-directory article > span { color: var(--orange); font-size: 1.3rem; font-weight: 800; }
.weekend-directory h3, .weekend-directory p { margin: 0; }
.weekend-directory h3 { font-size: 1.35rem; line-height: 1.05; }
.weekend-directory article > div p { margin-top: 6px; color: var(--muted); }
.weekend-directory dl { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 0; }
.weekend-directory dl div { padding-bottom: 6px; border-bottom: 1px dotted var(--line); }
.weekend-directory dt { font-size: .65rem; text-transform: uppercase; }
.weekend-directory dd { margin: 4px 0 0; font-weight: 800; }
.weekend-directory article > a { min-height: 44px; display: inline-flex; align-items: center; padding: 9px 12px; border: 1px solid var(--navy); text-decoration: none; font-weight: 800; }
.tool-stage-rain .tool-panel { background: var(--orange); }
.rhythm-board > header, .swap-board > header { display: grid; gap: 4px; margin-bottom: 20px; padding-bottom: 18px; border-bottom: 1px solid rgba(255,255,255,.55); }
.rhythm-board > header span, .swap-board > header span { color: var(--yellow); font-size: .7rem; font-weight: 800; text-transform: uppercase; }
.rhythm-board > header h2, .swap-board > header h2 { max-width: 33ch; margin: 0; font-size: clamp(1.45rem, 2.4vw, 2.2rem); line-height: 1.05; }
.rhythm-option { display: grid; grid-template-columns: 92px 1fr; gap: 18px; padding: 22px 0; border-bottom: 1px solid rgba(255,255,255,.35); }
.rhythm-option-primary { padding-top: 4px; }
.rhythm-time { width: 84px; height: 84px; display: grid; place-content: center; text-align: center; color: var(--navy); background: var(--yellow); border-radius: 50%; }
.rhythm-time strong, .rhythm-time span { display: block; }.rhythm-time strong { font-size: 1.8rem; line-height: .8; }.rhythm-time span { margin-top: 6px; font-size: .6rem; text-transform: uppercase; }
.rhythm-option h3, .swap-row h3 { margin: 0; font-size: 1.5rem; line-height: 1; }.rhythm-option p, .swap-row p { margin: 7px 0; }
.rhythm-option dl { display: grid; grid-template-columns: .7fr .9fr 1.4fr; margin: 14px 0 0; border-top: 1px dotted rgba(255,255,255,.45); }
.rhythm-option dl div { padding: 10px 10px 0 0; }.rhythm-option dt, .swap-row dt { font-size: .6rem; text-transform: uppercase; opacity: .72; }.rhythm-option dd, .swap-row dd { margin: 3px 0 0; font-size: .76rem; font-weight: 700; }
.rhythm-option details { margin-top: 12px; font-size: .72rem; }.rhythm-option summary { cursor: pointer; font-weight: 700; }
.family-timeline { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin: 14px 0; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.35); border-bottom: 1px solid rgba(255,255,255,.35); }.family-timeline li { min-width: 0; padding: 10px 8px; font-size: .72rem; border-right: 1px solid rgba(255,255,255,.25); }.family-timeline li:last-child { border-right: 0; }.family-timeline strong { display: block; color: var(--yellow); font-size: .84rem; }.drop-activity { margin-top: 12px; padding: 8px 10px; color: white; background: transparent; border: 1px solid rgba(255,255,255,.65); cursor: pointer; }.boat-anchor { display: grid; gap: 4px; margin-top: 20px; padding: 18px; color: var(--navy); background: var(--yellow); }.boat-anchor span, .boat-anchor small { display: block; }.boat-anchor small { opacity: .75; }
.swap-row { display: grid; grid-template-columns: 46px 1.2fr .9fr; gap: 16px; padding: 21px 0; border-bottom: 1px solid rgba(255,255,255,.45); }
.swap-rank { font-size: 1.8rem; line-height: .9; font-weight: 800; color: var(--yellow); }
.swap-row dl { margin: 0; display: grid; gap: 8px; }
.swap-row dl div { display: flex; justify-content: space-between; gap: 12px; padding-bottom: 7px; border-bottom: 1px dotted rgba(255,255,255,.4); }
.day-check { display: inline-flex; margin-top: 6px; color: white; font-size: .76rem; font-weight: 800; }
.tool-empty { padding: 26px; color: var(--navy); background: var(--yellow); }.tool-empty strong { font-size: 1.3rem; }.tool-empty p { margin-bottom: 0; }

.truth-ledger, .rain-rule, .water-context, .family-destinations { width: var(--content); margin: 90px auto; }
.truth-ledger { display: grid; grid-template-columns: 1fr 1.5fr auto; gap: 30px; align-items: end; padding: 30px 0; border-top: 3px solid var(--navy); border-bottom: 1px solid var(--line); }
.truth-ledger h2, .rain-rule h2 { margin: 0; font-size: clamp(1.8rem, 3vw, 2.8rem); line-height: 1; }.truth-ledger header p { color: var(--muted); }
.truth-ledger > div { display: grid; grid-template-columns: repeat(3, 1fr); }.truth-ledger > div p { margin: 0; padding: 12px 16px; border-left: 1px solid var(--line); }.truth-ledger > div strong { display: block; }
.truth-ledger > a { padding: 12px 14px; color: white; background: var(--navy); text-decoration: none; font-weight: 700; }
.rain-rule { display: grid; grid-template-columns: .8fr 1.2fr 1fr; gap: 34px; align-items: center; padding: 34px; color: white; background: var(--green); }.rain-rule span { color: var(--yellow); font-size: .7rem; font-weight: 800; text-transform: uppercase; }.rain-rule p { margin: 0; }.rain-rule code { display: block; padding: 18px; color: var(--navy); background: var(--yellow); font-family: inherit; font-weight: 750; white-space: normal; }
.rain-rule h2 { font-size: clamp(1.7rem, 2.4vw, 2.2rem); }
.family-destinations > header { display: grid; grid-template-columns: .55fr 1fr 1fr; gap: 30px; align-items: end; margin-bottom: 26px; }.family-destinations > header span { color: var(--orange); font-size: .7rem; font-weight: 800; text-transform: uppercase; }.family-destinations > header h2 { margin: 0; font-size: clamp(1.8rem, 3vw, 2.8rem); line-height: 1; }.family-destinations > header p { margin: 0; color: var(--muted); }.family-destinations > div { border-top: 3px solid var(--navy); }.family-destinations article { display: grid; grid-template-columns: 60px .8fr 1.2fr; gap: 24px; padding: 25px 0; border-bottom: 1px solid var(--line); }.family-destinations article > span { color: var(--orange); font-size: 1.7rem; font-weight: 800; }.family-destinations h3 { margin: 0; font-size: 1.55rem; }.family-destinations p { margin: 6px 0; }.family-destinations strong { font-size: .78rem; }.family-destinations small { display: block; margin-top: 8px; color: var(--muted); }

.atlas-head { width: var(--content); margin: 18px auto 0; display: grid; grid-template-columns: 1.25fr .75fr; min-height: 440px; color: white; background: var(--navy); border: 4px solid var(--navy); }
.atlas-head > div:first-child { align-self: center; padding: clamp(38px, 6vw, 84px); }.atlas-head > div:first-child > p:not(.tool-kicker, .direct-answer) { max-width: 62ch; color: #c8d1da; }
.access-key { display: grid; align-content: end; padding: clamp(32px, 4vw, 56px); color: var(--navy); background: var(--yellow); }.access-key span { font-size: .7rem; font-weight: 800; text-transform: uppercase; }.access-key strong { max-width: 16ch; font-size: clamp(1.8rem, 3vw, 3rem); line-height: .94; text-transform: uppercase; }.access-key p { max-width: 34ch; }
.entity-atlas { width: var(--content); margin: 90px auto; }.entity-atlas > header { display: grid; grid-template-columns: 1fr 1.3fr; gap: 30px; align-items: end; margin-bottom: 28px; }.entity-atlas h2 { margin: 0; font-size: clamp(2rem, 3.5vw, 3.3rem); line-height: .96; }.entity-atlas header p { max-width: 64ch; color: var(--muted); }
.atlas-filters { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }.atlas-filters button { min-height: 44px; padding: 7px 11px; color: var(--navy); background: transparent; border: 1px solid var(--navy); cursor: pointer; }.atlas-filters button[aria-pressed="true"] { color: white; background: var(--navy); }
.entity-ledger { border-top: 3px solid var(--navy); }.entity-ledger article { display: grid; grid-template-columns: 62px minmax(240px,.7fr) 1.3fr auto; gap: 24px; align-items: start; padding: 28px 0; border-bottom: 1px solid var(--line); }.entity-ledger article[hidden] { display: none; }.entity-number { font-size: 1.55rem; font-weight: 800; color: var(--orange); }.entity-ledger h3 { margin: 0; font-size: 1.7rem; }.entity-ledger p { margin: 7px 0 0; }.entity-ledger dl { margin: 0; display: grid; grid-template-columns: .6fr 1.2fr 1fr; }.entity-ledger dl div { padding: 0 15px; border-left: 1px solid var(--line); }.entity-ledger dt { font-size: .65rem; font-weight: 800; text-transform: uppercase; }.entity-ledger dd { margin: 6px 0 0; color: var(--muted); }.entity-ledger > article > a { padding: 9px 11px; border: 1px solid var(--navy); text-decoration: none; font-size: .75rem; font-weight: 800; }
.water-context { display: grid; grid-template-columns: 1fr 1.2fr auto; gap: 34px; align-items: center; padding: 38px; color: white; background: var(--navy); }.water-context span { color: var(--yellow); font-size: .7rem; text-transform: uppercase; }.water-context strong { display: block; max-width: 20ch; font-size: 1.8rem; line-height: 1; }.water-context p { color: #c8d1da; }.water-context a { padding: 12px 14px; color: var(--navy); background: var(--yellow); text-decoration: none; font-weight: 800; }

.tool-stage-arrival .tool-intro { color: white; background: var(--green); }.tool-stage-arrival .tool-intro > p:not(.tool-kicker, .direct-answer) { color: #d6e0dc; }.tool-stage-arrival .tool-panel { background: var(--navy); }.tool-stage-arrival .tool-controls { border-color: rgba(255,255,255,.55); }.arrival-board > header { display: grid; gap: 4px; margin-bottom: 18px; padding-bottom: 17px; border-bottom: 1px solid rgba(255,255,255,.45); }.arrival-board > header span { color: var(--yellow); font-size: .7rem; font-weight: 800; text-transform: uppercase; }.arrival-board > header h2 { max-width: 34ch; margin: 0; font-size: 1.85rem; line-height: 1.05; }.arrival-option { display: grid; grid-template-columns: 48px minmax(190px, .8fr) 1.2fr; gap: 18px; padding: 21px 0; border-bottom: 1px solid rgba(255,255,255,.35); }.arrival-rank { color: var(--yellow); font-size: 1.7rem; font-weight: 800; }.arrival-option h3 { margin: 0; font-size: 1.4rem; }.arrival-option p { margin: 6px 0; }.arrival-option dl { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 18px; margin: 0; }.arrival-option dl div { padding-bottom: 7px; border-bottom: 1px dotted rgba(255,255,255,.35); }.arrival-option dt { font-size: .6rem; text-transform: uppercase; opacity: .7; }.arrival-option dd { margin: 4px 0 0; font-size: .76rem; font-weight: 700; }.arrival-actions { grid-column: 2 / -1; display: flex; flex-wrap: wrap; gap: 8px; }.arrival-actions a { padding: 8px 10px; color: white; border: 1px solid rgba(255,255,255,.55); text-decoration: none; font-size: .72rem; font-weight: 800; }
.arrival-hero { width: var(--content); min-height: 520px; margin: 18px auto 0; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(390px, .75fr); color: white; background: var(--green); border: 4px solid var(--navy); }
.arrival-hero > header { align-self: center; padding: clamp(34px, 5vw, 68px); }.arrival-hero > header > p:not(.tool-kicker, .direct-answer) { max-width: 58ch; color: #d6e0dc; }.arrival-hero h1 { max-width: 16ch; font-size: clamp(2.15rem, 3.1vw, 2.875rem); }.arrival-hero .direct-answer { max-width: 62ch; margin-top: 24px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.45); }.arrival-hero .direct-answer strong { color: var(--yellow); }
.arrival-hero > div { padding: clamp(24px, 3vw, 42px); color: var(--navy); background: var(--yellow); }
.arrival-controls { min-width: 0; display: grid; gap: 12px; }.arrival-controls > label, .arrival-time-grid label { min-width: 0; display: grid; gap: 5px; font-size: .72rem; font-weight: 800; text-transform: uppercase; }.arrival-controls select, .arrival-controls input[type="date"], .arrival-controls input[type="time"] { width: 100%; min-width: 0; max-width: 100%; min-height: 48px; padding: 10px 12px; color: var(--ink); background: var(--paper); border: 1px solid var(--navy); border-radius: 0; }.arrival-time-grid { min-width: 0; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 10px; }
.arrival-controls select { display: block; height: 48px; min-height: 48px; padding-right: 42px; font-size: 16px; line-height: 1.25; -webkit-appearance: none; appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--navy) 50%), linear-gradient(135deg, var(--navy) 50%, transparent 50%); background-position: calc(100% - 18px) 20px, calc(100% - 12px) 20px; background-repeat: no-repeat; background-size: 6px 6px, 6px 6px; }
.arrival-mode { display: grid; grid-template-columns: 1fr 1fr; margin: 0; padding: 0; border: 0; }.arrival-mode legend { grid-column: 1 / -1; margin-bottom: 6px; font-size: .72rem; font-weight: 800; text-transform: uppercase; }.arrival-mode label { position: relative; }.arrival-mode input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }.arrival-mode span { min-height: 48px; display: grid; place-items: center; padding: 10px 14px; border: 1px solid var(--navy); cursor: pointer; font-weight: 800; }.arrival-mode label + label span { border-left: 0; }.arrival-mode input:checked + span { color: white; background: var(--navy); }.arrival-mode input:focus-visible + span { outline: 3px solid var(--focus); outline-offset: 3px; }
.arrival-checks { display: grid; gap: 7px; }.arrival-checks label { min-height: 44px; display: grid; grid-template-columns: 24px 1fr; align-items: center; gap: 9px; font-size: .76rem; font-weight: 750; }.arrival-checks input { width: 22px; height: 22px; margin: 0; accent-color: var(--navy); }.arrival-controls > p { margin: 0; padding-top: 8px; border-top: 1px solid rgba(6,24,45,.4); font-size: .72rem; }
/* Art direction: Bredase bewegwijzering, helder, warm en tastbaar. Verboden: zwevende pills, gradients en verborgen acties. */
.arrival-refine { min-width: 0; border: 0; }
.arrival-refine summary { min-width: 0; min-height: 56px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 16px; padding: 11px 14px; color: white; background: var(--navy); border: 2px solid var(--navy); cursor: pointer; list-style: none; }
.arrival-refine summary::-webkit-details-marker { display: none; }
.arrival-refine summary strong { font-size: .8rem; line-height: 1.15; }
.arrival-refine summary small { grid-column: 1 / -1; color: #c8d1da; font-size: .68rem; font-weight: 650; line-height: 1.25; text-transform: none; }
.arrival-refine-action { min-height: 32px; display: inline-flex; align-items: center; gap: 8px; padding-left: 12px; border-left: 1px solid rgba(255,255,255,.4); font-size: .69rem; font-weight: 850; }
.arrival-refine-action i { width: 9px; height: 9px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .18s cubic-bezier(.16,1,.3,1); }
.arrival-refine-close { display: none; }
.arrival-refine[open] .arrival-refine-open { display: none; }
.arrival-refine[open] .arrival-refine-close { display: inline; }
.arrival-refine[open] .arrival-refine-action i { transform: translateY(2px) rotate(225deg); }
.arrival-refine > div { min-width: 0; display: grid; gap: 12px; padding: 16px 2px 14px; border-bottom: 1px solid rgba(6,24,45,.45); }
.arrival-refine > div > label { min-width: 0; display: grid; gap: 5px; font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.arrival-inline-status { min-width: 0; display: grid; gap: 2px; margin: 0; padding: 12px 14px 12px 18px; background: rgba(255,254,250,.72); border: 1px solid var(--navy); box-shadow: inset 5px 0 var(--orange); }
.arrival-inline-status strong { font-size: .8rem; line-height: 1.2; }
.arrival-inline-status span { font-size: .71rem; line-height: 1.35; }
.lunch-stage { width: var(--content); margin: 18px auto 0; display: grid; grid-template-columns: minmax(0,1.1fr) minmax(400px,.9fr); color: white; background: var(--green); border: 4px solid var(--navy); }.lunch-stage > header { align-self: center; padding: clamp(32px,5vw,64px); }.lunch-stage h1 { max-width: 17ch; font-size: clamp(2.125rem,3.1vw,2.875rem); }.lunch-stage > header > p:not(.tool-kicker,.direct-answer) { max-width: 60ch; color: #d6e0dc; }.lunch-stage .direct-answer { max-width: 62ch; margin-top: 24px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.45); }.lunch-stage .direct-answer strong { color: var(--yellow); }.lunch-stage > div { padding: clamp(24px,3vw,40px); color: var(--navy); background: var(--yellow); }
.lunch-controls { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }.lunch-controls > label, .lunch-refine label { display: grid; gap: 4px; min-width: 0; font-size: .72rem; font-weight: 800; text-transform: uppercase; }.lunch-controls select, .lunch-controls input { width: 100%; min-height: 48px; padding: 10px 40px 10px 12px; color: var(--ink); background-color: var(--paper); border: 1px solid var(--navy); border-radius: 0; font-size: 1rem; }.lunch-controls select { appearance: none; background-image: linear-gradient(45deg,transparent 50%,var(--navy) 50%),linear-gradient(135deg,var(--navy) 50%,transparent 50%); background-position: calc(100% - 18px) 20px,calc(100% - 12px) 20px; background-repeat: no-repeat; background-size: 6px 6px,6px 6px; }.lunch-refine { grid-column: 1 / -1; border-top: 1px solid rgba(6,24,45,.45); border-bottom: 1px solid rgba(6,24,45,.45); }.lunch-refine summary { min-height: 48px; display: flex; align-items: center; cursor: pointer; font-size: .74rem; font-weight: 850; }.lunch-refine > div { display: grid; grid-template-columns: 1fr 1fr 1.2fr; gap: 12px; padding: 4px 0 16px; }.lunch-controls > p { grid-column: 1 / -1; margin: 0; font-size: .72rem; }
.lunch-workbench { width: var(--content); margin: 24px auto 0; display: grid; grid-template-columns: minmax(0,1.1fr) minmax(440px,.9fr); color: white; background: var(--navy); border: 4px solid var(--navy); }.lunch-status { grid-column: 1 / -1; min-height: 72px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 16px; padding: 16px; color: var(--navy); background: var(--yellow); }.lunch-status > span { font-size: .68rem; font-weight: 850; text-transform: uppercase; }.lunch-status strong { font-size: 1.1rem; }.lunch-status small { max-width: 48ch; text-align: right; }.lunch-results-board { grid-column: 2; min-width: 0; padding: 24px 32px; }.lunch-results-board > header { padding-bottom: 16px; border-bottom: 1px solid rgba(255,255,255,.4); }.lunch-results-board > header .tool-label { color: var(--yellow); }.lunch-results-board h2 { max-width: 28ch; margin: 0; font-size: 1.7rem; line-height: 1.05; }
.lunch-option { display: grid; grid-template-columns: 40px 1fr; gap: 8px 16px; padding: 20px 0; border-bottom: 1px solid rgba(255,255,255,.35); }.lunch-option.is-selected { padding-left: 12px; box-shadow: inset 4px 0 var(--yellow); }.lunch-rank { color: var(--yellow); font-size: 1.6rem; font-weight: 850; }.lunch-option-copy h3, .lunch-option-copy p { margin: 0; }.lunch-option-copy h3 { font-size: 1.35rem; line-height: 1.05; }.lunch-option-copy > p:not(.tool-label,.lunch-proof) { margin-top: 4px; }.lunch-proof { margin-top: 8px!important; color: var(--yellow); font-size: .72rem; font-weight: 750; }.lunch-option dl { grid-column: 2; display: grid; grid-template-columns: 1fr 1fr; gap: 8px 16px; margin: 4px 0 0; }.lunch-option dl div { padding-bottom: 8px; border-bottom: 1px dotted rgba(255,255,255,.35); }.lunch-option dt { font-size: .6rem; text-transform: uppercase; opacity: .72; }.lunch-option dd { margin: 4px 0 0; font-size: .76rem; font-weight: 700; }.lunch-option details { grid-column: 2; }.lunch-option summary { min-height: 44px; display: inline-flex; align-items: center; cursor: pointer; font-size: .74rem; font-weight: 800; }.lunch-option details p { margin: 0 0 8px; color: #d6e0dc; font-size: .76rem; }.lunch-actions { grid-column: 2; display: flex; flex-wrap: wrap; gap: 8px; }.lunch-actions button, .lunch-actions a { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; padding: 12px; color: white; background: transparent; border: 1px solid rgba(255,255,255,.58); border-radius: 0; cursor: pointer; font-size: .7rem; font-weight: 850; text-align: center; text-decoration: none; }.lunch-actions button { color: var(--navy); background: var(--yellow); border-color: var(--yellow); }.lunch-actions button[aria-pressed="true"] { color: white; background: var(--orange); border-color: var(--orange); }
.lunch-map-frame { grid-column: 1; grid-row: 2; min-width: 0; display: grid; grid-template-rows: minmax(620px,1fr) auto; background: #dce4dc; border-right: 1px solid rgba(255,255,255,.28); }.lunch-map-frame #breda-lunch-map { position: relative; min-height: 620px; color: var(--navy); background: #dce4dc; }.lunch-map-fallback { position: absolute; z-index: 900; inset: 0; display: grid; align-content: end; gap: 8px; padding: 32px; color: var(--navy); background: #dce4dc; box-shadow: inset 16px 0 var(--green); }.lunch-map-fallback strong { max-width: 22ch; font-size: 1.75rem; line-height: 1.05; }.lunch-map-fallback p { max-width: 42ch; margin: 0; }.lunch-map-frame.is-ready .lunch-map-fallback { display: none; }.lunch-map-frame .leaflet-container { width: 100%; height: 100%; min-height: 620px; font-family: inherit; }.lunch-map-frame .leaflet-control-zoom.leaflet-bar a { width: 44px; height: 44px; line-height: 44px; }.lunch-map-frame .leaflet-popup-content-wrapper, .lunch-map-frame .leaflet-popup-tip { color: var(--navy); background: var(--paper); border-radius: 0; }.lunch-map-frame .leaflet-popup-content { min-width: min(190px, calc(100vw - 150px)); margin: 14px 16px; padding-top: 18px; line-height: 1.35; }.lunch-map-frame .leaflet-popup-content strong, .lunch-map-frame .leaflet-popup-content span { display: block; }.lunch-map-frame .leaflet-popup-content span { margin-top: 4px; color: var(--muted); font-size: .75rem; }.lunch-map-caption { min-height: 64px; display: flex; align-items: center; gap: 16px; padding: 16px; color: white; background: var(--green); }.lunch-map-caption span { display: inline-flex; align-items: center; gap: 8px; font-size: .72rem; }.lunch-map-caption i { width: 16px; height: 16px; display: inline-block; background: var(--yellow); border: 2px solid white; border-radius: 50%; }.lunch-map-caption .lunch-start-dot { color: white; background: var(--orange); border-radius: 3px; transform: rotate(45deg); }.lunch-marker-shell { background: transparent; border: 0; }.lunch-map-marker { width: 44px; height: 44px; display: grid; place-items: center; color: var(--navy); background: var(--yellow); border: 3px solid white; border-radius: 50%; box-shadow: 0 2px 0 rgba(6,24,45,.35); font-size: .78rem; font-weight: 850; }.lunch-map-marker i { font-style: normal; }.lunch-map-marker-start { color: white; background: var(--orange); border-radius: 7px; transform: rotate(45deg); }.lunch-map-marker-start i { transform: rotate(-45deg); }.lunch-map-marker.is-selected { border-color: var(--orange); box-shadow: 0 0 0 4px var(--navy); }
.lunch-answers, .lunch-directory { width: var(--content); margin: 88px auto; }.lunch-answers > header, .lunch-directory > header { display: grid; grid-template-columns: .8fr 1.2fr; gap: 40px; align-items: end; margin-bottom: 24px; }.lunch-answers h2, .lunch-directory h2 { max-width: 24ch; margin: 0; font-size: clamp(1.75rem,2.8vw,2.5rem); line-height: 1; }.lunch-answers > div { border-top: 3px solid var(--navy); }.lunch-answers article { display: grid; grid-template-columns: .6fr 1.4fr; gap: 32px; padding: 24px 0; border-bottom: 1px solid var(--line); }.lunch-answers h3, .lunch-answers p { margin: 0; }.lunch-answers h3 { font-size: 1.35rem; }.lunch-directory > header > p { margin: 0; color: var(--muted); }.lunch-directory > div { border-top: 3px solid var(--navy); }.lunch-directory article { display: grid; grid-template-columns: 48px .8fr 1fr .9fr; gap: 16px 24px; align-items: center; padding: 20px 0; border-bottom: 1px solid var(--line); }.lunch-directory article > span { color: var(--orange); font-size: 1.3rem; font-weight: 850; }.lunch-directory h3, .lunch-directory p { margin: 0; }.lunch-directory h3 { font-size: 1.25rem; }.lunch-directory article > div:first-of-type p, .lunch-directory article > p { margin-top: 4px; color: var(--muted); }.lunch-directory article > div:last-child { display: grid; gap: 8px; justify-items: start; }.lunch-directory article > div:last-child strong { font-size: .75rem; }.lunch-directory article a { min-height: 44px; display: inline-flex; align-items: center; padding: 8px 10px; border: 1px solid var(--navy); font-size: .72rem; font-weight: 850; text-decoration: none; }
.parking-routes { width: var(--content); margin: 80px auto 24px; }.parking-routes > header { display: grid; grid-template-columns: minmax(280px,.8fr) minmax(360px,1.2fr); gap: 40px; align-items: end; margin-bottom: 24px; }.parking-routes > header h2 { max-width: 22ch; margin: 0; font-size: clamp(1.75rem,2.8vw,2.45rem); line-height: 1; }.parking-routes > header > p { max-width: 66ch; margin: 0; color: var(--muted); }.parking-route-list { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--navy); border: 3px solid var(--navy); }.parking-route { min-width: 0; display: grid; grid-template-rows: auto auto 1fr auto; gap: 16px; padding: 24px; color: var(--navy); background: var(--paper); box-shadow: inset 0 0 0 0 var(--orange); transition: box-shadow .16s cubic-bezier(.16,1,.3,1), background-color .16s cubic-bezier(.16,1,.3,1); }.parking-route.is-selected { background: #fff6cc; box-shadow: inset 8px 0 var(--orange); }.parking-route-heading { display: grid; grid-template-columns: 48px 1fr; gap: 16px; align-items: start; }.parking-route-heading > span { color: var(--orange); font-size: 1.35rem; font-weight: 850; }.parking-route-heading p, .parking-route-heading h3, .parking-route > p { margin: 0; }.parking-route-heading p { color: var(--muted); font-size: .72rem; font-weight: 800; text-transform: uppercase; }.parking-route-heading h3 { margin-top: 4px; font-size: 1.35rem; line-height: 1.05; }.parking-route > p { max-width: 62ch; color: var(--muted); }.parking-route dl { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; margin: 0; border-top: 1px solid var(--line); }.parking-route dl div { min-width: 0; padding: 12px 0; border-bottom: 1px solid var(--line); }.parking-route dt { color: var(--muted); font-size: .63rem; font-weight: 800; text-transform: uppercase; }.parking-route dd { margin: 4px 0 0; overflow-wrap: normal; word-break: normal; hyphens: none; font-size: .79rem; font-weight: 750; }.parking-route-actions { display: flex; flex-wrap: wrap; gap: 8px; }.parking-route-actions button, .parking-route-actions a { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; padding: 12px 16px; border: 1px solid var(--navy); border-radius: 0; font-size: .73rem; font-weight: 850; text-align: center; text-decoration: none; }.parking-route-actions button { color: white; background: var(--navy); cursor: pointer; }.parking-route-actions button[aria-pressed="true"] { color: var(--navy); background: var(--yellow); }.parking-route-actions a { color: var(--navy); background: transparent; }.parking-route-caveat { min-height: 72px; display: grid; grid-template-columns: auto 1fr auto; gap: 16px; align-items: center; padding: 16px; color: white; background: var(--green); }.parking-route-caveat strong { color: var(--yellow); white-space: nowrap; }.parking-route-caveat span { color: #d6e0dc; font-size: .76rem; }.parking-route-caveat a { min-height: 48px; display: inline-flex; align-items: center; padding: 12px; color: var(--navy); background: var(--yellow); font-size: .72rem; font-weight: 850; text-decoration: none; white-space: nowrap; }
.arrival-workbench { width: var(--content); margin: 26px auto 0; display: grid; grid-template-columns: minmax(0, 1.18fr) minmax(420px, .82fr); color: white; background: var(--navy); border: 4px solid var(--navy); }
.arrival-status { grid-column: 1 / -1; min-height: 72px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 18px; padding: 14px 18px; color: var(--navy); background: var(--yellow); }.arrival-status > span { font-size: .68rem; font-weight: 850; text-transform: uppercase; }.arrival-status strong { font-size: 1.1rem; }.arrival-status small { max-width: 48ch; text-align: right; }
.arrival-map-frame { min-width: 0; display: grid; grid-template-rows: minmax(560px, 1fr) auto; background: #dce4dc; border-right: 1px solid rgba(255,255,255,.28); }.arrival-map-frame #breda-arrival-map { position: relative; z-index: 1; min-height: 560px; color: var(--navy); background: #dce4dc; }.arrival-map-fallback { position: absolute; z-index: 900; inset: 0; display: grid; align-items: end; overflow: hidden; color: white; background: var(--navy); }.arrival-map-fallback img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: saturate(.72) contrast(1.06) brightness(.65); }.arrival-map-fallback p { position: relative; z-index: 1; max-width: 52ch; margin: 0; padding: 18px 20px; background: rgba(6,24,45,.94); }.arrival-map-frame.is-ready .arrival-map-fallback { display: none; }
.arrival-map-caption { min-height: 88px; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 13px 18px; color: white; background: var(--green); }.arrival-map-caption p { margin: 0; }.arrival-map-caption strong, .arrival-map-caption span { display: block; }.arrival-map-caption p span { max-width: 60ch; margin-top: 3px; color: #d6e0dc; font-size: .68rem; }.arrival-map-caption > div { display: flex; flex-wrap: wrap; gap: 8px 14px; }.arrival-map-caption > div span { display: inline-flex; align-items: center; gap: 6px; font-size: .68rem; white-space: nowrap; }.arrival-map-caption i { width: 14px; height: 14px; display: inline-block; background: var(--yellow); border: 2px solid white; border-radius: 50%; }.arrival-map-caption .arrival-legend-route { width: 24px; height: 6px; background: var(--orange); border: 0; border-radius: 4px; }.arrival-map-caption .arrival-legend-destination { background: var(--orange); border-radius: 2px; transform: rotate(45deg); }
.arrival-board { min-width: 0; padding: 24px clamp(20px, 2.2vw, 34px); }.arrival-board > header { margin: 0 0 8px; padding: 0 0 12px; }.arrival-board > header .tool-label { color: var(--yellow); }.arrival-board > header h2 { font-size: 1.65rem; }
.arrival-workbench .arrival-option { grid-template-columns: 38px 1fr; gap: 8px 12px; padding: 16px 0; }.arrival-workbench .arrival-option dl { grid-column: 2; grid-template-columns: 1fr 1fr; gap: 6px 12px; }.arrival-workbench .arrival-actions { grid-column: 2; gap: 6px; }.arrival-actions button, .arrival-actions a { min-height: 44px; display: inline-flex; align-items: center; padding: 9px 11px; color: white; background: transparent; border: 1px solid rgba(255,255,255,.58); border-radius: 0; cursor: pointer; text-decoration: none; font-size: .69rem; font-weight: 800; }.arrival-actions button { color: var(--navy); background: var(--yellow); border-color: var(--yellow); }.arrival-warning { padding: 8px 10px; color: var(--navy); background: var(--yellow); font-size: .72rem; font-weight: 750; }
.arrival-workbench .arrival-option.is-selected { padding-left: 12px; box-shadow: inset 4px 0 var(--yellow); }.arrival-actions button[aria-pressed="true"] { color: white; background: var(--orange); border-color: var(--orange); }
.parking-route-actions button, .parking-route-actions a { font-size: .8rem; }
.arrival-actions button, .arrival-actions a { font-size: .78rem; }
.arrival-map-frame .leaflet-container { width: 100%; height: 100%; min-height: 560px; font-family: inherit; background: #dce4dc; }.arrival-map-frame .leaflet-control-zoom.leaflet-bar a { width: 44px; height: 44px; line-height: 44px; color: var(--navy); background: var(--paper); }.arrival-map-frame .leaflet-control-attribution { padding: 3px 6px; color: var(--navy); background: rgba(255,254,250,.92); font-size: 10px; }.arrival-map-frame .leaflet-popup-content-wrapper, .arrival-map-frame .leaflet-popup-tip { color: var(--navy); background: var(--paper); border-radius: 0; }.arrival-map-frame .leaflet-popup-content { min-width: min(210px, calc(100vw - 150px)); margin: 14px 16px; padding-top: 18px; line-height: 1.35; }.arrival-map-frame .leaflet-popup-content strong, .arrival-map-frame .leaflet-popup-content span { display: block; }.arrival-map-frame .leaflet-popup-content span { margin-top: 4px; color: var(--muted); font-size: .75rem; }
.arrival-marker-shell { background: transparent; border: 0; }.arrival-map-marker { width: 44px; height: 44px; display: grid; place-items: center; color: var(--navy); background: var(--yellow); border: 3px solid white; border-radius: 50%; box-shadow: 0 2px 0 rgba(6,24,45,.35); font-size: .78rem; font-weight: 850; }.arrival-map-marker i { font-style: normal; }.arrival-map-marker-destination { color: white; background: var(--orange); border-radius: 7px; transform: rotate(45deg); }.arrival-map-marker-destination i { transform: rotate(-45deg); }.arrival-map-marker-route { color: white; background: var(--green); border-radius: 4px; }.arrival-map-marker.is-selected { border-color: var(--orange); box-shadow: 0 0 0 4px var(--navy); }.arrival-map-frame .leaflet-marker-icon:focus-visible { outline: 3px solid var(--focus); outline-offset: 4px; }
.arrival-static-directory { width: var(--content); margin: 76px auto; }.arrival-static-directory > header { display: grid; grid-template-columns: .55fr 1fr 1.2fr; gap: 26px; align-items: end; margin-bottom: 22px; }.arrival-static-directory h2, .arrival-static-directory p { margin: 0; }.arrival-static-directory h2 { font-size: clamp(1.7rem, 2.8vw, 2.5rem); line-height: 1; }.arrival-static-directory > header > p:last-child { color: var(--muted); }.arrival-static-directory > div { display: grid; grid-template-columns: 1fr 1fr; border-top: 3px solid var(--navy); }.arrival-static-directory > div > section:first-child { padding-right: 24px; }.arrival-static-directory > div > section + section { padding-left: 24px; border-left: 1px solid var(--line); }.arrival-static-directory h3 { font-size: 1.3rem; }.arrival-static-directory article { min-height: 82px; display: grid; grid-template-columns: 1fr auto; gap: 2px 14px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--line); }.arrival-static-directory article strong, .arrival-static-directory article span { display: block; }.arrival-static-directory article span { grid-column: 1; color: var(--muted); font-size: .76rem; }.arrival-static-directory article > div { grid-column: 2; grid-row: 1 / 3; display: flex; flex-wrap: wrap; gap: 6px; }.arrival-static-directory article a { min-height: 44px; display: inline-flex; align-items: center; padding: 8px 9px; border: 1px solid var(--line); font-size: .72rem; font-weight: 800; text-decoration: none; }.arrival-destinations { padding-top: 16px; color: var(--muted); font-size: .78rem; }
.bike-law, .locker-feature, .guide-network { width: var(--content); margin: 90px auto; }.bike-law { display: grid; grid-template-columns: 1.4fr .6fr; gap: 40px; align-items: stretch; padding: 34px; color: white; background: var(--navy); }.bike-law h2, .locker-feature h2 { max-width: 23ch; margin: 0; font-size: clamp(1.8rem, 3vw, 2.8rem); line-height: 1; }.bike-law p { max-width: 70ch; color: #c8d1da; }.bike-law a { color: var(--yellow); font-weight: 800; }.bike-law aside { display: grid; align-content: center; padding: 24px; color: var(--navy); background: var(--yellow); }.bike-law aside strong { font-size: 2.5rem; line-height: 1; }.bike-law aside span, .bike-law aside small { display: block; margin-top: 8px; }.locker-feature { display: grid; grid-template-columns: 1.15fr .85fr; gap: 44px; padding: clamp(30px, 5vw, 64px); color: var(--navy); background: var(--yellow); border: 3px solid var(--navy); }.locker-feature > div:first-child > p:not(.tool-label) { max-width: 62ch; }.locker-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }.locker-actions a { padding: 12px 14px; color: white; background: var(--navy); text-decoration: none; font-weight: 800; }.locker-actions a + a { color: var(--navy); background: transparent; border: 1px solid var(--navy); }.locker-proof { padding-left: 30px; border-left: 1px solid var(--navy); }.locker-proof ul { padding-left: 18px; }.locker-proof details { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--navy); }.locker-proof summary { cursor: pointer; font-weight: 800; }
.guide-network { display: grid; grid-template-columns: .7fr 1.3fr; gap: 30px; padding: 26px 0; border-top: 3px solid var(--navy); border-bottom: 1px solid var(--line); }.guide-network > p { margin: 0; }.guide-network > p strong, .guide-network > p span { display: block; }.guide-network > p span { margin-top: 5px; color: var(--muted); }.guide-network > div { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: var(--line); }.guide-network a { display: grid; gap: 3px; padding: 13px; color: var(--navy); background: var(--paper); text-decoration: none; }.guide-network a span { color: var(--muted); font-size: .76rem; }

.source-book > div { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 3px solid var(--navy); }
.source-book > div a { display: grid; grid-template-columns: .65fr 1fr; gap: 5px 18px; min-height: 86px; padding: 15px 0; border-bottom: 1px solid var(--line); text-decoration: none; }
.source-book > div a small { grid-column: 2; color: var(--muted); font-size: .68rem; }
.source-book > div a:nth-child(odd) { padding-right: 24px; }.source-book > div a:nth-child(even) { padding-left: 24px; border-left: 1px solid var(--line); }
.source-book span { color: var(--muted); }

.site-footer { min-height: 220px; display: grid; grid-template-columns: .8fr 1.2fr auto; gap: 40px; align-items: start; padding: 52px max(20px, calc((100vw - min(1480px, calc(100vw - 40px))) / 2)); color: white; background: var(--navy); border-top: 1px solid rgba(255,255,255,.18); }
.site-footer strong, .site-footer span { display: block; }.site-footer strong { font-size: 1.4rem; text-transform: uppercase; }.site-footer span, .site-footer p { color: #b8c5d0; }.site-footer p { max-width: 55ch; margin: 0; }.site-footer nav { display: grid; gap: 8px; }
.venue-proof summary, .day-check, .entity-ledger > article > a, .arrival-actions a, .guide-network a, .site-footer nav a { min-height: 44px; }
.venue-proof summary, .day-check, .entity-ledger > article > a, .arrival-actions a, .site-footer nav a { display: inline-flex; align-items: center; }
.family-constraints summary, .rhythm-option summary, .locker-proof summary, .guide-place a, .city-guide > header a, .build-note a, .bike-law a, .home-proof > a { min-height: 44px; display: inline-flex; align-items: center; }
.site-footer nav { gap: 4px; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

@media (max-width: 1500px) {
  .site-header .nav-action { display: none; }
}

@media (max-width: 1060px) {
  :root { --content: calc(100vw - 28px); }
  .nav-shell { grid-template-columns: 1fr auto; gap: 8px 16px; padding: 10px 0 8px; }
  .site-header nav { grid-column: 1 / -1; grid-row: 2; justify-content: flex-start; gap: 8px; overflow-x: auto; padding-bottom: 2px; scrollbar-width: none; }
  .site-header nav::-webkit-scrollbar { display: none; }
  .site-header nav a { flex: 0 0 auto; padding: 8px 10px; border: 1px solid rgba(255,255,255,.3); }
  .site-header nav a[aria-current="page"] { order: -1; }
  .site-header nav::after { position: sticky; right: 0; flex: 0 0 auto; min-height: 44px; display: inline-flex; align-items: center; padding: 8px 10px; content: "meer →"; color: var(--yellow); background: var(--navy); border-left: 1px solid rgba(255,255,255,.4); font-size: .72rem; font-weight: 800; text-transform: uppercase; pointer-events: none; }
  .decision-stage { grid-template-columns: 1fr 1.25fr; }
  .home-stage { grid-template-columns: 1fr 1fr; }
  .pass-fields { grid-template-columns: 1fr; }
  .service-pass::after { display: none; }
  .ticket-grid { grid-template-columns: 1fr; max-width: 760px; }
  .brass-rail { top: 150px; left: 50%; width: 10px; height: calc(100% - 170px); border: 0; }
  .brass-rail i { display: none; }
  .situation-strip { grid-template-columns: repeat(2, 1fr); }
  .situation-strip > div:nth-child(3) { border-right: 0; }.situation-strip > div:nth-child(-n+3) { border-bottom: 1px solid var(--line); }
  .discovery-stage { grid-template-columns: 1fr 1fr; }
  .city-map-stage { grid-template-columns: minmax(0, 1.45fr) minmax(250px, .55fr); }
  .mapped-place-ledger article { grid-template-columns: 48px 1fr auto; }.mapped-place-ledger dl { grid-column: 2 / -1; }.mapped-place-ledger > article > a { grid-column: 3; grid-row: 1; }
  .guide-mosaic { grid-template-columns: 1fr 1fr; grid-template-rows: repeat(2, 360px); }
  .guide-place.place-1, .guide-place.place-2, .guide-place.place-4 { grid-column: auto; grid-row: auto; }
  .day-route-list article { grid-template-columns: 110px 1fr; }.route-condition { grid-column: 2; }
  .beer-choice-list article { grid-template-columns: 46px .75fr 1.25fr; }.beer-choice-list a { grid-column: 2 / -1; justify-self: start; }
  .local-highlights > div { grid-template-columns: 1.15fr .85fr; }.local-highlight:last-child { grid-column: 1 / -1; min-height: 300px; }
  .huiskamer-perk { grid-template-columns: 1fr auto; }.huiskamer-perk-actions { grid-column: 1 / -1; justify-self: start; }
  .tool-stage { grid-template-columns: 1fr 1.15fr; }
  .today-option { grid-template-columns: 42px 1fr; }.today-option dl, .today-option > div:last-child { grid-column: 2; }
  .rhythm-option dl { grid-template-columns: 1fr; }.rhythm-option dl div { border-top: 1px dotted rgba(255,255,255,.35); }
  .swap-row { grid-template-columns: 42px 1fr; }.swap-row dl { grid-column: 2; }
  .truth-ledger { grid-template-columns: 1fr; align-items: start; }
  .family-destinations > header { grid-template-columns: 1fr 1fr; }.family-destinations > header span { grid-column: 1 / -1; }
  .rain-rule { grid-template-columns: 1fr 1fr; }.rain-rule > p:last-child { grid-column: 1 / -1; }
  .entity-ledger article { grid-template-columns: 52px 1fr auto; }.entity-ledger dl { grid-column: 2 / -1; }.entity-ledger > article > a { grid-column: 3; grid-row: 1; }
  .water-context { grid-template-columns: 1fr 1fr; }.water-context a { grid-column: 2; }
  .lunch-stage { grid-template-columns: 1fr 1fr; }.lunch-workbench { grid-template-columns: minmax(0,1fr) minmax(400px,1fr); }.lunch-results-board { padding: 24px; }.lunch-directory article { grid-template-columns: 40px .8fr 1fr; }.lunch-directory article > div:last-child { grid-column: 2 / -1; grid-row: 2; display: flex; align-items: center; }
  .arrival-hero { grid-template-columns: 1fr 1fr; }.parking-route { padding: 24px 22px; }.parking-route-caveat { grid-template-columns: 1fr auto; }.parking-route-caveat span { grid-column: 1; }.parking-route-caveat a { grid-column: 2; grid-row: 1 / 3; }.arrival-workbench { grid-template-columns: minmax(0, 1.1fr) minmax(360px, .9fr); }.arrival-status { grid-template-columns: auto 1fr; }.arrival-status small { grid-column: 2; text-align: left; }
  .arrival-option { grid-template-columns: 42px 1fr; }.arrival-option dl, .arrival-actions { grid-column: 2; }.bike-law, .locker-feature { grid-template-columns: 1fr; }.locker-proof { padding: 22px 0 0; border-left: 0; border-top: 1px solid var(--navy); }
}

@media (max-width: 760px) {
  body { font-size: 17px; }
  :root { --content: calc(100vw - 20px); }
  .nav-shell { min-height: 68px; gap: 8px 10px; padding-top: 8px; }
  .wordmark span { display: none; }.wordmark strong { font-size: 1.15rem; }.nav-action { padding: 10px 12px; font-size: .75rem; }
  .site-header nav { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100vw - 40px) / 3); gap: 8px; margin-right: 0; padding-right: 0; scroll-snap-type: x proximity; }.site-header nav a { min-height: 44px; justify-content: center; padding: 8px 6px; text-align: center; scroll-snap-align: start; }.site-header nav::after { display: none; }
  .decision-stage { margin-top: 10px; grid-template-columns: 1fr; border-width: 2px; }
  .home-stage { grid-template-columns: 1fr; min-height: 0; border-width: 2px; }.home-stage > div { padding: 38px 22px; }.home-stage figure { min-height: 320px; }.home-proof > div { grid-template-columns: 1fr; }.home-proof p + p { padding-left: 0; border-left: 0; }
  .service-pass { padding: 28px 20px 30px; outline-offset: -7px; }
  h1 { max-width: 16ch; font-size: 2.125rem; }
  .time-choice { display: grid; grid-template-columns: repeat(3, 1fr); }.time-choice label, .time-choice span { width: 100%; min-width: 0; }
  .appointment-field { grid-template-columns: 1fr 92px; }
  .route-map { min-height: 0; grid-template-rows: 360px auto; }.route-map .leaflet-container, #breda-route-map { min-height: 360px; }
  .map-caption { grid-template-columns: 1fr; gap: 12px; padding: 16px 18px; }.map-caption > a { justify-self: start; }.map-key { gap: 8px 12px; }
  .results-rail { padding-top: 28px; }.rail-heading { align-items: start; flex-direction: column; gap: 8px; }.rail-heading h2 { font-size: 1.75rem; }
  .brass-rail { top: 190px; left: 25px; }
  .result-ticket { margin-left: 8px; }
  .result-ticket:nth-child(n+2) .ticket-body > p:not(.ticket-reason) { display: none; }
  .result-ticket:nth-child(n+2) .ticket-body { display: grid; grid-template-columns: 1fr; gap: 12px; padding: 16px 20px 20px; }.result-ticket:nth-child(n+2) .ticket-actions { justify-content: flex-start; flex-wrap: wrap; }
  .situation-strip { grid-template-columns: 1fr; }.situation-strip > div { min-height: 84px; border-right: 0; border-bottom: 1px solid var(--line); }
  .discovery-stage { grid-template-columns: 1fr; border-width: 2px; }.discovery-stage > div { padding: 38px 22px; }.discovery-stage figure { min-height: 320px; }
  .city-navigator { margin: 68px auto 82px; }.city-navigator-head { grid-template-columns: 1fr; gap: 18px; }.city-navigator-head h2 { font-size: 2.125rem; }.city-weather { min-height: 82px; padding: 14px 16px; }
  .city-map-stage { grid-template-columns: 1fr; min-height: 0; border-width: 2px; }.city-map-frame { grid-template-rows: 390px auto; }.city-map-frame .leaflet-container, #breda-city-map { min-height: 390px; }.city-map-caption { align-items: flex-start; flex-direction: column; padding: 14px 16px; }.city-map-caption a { width: 100%; justify-content: center; }.city-map-aside { padding: 26px 20px; border-left: 0; border-top: 1px solid rgba(255,255,255,.22); }.city-map-aside h3 { max-width: none; font-size: 1.8rem; }.city-map-legend { gap: 7px 10px; }
  .mapped-place-ledger { margin-top: 28px; }.mapped-place-ledger article { grid-template-columns: 38px 1fr; gap: 11px 12px; padding: 21px 0; }.mapped-place-ledger dl, .mapped-place-ledger > article > a { grid-column: 2; grid-row: auto; }.mapped-place-ledger dl { grid-template-columns: 1fr; }.mapped-place-ledger dl div { padding: 9px 0; border-left: 0; border-top: 1px solid var(--line); }.mapped-place-ledger > article > a { justify-self: start; }
  .city-guide, .day-routes, .hospitality-directory, .beer-guide, .local-highlights, .source-book { margin: 72px auto; }
  .city-guide > header, .hospitality-directory > header, .source-book > header { align-items: start; flex-direction: column; gap: 16px; }
  .city-guide h2, .day-routes h2, .hospitality-directory h2, .source-book h2, .boat-band h2 { font-size: 2.125rem; }
  .guide-mosaic { grid-template-columns: 1fr; grid-template-rows: repeat(4, 330px); }
  .day-routes > header { grid-template-columns: 1fr; gap: 12px; }
  .day-route-list article { grid-template-columns: 1fr; gap: 12px; }.route-condition { grid-column: auto; }
  .route-meta { display: flex; align-items: baseline; gap: 10px; }
  .venue-table article { grid-template-columns: 1fr; gap: 8px; padding: 20px 0; }.venue-table article > div:last-child { justify-content: flex-start; }
  .beer-guide > header { grid-template-columns: 1fr; gap: 10px; }.beer-choice-list article { grid-template-columns: 38px 1fr; gap: 10px 12px; padding: 22px 0; }.beer-choice-list article > div:nth-child(3), .beer-choice-list a { grid-column: 2; }.beer-choice-list a { width: 100%; justify-content: center; margin-top: 4px; padding: 12px 14px; }
  .local-highlights > header { grid-template-columns: 1fr; gap: 10px; }.local-highlights > div { grid-template-columns: 1fr; }.local-highlight, .local-highlight:last-child { grid-column: auto; min-height: 0; padding: 28px 22px; }.local-highlight > a { width: 100%; justify-content: space-between; margin-top: 28px; padding: 13px 16px; }.local-offer { margin: 22px 0 0; padding: 18px 16px; }
  .huiskamer-perk { grid-template-columns: 1fr; gap: 18px; margin: 42px auto 72px; padding: 28px 22px; }.huiskamer-perk-actions { grid-column: auto; width: 100%; }
  .build-note { grid-template-columns: 1fr; gap: 8px; padding: 24px 20px; }
  .boat-band { grid-template-columns: 1fr; }.boat-band > div:first-child { max-height: 340px; }.boat-band > div:last-child { padding: 42px 20px 50px; }
  .source-book > div { grid-template-columns: 1fr; }.source-book > div a:nth-child(n) { padding: 14px 0; border-left: 0; }
  .site-footer { grid-template-columns: 1fr; gap: 22px; padding: 42px 20px; }
  .tool-stage { grid-template-columns: 1fr; margin-top: 10px; border-width: 2px; }.tool-intro, .tool-panel { padding: 32px 20px; }.tool-controls { grid-template-columns: 1fr; }.tool-controls button { grid-column: 1; }
  .today-option { grid-template-columns: 34px 1fr; gap: 10px 12px; }.today-option dl, .today-option > div:last-child { grid-column: 1 / -1; margin-left: 46px; }.today-agenda { grid-template-columns: 1fr; gap: 18px; margin: 68px auto; padding: 30px 22px; }.today-agenda > a { width: 100%; justify-content: center; }
  .event-agenda { margin: 64px auto; padding: 26px 20px; }.event-agenda > header { grid-template-columns: 1fr; gap: 16px; }.event-card { grid-template-columns: 1fr; grid-template-rows: auto; gap: 10px; padding: 22px 0; }.event-card > div:first-child, .event-card h3, .event-card > p:not(.event-access), .event-card .event-access, .event-card > div:last-child { grid-column: 1; grid-row: auto; }.event-card > div:first-child { grid-template-columns: 1fr auto; }.event-card .event-access { padding: 12px 0; border-top: 1px solid var(--line); border-left: 0; }.event-card > div:last-child { grid-template-columns: 1fr 1fr; }.event-card > div:last-child a { justify-content: center; text-align: center; }
  .today-directory { margin: 68px auto; }.today-directory > header { grid-template-columns: 1fr; gap: 10px; }.today-directory article { grid-template-columns: 34px 1fr; gap: 10px 12px; }.today-directory article > p, .today-directory article > a { grid-column: 2; }.today-directory article > a { justify-self: start; }
  .family-constraints > div { grid-template-columns: 1fr; }
  .family-counts { grid-template-columns: repeat(3, 1fr); }.family-timeline { grid-template-columns: 1fr 1fr; }.family-timeline li:nth-child(2) { border-right: 0; }
  .rhythm-option { grid-template-columns: 72px 1fr; gap: 12px; }.rhythm-time { width: 68px; height: 68px; }.rhythm-time strong { font-size: 1.45rem; }
  .swap-row { grid-template-columns: 34px 1fr; gap: 10px; }.swap-row dl { grid-column: 1 / -1; margin-left: 44px; }
  .truth-ledger, .rain-rule, .water-context, .family-destinations { margin: 68px auto; }.truth-ledger > div { grid-template-columns: 1fr; }.truth-ledger > div p { padding: 10px 0; border-left: 0; border-top: 1px solid var(--line); }.rain-rule { grid-template-columns: 1fr; padding: 28px 20px; }.rain-rule > p:last-child { grid-column: auto; }
  .family-destinations > header { grid-template-columns: 1fr; gap: 10px; }.family-destinations > header span { grid-column: auto; }.family-destinations article { grid-template-columns: 42px 1fr; gap: 12px; }.family-destinations article > div:last-child { grid-column: 2; }
  .atlas-head { grid-template-columns: 1fr; min-height: 0; border-width: 2px; }.atlas-head > div:first-child { padding: 38px 22px; }.access-key { min-height: 240px; }.access-key strong { font-size: 2.35rem; }
  .entity-atlas { margin: 68px auto; }.entity-atlas > header { grid-template-columns: 1fr; }.atlas-filters { justify-content: flex-start; overflow: visible; flex-wrap: wrap; padding-bottom: 8px; }.atlas-filters button { min-height: 44px; flex: 0 0 auto; }
  .entity-ledger article { grid-template-columns: 42px 1fr; gap: 12px; }.entity-ledger dl { grid-column: 1 / -1; grid-template-columns: 1fr; }.entity-ledger dl div { padding: 10px 0; border-left: 0; border-top: 1px solid var(--line); }.entity-ledger > article > a { grid-column: 2; grid-row: auto; justify-self: start; }
  .water-context { grid-template-columns: 1fr; padding: 30px 20px; }.water-context a { grid-column: auto; }
  .lunch-stage { grid-template-columns: 1fr; border-width: 2px; }.lunch-stage > header { padding: 22px 18px; }.lunch-stage > header > p:not(.tool-kicker), .lunch-stage .direct-answer { display: none; }.lunch-stage > div { padding: 18px; }.lunch-controls { grid-template-columns: 1fr; gap: 10px; }.lunch-controls label { gap: 4px; }.lunch-refine, .lunch-controls > p { grid-column: 1; }.lunch-refine > div { grid-template-columns: 1fr; }.lunch-controls > p { font-size: .76rem; line-height: 1.35; }.lunch-workbench { grid-template-columns: 1fr; margin-top: 12px; border-width: 2px; }.lunch-status { grid-template-columns: 1fr; gap: 4px; padding: 14px 16px; }.lunch-status small { text-align: left; }.lunch-results-board { grid-column: 1; grid-row: auto; padding: 22px 18px; }.lunch-option { grid-template-columns: 32px 1fr; gap: 8px 12px; }.lunch-option dl, .lunch-option details, .lunch-actions { grid-column: 1 / -1; margin-left: 44px; }.lunch-option dl { grid-template-columns: 1fr; }.lunch-actions button, .lunch-actions a { flex: 1 1 145px; }.lunch-map-frame { grid-column: 1; grid-row: auto; grid-template-rows: 340px auto; border-top: 1px solid rgba(255,255,255,.28); border-right: 0; }.lunch-map-frame #breda-lunch-map, .lunch-map-frame .leaflet-container { min-height: 340px; }.lunch-answers, .lunch-directory { margin: 64px auto; }.lunch-answers > header, .lunch-directory > header { grid-template-columns: 1fr; gap: 12px; }.lunch-answers article { grid-template-columns: 1fr; gap: 8px; }.lunch-directory article { grid-template-columns: 36px 1fr; gap: 8px 12px; }.lunch-directory article > p, .lunch-directory article > div:last-child { grid-column: 2; grid-row: auto; }.lunch-directory article > div:last-child { display: grid; }
  .arrival-hero { grid-template-columns: 1fr; min-height: 0; border-width: 2px; }.arrival-hero > header { padding: 30px 22px; }.arrival-hero > div { min-width: 0; padding: 22px 20px; }.arrival-time-grid { grid-template-columns: minmax(0, 1fr); }.arrival-refine:not([open]) summary { margin-bottom: 0; }.parking-routes { margin: 64px auto 16px; }.parking-routes > header { grid-template-columns: 1fr; gap: 12px; }.parking-route-list { grid-template-columns: 1fr; border-width: 2px; }.parking-route { padding: 24px 20px; }.parking-route.is-selected { box-shadow: inset 5px 0 var(--orange); }.parking-route dl { grid-template-columns: 1fr; }.parking-route-actions button, .parking-route-actions a { flex: 1 1 145px; }.parking-route-caveat { grid-template-columns: 1fr; gap: 8px; padding: 16px; }.parking-route-caveat strong { white-space: normal; }.parking-route-caveat span, .parking-route-caveat a { grid-column: 1; grid-row: auto; }.parking-route-caveat a { width: 100%; justify-content: center; white-space: normal; }.arrival-workbench { grid-template-columns: 1fr; margin-top: 16px; border-width: 2px; }.arrival-status { grid-template-columns: 1fr; gap: 3px; padding: 14px 16px; }.arrival-status small { grid-column: auto; }.arrival-map-frame { grid-template-rows: 340px auto; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.28); }.arrival-map-frame #breda-arrival-map, .arrival-map-frame .leaflet-container { min-height: 340px; }.arrival-map-caption { align-items: flex-start; flex-direction: column; padding: 14px 16px; }.arrival-board { padding: 24px 18px; }.arrival-workbench .arrival-option { grid-template-columns: 34px 1fr; }.arrival-workbench .arrival-option dl, .arrival-workbench .arrival-actions { grid-column: 1 / -1; margin-left: 46px; }.arrival-actions button, .arrival-actions a { flex: 1 1 145px; justify-content: center; text-align: center; }.arrival-static-directory { margin: 64px auto; }.arrival-static-directory > header, .arrival-static-directory > div { grid-template-columns: 1fr; }.arrival-static-directory > header { gap: 10px; }.arrival-static-directory > div > section:first-child, .arrival-static-directory > div > section + section { padding: 0; border-left: 0; }.arrival-static-directory article { grid-template-columns: 1fr; }.arrival-static-directory article > div { grid-column: 1; grid-row: auto; }.arrival-static-directory article a { justify-self: start; }
  .arrival-option { grid-template-columns: 34px 1fr; gap: 10px; }.arrival-option dl, .arrival-actions { grid-column: 1 / -1; margin-left: 44px; }.arrival-option dl { grid-template-columns: 1fr; }.bike-law, .locker-feature, .guide-network { margin: 68px auto; }.bike-law { grid-template-columns: 1fr; padding: 28px 20px; }.locker-feature { grid-template-columns: 1fr; padding: 28px 20px; }.guide-network { grid-template-columns: 1fr; }.guide-network > div { grid-template-columns: 1fr; }
}

@media (max-width: 520px) {
  .arrival-time-grid { grid-template-columns: minmax(0, 1fr); }
  .arrival-refine summary { gap: 6px 12px; }
  .arrival-refine-action { padding-left: 9px; }
}

.toilet-hero { width: var(--content); min-height: 480px; margin: 18px auto 0; display: grid; grid-template-columns: minmax(0,1.15fr) minmax(400px,.85fr); color: white; background: var(--green); border: 4px solid var(--navy); }
.toilet-hero > header { align-self: center; padding: clamp(32px,5vw,64px); }
.toilet-hero h1 { max-width: 18ch; }
.toilet-hero > header > p:not(.direct-answer) { max-width: 60ch; color: #d6e0dc; }
.toilet-hero .direct-answer { max-width: 64ch; margin-top: 24px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.48); }
.toilet-hero .direct-answer strong { color: var(--yellow); }
.toilet-hero > div { padding: clamp(24px,3vw,40px); color: var(--navy); background: var(--yellow); }
.toilet-controls { display: grid; gap: 16px; }
.toilet-controls > label, .toilet-controls details label { display: grid; gap: 4px; font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.toilet-controls select, .toilet-controls input { width: 100%; height: 48px; min-height: 48px; padding: 10px 12px; color: var(--ink); background: var(--paper); border: 1px solid var(--navy); border-radius: 0; font-size: 1rem; }
.toilet-controls fieldset { display: grid; grid-template-columns: 1fr 1fr; margin: 0; padding: 0; border: 0; }
.toilet-controls legend { grid-column: 1 / -1; margin-bottom: 6px; font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.toilet-controls fieldset label { position: relative; }
.toilet-controls fieldset input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.toilet-controls fieldset span { min-height: 48px; display: grid; place-items: center; padding: 10px 12px; border: 1px solid var(--navy); font-size: .78rem; font-weight: 800; cursor: pointer; }
.toilet-controls fieldset label:nth-of-type(even) span { border-left: 0; }
.toilet-controls fieldset label:nth-of-type(n+3) span { border-top: 0; }
.toilet-controls fieldset input:checked + span { color: white; background: var(--navy); }
.toilet-controls fieldset input:focus-visible + span { outline: 3px solid var(--focus); outline-offset: 3px; }
.toilet-controls details { border-top: 1px solid rgba(6,24,45,.45); border-bottom: 1px solid rgba(6,24,45,.45); }
.toilet-controls summary { min-height: 44px; display: flex; align-items: center; font-size: .76rem; font-weight: 800; cursor: pointer; }
.toilet-controls details > div { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 4px 0 12px; }
.toilet-controls > p { margin: 0; padding-top: 8px; border-top: 1px solid rgba(6,24,45,.42); font-size: .76rem; }
.toilet-workbench { width: var(--content); min-height: 640px; margin: 24px auto 0; display: grid; grid-template-columns: minmax(0,1.15fr) minmax(420px,.85fr); grid-template-rows: auto 1fr; color: white; background: var(--navy); border: 4px solid var(--navy); }
.toilet-status { grid-column: 1 / -1; display: grid; grid-template-columns: auto 1fr auto; gap: 16px; align-items: center; padding: 16px 20px; color: var(--navy); background: var(--yellow); }
.toilet-status span { font-size: .875rem; font-weight: 800; text-transform: uppercase; }
.toilet-status strong { font-size: 1.05rem; }
.toilet-status small { max-width: 50ch; text-align: right; font-size: .875rem; }
.toilet-map-frame { min-width: 0; display: grid; grid-template-rows: minmax(540px,1fr) auto; border-right: 1px solid rgba(255,255,255,.25); }
.toilet-map-frame #breda-toilet-map, .toilet-map-frame .leaflet-container { min-height: 540px; background: #dbe3dc; }
.toilet-map-fallback { height: 100%; min-height: 540px; display: grid; align-content: center; justify-items: center; padding: 32px; color: var(--navy); background: var(--paper); text-align: center; }
.toilet-map-fallback p { max-width: 40ch; }
.toilet-map-caption { min-height: 64px; display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; padding: 12px 16px; color: white; background: var(--navy); font-size: .875rem; }
.toilet-map-caption span { display: inline-flex; align-items: center; gap: 8px; }
.toilet-map-caption i, .toilet-start-dot { width: 16px; height: 16px; display: inline-block; background: var(--orange); border: 2px solid white; border-radius: 50%; }
.toilet-map-caption .toilet-accessible-dot { background: var(--yellow); border-color: var(--navy); }
.toilet-map-caption .toilet-start-dot { background: var(--green); }
.toilet-results { padding: 28px 24px; }
.toilet-results > header { padding-bottom: 16px; border-bottom: 1px solid rgba(255,255,255,.42); }
.toilet-results h2 { max-width: 22ch; margin: 0; font-size: clamp(1.65rem,2.2vw,2.1rem); line-height: 1; }
.toilet-results header p { margin: 8px 0 0; color: #b8c5d0; }
.toilet-result { display: grid; grid-template-columns: 32px 1fr; gap: 8px 16px; padding: 20px 0 20px 18px; border-bottom: 1px solid rgba(255,255,255,.32); }
.toilet-rank { color: var(--yellow); font-size: 1.6rem; font-weight: 800; line-height: 1; }
.toilet-result-copy p { margin: 0 0 4px; font-size: .875rem; }
.toilet-result-copy h3 { margin: 0 0 4px; font-size: 1.35rem; line-height: 1.05; }
.toilet-result-copy strong { display: block; margin-top: 8px; color: var(--yellow); font-size: .875rem; }
.toilet-result dl { grid-column: 2; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 8px 0 0; }
.toilet-result dl div { padding-top: 8px; border-top: 1px dotted rgba(255,255,255,.42); }
.toilet-result dt { font-size: .875rem; text-transform: uppercase; opacity: .76; }
.toilet-result dd { margin: 4px 0 0; font-size: .875rem; font-weight: 700; }
.toilet-result details { grid-column: 2; font-size: .875rem; }
.toilet-critical-note { grid-column: 2; margin: 4px 0 0; padding: 10px 12px; color: var(--navy); background: var(--yellow); font-size: .875rem; font-weight: 750; }
.toilet-result summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; font-weight: 800; }
.toilet-result details p { margin: 0 0 8px; color: #c8d1da; }
.toilet-actions { grid-column: 2; display: flex; flex-wrap: wrap; gap: 8px; }
.toilet-actions button, .toilet-actions a { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; padding: 9px 12px; color: white; background: transparent; border: 1px solid rgba(255,255,255,.6); text-decoration: none; font-size: .875rem; font-weight: 800; cursor: pointer; }
.toilet-actions a { color: var(--navy); background: var(--yellow); border-color: var(--yellow); }
.toilet-result.is-selected { box-shadow: inset 4px 0 var(--orange); }
.toilet-map-marker-wrap, .toilet-start-marker-wrap { background: transparent; border: 0; }
.toilet-map-marker { width: 36px; height: 36px; margin: 4px; display: grid; place-items: center; color: white; background: var(--orange); border: 3px solid white; border-radius: 50%; font-size: .875rem; font-weight: 900; box-shadow: 0 4px 12px rgba(6,24,45,.24); }
.toilet-map-marker.is-accessible { color: var(--navy); background: var(--yellow); border-color: var(--navy); }
.toilet-start-marker { width: 22px; height: 22px; display: block; margin: 11px; background: var(--green); border: 4px solid white; border-radius: 50%; box-shadow: 0 3px 10px rgba(6,24,45,.28); }
.toilet-map-frame .leaflet-control-zoom a { width: 44px; height: 44px; line-height: 44px; }
.nieuwstraat-hub { width: var(--content); margin: 88px auto; display: grid; grid-template-columns: 1.15fr .85fr; gap: 48px; padding: 40px; color: var(--navy); background: var(--yellow); border: 3px solid var(--navy); }
.nieuwstraat-hub > div > p:first-child { margin: 0 0 8px; color: var(--green); font-size: .72rem; font-weight: 900; text-transform: uppercase; }
.nieuwstraat-hub h2 { max-width: 18ch; margin: 0; font-size: clamp(2rem,3.4vw,3.2rem); line-height: .96; }
.nieuwstraat-hub > div > p:not(:first-child) { max-width: 58ch; }
.nieuwstraat-hub-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.nieuwstraat-hub-actions a { min-height: 48px; display: inline-flex; align-items: center; padding: 10px 16px; color: white; background: var(--navy); text-decoration: none; font-weight: 800; }
.nieuwstraat-hub-actions a + a { color: var(--navy); background: transparent; border: 1px solid var(--navy); }
.nieuwstraat-hub dl { margin: 0; border-top: 3px solid var(--navy); }
.nieuwstraat-hub dl div { display: grid; grid-template-columns: .8fr 1.2fr; gap: 16px; padding: 12px 0; border-bottom: 1px solid rgba(6,24,45,.42); }
.nieuwstraat-hub dt { font-size: .7rem; font-weight: 800; text-transform: uppercase; }
.nieuwstraat-hub dd { margin: 0; }
.rondvaart-toilet { width: var(--content); margin: -56px auto 88px; display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: center; padding: 24px 28px; color: white; background: var(--green); }
.rondvaart-toilet p { max-width: 72ch; margin: 4px 0 0; }
.rondvaart-toilet a { min-height: 48px; display: inline-flex; align-items: center; padding: 10px 16px; color: var(--navy); background: var(--yellow); text-decoration: none; font-weight: 800; }
.toilet-trust { width: var(--content); margin: 88px auto; display: grid; grid-template-columns: 1.2fr .8fr; gap: 48px; padding: 32px 0; border-top: 3px solid var(--navy); border-bottom: 1px solid var(--line); }
.toilet-trust h2 { margin: 0; font-size: clamp(1.8rem,3vw,2.8rem); }
.toilet-trust p { max-width: 70ch; }
.toilet-trust > p { margin: 0; padding: 20px; color: white; background: var(--navy); }
.toilet-trust > p strong { display: block; color: var(--yellow); }
.toilet-directory { width: var(--content); margin: 88px auto; }
.toilet-directory > header { display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: end; margin-bottom: 24px; }
.toilet-directory h2 { margin: 0; font-size: clamp(2rem,3.4vw,3.2rem); line-height: .96; }
.toilet-directory header p { max-width: 72ch; }
.toilet-directory header > strong { max-width: 22ch; padding: 16px; color: white; background: var(--navy); }
.toilet-directory > div { border-top: 3px solid var(--navy); }
.toilet-directory article { display: grid; grid-template-columns: minmax(220px,.8fr) 1fr minmax(220px,.8fr) auto; gap: 20px; align-items: center; padding: 18px 0; border-bottom: 1px solid var(--line); }
.toilet-directory h3, .toilet-directory p { margin: 0; }
.toilet-directory article > p { color: var(--green); font-size: .78rem; font-weight: 800; }
.toilet-directory details { font-size: .76rem; }
.toilet-directory summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; font-weight: 800; }
.toilet-directory article > a { min-height: 44px; display: inline-flex; align-items: center; padding: 8px 12px; color: white; background: var(--navy); text-decoration: none; font-size: .72rem; font-weight: 800; }
.toilet-empty { padding: 24px; color: var(--navy); background: var(--yellow); }

.restaurant-stage { width: var(--content); margin: 18px auto 0; display: grid; grid-template-columns: minmax(0,1.08fr) minmax(420px,.92fr); color: white; background: var(--navy); border: 4px solid var(--navy); }
.restaurant-stage > header { align-self: center; padding: clamp(38px,5vw,72px); }
.restaurant-stage h1 { max-width: 17ch; font-size: clamp(2.25rem,3.2vw,2.875rem); }
.restaurant-stage > header > p { max-width: 60ch; color: #c8d1da; }
.restaurant-stage .direct-answer { margin-top: 24px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.38); }
.restaurant-stage .direct-answer strong { display: block; margin-bottom: 5px; color: var(--yellow); font-size: .875rem; text-transform: uppercase; }
.restaurant-stage > div { padding: clamp(26px,4vw,52px); color: var(--navy); background: var(--yellow); }
.restaurant-controls { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.restaurant-controls > label, .restaurant-controls details label { display: grid; gap: 6px; font-size: .875rem; font-weight: 800; }
.restaurant-controls select, .restaurant-controls input[type="date"], .restaurant-controls input[type="time"] { width: 100%; min-width: 0; height: 48px; min-height: 48px; padding: 10px 12px; color: var(--ink); background: var(--paper); border: 1px solid var(--navy); border-radius: 0; font-size: 16px; }
.restaurant-controls select { display: block; padding-right: 42px; -webkit-appearance: none; appearance: none; background-image: linear-gradient(45deg,transparent 50%,var(--navy) 50%),linear-gradient(135deg,var(--navy) 50%,transparent 50%); background-position: calc(100% - 18px) 20px,calc(100% - 12px) 20px; background-repeat: no-repeat; background-size: 6px 6px,6px 6px; }
.restaurant-controls fieldset { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4,1fr); gap: 0; margin: 0; padding: 0; border: 0; }
.restaurant-controls legend { margin-bottom: 7px; font-size: .875rem; font-weight: 800; }
.restaurant-controls fieldset label { position: relative; }
.restaurant-controls fieldset input { position: absolute; opacity: 0; pointer-events: none; }
.restaurant-controls fieldset span { min-height: 48px; display: grid; place-items: center; padding: 9px 8px; border: 1px solid var(--navy); border-right: 0; cursor: pointer; font-size: .875rem; font-weight: 800; text-align: center; }
.restaurant-controls fieldset label:last-child span { border-right: 1px solid var(--navy); }
.restaurant-controls fieldset input:checked + span { color: white; background: var(--navy); }
.restaurant-controls fieldset input:focus-visible + span { position: relative; z-index: 1; outline: 3px solid var(--focus); outline-offset: 2px; }
.restaurant-controls details { grid-column: 1 / -1; border-top: 1px solid rgba(6,24,45,.5); border-bottom: 1px solid rgba(6,24,45,.5); }
.restaurant-controls summary { min-height: 48px; display: flex; align-items: center; cursor: pointer; font-size: .875rem; font-weight: 800; }
.restaurant-controls details > div { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 2px 0 14px; }
.restaurant-controls details label:last-child { grid-column: 1 / -1; }
.restaurant-controls > p { grid-column: 1 / -1; margin: 0; font-size: .875rem; }

.restaurant-workbench { width: var(--content); min-height: 680px; margin: 24px auto 0; display: grid; grid-template-columns: minmax(440px,.92fr) minmax(0,1.08fr); grid-template-rows: auto auto; align-items: start; color: white; }
.restaurant-status { grid-column: 1 / -1; display: grid; grid-template-columns: auto 1fr minmax(260px,.7fr); gap: 18px; align-items: center; min-height: 72px; padding: 14px 20px; color: var(--navy); background: var(--yellow); border: 4px solid var(--navy); }
.restaurant-status span { font-size: .875rem; font-weight: 900; text-transform: uppercase; }
.restaurant-status strong { font-size: 1.05rem; }
.restaurant-status small { text-align: right; font-size: .875rem; }
.restaurant-results { min-width: 0; padding: 28px 24px; background: var(--navy); border: 0 solid var(--navy); border-width: 0 0 4px 4px; }
.restaurant-results > header { padding-bottom: 16px; border-bottom: 1px solid rgba(255,255,255,.42); }
.restaurant-results h2 { margin: 0; font-size: clamp(1.65rem,2.3vw,2.15rem); line-height: 1; }
.restaurant-results header p { margin: 8px 0 0; color: #c8d1da; font-size: .9rem; }
.restaurant-option { display: grid; grid-template-columns: 38px minmax(0,1fr); gap: 10px 14px; padding: 24px 0; border-bottom: 1px solid rgba(255,255,255,.32); }
.restaurant-option.is-selected { box-shadow: inset 4px 0 var(--orange); padding-left: 12px; }
.restaurant-rank { color: var(--yellow); font-size: 1.75rem; font-weight: 900; line-height: 1; }
.restaurant-option-copy p { margin: 0 0 5px; font-size: .875rem; }
.restaurant-option-copy h3 { margin: 0 0 5px; font-size: 1.45rem; line-height: 1.05; }
.restaurant-option address { margin-top: 6px; color: #c8d1da; font-size: .875rem; font-style: normal; }
.restaurant-option dl { grid-column: 2; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 16px; margin: 8px 0 0; }
.restaurant-option dl div { padding-top: 8px; border-top: 1px dotted rgba(255,255,255,.4); }
.restaurant-option dt { color: #c8d1da; font-size: .875rem; text-transform: uppercase; }
.restaurant-option dd { margin: 4px 0 0; font-size: .875rem; }
.restaurant-option details { grid-column: 2; font-size: .875rem; }
.restaurant-option summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; font-weight: 800; }
.restaurant-option details p { margin: 0 0 10px; color: #c8d1da; }
.restaurant-actions { grid-column: 2; display: flex; flex-wrap: wrap; gap: 8px; }
.restaurant-actions button, .restaurant-actions a { min-height: 46px; display: inline-flex; align-items: center; justify-content: center; padding: 10px 13px; color: white; background: transparent; border: 1px solid rgba(255,255,255,.62); font-size: 1rem; font-weight: 800; text-align: center; text-decoration: none; cursor: pointer; }
.restaurant-actions a:last-child { color: var(--navy); background: var(--yellow); border-color: var(--yellow); }
.restaurant-map-frame { position: sticky; top: 18px; min-width: 0; max-height: 704px; align-self: start; display: grid; grid-template-rows: 640px auto; border: 0 solid var(--navy); border-width: 0 4px 4px 0; }
.restaurant-map-frame #breda-restaurant-map, .restaurant-map-frame .leaflet-container { min-height: 600px; background: #dbe3dc; }
.restaurant-map-fallback { height: 100%; min-height: 600px; display: grid; align-content: center; justify-items: center; padding: 32px; color: var(--navy); background: var(--paper); text-align: center; }
.restaurant-map-fallback p { max-width: 40ch; }
.restaurant-map-frame.is-ready .restaurant-map-fallback { display: none; }
.restaurant-map-caption { min-height: 64px; display: flex; flex-wrap: wrap; gap: 14px 22px; align-items: center; padding: 12px 16px; background: var(--navy); font-size: .875rem; }
.restaurant-map-caption span { display: inline-flex; align-items: center; gap: 8px; }
.restaurant-map-caption i, .restaurant-start-dot { width: 16px; height: 16px; display: inline-block; background: var(--orange); border: 2px solid white; border-radius: 50%; }
.restaurant-map-caption .restaurant-start-dot { background: var(--green); }
.restaurant-marker-shell { background: transparent; border: 0; }
.restaurant-map-marker { width: 36px; height: 36px; margin: 4px; display: grid; place-items: center; color: white; background: var(--orange); border: 3px solid white; border-radius: 50%; font-size: .88rem; font-weight: 900; font-style: normal; }
.restaurant-map-marker i { font-style: normal; }
.restaurant-map-marker-start { background: var(--green); }
.restaurant-map-marker.is-selected { color: var(--navy); background: var(--yellow); border-color: var(--navy); }
.restaurant-map-frame .leaflet-control-zoom a { width: 44px; height: 44px; line-height: 44px; }
.restaurant-map-frame .leaflet-popup-content strong, .restaurant-map-frame .leaflet-popup-content span { display: block; }
.restaurant-map-frame .leaflet-popup-content span { margin-top: 4px; }
.restaurant-empty { padding: 24px 0; }
.restaurant-empty strong { color: var(--yellow); }

.restaurant-answers, .restaurant-directory { width: var(--content); margin: 88px auto; }
.restaurant-answers > header { display: grid; grid-template-columns: .85fr 1.15fr; gap: 42px; align-items: end; padding-bottom: 20px; border-bottom: 3px solid var(--navy); }
.restaurant-answers h2, .restaurant-directory h2 { max-width: 20ch; margin: 0; font-size: clamp(2rem,3.2vw,2.9rem); line-height: .98; }
.restaurant-answers > header p { max-width: 58ch; margin: 0; }
.restaurant-answers > div { display: grid; grid-template-columns: repeat(3,1fr); }
.restaurant-answers article { padding: 26px 26px 26px 0; border-bottom: 1px solid var(--line); }
.restaurant-answers article + article { padding-left: 26px; border-left: 1px solid var(--line); }
.restaurant-answers h3, .restaurant-answers p { margin-top: 0; }
.restaurant-partner { width: var(--content); margin: 88px auto; display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: center; padding: 30px 34px; color: white; background: var(--green); }
.restaurant-partner p { max-width: 72ch; margin: 5px 0 0; }
.restaurant-partner a { min-height: 48px; display: inline-flex; align-items: center; padding: 10px 16px; color: var(--navy); background: var(--yellow); font-weight: 800; text-decoration: none; }
.restaurant-directory > header { display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: end; margin-bottom: 24px; }
.restaurant-directory header p { max-width: 72ch; }
.restaurant-directory header > strong { max-width: 22ch; padding: 16px; color: white; background: var(--navy); }
.restaurant-directory > div { border-top: 3px solid var(--navy); }
.restaurant-directory article { display: grid; grid-template-columns: minmax(220px,.8fr) minmax(180px,.65fr) minmax(360px,1.25fr) auto; gap: 22px; align-items: start; padding: 22px 0; border-bottom: 1px solid var(--line); }
.restaurant-directory h3, .restaurant-directory p { margin: 0; }
.restaurant-directory article > div:first-child p { margin-top: 5px; color: var(--muted); font-size: .875rem; }
.restaurant-directory article > p { color: var(--green); font-size: .875rem; font-weight: 800; }
.restaurant-directory dl { display: grid; gap: 8px; margin: 0; }
.restaurant-directory dl div { display: grid; grid-template-columns: 104px 1fr; gap: 10px; }
.restaurant-directory dt { font-size: .875rem; font-weight: 800; text-transform: uppercase; }
.restaurant-directory dd { margin: 0; font-size: .875rem; }
.restaurant-directory article > div:last-child { display: flex; flex-wrap: wrap; gap: 8px; }
.restaurant-directory article > div:last-child a { min-height: 44px; display: inline-flex; align-items: center; padding: 8px 12px; color: white; background: var(--navy); font-size: 1rem; font-weight: 800; text-decoration: none; }

@media (max-width: 1060px) {
  .today-journey { grid-template-columns: minmax(340px,.9fr) minmax(0,1.1fr); }
  .weekend-workbench { grid-template-columns: minmax(340px,.9fr) minmax(0,1.1fr); }
  .weekend-directory article { grid-template-columns: 38px minmax(190px,.75fr) 1fr; }
  .weekend-directory article > a { grid-column: 3; }
  .today-guest-facility { grid-template-columns: minmax(190px,.55fr) minmax(0,1.45fr); }
  .today-guest-facility a { grid-column: 2; justify-self: start; }
  .toilet-hero { grid-template-columns: 1fr 1fr; }
  .toilet-workbench { grid-template-columns: minmax(0,1fr) minmax(380px,.9fr); }
  .toilet-status { grid-template-columns: auto 1fr; }
  .toilet-status small { grid-column: 2; text-align: left; }
  .toilet-directory article { grid-template-columns: minmax(200px,.8fr) 1fr auto; }
  .toilet-directory details { grid-column: 2; grid-row: 2; }
  .toilet-directory article > a { grid-column: 3; grid-row: 1 / 3; }
}

@media (max-width: 760px) {
  .today-moment-fields > div { grid-template-columns: 1fr; }
  .today-option { grid-template-columns: 1fr; gap: 10px; padding: 22px 0; }
  .today-option dl, .today-option > div:last-child { grid-column: 1; margin-left: 0; }
  .today-option dl { margin-top: 4px; }
  .today-rank { color: var(--orange); }
  .today-option-actions { display: grid; grid-template-columns: 1fr; }
  .today-option-actions a { width: 100%; justify-content: center; }
  .today-plan-tools { display: grid; grid-template-columns: 1fr; }
  .today-plan-tools button { width: 100%; }
  .today-journey { grid-template-columns: 1fr; margin: 16px auto 64px; border-width: 2px; }
  .today-journey-copy { padding: 28px 20px; }
  .today-journey li { grid-template-columns: 76px minmax(0,1fr); gap: 12px; }
  .today-map-frame { grid-template-rows: 340px auto; }
  .today-map-frame #breda-today-map, .today-map-frame .leaflet-container, .today-map-fallback { min-height: 340px; }
  .today-journey-actions { display: grid; grid-template-columns: 1fr; }
  .today-journey-actions a { width: 100%; justify-content: center; }
  .today-guest-facility { grid-template-columns: 1fr; gap: 12px; margin: 0 auto 64px; padding: 24px 20px; }
  .today-guest-facility a { grid-column: 1; width: 100%; justify-content: center; }
  .weekend-time-fields > div { grid-template-columns: 1fr; }
  .weekend-day-passes dl { grid-template-columns: 1fr; }
  .weekend-day-actions { display: grid; grid-template-columns: 1fr; }
  .weekend-day-actions a { width: 100%; justify-content: center; }
  .weekend-workbench { grid-template-columns: 1fr; margin: 16px auto 64px; border-width: 2px; }
  .weekend-timelines { padding: 28px 20px; }
  .weekend-timelines li { grid-template-columns: 72px minmax(0,1fr); gap: 12px; }
  .weekend-map-frame { grid-template-rows: 340px auto; }
  .weekend-map-frame #breda-weekend-map, .weekend-map-frame .leaflet-container, .weekend-map-frame .today-map-fallback { min-height: 340px; }
  .weekend-agenda { grid-template-columns: 1fr; gap: 18px; margin: 64px auto; padding: 28px 20px; }
  .weekend-agenda > a { width: 100%; justify-content: center; }
  .weekend-directory { margin: 64px auto; }
  .weekend-directory > header { grid-template-columns: 1fr; gap: 12px; }
  .weekend-directory article { grid-template-columns: 34px minmax(0,1fr); gap: 10px 12px; }
  .weekend-directory article dl, .weekend-directory article > a { grid-column: 2; }
  .weekend-directory article > a { justify-self: start; }
  .toilet-hero { grid-template-columns: 1fr; min-height: 0; margin-top: 10px; border-width: 2px; }
  .toilet-hero > header { padding: 30px 22px; }
  .toilet-hero > div { padding: 22px 20px; }
  .toilet-controls details > div { grid-template-columns: 1fr; }
  .toilet-workbench { grid-template-columns: 1fr; margin-top: 16px; border-width: 2px; }
  .toilet-status { grid-template-columns: 1fr; gap: 4px; padding: 14px 16px; }
  .toilet-status small { grid-column: auto; }
  .toilet-map-frame { grid-template-rows: 340px auto; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.25); }
  .toilet-results { order: 2; }
  .toilet-map-frame { order: 3; }
  .toilet-map-frame #breda-toilet-map, .toilet-map-frame .leaflet-container, .toilet-map-fallback { min-height: 340px; }
  .toilet-results { padding: 24px 18px; }
  .toilet-result { grid-template-columns: 32px 1fr; }
  .toilet-result dl { grid-template-columns: 1fr; }
  .toilet-actions button, .toilet-actions a { flex: 1 1 140px; }
  .nieuwstraat-hub { grid-template-columns: 1fr; gap: 28px; margin: 64px auto; padding: 28px 20px; }
  .nieuwstraat-hub-actions a { width: 100%; justify-content: center; }
  .rondvaart-toilet { grid-template-columns: 1fr; margin: -32px auto 64px; padding: 24px 20px; }
  .rondvaart-toilet a { width: 100%; justify-content: center; }
  .toilet-trust { grid-template-columns: 1fr; gap: 16px; margin: 64px auto; }
  .toilet-directory { margin: 64px auto; }
  .toilet-directory > header { grid-template-columns: 1fr; gap: 12px; }
  .toilet-directory header > strong { max-width: none; }
  .toilet-directory article { grid-template-columns: 1fr; gap: 8px; }
  .toilet-directory details, .toilet-directory article > a { grid-column: 1; grid-row: auto; }
  .toilet-directory article > a { justify-self: start; }
}

@media (max-width: 1060px) {
  .restaurant-stage { grid-template-columns: 1fr 1fr; }
  .restaurant-workbench { grid-template-columns: minmax(380px,.9fr) minmax(0,1.1fr); }
  .restaurant-status { grid-template-columns: auto 1fr; }
  .restaurant-status small { grid-column: 2; text-align: left; }
  .restaurant-directory article { grid-template-columns: minmax(210px,.75fr) minmax(170px,.55fr) 1fr; }
  .restaurant-directory article > div:last-child { grid-column: 3; }
}

@media (max-width: 760px) {
  .restaurant-stage { grid-template-columns: 1fr; margin-top: 10px; border-width: 2px; }
  .restaurant-stage > header, .restaurant-stage > div { padding: 28px 20px; }
  .restaurant-stage h1 { font-size: clamp(2.05rem,9vw,2.45rem); line-height: 1.02; }
  .restaurant-controls { grid-template-columns: 1fr; }
  .restaurant-controls > label, .restaurant-controls fieldset, .restaurant-controls details, .restaurant-controls > p { grid-column: 1; }
  .restaurant-controls fieldset { grid-template-columns: 1fr 1fr; gap: 8px; }
  .restaurant-controls fieldset span, .restaurant-controls fieldset label:last-child span { border: 1px solid var(--navy); }
  .restaurant-controls details > div { grid-template-columns: 1fr; }
  .restaurant-controls details label:last-child { grid-column: 1; }
  .restaurant-workbench { grid-template-columns: 1fr; margin-top: 16px; background: var(--navy); border: 2px solid var(--navy); }
  .restaurant-status { grid-template-columns: 1fr; gap: 4px; padding: 14px 16px; border: 0; }
  .restaurant-status small { grid-column: 1; }
  .restaurant-results { order: 2; padding: 24px 18px; border: 0; border-bottom: 1px solid rgba(255,255,255,.25); }
  .restaurant-map-frame { position: static; order: 3; max-height: none; grid-template-rows: 340px auto; border: 0; }
  .restaurant-map-frame #breda-restaurant-map, .restaurant-map-frame .leaflet-container, .restaurant-map-fallback { min-height: 340px; }
  .restaurant-option { grid-template-columns: 32px minmax(0,1fr); }
  .restaurant-option dl { grid-template-columns: 1fr; }
  .restaurant-actions button, .restaurant-actions a { flex: 1 1 145px; }
  .restaurant-answers, .restaurant-directory, .restaurant-partner { margin: 64px auto; }
  .restaurant-answers > header, .restaurant-directory > header { grid-template-columns: 1fr; gap: 12px; }
  .restaurant-answers > div { grid-template-columns: 1fr; }
  .restaurant-answers article, .restaurant-answers article + article { padding: 22px 0; border-left: 0; }
  .restaurant-partner { grid-template-columns: 1fr; padding: 26px 20px; }
  .restaurant-partner a { width: 100%; justify-content: center; }
  .restaurant-directory header > strong { max-width: none; }
  .restaurant-directory article { grid-template-columns: 1fr; gap: 10px; }
  .restaurant-directory article > div:last-child { grid-column: 1; }
  .restaurant-directory dl div { grid-template-columns: 90px 1fr; }
}

.shopping-stage { width: var(--content); margin: 18px auto 0; display: grid; grid-template-columns: minmax(390px,.86fr) minmax(0,1.14fr); color: white; background: var(--navy); border: 4px solid var(--navy); }
.shopping-intro { padding: clamp(34px,4.8vw,64px); }
.shopping-intro h1 { max-width: 19ch; margin: 10px 0 14px; font-size: clamp(2.15rem,3.1vw,2.875rem); line-height: 1; }
.shopping-intro > p { max-width: 60ch; color: #c8d1da; }
.shopping-intro .direct-answer { margin: 24px 0; padding: 18px 0; border-top: 1px solid rgba(255,255,255,.38); border-bottom: 1px solid rgba(255,255,255,.38); }
.shopping-intro .direct-answer strong { display: block; margin-bottom: 5px; color: var(--yellow); font-size: .78rem; text-transform: uppercase; }
.shopping-controls { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.shopping-controls > label { display: grid; gap: 6px; min-width: 0; color: white; font-size: .78rem; font-weight: 800; }
.shopping-controls select { width: 100%; min-width: 0; height: 48px; padding: 10px 38px 10px 11px; color: var(--ink); background-color: white; border: 1px solid rgba(255,255,255,.7); border-radius: 0; font-size: 16px; -webkit-appearance: none; appearance: none; background-image: linear-gradient(45deg,transparent 50%,var(--navy) 50%),linear-gradient(135deg,var(--navy) 50%,transparent 50%); background-position: calc(100% - 18px) 20px,calc(100% - 12px) 20px; background-repeat: no-repeat; background-size: 6px 6px,6px 6px; }
.shopping-controls select:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.shopping-controls .shopping-locker { grid-column: 1 / -1; grid-template-columns: 22px 1fr; align-items: start; min-height: 48px; padding: 12px 0; border-top: 1px solid rgba(255,255,255,.38); border-bottom: 1px solid rgba(255,255,255,.38); }
.shopping-locker input { width: 20px; height: 20px; margin: 0; accent-color: var(--yellow); }
.shopping-controls > p { grid-column: 1 / -1; margin: 0; color: #c8d1da; font-size: .78rem; }
.shopping-plan { min-width: 0; padding: clamp(28px,4vw,50px); color: var(--navy); background: var(--yellow); }
.shopping-plan > header { padding-bottom: 18px; border-bottom: 2px solid var(--navy); }
.shopping-plan > header p { margin: 0 0 5px; color: var(--green); font-size: .72rem; font-weight: 900; text-transform: uppercase; }
.shopping-plan h2 { max-width: 28ch; margin: 0; font-size: clamp(1.7rem,2.7vw,2.35rem); line-height: 1; }
.shopping-plan > header span { display: block; margin-top: 8px; }
.shopping-plan-summary { display: grid; grid-template-columns: 1fr .8fr; gap: 24px; padding: 18px 0; border-bottom: 1px solid rgba(6,24,45,.45); }
.shopping-plan-summary dl { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0; }
.shopping-plan-summary dl div { padding-top: 8px; border-top: 1px dotted rgba(6,24,45,.5); }
.shopping-plan-summary dt { font-size: .66rem; font-weight: 800; text-transform: uppercase; }
.shopping-plan-summary dd { margin: 3px 0 0; font-size: .86rem; font-weight: 800; }
.shopping-plan-summary > p { margin: 0; font-size: .88rem; }
.shopping-route-list { margin: 0; padding: 0; list-style: none; }
.shopping-route-list li { display: grid; grid-template-columns: 34px minmax(0,1fr) auto; gap: 12px 16px; align-items: start; padding: 18px 0; border-bottom: 1px solid rgba(6,24,45,.45); }
.shopping-route-list li > span { color: var(--orange); font-size: 1.25rem; font-weight: 900; }
.shopping-route-list strong { font-size: 1.05rem; }
.shopping-route-list p { margin: 4px 0; font-size: .84rem; }
.shopping-route-list small { font-size: .72rem; }
.shopping-route-list a { min-height: 44px; display: inline-flex; align-items: center; padding: 9px 11px; color: white; background: var(--navy); text-decoration: none; font-size: .75rem; font-weight: 800; }
.shopping-service-note { margin: 16px 0 0; padding: 14px 16px; color: white; background: var(--green); font-size: .84rem; }
.shopping-service-note a { color: white; font-weight: 800; }
.shopping-time-warning { margin: 16px 0 0; padding: 14px 16px; color: var(--navy); background: var(--paper); border: 2px solid var(--orange); }
.shopping-time-warning strong { display: block; margin-bottom: 4px; }
.shopping-plan-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.shopping-plan-actions a, .shopping-plan-actions button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; padding: 10px 14px; color: white; background: var(--navy); border: 1px solid var(--navy); border-radius: 0; font: inherit; font-weight: 800; text-decoration: none; cursor: pointer; }
.shopping-plan-actions button { color: var(--navy); background: transparent; }
.shopping-map-board { width: var(--content); margin: 24px auto 0; display: grid; grid-template-columns: minmax(300px,.7fr) minmax(0,1.3fr); color: white; background: var(--green); border: 4px solid var(--navy); }
.shopping-map-board > div:first-child { align-self: center; padding: clamp(28px,4vw,48px); }
.shopping-map-board h2 { max-width: 18ch; margin: 8px 0 12px; font-size: clamp(1.8rem,3vw,2.7rem); line-height: 1; }
.shopping-map-board p { max-width: 58ch; }
.shopping-access-note { padding-top: 15px; border-top: 1px solid rgba(255,255,255,.4); color: #dbe6df; font-size: .84rem; }
.shopping-map-frame { min-width: 0; display: grid; grid-template-rows: 480px auto; background: var(--paper); }
.shopping-map-frame #breda-shopping-map, .shopping-map-frame .leaflet-container, .shopping-map-fallback { min-height: 480px; }
.shopping-map-frame #breda-shopping-map { position: relative; }
.shopping-map-fallback { position: absolute; inset: 0; z-index: 600; display: grid; align-content: center; justify-items: center; padding: 32px; color: var(--navy); background: var(--paper); text-align: center; }
.shopping-map-frame #breda-shopping-map.is-ready .shopping-map-fallback { display: none; }
.shopping-map-fallback p { max-width: 44ch; }
.shopping-map-frame > p { max-width: none; margin: 0; padding: 12px 16px; color: var(--navy); background: var(--yellow); font-size: .78rem; font-weight: 800; }
.shopping-map-frame .leaflet-control-zoom a { width: 44px; height: 44px; line-height: 44px; }
.shopping-map-pin { display: grid !important; place-items: center; color: white; background: var(--orange); border: 3px solid white; border-radius: 50%; font-size: .82rem; font-weight: 900; }
.shopping-map-start { color: var(--navy); background: var(--yellow); border-color: var(--navy); }
.shopping-map-toilet { color: var(--navy); background: var(--yellow); border-color: var(--navy); }
.shopping-map-venue { background: var(--green); }
.shopping-map-locker { color: var(--navy); background: var(--paper); border-color: var(--navy); }
.shopping-service-strip { width: var(--content); margin: 64px auto; display: grid; grid-template-columns: 1fr auto auto; gap: 18px; align-items: center; padding: 24px 28px; color: white; background: var(--navy); }
.shopping-service-strip p { max-width: 76ch; margin: 4px 0 0; color: #c8d1da; }
.shopping-service-strip a { min-height: 46px; display: inline-flex; align-items: center; padding: 9px 13px; color: var(--navy); background: var(--yellow); text-decoration: none; font-weight: 800; }
.shopping-answers, .shopping-directory { width: var(--content); margin: 88px auto; }
.shopping-answers > header, .shopping-directory > header { display: grid; grid-template-columns: .85fr 1.15fr; gap: 42px; align-items: end; padding-bottom: 20px; border-bottom: 3px solid var(--navy); }
.shopping-answers h2, .shopping-directory h2 { max-width: 22ch; margin: 0; font-size: clamp(1.9rem,3.1vw,2.8rem); line-height: .98; }
.shopping-answers > header p, .shopping-directory > header p { max-width: 66ch; margin: 0; }
.shopping-answers > div { display: grid; grid-template-columns: 1fr 1fr; }
.shopping-answers article { padding: 26px 28px 26px 0; border-bottom: 1px solid var(--line); }
.shopping-answers article:nth-child(even) { padding-left: 28px; border-left: 1px solid var(--line); }
.shopping-answers h3, .shopping-answers p { margin-top: 0; }
.shopping-directory > div { border-top: 0; }
.shopping-directory article { display: grid; grid-template-columns: 40px minmax(240px,.9fr) minmax(260px,.8fr) auto; gap: 18px 22px; align-items: center; padding: 20px 0; border-bottom: 1px solid var(--line); }
.shopping-directory article > span { color: var(--orange); font-size: 1.4rem; font-weight: 900; }
.shopping-directory h3, .shopping-directory p { margin: 0; }
.shopping-directory article small { display: block; margin-top: 7px; color: var(--muted); }
.shopping-directory dl { display: grid; gap: 7px; margin: 0; }
.shopping-directory dl div { display: grid; grid-template-columns: 70px 1fr; gap: 8px; }
.shopping-directory dt { font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.shopping-directory dd { margin: 0; font-size: .82rem; }
.shopping-directory article > a { min-height: 46px; display: inline-flex; align-items: center; padding: 9px 12px; color: white; background: var(--navy); text-decoration: none; font-weight: 800; }

@media (max-width: 1060px) {
  .shopping-stage { grid-template-columns: 1fr 1fr; }
  .shopping-plan-summary { grid-template-columns: 1fr; }
  .shopping-map-board { grid-template-columns: minmax(280px,.75fr) minmax(0,1.25fr); }
  .shopping-service-strip { grid-template-columns: 1fr 1fr; }
  .shopping-service-strip > div { grid-column: 1 / -1; }
  .shopping-directory article { grid-template-columns: 38px minmax(220px,.8fr) 1fr; }
  .shopping-directory article > a { grid-column: 3; justify-self: start; }
}

@media (max-width: 760px) {
  .shopping-stage { grid-template-columns: 1fr; margin-top: 10px; border-width: 2px; }
  .shopping-intro, .shopping-plan { padding: 28px 20px; }
  .shopping-intro h1 { font-size: clamp(2rem,8.8vw,2.125rem); }
  .shopping-controls { grid-template-columns: 1fr; }
  .shopping-controls .shopping-locker, .shopping-controls > p { grid-column: 1; }
  .shopping-plan-summary dl { grid-template-columns: 1fr; }
  .shopping-route-list li { grid-template-columns: 32px minmax(0,1fr); }
  .shopping-route-list li > a { grid-column: 2; justify-self: start; }
  .shopping-plan-actions { display: grid; grid-template-columns: 1fr; }
  .shopping-plan-actions a, .shopping-plan-actions button { width: 100%; }
  .shopping-map-board { grid-template-columns: 1fr; border-width: 2px; }
  .shopping-map-frame { grid-template-rows: 340px auto; }
  .shopping-map-frame #breda-shopping-map, .shopping-map-frame .leaflet-container, .shopping-map-fallback { min-height: 340px; }
  .shopping-service-strip { grid-template-columns: 1fr; margin: 48px auto 64px; padding: 24px 20px; }
  .shopping-service-strip > div { grid-column: 1; }
  .shopping-service-strip a { width: 100%; justify-content: center; }
  .shopping-answers, .shopping-directory { margin: 64px auto; }
  .shopping-answers > header, .shopping-directory > header { grid-template-columns: 1fr; gap: 12px; }
  .shopping-answers > div { grid-template-columns: 1fr; }
  .shopping-answers article, .shopping-answers article:nth-child(even) { padding: 22px 0; border-left: 0; }
  .shopping-directory article { grid-template-columns: 32px minmax(0,1fr); gap: 10px 12px; }
  .shopping-directory article dl, .shopping-directory article > a { grid-column: 2; }
}

@media print {
  .site-header, .route-map, .city-map-stage, .city-weather, .weather-inline, .situation-strip, .nav-action, .boat-band, .site-footer, .restaurant-map-frame, .shopping-map-frame { display: none !important; }
  body { color: black; background: white; }
  .decision-stage { display: block; min-height: 0; border: 1px solid black; }.service-pass { background: white; }
  .results-rail { color: black; background: white; }.ticket-grid { display: block; }.result-ticket { margin: 12px 0; border: 1px solid black; break-inside: avoid; }
}

/* Complete daglijn */
.full-day-stage { width: var(--content); margin: 18px auto 0; display: grid; grid-template-columns: minmax(0,.9fr) minmax(420px,1.1fr); color: var(--navy); background: var(--paper); border: 3px solid var(--navy); }
.full-day-intro { min-width: 0; display: grid; align-content: center; padding: clamp(32px,5vw,68px); background: #f4eee2; }
.full-day-intro h1 { max-width: 17ch; margin: 10px 0 18px; font-size: clamp(2.15rem,4.8vw,4.6rem); line-height: .94; letter-spacing: -.035em; }
.full-day-intro > p:not(.tool-kicker):not(.direct-answer) { max-width: 58ch; margin: 0; font-size: 1.04rem; line-height: 1.55; }
.full-day-intro .direct-answer { max-width: 58ch; margin-top: 28px; }
.full-day-form { min-width: 0; padding: clamp(28px,4vw,52px); color: white; background: var(--navy); }
.full-day-controls { grid-template-columns: 1fr 1fr; gap: 18px; }
.full-day-controls label { min-width: 0; }
.full-day-controls select, .full-day-controls input { width: 100%; min-height: 50px; padding: 11px 14px; }
.full-day-controls .full-day-moment-fields, .full-day-controls .full-day-weather, .full-day-controls > p { grid-column: 1 / -1; }
.full-day-moment-fields { border-top: 1px solid rgba(255,255,255,.22); border-bottom: 1px solid rgba(255,255,255,.22); }
.full-day-moment-fields summary { min-height: 50px; display: flex; align-items: center; cursor: pointer; font-weight: 800; }
.full-day-moment-fields > div { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; padding: 0 0 18px; }
.full-day-weather { min-height: 68px; }
.full-day-workbench { width: var(--content); margin: 0 auto 72px; display: grid; grid-template-columns: minmax(280px,.62fr) minmax(380px,.9fr) minmax(420px,1.15fr); color: white; background: var(--navy); border: 3px solid var(--navy); border-top: 0; }
.full-day-summary { min-width: 0; padding: 30px; background: var(--green); }
.full-day-summary > span { color: var(--yellow); font-size: .72rem; font-weight: 850; text-transform: uppercase; letter-spacing: .08em; }
.full-day-summary h2 { max-width: 18ch; margin: 10px 0 14px; font-size: clamp(1.75rem,2.7vw,2.55rem); line-height: .98; }
.full-day-summary p { color: #dce6e1; }
.full-day-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 22px; }
.full-day-actions button { min-height: 48px; padding: 11px 14px; color: var(--navy); background: var(--yellow); border: 0; font: inherit; font-size: .76rem; font-weight: 850; cursor: pointer; }
.full-day-actions span { width: 100%; min-height: 1.2em; font-size: .76rem; }
.full-day-timeline { min-width: 0; max-height: 620px; margin: 0; padding: 12px 28px; overflow: auto; list-style: none; background: #0b2340; }
.full-day-timeline li { position: relative; display: grid; grid-template-columns: 54px minmax(0,1fr); gap: 18px; padding: 18px 0; border-bottom: 1px solid rgba(255,255,255,.15); }
.full-day-timeline li > strong { color: var(--yellow); font-size: .88rem; }
.full-day-timeline li > span { min-width: 0; display: grid; gap: 6px; color: #cbd6df; font-size: .83rem; line-height: 1.4; }
.full-day-timeline li b { color: white; font-size: 1rem; }
.full-day-timeline li a { width: fit-content; min-height: 44px; display: inline-flex; align-items: center; margin-top: 4px; padding: 9px 11px; color: var(--navy); background: var(--paper); font-size: .72rem; font-weight: 850; text-decoration: none; }
.full-day-map-frame { min-width: 0; display: grid; grid-template-rows: minmax(480px,1fr) auto; color: var(--navy); background: var(--paper); }
.full-day-map-frame #breda-full-day-map { position: relative; min-height: 480px; }
.full-day-map-frame .today-map-fallback { min-height: 480px; }
.full-day-map-frame.is-ready .today-map-fallback { display: none; }
.full-day-map-frame .today-map-caption { min-height: 66px; }
.full-day-trust { width: var(--content); margin: -40px auto 86px; display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 18px; align-items: center; padding: 22px 26px; color: var(--navy); background: var(--yellow); border: 3px solid var(--navy); }
.full-day-trust p { max-width: 78ch; margin: 0; }
.full-day-trust a { min-height: 48px; display: inline-flex; align-items: center; padding: 11px 13px; color: white; background: var(--navy); font-weight: 850; text-decoration: none; }
.decision-stage-short { min-height: 0; margin-top: 96px; }
.decision-stage-short .pass-heading h2 { max-width: 18ch; margin: 8px 0 16px; font-size: clamp(2rem,4vw,3.8rem); line-height: .96; }

@media (max-width: 1120px) {
  .full-day-stage { grid-template-columns: 1fr 1fr; }
  .full-day-workbench { grid-template-columns: minmax(300px,.75fr) minmax(0,1.25fr); }
  .full-day-summary { grid-column: 1 / -1; }
  .full-day-summary h2 { max-width: 28ch; }
}

@media (max-width: 760px) {
  .full-day-stage { grid-template-columns: 1fr; margin-top: 10px; border-width: 2px; }
  .full-day-intro, .full-day-form { padding: 28px 20px; }
  .full-day-intro h1 { font-size: clamp(2rem,9vw,2.35rem); line-height: 1; }
  .full-day-controls { grid-template-columns: 1fr; }
  .full-day-controls .full-day-moment-fields, .full-day-controls .full-day-weather, .full-day-controls > p { grid-column: 1; }
  .full-day-moment-fields > div { grid-template-columns: 1fr; }
  .full-day-workbench { grid-template-columns: 1fr; margin-bottom: 56px; border-width: 2px; }
  .full-day-summary { grid-column: 1; padding: 26px 20px; }
  .full-day-timeline { max-height: none; padding: 8px 20px; }
  .full-day-map-frame { grid-template-rows: 340px auto; }
  .full-day-map-frame #breda-full-day-map, .full-day-map-frame .today-map-fallback { min-height: 340px; }
  .full-day-trust { grid-template-columns: 1fr; margin: -28px auto 64px; padding: 22px 20px; border-width: 2px; }
  .full-day-trust a { width: 100%; justify-content: center; }
  .decision-stage-short { margin-top: 72px; }
}

@media print {
  .full-day-stage { display: block; border: 1px solid black; }
  .full-day-form, .full-day-map-frame, .full-day-actions, .full-day-trust, .decision-stage-short, .results-rail { display: none !important; }
  .full-day-intro, .full-day-summary, .full-day-timeline { color: black; background: white; }
  .full-day-workbench { display: block; color: black; background: white; border: 1px solid black; }
  .full-day-timeline { max-height: none; overflow: visible; }
  .full-day-timeline li { break-inside: avoid; border-bottom: 1px solid #bbb; }
  .full-day-timeline li > strong, .full-day-timeline li b, .full-day-timeline li > span { color: black; }
}

/* Toegankelijkheids- en dagplannerverfijningen */
.tool-stage-rain .tool-panel { background: #a92f13; }
.bike-law aside a { color: var(--navy); }
.full-day-intro h1 { font-size: clamp(2.15rem,3.6vw,3.15rem); line-height: .98; letter-spacing: -.025em; }
.full-day-intro .direct-answer strong, .editorial-intro .direct-answer strong { color: var(--navy); }
.tool-stage-family .direct-answer strong { color: var(--navy); }
.full-day-boat-note { grid-column: 1 / -1; margin: 0; padding: 14px 16px; color: var(--navy); background: var(--yellow); line-height: 1.45; }
.full-day-boat-note strong { display: block; margin-bottom: 3px; }
.leaflet-touch .leaflet-control-zoom a { width: 44px; height: 44px; line-height: 44px; }
.leaflet-control-attribution a { min-height: 44px; display: inline-flex; align-items: center; }

@media (max-width: 359px) {
  .toilet-controls details > div { grid-template-columns: 1fr; }
  .toilet-controls details label, .toilet-controls details input, .toilet-controls details select { min-width: 0; width: 100%; }
}

.home-choices { grid-template-columns: 1fr 1fr; }
.home-choices a:nth-child(n+4) { min-height: 48px; align-content: center; padding-block: 11px; }
.home-choices a:nth-child(n+4) span, .home-choices a:nth-child(n+4) small { display: none; }
.home-choices a:nth-child(n+4) strong { font-size: .93rem; }

@media (max-width: 1500px) {
  .nav-shell { grid-template-columns: 1fr; gap: 8px; padding: 10px 0 8px; }
  .site-header nav { grid-column: 1; grid-row: 2; justify-content: flex-start; gap: 8px; overflow-x: auto; padding-bottom: 2px; scrollbar-width: none; }
  .site-header nav::-webkit-scrollbar { display: none; }
  .site-header nav a { flex: 0 0 auto; padding: 8px 10px; border: 1px solid rgba(255,255,255,.3); }
  .site-header nav a[aria-current="page"] { order: -1; }
  .site-header nav::after { display: none; content: none; }
}

@media (max-width: 760px) {
  .home-choices { grid-template-columns: 1fr; }
  .home-choices a:nth-child(n+4) { padding-inline: 14px; }
  .site-header nav::after { display: none; content: none; }
  .guide-mosaic { grid-template-rows: none; }
  .guide-place, .guide-place.place-1, .guide-place.place-2, .guide-place.place-4 { min-height: 0; display: grid; grid-column: auto; grid-row: auto; grid-template-rows: 220px auto; overflow: visible; }
  .guide-place::after { display: none; }
  .guide-place img { grid-row: 1; }
  .guide-place > div { position: relative; grid-row: 2; background: var(--navy); }
  .guide-place-no-image { grid-template-rows: 180px auto; }
  .guide-place-no-image .place-art { position: relative; grid-row: 1; }
  .official-toilet-map { min-height: 48px; display: inline-flex; align-items: center; margin-top: 16px; padding: 12px 16px; color: white; background: var(--navy); text-decoration: none; font-weight: 800; }
}

/* Buurtroutes: een compacte reisagenda, vertaald naar de Bredase servicepass. */
.neighborhood-dayparts { width: var(--content); margin: 104px auto; }
.neighborhood-dayparts > header { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(280px,.85fr); gap: 48px; align-items: end; margin-bottom: 32px; padding-bottom: 24px; border-bottom: 3px solid var(--navy); }
.neighborhood-dayparts > header h2 { max-width: 21ch; margin: 0 0 12px; font-size: clamp(1.9rem,3.2vw,2.85rem); line-height: .98; }
.neighborhood-dayparts > header p { max-width: 68ch; margin: 0; }
.neighborhood-dayparts > header nav { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--navy); border-left: 1px solid var(--navy); }
.neighborhood-dayparts > header nav a { min-height: 48px; display: flex; align-items: center; padding: 10px 12px; color: var(--navy); border-right: 1px solid var(--navy); border-bottom: 1px solid var(--navy); font-size: .78rem; font-weight: 850; text-decoration: none; }
.neighborhood-dayparts > header nav a:hover { color: white; background: var(--navy); }
.neighborhood-route-list { display: grid; gap: 40px; }
.neighborhood-route { color: var(--navy); background: var(--paper); border: 3px solid var(--navy); }
.neighborhood-route > header { display: grid; grid-template-columns: minmax(260px,.78fr) minmax(0,1.22fr); gap: 40px; align-items: end; padding: 32px 36px; background: #f2eee5; border-bottom: 2px solid var(--navy); }
.neighborhood-route > header span { display: block; margin-bottom: 8px; color: var(--green); font-size: .72rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.neighborhood-route > header h3 { max-width: 20ch; margin: 0; font-size: clamp(1.65rem,2.7vw,2.45rem); line-height: 1; }
.neighborhood-route > header p { max-width: 64ch; margin: 0; line-height: 1.55; }
.neighborhood-route > ol { margin: 0; padding: 0 36px; list-style: none; }
.neighborhood-route > ol li { position: relative; display: grid; grid-template-columns: 44px minmax(0,1fr) auto; gap: 16px 24px; align-items: center; min-height: 112px; padding: 24px 0; border-bottom: 1px solid var(--line); }
.neighborhood-route > ol li > span { position: relative; z-index: 1; width: 36px; height: 36px; display: grid; place-items: center; color: white; background: var(--orange); border: 2px solid var(--navy); border-radius: 50%; font-size: .76rem; font-weight: 900; }
.neighborhood-route > ol li:not(:last-child)::before { position: absolute; top: 58px; bottom: -58px; left: 17px; width: 1px; content: ""; background: var(--navy); }
.neighborhood-route > ol strong { display: block; font-size: 1.08rem; }
.neighborhood-route > ol p { max-width: 72ch; margin: 5px 0 0; font-size: .9rem; line-height: 1.5; }
.neighborhood-route > ol p a { color: inherit; font-weight: 800; text-underline-offset: 3px; }
.neighborhood-route > ol li > a, .neighborhood-route > footer > a, .route-branch-actions a { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; padding: 10px 14px; color: white; background: var(--navy); font-size: .76rem; font-weight: 850; text-align: center; text-decoration: none; }
.neighborhood-route > ol li > a:hover, .neighborhood-route > footer > a:hover, .route-branch-actions a:hover { color: var(--navy); background: var(--yellow); }
.neighborhood-route > footer { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 24px; align-items: center; padding: 24px 36px; color: white; background: var(--green); }
.neighborhood-route > footer p { max-width: 76ch; margin: 0; line-height: 1.45; }
.neighborhood-route > footer strong { display: block; margin-bottom: 3px; color: var(--yellow); }
.route-branch-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.route-branch-actions a { border: 1px solid rgba(255,255,255,.56); }
.neighborhood-route-south > header { background: var(--yellow); }
.neighborhood-route-conditional > header { color: white; background: var(--navy); }
.neighborhood-route-conditional > header span { color: var(--yellow); }
.neighborhood-route-belcrum > footer { background: #0b2340; }

@media (max-width: 900px) {
  .neighborhood-dayparts > header { grid-template-columns: 1fr; gap: 24px; }
  .neighborhood-route > header { grid-template-columns: 1fr; gap: 16px; }
}

@media (max-width: 760px) {
  .neighborhood-dayparts { margin: 72px auto; }
  .neighborhood-dayparts > header { margin-bottom: 24px; }
  .neighborhood-dayparts > header nav { grid-template-columns: 1fr 1fr; }
  .neighborhood-dayparts > header nav a { min-width: 0; padding: 10px; }
  .neighborhood-route-list { gap: 24px; }
  .neighborhood-route { border-width: 2px; }
  .neighborhood-route > header { padding: 24px 20px; }
  .neighborhood-route > ol { padding: 0 20px; }
  .neighborhood-route > ol li { grid-template-columns: 36px minmax(0,1fr); gap: 12px; padding: 20px 0; }
  .neighborhood-route > ol li > span { width: 32px; height: 32px; }
  .neighborhood-route > ol li:not(:last-child)::before { top: 52px; bottom: -52px; left: 15px; }
  .neighborhood-route > ol li > a { grid-column: 2; width: 100%; }
  .neighborhood-route > footer { grid-template-columns: 1fr; padding: 24px 20px; }
  .neighborhood-route > footer > a { width: 100%; }
  .route-branch-actions { display: grid; grid-template-columns: 1fr; }
  .route-branch-actions a { width: 100%; }
}
