:root{
  --es-font: "Nunito Sans", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  --es-text: #111;
  --es-muted: #555;
  --es-border: #e7e7ea;
  --es-bg: #fff;
  --es-accent: #b5121b;
  --es-accent-ink: #fff;
  --es-radius: 8px;
}

.es-event-page{
  font-family: var(--es-font);
  color: var(--es-text);
  max-width: 980px;
  margin: 0 auto;
  padding: 10px 14px 24px;
}

.es-title{
  margin: 0 0 10px;
  font-size: 22px;
  font-weight: 900;
}

.es-topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  border: 1px solid var(--es-border);
  border-radius: var(--es-radius);
  padding: 12px 14px;
  background: var(--es-bg);
}

.es-topbar__info{
  font-size: 14px;
  color: var(--es-text);
  font-weight: 800;
}

.es-sep{
  color: #999;
  font-weight: 800;
  padding: 0 8px;
}

.es-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 12px 20px;
  border-radius: 8px;
  background: #fff;
  color: var(--es-accent);
  border: 2px solid var(--es-accent);
  text-decoration:none;
  font-weight: 900;
  font-size: 16px;
  line-height: 1;
  white-space: nowrap;
  box-shadow: 0 6px 14px rgba(0,0,0,.08);
}
.es-btn:hover{ background: rgba(0,0,0,.02); }

.es-hero{
  margin-top: 12px;
  border: 1px solid var(--es-border);
  border-radius: var(--es-radius);
  overflow:hidden;
  background:#f1f1f3;
}

.es-hero__img{
  width:100%;
  height:auto;
  display:block;
  aspect-ratio: 16/8;
  object-fit: cover;
}

.es-hero__img--mobile{ display:none; }

.es-section-label{
  margin: 14px 0 8px;
  font-size: 14px;
  font-weight: 900;
  color: #222;
}

.es-description{
  font-size: 14px;
  line-height: 1.7;
  color: #222;
}

/* Mobile read more */
.es-readmore{
  display:inline-block;
  margin-top: 10px;
  background: transparent;
  border: 0;
  padding: 0;
  color: var(--es-accent);
  font-weight: 900;
  cursor: pointer;
}

.es-grid{
  margin-top: 18px;
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  align-items:start;
}

@media (max-width: 860px){
  .es-grid{ grid-template-columns: 1fr; }
  .es-event-page{
    max-width: none;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding: 10px 14px 24px;
  }
  .es-hero{ margin-left: 0; margin-right: 0; }
  .es-hero__img--desktop{ display:none; }
  .es-hero__img--mobile{ display:block; }
  /* Read more button is injected by JS */
}

.es-col{ display:flex; flex-direction:column; gap: 14px; }

.es-box{
  border: 1px solid var(--es-border);
  border-radius: var(--es-radius);
  background: var(--es-bg);
  overflow: hidden;
}

.es-box__title{
  font-size: 18px;
  font-weight: 900;
  color: var(--es-accent);
  padding: 12px 12px 6px;
}

.es-box__body{
  padding: 8px 12px 12px;
  font-size: 13px;
}

.es-muted{ color: var(--es-muted); }

.es-link{ color: var(--es-accent); font-weight: 900; text-decoration:none; }
.es-link:hover{ text-decoration: underline; }

/* Safety box */
.es-box--safety{
  background: #ffe627;
  border-color: rgba(0,0,0,.12);
}
.es-box__title--safety{ color:#111; }
.es-safety__lead{
  margin: 0 0 10px 0;
  color: #111;
  font-weight: 800;
  font-size: 13px;
}
.es-safety__links{ display:flex; flex-direction:column; gap: 10px; }
.es-safety__link{ display:inline-flex; align-items:center; gap: 10px; color:#111; text-decoration:none; font-weight: 900; font-size: 14px; }
.es-safety__link:hover{ text-decoration: underline; }
.es-safety__link i{ font-size: 18px; width: 20px; }

/* Downloads */
.es-downloads{ margin:0; padding:0; list-style:none !important; display:flex; flex-direction:column; gap: 10px; }
.es-downloads__item{ margin:0; }
.es-downloads__link{ display:inline-flex; align-items:center; gap: 10px; text-decoration:none; color: var(--es-text); font-weight: 900; }
.es-icon-circle{
  width: 28px;
  height: 28px;
  border-radius: 999px;
  background: var(--es-accent);
  color: #fff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex: 0 0 28px;
}
.es-icon-circle i{ font-size: 14px; }
.es-downloads__link:hover .es-downloads__name{ text-decoration: underline; }

/* Booking styles */
.es-bookbtn{ display:inline-flex; align-items:center; justify-content:center; padding: 10px 14px; border-radius: 8px; background: var(--es-accent); color:#fff; text-decoration:none; font-weight: 900; }
.es-bookbtn:hover{ filter: brightness(0.95); }
.es-alert{ border: 1px solid rgba(0,0,0,.15); background: rgba(255,255,255,.7); padding: 12px; border-radius: 8px; font-weight: 800; }

/* Mobile hero switching */
.es-hero__img--mobile{ display:none; }
@media (max-width: 860px){
  .es-hero__img--desktop{ display:none; }
  .es-hero__img--mobile{ display:block; }
}

/* Make the event page fill the viewport width on mobile */
@media (max-width: 860px){
  .es-event-page{ width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
}

/* Map */
.es-map iframe{ width:100%; border:0; }
.es-map{ border:1px solid var(--es-border); border-radius: 6px; overflow:hidden; background:#f1f1f3; }

/* Organiser KV */
.es-kv__row{ display:flex; justify-content:space-between; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--es-border); }
.es-kv__row:last-child{ border-bottom:none; }
.es-kv__k{ color: var(--es-muted); font-size: 12px; font-weight: 800; }
.es-kv__v{ font-weight: 900; font-size: 12px; }

/* Book now box content */
.es-booking-alert{
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 8px;
  padding: 12px;
  background: rgba(255,255,255,.65);
}
.es-booking-alert__title{ font-weight: 900; margin:0 0 6px 0; }
.es-booking-alert__btn{ margin-top: 10px; display:inline-flex; align-items:center; justify-content:center; padding: 10px 14px; border-radius: 6px; background: var(--es-accent); color:#fff; text-decoration:none; font-weight: 900; }

