
  /* What's On page (2026-09-22): the Golf card rules re-keyed to the What's On card attribute. */
  
  .venue-card[data-venue-category="whatson"] .chips:empty { display: none; }
  .venue-card[data-venue-category="whatson"] .chips:not(:empty) {
    margin: 10px 0 0; padding-top: 10px; border-top: 1px solid rgba(74,52,40,0.10);
  }
  .venue-card[data-venue-category="whatson"] .card-actions {
    display: flex; gap: 8px; flex-wrap: wrap; align-items: center;
    margin-top: 10px; padding-top: 10px; border-top: 1px solid rgba(74,52,40,0.10);
  }
  .venue-card[data-venue-category="whatson"] .chips:not(:empty) + .card-actions {
    margin-top: 8px; padding-top: 0; border-top: 0;
  }
  .venue-card[data-venue-category="whatson"] .card-action {
    display: inline-flex; align-items: center; gap: 5px; margin: 0;
    font-size: 0.82rem; font-weight: 700; font-family: 'Nunito', 'Nunito Fallback', sans-serif; line-height: 1.4;
    color: var(--ink); background: var(--sand-deep); border: none; text-decoration: none;
    border-radius: 999px; padding: 5px 12px; cursor: pointer; width: fit-content;
    transition: background 0.15s;
  }
  .venue-card[data-venue-category="whatson"] .card-action:hover { background: rgba(224,169,78,0.35); color: var(--ink); text-decoration: none; }
  .venue-card[data-venue-category="whatson"] .card-action:focus-visible { outline: 2px solid var(--plum); outline-offset: 2px; }
  .venue-card[data-venue-category="whatson"] .trip-btn.in-trip { background: var(--teal, #2A6B67); color: var(--paper); }
  .venue-card[data-venue-category="whatson"] .fav-btn.is-fav { background: var(--plum); color: var(--paper); }
  .venue-card[data-venue-category="whatson"] .trip-notice { margin: 8px 0 0; font-size: 0.85rem; color: var(--plum); }
  .venue-card[data-venue-category="whatson"] .trip-notice:empty { display: none; }
  
  body.golf-page .venue-card[data-venue-category="whatson"] .chips:not(:empty), body.golf-page .venue-card[data-venue-category="whatson"] .card-actions { border-top-color: rgba(27,43,58,0.1); }
  body.golf-page .venue-card[data-venue-category="whatson"] .card-actions { margin-top: auto; padding-top: 12px; }
  body.golf-page .venue-card[data-venue-category="whatson"] > .chips:not(:empty) + .card-actions { margin-top: auto; padding-top: 8px; }
  body.golf-page .venue-card[data-venue-category="whatson"] .card-action {
    background: transparent; color: var(--ref-navy); border: 1px solid rgba(27,43,58,0.2);
  }
  body.golf-page .venue-card[data-venue-category="whatson"] .card-action:hover { background: rgba(27,43,58,0.06); color: var(--ref-navy); }
  body.golf-page .venue-card[data-venue-category="whatson"] .fav-btn.is-fav { background: var(--ref-navy); color: var(--paper); border-color: var(--ref-navy); }
  body.golf-page .venue-card[data-venue-category="whatson"] .fav-btn.is-fav:hover { background: var(--ref-navy-deep); color: var(--paper); }
  body.golf-page .venue-card[data-venue-category="whatson"] .trip-btn.in-trip { background: var(--teal); color: var(--paper); border-color: var(--teal); }
  body.golf-page .venue-card[data-venue-category="whatson"] .trip-btn.in-trip:hover { background: var(--teal-deep); color: var(--paper); }
  body.golf-page .venue-card[data-venue-category="whatson"] .card-action:focus-visible { outline: 3px solid var(--teal); outline-offset: 3px; }
  /* Twelve category tiles: 2 across on phones (inherited), 3 from 600px (inherited), 4 across from 900px. */
  @media (min-width: 900px) { body.whatson-page .whatson-category-grid { grid-template-columns: repeat(4, 1fr); max-width: none; } }
  body.whatson-page .whatson-category-card-noart .outdoor-activity-card-overlay { background: linear-gradient(180deg, rgba(27,43,58,0.15) 0%, rgba(20,14,10,0.82) 100%); }
  body.whatson-page .whatson-event-img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 10px; margin: 0 0 12px; display: block; }
  body.whatson-page .whatson-category-chip { background: rgba(42,107,103,0.1); color: var(--teal-deep, #1E4F4C); }
  body.whatson-page #whatsOnResults .golf-desc.is-clamped p { -webkit-line-clamp: 3; max-height: calc(3 * 1.45em); }
  body.whatson-page #whatsOnResults > .venue-card[hidden] { display: none; }
  body.whatson-page .whatson-empty { background: var(--paper); border: 1px solid rgba(74,52,40,0.10); border-radius: 12px; padding: 18px 20px; margin: 0 0 26px; max-width: 68ch; }
  body.whatson-page .whatson-empty h3 { font-family: 'Fraunces', 'Fraunces Fallback', serif; font-weight: 600; font-size: 1.15rem; margin: 0 0 6px; color: var(--ink); }
  body.whatson-page .whatson-empty p { margin: 0; color: var(--ink); opacity: 0.8; line-height: 1.55; }
  body.whatson-page .whatson-empty a { color: var(--ref-navy); font-weight: 700; }
  /* Step 6: the "When are you visiting?" step -- preset chips reuse the region-chip rules; the custom-range form and the "Showing" line are page-scoped. */
  /* Links (block boxes with a min-height) put their text at the top; centred like the Choose Dates button (2026-10-18). */
  body.whatson-page a.whatson-date-chip { text-decoration: none; display: inline-flex; align-items: center; justify-content: center; }
  body.whatson-page .whatson-custom-dates { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; margin: 12px 0 4px; }
  body.whatson-page .whatson-custom-dates[hidden] { display: none; }
  body.whatson-page .whatson-custom-dates label { display: flex; flex-direction: column; gap: 4px; font-family: 'Nunito', 'Nunito Fallback', sans-serif; font-size: 0.85rem; font-weight: 800; color: var(--ink); }
  body.whatson-page .whatson-custom-dates input[type="date"] { font: inherit; padding: 8px 10px; border-radius: 10px; border: 1px solid rgba(27,43,58,0.18); background: var(--paper); color: var(--ink); min-height: 40px; }
  body.whatson-page .whatson-custom-dates .cta.whatson-custom-go { margin: 0; }
  body.whatson-page .whatson-date-showing { margin: 10px 0 0; font-family: 'Nunito', 'Nunito Fallback', sans-serif; font-size: 0.9rem; color: var(--ink); opacity: 0.8; }
  body.whatson-page .whatson-date-note { margin: 6px 0 0; font-family: 'Nunito', 'Nunito Fallback', sans-serif; font-size: 0.9rem; color: var(--plum, #6B2C40); font-weight: 700; }

  /* ---- Simplified filter surface (2026-09-24) -----------------------------
     Compact search + one horizontal category chip row + Regions/Date
     popovers, replacing the twelve image tiles and four accordions that used
     to sit above the results. All page-scoped to body.whatson-page; nothing
     here can reach the homepage or any other page. Colours, radii and the
     Nunito/weight conventions are the existing design system's. */
  body.whatson-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.whatson-page .whatson-intro { margin-bottom: 14px; }

  body.whatson-page .whatson-search { position: relative; margin: 0 0 12px; max-width: 520px; }
  body.whatson-page .whatson-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.whatson-page .whatson-search-input::placeholder { color: rgba(42,32,25,0.55); }
  /* The page draws its own clear button, so suppress the browser's native one. */
  body.whatson-page .whatson-search-input::-webkit-search-cancel-button, body.whatson-page .whatson-search-input::-webkit-search-decoration { -webkit-appearance: none; appearance: none; }
  body.whatson-page .whatson-search-input:focus-visible { outline: 2px solid var(--ref-gold); outline-offset: 2px; }
  body.whatson-page .whatson-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.whatson-page .whatson-search-clear[hidden] { display: none; }

  body.whatson-page .whatson-cat-row { display: flex; gap: 8px; overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch; scrollbar-width: thin; padding: 2px 0 8px; margin: 0 0 10px; }
  body.whatson-page .whatson-cat-row::-webkit-scrollbar { height: 6px; }
  body.whatson-page .whatson-cat-row::-webkit-scrollbar-thumb { background: rgba(74,52,40,0.2); border-radius: 999px; }
  body.whatson-page .whatson-cat-chip { flex: 0 0 auto; white-space: nowrap; }
  @media (min-width: 900px) { body.whatson-page .whatson-cat-row { flex-wrap: wrap; overflow: visible; } }

  body.whatson-page .whatson-controls { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; }
  body.whatson-page .whatson-pop { position: relative; }
  body.whatson-page .whatson-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.whatson-page .whatson-pop-btn:hover { background: rgba(27,43,58,0.06); color: var(--ref-navy); }
  body.whatson-page .whatson-pop-btn[aria-expanded="true"] { background: var(--ref-navy, #1B2B3A); color: var(--paper); border-color: var(--ref-navy, #1B2B3A); }
  body.whatson-page .whatson-pop-count[hidden] { display: none; }
  body.whatson-page .whatson-pop-panel { position: absolute; z-index: 40; top: calc(100% + 6px); left: 0; min-width: 280px; max-width: min(92vw, 560px); 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.whatson-page .whatson-pop-panel[hidden] { display: none; }
  /* On phones the panel becomes a full-width sheet under the controls rather than a cramped popover. */
  @media (max-width: 640px) {
    body.whatson-page .whatson-controls { position: relative; }
    body.whatson-page .whatson-pop { position: static; }
    body.whatson-page .whatson-pop-panel { left: 0; right: 0; width: auto; min-width: 0; max-width: none; }
  }
  body.whatson-page .whatson-pop-panel .outdoor-step { margin: 0; }
  body.whatson-page .whatson-pop-change { font-weight: 600; color: var(--muted, #5b6b78); }
  body.whatson-page .whatson-pop-btn[aria-expanded="true"] .whatson-pop-change { color: inherit; }
  body.whatson-page .whatson-town-links { list-style: none; margin: 0; padding: 4px; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 4px; }
  body.whatson-page .whatson-town-links a { display: flex; justify-content: space-between; gap: 8px; padding: 8px 10px; border-radius: 8px; color: var(--ink); text-decoration: none; font-weight: 700; }
  body.whatson-page .whatson-town-links a:hover, body.whatson-page .whatson-town-links a:focus-visible { background: rgba(27,43,58,0.06); color: var(--ref-navy); }
  body.whatson-page .whatson-town-count { color: var(--muted, #5b6b78); font-weight: 600; }
  body.whatson-page .whatson-quick-dates { display: flex; gap: 8px; overflow-x: auto; margin: 10px 0 4px; padding-bottom: 2px; scrollbar-width: none; }
  body.whatson-page .whatson-quick-date { flex: none; padding: 7px 14px; border-radius: 999px; border: 1px solid var(--line, #d9e0e6); background: var(--paper); color: var(--ink); font-family: 'Nunito', 'Nunito Fallback', sans-serif; font-weight: 800; font-size: 0.86rem; text-decoration: none; }
  body.whatson-page .whatson-quick-date:hover { background: rgba(27,43,58,0.06); }
  body.whatson-page .whatson-quick-date[aria-current="page"] { background: var(--ref-navy, #1B2B3A); border-color: var(--ref-navy, #1B2B3A); color: var(--paper); }
  body.whatson-page .whatson-date-compact { margin: 0; }

  /* "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.whatson-page .whatson-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.whatson-page .whatson-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.whatson-page .whatson-pop-apply:hover { background: var(--ref-navy-deep); }
  body.whatson-page .whatson-pop-apply:focus-visible { outline: 2px solid var(--ref-gold); outline-offset: 2px; }
  body.whatson-page .whatson-coming-up { margin: 32px 0 0; }
  body.whatson-page .whatson-guides { margin: 40px 0 0; }
  body.whatson-page .whatson-guides + .whatson-browse { margin-top: 12px; }
  body.whatson-page .whatson-browse { margin: 40px 0 8px; }
  body.whatson-page .whatson-browse-list { list-style: none; padding: 0; margin: 8px 0 20px; display: flex; flex-wrap: wrap; gap: 8px 10px; }
  body.whatson-page .whatson-browse-list a, body.whatson-page .whatson-browse-list span { display: inline-block; background: var(--paper); border-radius: 999px; padding: 8px 14px; min-height: 44px; box-sizing: border-box; font-weight: 700; text-decoration: none; }
  /* Round 12 (2026-10-20): the current place ("The whole valley") was faded with opacity (3.59:1); it now reads as the
     current item through an outline instead, in the breadcrumb's own colour (AA). */
  body.whatson-page .whatson-browse-list span { background: transparent; border: 1px solid rgba(42,32,25,0.28); color: rgba(42,32,25,0.76); }
  body.whatson-page .whatson-resultbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 4px 0 6px; }
  body.whatson-page .whatson-count { margin: 0; font-family: 'Nunito', 'Nunito Fallback', sans-serif; font-size: 0.95rem; font-weight: 800; color: var(--ink); }
  body.whatson-page .whatson-results-step { margin-top: 4px; }
  /* Tap targets (2026-10-20, round 11): on phones each "Further ahead" name is a 44px-tall link (it was 23px), and
     the rows give it the room, so neighbouring names never overlap. */
  body.whatson-page .whatson-further-list li { margin: 0 0 8px; }
  @media (max-width: 640px) {
    body.whatson-page .whatson-further-list li { margin: 0; }
    body.whatson-page .whatson-further-list a { display: inline-block; padding: 11px 0; }
  }
