/* One count in the agenda; the hero stays focused on the cultural proposition. */
.dawn-masthead .week-card,
.dawn-masthead #last-updated,
.dawn-masthead .dawn-footnote,
.dawn-masthead .site-header nav a[data-secondary],
#all-categories[hidden],
main > .commune-strip,
.agenda-utilities { display: none !important; }
.category-section-heading, .category-context, .category-footnote p,
.mobile-filter-summary { display: none !important; }

/* Keep search and its advanced-filter disclosure together on every screen. */
.toolbar { margin: 18px auto 32px; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; backdrop-filter: none; }
.mobile-search-row { display: flex; align-items: stretch; gap: 9px; width: min(100%, 1100px); margin-inline: auto; }
.mobile-search-row .search-field { display: block; flex: 1; min-width: 0; margin: 0; }
.mobile-search-row .search-field > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.mobile-search-row input { width: 100%; min-height: 50px; padding: 0 14px; border-radius: 13px; background: #fffdf7; font-size: 16px; }
.mobile-search-row .filter-toggle { display: flex; width: auto; min-height: 50px; padding: 0 14px; flex: 0 0 auto; align-items: center; gap: 7px; border: 1px solid var(--line); border-radius: 13px; background: #fffdf7; box-shadow: none; font-size: .78rem; }
.mobile-search-row .filter-toggle svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.mobile-search-row .filter-toggle i { display: none; }
.mobile-search-row .filter-toggle small { margin: 0; min-width: 18px; height: 18px; font-size: .6rem; }
.mobile-search-row .filter-toggle small[hidden] { display: none; }
.filter-panel { width: min(100%, 1100px); margin: 10px auto 0; padding: 15px; border: 1px solid var(--line); border-radius: 14px; background: #fffdf7; box-shadow: none; }
.filter-panel[hidden] { display: none !important; }
.filter-panel .field-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.filter-panel .mobile-commune-field { display: grid; }
.filter-panel select { min-width: 0; }
.mobile-search-feedback:not([hidden]) { display: block; width: min(100%, 1100px); margin: 10px auto 0; padding: 12px; border: 1px solid var(--line); border-radius: 14px; background: #fffdf7; }
.mobile-search-feedback p, .mobile-search-feedback > span { margin: 0; color: var(--muted); font-size: .76rem; }
.mobile-search-feedback ul { list-style: none; margin: 5px 0; padding: 0; }
.mobile-search-feedback li { padding: 7px 0; border-bottom: 1px solid var(--line); }
.mobile-search-feedback .event-title-link { display: flex; align-items: center; min-height: 44px; font-size: .92rem; font-weight: 700; text-decoration: none; }
.mobile-search-feedback small { display: block; color: var(--muted); font-size: .68rem; }
.mobile-search-feedback .search-all-results { display: flex; align-items: center; min-height: 44px; font-size: .78rem; font-weight: 700; }
/* The view selector is consistently visible, with a short label and icons. */
.agenda > .section-heading { display: grid; grid-template-columns: minmax(0, 1fr); gap: 17px; }
.agenda-heading-top { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 18px; margin-bottom: 11px; }
.agenda-heading-top .eyebrow { margin: 0; }
.agenda-heading-top .result-count { margin: 0; padding: 6px 10px; font-size: .79rem; }
.agenda-filter-context { color: var(--muted); font-size: .73rem; font-weight: 700; }
.agenda-filter-context[hidden] { display: none; }
.agenda-heading-actions { display: grid; grid-template-columns: minmax(0, 1fr); width: 100%; max-width: 1100px; margin-inline: auto; justify-self: center; justify-content: stretch; justify-items: stretch; gap: 6px; }
.view-switcher-label { margin: 0; color: var(--muted); font-size: .76rem; font-weight: 700; text-align: center; }
.view-switcher { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 3px; width: 100%; padding: 4px; border-radius: 15px; }
.view-button { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; min-width: 0; min-height: 59px; padding: 6px 2px; border-radius: 11px; line-height: 1.1; white-space: nowrap; }
.view-button svg { display: block; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; flex: 0 0 auto; }
.view-button[data-view="mural"] svg { width: 20px; height: 20px; }
.view-button[data-view="mural"]:is(:hover, .active) svg .gallery-icon-left { animation: flyer-up 1.8s ease-in-out infinite alternate; }
.view-button[data-view="mural"]:is(:hover, .active) svg .gallery-icon-right { animation: flyer-down 2s ease-in-out infinite alternate; }
.view-button svg g, .view-button svg path, .view-button svg rect, .view-button svg text { transform-box: fill-box; transform-origin: center; }
.view-button .card-icon-glow { fill: currentColor; stroke: none; opacity: .08; }
.view-button[data-view="cards"]:is(:hover, .active) svg { animation: card-lift 1.6s ease-in-out infinite alternate; }
.view-button[data-view="cards"]:is(:hover, .active) .card-icon-glow { animation: card-color 1.6s ease-in-out infinite alternate; }
.view-button[data-view="list"]:is(:hover, .active) .list-icon-row { animation: list-appear 1.8s ease-in-out infinite; }
.view-button[data-view="list"]:is(:hover, .active) .list-icon-row-2 { animation-delay: .18s; }
.view-button[data-view="list"]:is(:hover, .active) .list-icon-row-3 { animation-delay: .36s; }
.view-button .calendar-icon-date { font: 800 9px/1 Arial, sans-serif; fill: currentColor; stroke: none; }
.view-button .calendar-icon-date-2 { opacity: 0; }
.view-button[data-view="calendar"]:is(:hover, .active) .calendar-icon-date-1 { animation: calendar-date-out 2.4s ease-in-out infinite; }
.view-button[data-view="calendar"]:is(:hover, .active) .calendar-icon-date-2 { animation: calendar-date-in 2.4s ease-in-out infinite; }
.view-button[data-view="map"]:is(:hover, .active) .map-icon-marker { animation: map-pin-hop 1.75s ease-in-out infinite; }
.view-button[data-view="map"]:is(:hover, .active) .map-icon-dot { animation: map-dot-flash 1.75s ease-in-out infinite; }
@keyframes flyer-up { to { transform: translateY(-2px); } }
@keyframes flyer-down { to { transform: translateY(2px); } }
@keyframes card-lift { to { transform: translateY(-2px) scale(1.07); } }
@keyframes card-color { to { opacity: .34; } }
@keyframes list-appear { 0%, 12%, 100% { opacity: .42; transform: translateX(-3px); } 38%, 78% { opacity: 1; transform: translateX(0); } }
@keyframes calendar-date-out { 0%, 38%, 100% { opacity: 1; transform: translateY(0); } 52%, 86% { opacity: 0; transform: translateY(-2px); } }
@keyframes calendar-date-in { 0%, 38%, 100% { opacity: 0; transform: translateY(2px); } 52%, 86% { opacity: 1; transform: translateY(0); } }
@keyframes map-pin-hop { 0%, 38%, 100% { transform: translateY(0); } 58% { transform: translateY(-3px); } 74% { transform: translateY(-1px); } }
@keyframes map-dot-flash { 0%, 38%, 100% { fill: none; } 58%, 74% { fill: currentColor; } }
.view-button span { display: block; }
.view-button:focus-visible { outline-offset: 2px; }

/* Help appears where reaction icons are used; bulk export belongs to Calendar. */
.cards-help-row, .calendar-batch-row { display: flex; justify-content: flex-end; }
.cards-help-row { margin: 0 0 9px; }
.calendar-batch-row { margin: 4px 0 13px; }
.cards-help-row details, .calendar-batch-row details { position: relative; }
.calendar-batch-row .batch-calendar summary { min-height: 44px; padding: 0 11px; font-size: .7rem; }
.calendar-batch-row .batch-calendar summary svg { width: 15px; height: 15px; }
.calendar-toolbar h3, .calendar-day-heading h3, .list-day-heading h3 { text-transform: none; }

/* Clear, compact mural actions with persistent accessible names. */
.mural-toolbar { justify-content: flex-end; gap: 12px; }
.mural-controls { flex-wrap: nowrap; }
#mural-motion, #mural-static { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 44px; }
.mural-control-icon { display: inline-grid; place-items: center; min-width: 19px; font-size: 1.1rem; line-height: 1; }

@media (max-width: 960px) {
  .agenda-heading-actions { width: 100%; display: grid; }
  .view-switcher { order: initial; }
  .filter-panel .field-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .filter-panel .budget-field { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .mural-control-label { display: none; }
  #mural-motion, #mural-static { width: 44px; height: 44px; padding: 0; border-radius: 12px; }
}
@media (max-width: 620px) {
  .agenda > .section-heading { gap: 12px; }
  .agenda-heading-actions, .agenda-heading-actions .view-switcher { width: 100%; min-width: 0; }
  .agenda-heading-top { gap: 6px 11px; margin-bottom: 7px; }
  .agenda-heading-top .result-count { font-size: .73rem; }
  .view-button { min-height: 54px; gap: 4px; padding-inline: 1px; font-size: .65rem; }
  .view-button svg { width: 16px; height: 16px; }
  .mural-toolbar { flex-direction: row; align-items: center; justify-content: flex-end; gap: 8px; }
}
@media (max-width: 360px) {
  .view-button { font-size: .6rem; }
}
@media (prefers-reduced-motion: reduce) {
  .view-button[data-view="mural"] svg g { animation: none !important; }
  .view-button[data-view="cards"] svg,
  .view-button[data-view="cards"] .card-icon-glow,
  .view-button[data-view="list"] .list-icon-row,
  .view-button[data-view="calendar"] .calendar-icon-date,
  .view-button[data-view="map"] .map-icon-marker,
  .view-button[data-view="map"] .map-icon-dot { animation: none !important; }
}
