body[data-project="ludia"] {
  background: #faf4e9;
}
body[data-project="ludia"] .hero {
  min-height: 0;
  padding: 10px 20px 23px;
}
body[data-project="ludia"] .hero-brand {
  font-size: clamp(52px, 7vw, 77px);
  margin-bottom: 12px;
}
body[data-project="ludia"] .hero-copy { margin-bottom: 20px; }
.hero .eyebrow { margin-bottom: 10px; }
.hero .search-hint { margin-bottom: 0; }
.agenda {
  position: relative;
  border-top: 3px double #b79b77;
  padding-top: 24px;
}
.agenda .section-heading { align-items: end; margin-bottom: 14px; }
.agenda .section-heading h2 { color: #402d21; }
.agenda-tools, .carousel-controls {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}
.agenda-tools { justify-content: space-between; margin: 0 0 15px; }
.agenda-tools .button { color: #402d21; background: #fffaf1; }
.carousel-controls button {
  min-height: 44px;
  min-width: 44px;
  border: 1px solid #c7af92;
  border-radius: 50%;
  color: #402d21;
  background: #fffaf1;
  font-size: 20px;
}
.carousel-controls button:disabled { opacity: .42; }
.carousel-position { min-width: 6ch; text-align: center; color: #645044; font-size: 12px; }
.agenda .date-toolbar {
  margin: 0 0 16px;
  padding: 12px 15px;
  background: #f3e7d5;
  border-radius: 9px;
}
.event-carousel {
  --events-per-page: 4;
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - 54px) / 4);
  gap: 18px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: 3px;
  scrollbar-color: #a77653 #eadbc8;
  padding: 3px 3px 13px;
}
.event-carousel > .empty, .event-carousel > .muted { grid-column: 1 / 5; }
.event-carousel .event-card {
  padding: 0;
  min-width: 0;
  overflow: hidden;
  scroll-snap-align: start;
  text-decoration: none;
  color: #402d21;
  background: #fffaf1;
  border-color: #cfb99f;
}
.event-carousel .event-card:hover { border-color: #893c2d; }
.event-carousel .event-card:focus-visible { outline-offset: -3px; }
.card-art { display: block; width: 100%; height: 118px; background: #825044; }
.card-art[data-theme="devocion"] { background: #805045; }
.card-art[data-theme="gastronomia"] { background: #566044; }
.card-art[data-theme="musica"] { background: #584967; }
.card-art[data-theme="artesania"] { background: #8b552f; }
.card-art[data-theme="feria"] { background: #974a37; }
.card-art[data-theme="tradicion"] { background: #4a625b; }
.card-content { display: flex; flex-direction: column; flex: 1; padding: 15px 17px; }
.card-content h3 { margin: 8px 0; overflow-wrap: anywhere; }
.card-content p { margin: 0 0 8px; line-height: 1.4; font-size: 13px; }
.card-content .card-place { font-weight: 650; }
.card-content .card-date { font-variant-numeric: tabular-nums; }
.card-content .card-description { color: #635044; }
.card-content .card-bottom { color: #6d3b2b; }
.date-note { margin-top: 12px; }
.event-map {
  height: 300px;
  height: clamp(210px, 34dvh, 340px);
  margin-top: 8px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #eae4d8;
  isolation: isolate;
}
.event-map-pin {
  border: 3px solid #fff;
  border-radius: 50%;
  background: #963e2d;
  box-shadow: 0 1px 4px #402d21aa;
}
.event-map-pin.is-reference { background: #5b6b49; }
.event-map-locations { padding-left: 22px; }
body:has(#detail-dialog[open]) { overflow: hidden; }
#detail-dialog {
  inset: 0;
  box-sizing: border-box;
  margin: 0;
  width: 100%;
  max-width: none;
  height: 100%;
  height: 100dvh;
  max-height: none;
  padding: env(safe-area-inset-top, 0px) max(20px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));
  border: 0;
  border-radius: 0;
  overscroll-behavior: contain;
}
#detail-content { max-width: 920px; margin-inline: auto; }
#detail-dialog .detail-return {
  position: sticky;
  top: 0;
  z-index: 600;
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
  background: var(--paper);
}
#detail-dialog .detail-top { position: static; padding: 14px 0 0; }
@media (max-width: 950px) {
  .event-carousel { --events-per-page: 2; grid-auto-columns: calc((100% - 18px) / 2); }
  .event-carousel > .empty, .event-carousel > .muted { grid-column: 1 / 3; }
}
@media (max-width: 680px) {
  body[data-project="ludia"] .hero { padding-top: 4px; padding-bottom: 19px; }
  body[data-project="ludia"] .hero-copy { margin-bottom: 14px; }
  .agenda { padding-top: 18px; }
  .agenda .section-heading { align-items: start; }
  .event-carousel { --events-per-page: 1; grid-auto-columns: 100%; gap: 10px; touch-action: pan-x pan-y pinch-zoom; }
  .event-carousel .event-card { scroll-snap-stop: always; }
  .event-carousel > .empty, .event-carousel > .muted { grid-column: 1; }
  .agenda-tools { gap: 7px; }
  .agenda-tools .agenda-tools { margin-bottom: 3px; }
  .agenda-tools .button { padding: 8px 10px; }
  .card-art { height: 97px; }
}
