/* Encuentros: pequeñas variaciones de la paleta de la casa. */
.event-group { margin-top: 35px; }
.event-group > h3 { font: normal 30px Georgia, serif; margin-bottom: 20px; display: flex; align-items: center; gap: 14px; }
.event-group > h3::before { content: ''; width: 24px; height: 3px; background: var(--rojo-claro); }
.events-empty { padding: 22px 25px; border: 1px dashed #725151; border-radius: 14px; color: var(--secundario); }
.event-card { border-radius: 16px 16px 16px 3px; border: 1px solid #644044; background: linear-gradient(130deg,#302426,var(--panel)); padding: 26px; }
.event-card h4 { font: normal 25px Georgia,serif; margin-bottom: 10px; }
.event-card .event-open { margin-top: 20px; }
.event-open { border: 1px solid #b34c54; color: var(--texto); background: #531e25; cursor: pointer; border-radius: 24px; padding: 10px 20px; }
.event-open:hover { background: var(--rojo); }
.event-open:focus-visible, .event-close:focus-visible { outline: 2px solid var(--rojo-claro); outline-offset: 4px; }
.event-dialog { margin: auto; width: min(920px,94vw); max-height: 90dvh; color: var(--texto); background: var(--fondo-alterno); border: 1px solid #805057; border-radius: 20px; padding: 0; overscroll-behavior: contain; }
.event-dialog::backdrop { background: #080505e8; }
.event-dialog-header { position: sticky; top: 0; z-index: 2; padding: 16px 24px; background: #211e1ef5; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #ffffff20; }
.event-close { background: transparent; color: var(--texto); border: 1px solid #ffffff40; border-radius: 50%; width: 44px; height: 44px; font-size: 1.75rem; cursor: pointer; }
.event-dialog-body { padding: 28px; }
.event-dialog h2 { font: normal clamp(28px,5vw,40px) Georgia,serif; line-height: 1.2; margin-bottom: 16px; }
.event-dialog h3 { font: normal 25px Georgia,serif; margin: 28px 0 14px; }
.event-dialog p, .event-dialog figcaption { color: var(--secundario); }
.event-details-list { list-style: none; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.event-details-list li { padding: 16px; border-radius: 10px; background: var(--panel); overflow-wrap: anywhere; }
.event-details-list strong { display: block; }
.event-media { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.event-media figure { min-width: 0; }
.event-media img, .event-media video { display: block; width: 100%; max-height: 65dvh; object-fit: contain; background: #141111; border-radius: 10px; }
.event-media figcaption { font-size: 0.875rem; padding: 8px 0; }
.event-media-error { padding: 16px; border: 1px dashed #805057; }
.location-panel { margin-top: 40px; border: 1px solid #8f3d46; border-radius: 12px; overflow: hidden; }
.location-heading { padding: 22px; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; background: #302124; }
.location-heading strong { font: normal 27px Georgia,serif; }
.location-heading p { color: var(--secundario); }
.restaurant-map { height: 420px; background: #e5e0da; color: #211e1e; isolation: isolate; z-index: 0; }
.restaurant-pin { background: transparent; border: 0; }
/* The approved artwork is an alpha mask, so the marker uses one flat brand color. */
.restaurant-pin span {
  display: block; width: 100%; height: 100%; background-color: var(--rojo);
  -webkit-mask: url('marcador-copa-fuego.png') center / contain no-repeat;
  mask: url('marcador-copa-fuego.png') center / contain no-repeat;
}
.restaurant-label { font: bold 16px Arial,sans-serif; background: #a91e2a; color: white; border: 2px solid white; border-radius: 8px; padding: 9px 14px; box-shadow: 0 2px 12px #0005; }
.leaflet-tooltip-top.restaurant-label::before { border-top-color: white; }
@media(max-width:640px) {
  .gallery-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
  .gallery-photo { height: auto; aspect-ratio: 1 / 1; }
  .about-image { height: 230px; }
  .event-dialog-body { padding: 20px; }
  .event-details-list, .event-media { grid-template-columns: 1fr; }
  .restaurant-map { height: 310px; }
}
