
  body.fd-page .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; }
  body.fd-page .fd-intro { margin: 0 0 14px; max-width: 70ch; }
  body.fd-page .fd-type-page-link { margin: -4px 0 14px; font-weight: 700; }
  body.fd-page .fd-type-page-link a { color: var(--teal); }

  body.fd-page .fd-search { position: relative; margin: 0 0 12px; max-width: 520px; }
  body.fd-page .fd-search-input { width: 100%; box-sizing: border-box; font: inherit; font-family: 'Nunito', 'Nunito Fallback', sans-serif; font-size: 1rem; /* 16px+ so iPhones do not zoom in (2026-10-18) */ padding: 10px 36px 10px 14px; min-height: 42px; border-radius: 999px; border: 1px solid rgba(27,43,58,0.18); background: var(--paper); color: var(--ink); }
  body.fd-page .fd-search-input::placeholder { color: rgba(42,32,25,0.55); }
  body.fd-page .fd-search-input:focus-visible { outline: 2px solid var(--ref-gold); outline-offset: 2px; }
  body.fd-page .fd-search-input::-webkit-search-cancel-button, body.fd-page .fd-search-input::-webkit-search-decoration { -webkit-appearance: none; appearance: none; }
  body.fd-page .fd-search-clear { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); border: 0; background: transparent; cursor: pointer; font-size: 1.2rem; line-height: 1; color: var(--ink); opacity: 0.6; padding: 6px 8px; }
  body.fd-page .fd-search-clear[hidden] { display: none; }

  /* flex-wrap: nowrap is explicit so the chips scroll sideways on a phone
     instead of stacking into a tall block; desktop wraps instead. */
  body.fd-page .fd-type-row { display: flex; flex-wrap: nowrap; gap: 8px; overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch; scrollbar-width: thin; padding: 2px 0 8px; margin: 0 0 10px; }
  body.fd-page .fd-type-row::-webkit-scrollbar { height: 6px; }
  body.fd-page .fd-type-row::-webkit-scrollbar-thumb { background: rgba(74,52,40,0.2); border-radius: 999px; }
  body.fd-page .fd-type-row .outdoor-filter-chip { flex: 0 0 auto; white-space: nowrap; }
  @media (min-width: 900px) { body.fd-page .fd-type-row { flex-wrap: wrap; overflow: visible; } }

  body.fd-page .fd-controls { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; }
  body.fd-page .fd-pop { position: relative; }
  body.fd-page .fd-pop-btn { display: inline-flex; align-items: center; gap: 6px; font-family: 'Nunito', 'Nunito Fallback', sans-serif; font-size: 0.86rem; font-weight: 800; color: var(--ink); background: var(--paper); border: 1px solid rgba(27,43,58,0.18); border-radius: 999px; padding: 8px 14px; min-height: 44px; /* 44px tap target (2026-10-19, round 9) */ cursor: pointer; transition: background .12s ease, color .12s ease, border-color .12s ease; }
  body.fd-page .fd-pop-btn:hover { background: rgba(27,43,58,0.06); color: var(--ref-navy); }
  body.fd-page .fd-pop-btn:focus-visible { outline: 2px solid var(--ref-gold); outline-offset: 2px; }
  body.fd-page .fd-pop-btn[aria-expanded="true"] { background: var(--ref-navy, #1B2B3A); color: var(--paper); border-color: var(--ref-navy, #1B2B3A); }
  body.fd-page .fd-pop-count[hidden] { display: none; }
  body.fd-page .fd-pop-panel { position: absolute; z-index: 40; top: calc(100% + 6px); left: 0; min-width: 280px; max-width: min(92vw, 620px); max-height: 60vh; overflow-y: auto; background: var(--paper); border: 1px solid rgba(27,43,58,0.18); border-radius: 14px; box-shadow: 0 18px 40px -20px var(--shadow, rgba(42,32,25,0.5)); padding: 14px; }
  body.fd-page .fd-pop-panel[hidden] { display: none; }
  /* Without scripting a popover can never be opened, so the panels stay
     visible inline and the page degrades to the full control set. */
  body.fd-page .fd-controls:not(.js) .fd-pop-panel, body.fd-page .fd-controls:not(.js) .fd-pop-panel[hidden] { position: static; display: block; max-width: none; max-height: none; box-shadow: none; border: 0; padding: 10px 0 0; }
  body.fd-page .fd-controls:not(.js) .fd-pop-btn { display: none; }
  /* On phones a panel is a full-width sheet under the controls row; the ROW
     is the positioning context, so the offset resolves against the button. */
  @media (max-width: 640px) {
    body.fd-page .fd-controls { position: relative; }
    body.fd-page .fd-pop { position: static; }
    body.fd-page .fd-pop-panel { left: 0; right: 0; width: auto; min-width: 0; max-width: none; }
  }
  @media (min-width: 900px) { body.fd-page .fd-pop-panel { min-width: 520px; } }
  body.fd-page .fd-pop-panel .outdoor-filter-group { margin: 0; }
  body.fd-page .fd-feature-grid { display: flex; flex-wrap: wrap; gap: 8px; }
  body.fd-page .fd-feature-icon { font-size: 0.95em; }

  /* "Show results" (2026-09-24): selecting the last filter in a popover used
     to leave the visitor having to click somewhere outside it to get back to
     the list. Filtering is already live, so this is an explicit dismiss +
     confirmation affordance -- the primary action in the panel, in the
     homepage's navy/gold system, with the live count as its label. */
  body.fd-page .fd-pop-actions { position: sticky; bottom: -14px; margin: 12px -14px -14px; padding: 10px 14px; background: var(--paper); border-top: 1px solid rgba(27,43,58,0.12); border-radius: 0 0 14px 14px; }
  body.fd-page .fd-pop-apply { display: block; width: 100%; font-family: 'Nunito', 'Nunito Fallback', sans-serif; font-size: 0.86rem; font-weight: 800; color: var(--ref-cream); background: var(--ref-navy); border: 1px solid var(--ref-gold); border-radius: 999px; padding: 10px 16px; min-height: 44px; cursor: pointer; transition: background .12s ease; }
  body.fd-page .fd-pop-apply:hover { background: var(--ref-navy-deep); }
  body.fd-page .fd-pop-apply:focus-visible { outline: 2px solid var(--ref-gold); outline-offset: 2px; }
  /* "Show more" reveals the next batch. Centered, comfortable target, and the
     homepage's navy/gold button system -- same language as the popovers'
     "Show results". It removes itself once every match is on screen. */
  body.fd-page .fd-more-row { display: flex; justify-content: center; margin: 22px 0 8px; }
  body.fd-page .fd-show-more { font-family: 'Nunito', 'Nunito Fallback', sans-serif; font-size: 0.9rem; font-weight: 800; color: var(--ref-cream); background: var(--ref-navy); border: 1px solid var(--ref-gold); border-radius: 999px; padding: 12px 26px; min-height: 48px; cursor: pointer; transition: background .12s ease; }
  body.fd-page .fd-show-more:hover { background: var(--ref-navy-deep); }
  body.fd-page .fd-show-more:focus-visible { outline: 2px solid var(--ref-gold); outline-offset: 2px; }
  body.fd-page .fd-show-more[hidden] { display: none; }

  body.fd-page .fd-resultbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 4px 0 6px; }
  body.fd-page .fd-count { margin: 0; font-family: 'Nunito', 'Nunito Fallback', sans-serif; font-size: 0.95rem; font-weight: 800; color: var(--ink); }
  body.fd-page .fd-results-step { margin-top: 4px; }
  body.fd-page #fdResults > .venue-card[hidden] { display: none; }
  body.fd-page .fd-no-results { margin: 14px 0 0; font-family: 'Nunito', 'Nunito Fallback', sans-serif; font-weight: 700; }
  body.fd-page .fd-no-results[hidden] { display: none; }
  body.fd-page .fd-no-results p { margin: 0 0 6px; }
  body.fd-page .fd-no-results a { color: var(--teal); }
  body.fd-page .fd-no-results .fd-no-results-try { font-weight: 600; color: var(--ink-muted, #6B5D54); }
  body.fd-page .fd-search-note { margin: 0 0 10px; font-family: 'Nunito', 'Nunito Fallback', sans-serif; font-size: 0.86rem; font-weight: 700; color: var(--teal); }
  body.fd-page .fd-search-note[hidden] { display: none; }

  /* Sort (2026-10-14), at the end of the count line. */
  body.fd-page .fd-sort { display: inline-flex; align-items: center; gap: 6px; font-family: 'Nunito', 'Nunito Fallback', sans-serif; font-size: 0.84rem; font-weight: 700; color: var(--ink); white-space: nowrap; }
  body.fd-page .fd-sort-label { opacity: 0.8; }
  body.fd-page .fd-sort-select { font: inherit; font-weight: 800; color: var(--ref-navy); background: var(--paper); border: 1px solid rgba(27,43,58,0.18); border-radius: 999px; padding: 6px 30px 6px 12px; min-height: 44px; /* round 9: 44px tap target */ cursor: pointer; appearance: none; -webkit-appearance: none;
    background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%); background-position: calc(100% - 15px) 52%, calc(100% - 10px) 52%; background-size: 5px 5px; background-repeat: no-repeat; }
  body.fd-page .fd-sort-select:focus-visible { outline: 2px solid var(--ref-gold); outline-offset: 2px; }
  /* iPhones zoom into a select under 16px (2026-10-18), so the sort menu is 16px. */
  body.fd-page .fd-sort-select { font-size: 16px; }

  /* Card photos (2026-10-14): an example photo of the card's kind of place
     (or the venue's own) instead of the one lake illustration on every card.
     Only cards carrying data-ph (the Food & Drink lists) change. */
  body.fd-page li.venue-card[data-ph]:not(.whatson-event-card) { background-image: none !important; padding-top: 112px !important; }
  body.fd-page li.venue-card[data-ph]::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 96px; border-radius: 13px 13px 0 0; background: #2A6B67 var(--fd-ph) center var(--fd-ph-y, 50%) / cover no-repeat; pointer-events: none; }
  @media (min-width: 900px) and (min-resolution: 1.5dppx) { body.fd-page li.venue-card[data-ph="own"]::before { background-image: var(--fd-ph-2x, var(--fd-ph)); } }
  body.fd-page li.venue-card[data-ph="restaurant-0"]{--fd-ph:url('/images/trip-v3/stops/stop-restaurant-480.jpg?v=7101d90384')}
  body.fd-page li.venue-card[data-ph="restaurant-1"]{--fd-ph:url('/images/trip-v3/stops/stop-restaurant-2-480.jpg?v=dd7f2400a5')}
  body.fd-page li.venue-card[data-ph="restaurant-2"]{--fd-ph:url('/images/trip-v3/stops/stop-restaurant-3-480.jpg?v=ffd9ffde61')}
  body.fd-page li.venue-card[data-ph="restaurant-3"]{--fd-ph:url('/images/food-drink/restaurants-800.jpg?v=e20e83d316')}
  body.fd-page li.venue-card[data-ph="cafe-0"]{--fd-ph:url('/images/trip-v3/stops/stop-cafe-480.jpg?v=c1beb1090a')}
  body.fd-page li.venue-card[data-ph="cafe-1"]{--fd-ph:url('/images/food-drink/cafes-800.jpg?v=a591cd380e')}
  body.fd-page li.venue-card[data-ph="pub-0"]{--fd-ph:url('/images/trip-v3/stops/stop-pub-480.jpg?v=c87f6025c6')}
  body.fd-page li.venue-card[data-ph="pub-1"]{--fd-ph:url('/images/food-drink/pubs-800.jpg?v=4db7789925')}
  body.fd-page li.venue-card[data-ph="cocktail-0"]{--fd-ph:url('/images/trip-v3/stops/stop-cocktail-480.jpg?v=91b99357d1')}
  body.fd-page li.venue-card[data-ph="cocktail-1"]{--fd-ph:url('/images/trip-v3/stops/stop-cocktail-2-480.jpg?v=fe1196f141')}
  body.fd-page li.venue-card[data-ph="cocktail-2"]{--fd-ph:url('/images/food-drink/cocktail-lounges-800.jpg?v=2d94261c49')}
  body.fd-page li.venue-card[data-ph="brewery-0"]{--fd-ph:url('/images/trip-v3/stops/stop-brewery-480.jpg?v=b3b94f5911')}
  body.fd-page li.venue-card[data-ph="brewery-1"]{--fd-ph:url('/images/food-drink/breweries-800.jpg?v=b6b3920ddf')}
  body.fd-page li.venue-card[data-ph="distillery-0"]{--fd-ph:url('/images/trip-v3/stops/stop-distillery-480.jpg?v=6995f727d9')}
  body.fd-page li.venue-card[data-ph="distillery-1"]{--fd-ph:url('/images/food-drink/distilleries-800.jpg?v=1cff117fbf')}
  body.fd-page li.venue-card[data-ph="arts-0"]{--fd-ph:url('/images/indoor/activity-arts-800.jpg?v=14fb797a00')}
  body.fd-page li.venue-card[data-ph="family-0"]{--fd-ph:url('/images/indoor/activity-family-800.jpg?v=be46378be2')}
  body.fd-page li.venue-card[data-ph="games-0"]{--fd-ph:url('/images/indoor/activity-games-800.jpg?v=6863b20fdc')}
  body.fd-page li.venue-card[data-ph="spas-0"]{--fd-ph:url('/images/indoor/activity-spas-800.jpg?v=a4ceb5a4ef')}
  body.fd-page li.venue-card[data-ph="theatre-0"]{--fd-ph:url('/images/indoor/activity-theatre-800.jpg?v=2ff0c936e1')}
  body.fd-page li.venue-card[data-ph="indoorall-0"]{--fd-ph:url('/images/indoor/indoor-800.jpg?v=f3e03083bf')}
  body.fd-page li.venue-card[data-ph="simgolf-0"]{--fd-ph:url('/images/golf/golf-courses-800.jpg?v=fc3c38a89c')}
  body.fd-page li.venue-card[data-ph="skate-0"]{--fd-ph:url('/images/sports/activity-skate-800.jpg?v=7c79e2ef02')}
  body.fd-page li.venue-card[data-ph="bike-0"]{--fd-ph:url('/images/sports/sports-800.jpg?v=bbb6c7e998')}
  body.fd-page li.venue-card[data-ph="bike-1"]{--fd-ph:url('/images/trip-v3/stops/stop-cycling-480.jpg?v=72441c6d9e')}
  body.fd-page li.venue-card[data-ph="disc-0"]{--fd-ph:url('/images/sports/activity-disc-800.jpg?v=b8faeb52aa')}
  body.fd-page li.venue-card[data-ph="courts-0"]{--fd-ph:url('/images/sports/activity-courts-800.jpg?v=685723a910')}
  body.fd-page li.venue-card[data-ph="golf-0"]{--fd-ph:url('/images/trip-v3/stops/stop-golf-480.jpg?v=79b06d97a0')}
  body.fd-page li.venue-card[data-ph="golf-1"]{--fd-ph:url('/images/golf/golf-courses-800.jpg?v=fc3c38a89c')}
  body.fd-page li.venue-card[data-ph="beach-0"]{--fd-ph:url('/images/trip-v3/stops/stop-beach-480.jpg?v=482f690caa')}
  body.fd-page li.venue-card[data-ph="beach-1"]{--fd-ph:url('/images/trip-v3/stops/stop-beach-2-480.jpg?v=502188b27c')}
  body.fd-page li.venue-card[data-ph="beach-2"]{--fd-ph:url('/images/beaches/beaches-800.jpg?v=4f1ebc3ef0')}
  body.fd-page li.venue-card[data-ph="park-0"]{--fd-ph:url('/images/trip-v3/stops/stop-hiking-480.jpg?v=cd6efae805')}
  body.fd-page li.venue-card[data-ph="park-1"]{--fd-ph:url('/images/trip-v3/stops/stop-hiking-2-480.jpg?v=e6d4e4216a')}
  body.fd-page li.venue-card[data-ph="park-2"]{--fd-ph:url('/images/trip-v3/stops/stop-hiking-3-480.jpg?v=f4862dceed')}
  body.fd-page li.venue-card[data-ph="park-3"]{--fd-ph:url('/images/trip-v3/stops/stop-outdoor-480.jpg?v=556e4fa62e')}
  body.fd-page li.venue-card[data-ph="park-4"]{--fd-ph:url('/images/trip-v3/stops/stop-viewpoints-480.jpg?v=2e1d393512')}
  body.fd-page li.venue-card[data-ph="canyon-0"]{--fd-ph:url('/images/outdoors/activity-hiking-800.jpg?v=e9b3fce0ea')}
  body.fd-page li.venue-card[data-ph="canyon-1"]{--fd-ph:url('/images/trip-v3/stops/stop-hiking-2-480.jpg?v=e6d4e4216a')}
  body.fd-page li.venue-card[data-ph="heritage-0"]{--fd-ph:url('/images/tours/activity-culture-800.jpg?v=5806541c46')}
  body.fd-page li.venue-card[data-ph="wetland-0"]{--fd-ph:url('/images/trip-v3/stops/stop-outdoor-2-480.jpg?v=5b8cdb6498')}
  body.fd-page li.venue-card[data-ph="wetland-1"]{--fd-ph:url('/images/outdoors/activity-nature-800.jpg?v=ee1c570be7')}
  body.fd-page li.venue-card[data-ph="tour-0"]{--fd-ph:url('/images/trip-v3/stops/stop-tour-480.jpg?v=5496fdd242')}
  body.fd-page li.venue-card[data-ph="tour-1"]{--fd-ph:url('/images/trip-v3/stops/stop-tour-lake-480.jpg?v=9f871dc12b')}
  body.fd-page li.venue-card[data-ph="tour-2"]{--fd-ph:url('/images/trip-v3/stops/stop-tour-wine-480.jpg?v=5de9625786')}
  body.fd-page li.venue-card[data-ph="tour-3"]{--fd-ph:url('/images/trip-v3/stops/stop-tour-farm-480.jpg?v=18e3f1060f')}
  body.fd-page li.venue-card[data-ph="sport-0"]{--fd-ph:url('/images/trip-v3/stops/stop-sport-480.jpg?v=79098f1fe4')}
  body.fd-page li.venue-card[data-ph="winter-0"]{--fd-ph:url('/images/trip-v3/stops/stop-ski-480.jpg?v=9c407e3081')}
  body.fd-page li.venue-card[data-ph="winter-1"]{--fd-ph:url('/images/trip-v3/stops/stop-winter-480.jpg?v=d421bea680')}
  body.fd-page li.venue-card[data-ph="winter-2"]{--fd-ph:url('/images/ski-snow/thumbs/ski-snow.jpg?v=c3385ca051')}
  body.fd-page li.venue-card[data-ph="viewpoint-0"]{--fd-ph:url('/images/trip-v3/stops/stop-viewpoints-480.jpg?v=2e1d393512')}
  body.fd-page li.venue-card[data-ph="viewpoint-1"]{--fd-ph:url('/images/outdoors/activity-viewpoints-800.jpg?v=b7a2ee340c')}
  body.fd-page li.venue-card[data-ph="cycling-0"]{--fd-ph:url('/images/trip-v3/stops/stop-cycling-480.jpg?v=72441c6d9e')}
  body.fd-page li.venue-card[data-ph="cycling-1"]{--fd-ph:url('/images/outdoors/activity-cycling-800.jpg?v=4294882bdf')}
  body.fd-page li.venue-card[data-ph="adventure-0"]{--fd-ph:url('/images/trip-v3/stops/stop-adventure-480.jpg?v=55614ed39b')}
  body.fd-page li.venue-card[data-ph="adventure-1"]{--fd-ph:url('/images/outdoors/activity-adventure-800.jpg?v=514e1d9b1e')}
  body.fd-page li.venue-card[data-ph="fishing-0"]{--fd-ph:url('/images/outdoors/activity-fishing-800.jpg?v=c99d15d25e')}
  body.fd-page li.venue-card[data-ph="camping-0"]{--fd-ph:url('/images/outdoors/activity-camping-800.jpg?v=cd85a5a5e8')}
  body.fd-page li.venue-card[data-ph="water-0"]{--fd-ph:url('/images/trip-v3/stops/stop-water-480.jpg?v=be17f0d543')}
  body.fd-page li.venue-card[data-ph="water-1"]{--fd-ph:url('/images/outdoors/activity-water-800.jpg?v=fde81e2b10')}
  body.fd-page li.venue-card[data-ph="tourwine-0"]{--fd-ph:url('/images/trip-v3/stops/stop-tour-wine-480.jpg?v=5de9625786')}
  body.fd-page li.venue-card[data-ph="tourwine-1"]{--fd-ph:url('/images/tours/activity-wine-800.jpg?v=bdd2768d20')}
  body.fd-page li.venue-card[data-ph="tourlake-0"]{--fd-ph:url('/images/trip-v3/stops/stop-tour-lake-480.jpg?v=9f871dc12b')}
  body.fd-page li.venue-card[data-ph="tourlake-1"]{--fd-ph:url('/images/tours/activity-lake-800.jpg?v=6b0844834a')}
  body.fd-page li.venue-card[data-ph="tourbike-0"]{--fd-ph:url('/images/trip-v3/stops/stop-tour-bike-480.jpg?v=a073f90ebf')}
  body.fd-page li.venue-card[data-ph="tourbike-1"]{--fd-ph:url('/images/tours/activity-bike-800.jpg?v=c8f5ab72eb')}
  body.fd-page li.venue-card[data-ph="tourfarm-0"]{--fd-ph:url('/images/trip-v3/stops/stop-tour-farm-480.jpg?v=18e3f1060f')}
  body.fd-page li.venue-card[data-ph="tourfarm-1"]{--fd-ph:url('/images/tours/activity-farm-800.jpg?v=2ca1d4b9ed')}
  body.fd-page li.venue-card[data-ph="touradventure-0"]{--fd-ph:url('/images/tours/activity-adventure-800.jpg?v=330f8e57d7')}
  body.fd-page li.venue-card[data-ph="tourwinter-0"]{--fd-ph:url('/images/tours/activity-winter-800.jpg?v=23d8f1c990')}
  body.fd-page li.venue-card[data-ph="tourculture-0"]{--fd-ph:url('/images/tours/activity-culture-800.jpg?v=5806541c46')}
  body.fd-page li.venue-card[data-ph="dogbeach-0"]{--fd-ph:url('/images/trip-v3/stops/stop-dog-outdoor-480.jpg?v=721f9d0d82')}
  body.fd-page li.venue-card[data-ph="dogbeach-1"]{--fd-ph:url('/images/trip-v3/stops/stop-beach-480.jpg?v=482f690caa')}
  body.fd-page li.venue-card[data-ph="dogbeach-2"]{--fd-ph:url('/images/trip-v3/stops/stop-beach-2-480.jpg?v=502188b27c')}
  body.fd-page li.venue-card[data-ph="dogbeach-3"]{--fd-ph:url('/images/beaches/beaches-800.jpg?v=4f1ebc3ef0')}
  body.fd-page li.venue-card[data-ph="dogoutdoor-0"]{--fd-ph:url('/images/trip-v3/stops/stop-hiking-480.jpg?v=cd6efae805')}
  body.fd-page li.venue-card[data-ph="dogoutdoor-1"]{--fd-ph:url('/images/trip-v3/stops/stop-hiking-2-480.jpg?v=e6d4e4216a')}
  body.fd-page li.venue-card[data-ph="dogoutdoor-2"]{--fd-ph:url('/images/trip-v3/stops/stop-outdoor-480.jpg?v=556e4fa62e')}
  body.fd-page li.venue-card[data-ph="dogoutdoor-3"]{--fd-ph:url('/images/trip-v3/stops/stop-viewpoints-480.jpg?v=2e1d393512')}
  body.fd-page li.venue-card[data-ph="dogoutdoor-4"]{--fd-ph:url('/images/outdoors/activity-hiking-800.jpg?v=e9b3fce0ea')}
  body.fd-page li.venue-card[data-ph="winery-0"]{--fd-ph:url('/images/trip-v3/stops/stop-winery-480.jpg?v=2b85a2e7bc')}
  body.fd-page li.venue-card[data-ph="winery-1"]{--fd-ph:url('/images/trip-v3/stops/stop-winery-2-480.jpg?v=2d9f1abbd5')}
  body.fd-page li.venue-card[data-ph="winery-2"]{--fd-ph:url('/images/trip-v3/stops/stop-winery-3-480.jpg?v=30ac0ee6b4')}
  body.fd-page li.venue-card[data-ph="winery-3"]{--fd-ph:url('/images/food-drink/wineries-800.jpg?v=9c69af1f85')}
  body.fd-page li.venue-card[data-ph="winery-4"]{--fd-ph:url('/images/trip-v3/stops/stop-tour-wine-480.jpg?v=5de9625786')}
  body.fd-page li.venue-card[data-ph="exzipline-0"]{--fd-ph:url('/images/outdoors/examples/adventure-zipline-2610-800.jpg?v=0ebbf2bb5d');--fd-ph-y:40%}
  body.fd-page li.venue-card[data-ph="exropes-0"]{--fd-ph:url('/images/outdoors/examples/adventure-ropes-2610-800.jpg?v=fbe2c5f854');--fd-ph-y:40%}
  body.fd-page li.venue-card[data-ph="exparaglide-0"]{--fd-ph:url('/images/outdoors/examples/adventure-paraglide-2610-800.jpg?v=c0fdc8a204');--fd-ph-y:40%}
  body.fd-page li.venue-card[data-ph="exskydive-0"]{--fd-ph:url('/images/outdoors/examples/adventure-skydive-2610-800.jpg?v=7fe5cf38ba');--fd-ph-y:35%}
  body.fd-page li.venue-card[data-ph="exhorse-0"]{--fd-ph:url('/images/outdoors/examples/adventure-horseback-2610-800.jpg?v=7839d425ec');--fd-ph-y:45%}
  body.fd-page li.venue-card[data-ph="exatv-0"]{--fd-ph:url('/images/outdoors/examples/adventure-atv-2610-800.jpg?v=f6c05149db')}
  body.fd-page li.venue-card[data-ph="exbuggy-0"]{--fd-ph:url('/images/outdoors/examples/adventure-buggy-2610-800.jpg?v=0dfdda753d');--fd-ph-y:55%}
  body.fd-page li.venue-card[data-ph="exballoon-0"]{--fd-ph:url('/images/outdoors/examples/adventure-balloon-2610-800.jpg?v=79ad83bb13');--fd-ph-y:45%}
  body.fd-page li.venue-card[data-ph="exfishboat-0"]{--fd-ph:url('/images/outdoors/examples/fishing-boat-2610-800.jpg?v=d2a25e58ee');--fd-ph-y:55%}
  body.fd-page li.venue-card[data-ph="exfishlake-0"]{--fd-ph:url('/images/outdoors/examples/fishing-lake-boats-2610-800.jpg?v=2c405b1400');--fd-ph-y:60%}
  body.fd-page li.venue-card[data-ph="exfishtrout-0"]{--fd-ph:url('/images/outdoors/examples/fishing-trout-2610-800.jpg?v=df97cd8fae')}
  body.fd-page li.venue-card[data-ph="exfishcast-0"]{--fd-ph:url('/images/outdoors/examples/fishing-cast-2610-800.jpg?v=89a80ef1e2');--fd-ph-y:40%}
  body.fd-page li.venue-card[data-ph="exfishkid-0"]{--fd-ph:url('/images/outdoors/examples/fishing-kid-dock-2610-800.jpg?v=882a0a178b')}
  body.fd-page li.venue-card[data-ph="exfishtackle-0"]{--fd-ph:url('/images/outdoors/examples/fishing-tackle-2610-800.jpg?v=76f5f7154c')}
  body.fd-page li.venue-card[data-ph="excamptent-0"]{--fd-ph:url('/images/outdoors/examples/camping-tent-lake-2610-800.jpg?v=171917d07e');--fd-ph-y:72%}
  body.fd-page li.venue-card[data-ph="excampfamily-0"]{--fd-ph:url('/images/outdoors/examples/camping-family-tents-2610-800.jpg?v=e26a0d830c');--fd-ph-y:45%}
  body.fd-page li.venue-card[data-ph="excampfire-0"]{--fd-ph:url('/images/outdoors/examples/camping-campfire-lake-2610-800.jpg?v=2ca176b186');--fd-ph-y:60%}
  body.fd-page li.venue-card[data-ph="excampsunrise-0"]{--fd-ph:url('/images/outdoors/examples/camping-tent-sunrise-2610-800.jpg?v=3fd9285963');--fd-ph-y:60%}
  body.fd-page li.venue-card[data-ph="excampnight-0"]{--fd-ph:url('/images/outdoors/examples/camping-tent-night-2610-800.jpg?v=0adfbc99bb');--fd-ph-y:55%}
  body.fd-page li.venue-card[data-ph="excampstars-0"]{--fd-ph:url('/images/outdoors/examples/camping-tent-stars-2610-800.jpg?v=8518aa1f89');--fd-ph-y:55%}
  body.fd-page li.venue-card[data-ph="excamprvtrees-0"]{--fd-ph:url('/images/outdoors/examples/camping-rv-trees-2610-800.jpg?v=a44fbc396f');--fd-ph-y:60%}
  body.fd-page li.venue-card[data-ph="excampcaravan-0"]{--fd-ph:url('/images/outdoors/examples/camping-caravan-river-2610-800.jpg?v=3b23d191a2');--fd-ph-y:55%}
  body.fd-page li.venue-card[data-ph="excamprvsite-0"]{--fd-ph:url('/images/outdoors/examples/camping-rv-site-2610-800.jpg?v=7ca08cbead');--fd-ph-y:60%}
  body.fd-page li.venue-card[data-ph="excamprvmeadow-0"]{--fd-ph:url('/images/outdoors/examples/camping-rv-meadow-2610-800.jpg?v=b438243003');--fd-ph-y:65%}
  body.fd-page li.venue-card[data-ph="excampglamp-0"]{--fd-ph:url('/images/outdoors/examples/camping-glamping-2610-800.jpg?v=b64bee1b2e')}
  body.fd-page li.venue-card[data-ph="excamprvpark-0"]{--fd-ph:url('/images/outdoors/examples/camping-rv-park-2610-800.jpg?v=3352defc6a');--fd-ph-y:55%}
  body.fd-page li.venue-card[data-ph="exwatersail-0"]{--fd-ph:url('/images/outdoors/examples/water-sailboat-2610-800.jpg?v=cce5ebfcf4');--fd-ph-y:55%}
  body.fd-page li.venue-card[data-ph="exwaterslide-0"]{--fd-ph:url('/images/outdoors/examples/water-waterslide-2610-800.jpg?v=52dce82d36')}
  body.fd-page li.venue-card[data-ph="exwatertube-0"]{--fd-ph:url('/images/outdoors/examples/water-inner-tube-2610-800.jpg?v=29e8917eb9');--fd-ph-y:55%}
  body.fd-page li.venue-card[data-ph="exwaterwake-0"]{--fd-ph:url('/images/outdoors/examples/water-wakesurf-2610-800.jpg?v=0db372503c');--fd-ph-y:45%}
  body.fd-page li.venue-card[data-ph="exwaterinflatable-0"]{--fd-ph:url('/images/outdoors/examples/water-inflatable-park-2610-800.jpg?v=245ed4dbe1');--fd-ph-y:55%}
  body.fd-page li.venue-card[data-ph="exwaterjetski-0"]{--fd-ph:url('/images/outdoors/examples/water-jet-ski-2610-800.jpg?v=16ef301b62')}
  body.fd-page li.venue-card[data-ph="exwaterkayak-0"]{--fd-ph:url('/images/outdoors/examples/water-kayaks-2610-800.jpg?v=20ac1773d1')}
  body.fd-page li.venue-card[data-ph="tourwinetasting-0"]{--fd-ph:url('/images/outdoors/examples/tour-wine-tasting-2610-800.jpg?v=6ced0c4afb')}
  body.fd-page li.venue-card[data-ph="tourvineyarddinner-0"]{--fd-ph:url('/images/outdoors/examples/tour-vineyard-dinner-2610-800.jpg?v=fdfec39eae')}
  body.fd-page li.venue-card[data-ph="tourcider-0"]{--fd-ph:url('/images/outdoors/examples/tour-cider-2610-800.jpg?v=71e3e14b08')}
  body.fd-page li.venue-card[data-ph="tourwinefriends-0"]{--fd-ph:url('/images/outdoors/examples/tour-wine-friends-2610-800.jpg?v=a49d0daf18');--fd-ph-y:45%}
  body.fd-page li.venue-card[data-ph="tourwinecheers-0"]{--fd-ph:url('/images/outdoors/examples/tour-wine-cheers-2610-800.jpg?v=59bcacea21');--fd-ph-y:40%}
  body.fd-page li.venue-card[data-ph="tourwinefarm-0"]{--fd-ph:url('/images/outdoors/examples/tour-wine-farmhouse-2610-800.jpg?v=c4b3e8e30b');--fd-ph-y:45%}
  body.fd-page li.venue-card[data-ph="toursparkling-0"]{--fd-ph:url('/images/outdoors/examples/tour-sparkling-2610-800.jpg?v=797df5e0ff')}
  body.fd-page li.venue-card[data-ph="tourebike-0"]{--fd-ph:url('/images/outdoors/examples/tour-ebikes-2610-800.jpg?v=0da3599be4');--fd-ph-y:55%}
  body.fd-page li.venue-card[data-ph="tourbikes-0"]{--fd-ph:url('/images/outdoors/examples/tour-bike-rentals-2610-800.jpg?v=81c2f2d618')}
  body.fd-page li.venue-card[data-ph="tourfatbike-0"]{--fd-ph:url('/images/outdoors/examples/tour-fat-bike-2610-800.jpg?v=5ce1c0cbd9');--fd-ph-y:55%}
  body.fd-page li.venue-card[data-ph="tourcruise-0"]{--fd-ph:url('/images/outdoors/examples/tour-lake-cruise-2610-800.jpg?v=47c18d567d');--fd-ph-y:55%}
  body.fd-page li.venue-card[data-ph="tourmotorboat-0"]{--fd-ph:url('/images/outdoors/examples/tour-motorboat-2610-800.jpg?v=12f7235ec1')}
  body.fd-page li.venue-card[data-ph="tourboatfriends-0"]{--fd-ph:url('/images/outdoors/examples/tour-boat-friends-2610-800.jpg?v=6bd43ab2ac');--fd-ph-y:45%}
  body.fd-page li.venue-card[data-ph="tourpontoon-0"]{--fd-ph:url('/images/outdoors/examples/tour-pontoon-2610-800.jpg?v=782566e902');--fd-ph-y:55%}
  body.fd-page li.venue-card[data-ph="tourpontoonshore-0"]{--fd-ph:url('/images/outdoors/examples/tour-pontoon-shore-2610-800.jpg?v=436101f771');--fd-ph-y:55%}
  body.fd-page li.venue-card[data-ph="tourparasail-0"]{--fd-ph:url('/images/outdoors/examples/tour-parasail-2610-800.jpg?v=83f6964dba');--fd-ph-y:45%}
  body.fd-page li.venue-card[data-ph="tourpaddlerack-0"]{--fd-ph:url('/images/outdoors/examples/tour-paddle-rentals-2610-800.jpg?v=c6595cdabd');--fd-ph-y:55%}
  body.fd-page li.venue-card[data-ph="tourpedalboat-0"]{--fd-ph:url('/images/outdoors/examples/tour-pedal-boats-2610-800.jpg?v=e61694fc7a');--fd-ph-y:55%}
  body.fd-page li.venue-card[data-ph="toursnowshoe-0"]{--fd-ph:url('/images/outdoors/examples/tour-snowshoe-2610-800.jpg?v=7515df94d2');--fd-ph-y:55%}
  body.fd-page li.venue-card[data-ph="toursnowcat-0"]{--fd-ph:url('/images/outdoors/examples/tour-snowcat-2610-800.jpg?v=eea596cec0')}
  body.fd-page li.venue-card[data-ph="tourpowder-0"]{--fd-ph:url('/images/outdoors/examples/tour-powder-ski-2610-800.jpg?v=bf3769f36e');--fd-ph-y:45%}
  body.fd-page li.venue-card[data-ph="toursleigh-0"]{--fd-ph:url('/images/outdoors/examples/tour-sleigh-2610-800.jpg?v=c2fdb0b912');--fd-ph-y:45%}
  body.fd-page li.venue-card[data-ph="tourclimb-0"]{--fd-ph:url('/images/outdoors/examples/tour-rock-climb-2610-800.jpg?v=d057421029');--fd-ph-y:45%}
  body.fd-page li.venue-card[data-ph="tourcanyon-0"]{--fd-ph:url('/images/outdoors/examples/tour-canyoning-2610-800.jpg?v=99293d757a');--fd-ph-y:45%}
  body.fd-page li.venue-card[data-ph="tourheli-0"]{--fd-ph:url('/images/outdoors/examples/tour-helicopter-2610-800.jpg?v=68206598e1');--fd-ph-y:45%}
  body.fd-page li.venue-card[data-ph="tourfood-0"]{--fd-ph:url('/images/outdoors/examples/tour-food-2610-800.jpg?v=c08ad748b0')}
  body.fd-page li.venue-card[data-ph="tourghost-0"]{--fd-ph:url('/images/outdoors/examples/tour-ghost-walk-2610-800.jpg?v=8ff904cf8b');--fd-ph-y:40%}
  body.fd-page li.venue-card[data-ph="tourmushroom-0"]{--fd-ph:url('/images/outdoors/examples/tour-mushrooms-2610-800.jpg?v=994a8fe915');--fd-ph-y:55%}
  body.fd-page li.venue-card[data-ph="tourcraft-0"]{--fd-ph:url('/images/outdoors/examples/tour-craft-workshop-2610-800.jpg?v=bf73f5fe09');--fd-ph-y:45%}
  body.fd-page li.venue-card[data-ph="tourgoat-0"]{--fd-ph:url('/images/outdoors/examples/tour-goat-2610-800.jpg?v=a3d7867864');--fd-ph-y:45%}
  body.fd-page li.venue-card[data-ph="tourpetting-0"]{--fd-ph:url('/images/outdoors/examples/tour-petting-zoo-2610-800.jpg?v=4a974f18be');--fd-ph-y:45%}
  body.fd-page li.venue-card[data-ph="tourcherries-0"]{--fd-ph:url('/images/outdoors/examples/tour-cherry-picking-2610-800.jpg?v=6f801a42be');--fd-ph-y:40%}
  body.fd-page li.venue-card[data-ph="tourapples-0"]{--fd-ph:url('/images/outdoors/examples/tour-apples-2610-800.jpg?v=fd7a7f7898')}
  body.fd-page li.venue-card[data-ph="tourpeaches-0"]{--fd-ph:url('/images/outdoors/examples/tour-peaches-2610-800.jpg?v=3005934a4e')}
  body.fd-page li.venue-card[data-ph="tourflowers-0"]{--fd-ph:url('/images/outdoors/examples/tour-flower-farm-2610-800.jpg?v=83b51c832c');--fd-ph-y:40%}
  body.fd-page li.venue-card[data-ph="restaurant-dog"]{--fd-ph:url('/images/trip-v3/stops/stop-dog-restaurant-480.jpg?v=800832609e')}
  body.fd-page li.venue-card[data-ph="cafe-dog"]{--fd-ph:url('/images/trip-v3/stops/stop-dog-cafe-480.jpg?v=2019548c84')}
  body.fd-page li.venue-card[data-ph="pub-dog"]{--fd-ph:url('/images/trip-v3/stops/stop-dog-pub-480.jpg?v=ecb1474deb')}
  body.fd-page li.venue-card[data-ph="cocktail-dog"]{--fd-ph:url('/images/trip-v3/stops/stop-dog-cocktail-480.jpg?v=0e7f9a04ee')}
  body.fd-page li.venue-card[data-ph="brewery-dog"]{--fd-ph:url('/images/trip-v3/stops/stop-dog-brewery-480.jpg?v=d878465c46')}
  body.fd-page li.venue-card[data-ph="distillery-dog"]{--fd-ph:url('/images/trip-v3/stops/stop-dog-distillery-480.jpg?v=c8e37f6a94')}
  body.fd-page li.venue-card[data-ph="noodle"]{--fd-ph:url('/images/trip-v3/stops/stop-restaurant-noodle-480.jpg?v=f470e2feca')}
  /* The excerpt is already shortened, and the name opens the full page, so
     the list cards drop the inline Read more and keep the text short. */
  body.fd-page .card-grid > li.venue-card[data-ph] .desc-toggle { display: none !important; }
  body.fd-page .card-grid > li.venue-card[data-ph] .golf-desc { min-height: 0; }
  body.fd-page .card-grid > li.venue-card[data-ph] .golf-desc p { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; max-height: none; }
  /* A lower banner on wide screens, so the list starts inside the first screen. */
  @media (min-width: 900px) { body.fd-page .category-banner { aspect-ratio: 4 / 1; max-height: 300px; } }
  /* Three-up on wide screens. */
  @media (min-width: 1180px) { body.fd-page .card-grid:has(> li.venue-card[data-ph]) { grid-template-columns: repeat(3, 1fr); } }
  .fd-pop-short { display: none; }

  /* Phones (2026-10-14): the first place used to start ~1,000px down and each
     card was ~450px tall. A shorter photo, a two-line intro, one row of
     controls, two-line excerpts and a single swipeable badge row bring the
     first card into the first screen and roughly halve the scrolling. */
  @media (max-width: 640px) {
    body.fd-page .category-banner { aspect-ratio: 5 / 2; margin-bottom: 12px; }
    body.fd-page h1 { font-size: 1.6rem; }
    body.fd-page .fd-intro { font-size: 0.95rem; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-bottom: 8px; }
    body.fd-page .fd-type-page-link { margin: 0 0 12px; font-size: 0.9rem; }
    body.fd-page .fd-type-row { scrollbar-width: none; padding-bottom: 2px; }
    body.fd-page .fd-type-row::-webkit-scrollbar { display: none; }
    body.fd-page .card-grid > li.venue-card[data-ph] > .chips:not(:empty) { margin-top: 8px; }
    /* Phone layout (2026-10-18): the controls wrap to a second row when they don't fit (/browse has six, and French
       labels are longer); nowrap pushed the page 450px sideways at 375px. The popovers stay anchored to the bar. */
    body.fd-page .fd-controls { flex-wrap: wrap; gap: 6px; }
    body.fd-page .fd-pop-btn { padding: 8px 11px; font-size: 0.82rem; white-space: nowrap; }
    body.fd-page .fd-pop-long { display: none; }
    body.fd-page .fd-pop-short { display: inline; }
    body.fd-page .fd-resultbar { flex-wrap: wrap; gap: 6px 12px; }
    body.fd-page li.venue-card[data-ph]:not(.whatson-event-card) { padding: 92px 16px 14px !important; }
    body.fd-page li.venue-card[data-ph]::before { height: 78px; }
    body.fd-page .card-grid > li.venue-card[data-ph] .golf-desc p { -webkit-line-clamp: 2; }
    /* Accessibility (2026-10-18): the chips wrap instead of a sideways-scrolling row, which a keyboard could not scroll. */
    body.fd-page .card-grid > li.venue-card[data-ph] > .chips { display: flex; flex-wrap: wrap; gap: 6px; }
    body.fd-page .card-grid > li.venue-card[data-ph] > .chips > * { flex: 0 0 auto; white-space: nowrap; }
  }
