/* Source-neutral canonical Event layout. Applies to all source kinds. */
@media (min-width: 901px) {
  .ll-event-layout--editorial {
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
    grid-template-areas:
       "visual summary"
       "visual followup"
       "description description";
    column-gap: clamp(22px, 4vw, 48px);
    row-gap: 26px;
    align-items: start;
  }
  .ll-event-layout--editorial > .ll-event-layout__column { display: contents; }
  .ll-event-layout--editorial .ll-event-layout__hero { grid-area: visual; margin: 0; }
  .ll-event-layout--editorial .ll-event-layout__summary { grid-area: summary; margin: 0; }
  .ll-event-layout--editorial .ll-event-layout__description { grid-area: description; margin: 0; }
  .ll-event-layout--editorial .ll-event-layout__followup { grid-area: followup; margin: 0; }
}
.ll-event-layout--editorial .ll-event-hero__image {
  width: 100%; max-height: 490px; object-fit: contain; object-position: left top;
  background: #f8fafc; border-radius: 12px;
}
.ll-event-layout--editorial .ll-event-layout__summary {
  border: 1px solid #e0e7ee; border-radius: 14px; padding: clamp(16px, 2.5vw, 25px);
  background: #fbfdff;
}
.ll-event-layout--editorial .ll-event-layout__description {
  border-top: 1px solid #e6ebf1; padding-top: 24px;
}
.ll-event-layout--editorial .ll-event-layout__description .ll-event-description,
.ll-event-layout--editorial .ll-event-layout__description .ll-event-description__body {
  max-width: 90ch; line-height: 1.7; overflow-wrap: anywhere;
}
.ll-event-layout--editorial .ll-event-layout__description p { margin-bottom: .95em; }
.ll-event-layout--editorial .ll-event-location-map iframe { min-height: 285px; }
.ll-event-page-quick-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 20px; }
.ll-event-page-quick-actions a,
.ll-event-page-quick-actions button {
  display: inline-flex; align-items: center; gap: 7px; padding: 10px 15px;
  border: 1px solid #1e5574; border-radius: 7px;
  background: #fff; color: #124a6b; text-decoration: none;
  font: inherit; font-weight: 650; cursor: pointer;
}
.ll-event-page-quick-actions a:hover,
.ll-event-page-quick-actions button:hover { color: #fff; background: #124a6b; }
.ll-event-layout--editorial .ll-event-layout__followup .ll-event-location-map { max-width: 620px; }
.ll-event-page-excerpt { max-width: 90ch; line-height: 1.7; white-space: normal; margin: 0 0 16px; }
.ll-event-page-full-source { max-width: 90ch; border-top: 1px solid #e6ebf1; margin: 16px 0 0; padding-top: 13px; }
.ll-event-page-full-source summary { cursor: pointer; font-weight: 650; color: #124a6b; }
.ll-event-page-full-source[open] summary { margin-bottom: 15px; }
.ll-event-page-map-notice { display: block; margin-top: 9px; color: #6a4d08; font-size: .88rem; }
@media (max-width: 900px) {
  .ll-event-layout--editorial .ll-event-hero__image { max-height: 430px; object-position: center top; }
  .ll-event-layout--editorial .ll-event-layout__summary { padding: 16px; }
}

.ll-event-page-admission { display: inline-block; padding: 6px 10px; margin-top: 12px; border-radius: 6px; background: #e5f4e8; color: #135a30; font-size: .92rem; font-weight: 750; }

/* Source neutral: one editorial event page for Facebook, CitySpark, Eventbrite, manual entries. */
.ll-event-layout--editorial .ll-event-layout__followup { align-self: start; }
.ll-event-layout--editorial .ll-event-layout__description::before {
  content: "Event details";
  display: block;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.3;
  margin: 0 0 14px;
}
.ll-event-layout--editorial .ll-event-layout__description .ll-event-description {
  overflow-wrap: break-word;
}
.ll-event-layout--editorial .ll-event-page-quick-actions a:focus-visible,
.ll-event-layout--editorial .ll-event-page-quick-actions button:focus-visible {
  outline: 3px solid #1869af; outline-offset: 3px;
}
@media (min-width: 901px) {
  .ll-event-layout--editorial:not(:has(.ll-event-layout__hero)) { grid-template-areas: "summary summary" "followup followup" "description description"; }
  .ll-event-layout--editorial .ll-event-layout__followup .ll-event-location-map { max-width: 100%; }
}
@media (max-width: 900px) {
  .ll-event-layout--editorial .ll-event-layout__followup { order: 3; }
  .ll-event-layout--editorial .ll-event-layout__description { order: 4; }
}


/* ================================================================
 * Canonical LL1 Events: automatic image-proportion layout, all sources
 * Landscape >= 1.3; portrait <= 0.8; otherwise balanced. JS sets the
 * class based on intrinsic image dimensions, never based on source site.
 * ================================================================ */
.ll-event-layout--editorial.ll-event-layout--adaptive {
  display: flex;
  flex-direction: column;
  gap: clamp(16px, 2.7vw, 28px);
  align-items: stretch;
  width: 100%;
}
.ll-event-layout--adaptive > .ll-event-page-intro {
  display: grid;
  gap: clamp(16px, 2.4vw, 26px);
  align-items: start;
  min-width: 0;
}
.ll-event-layout--adaptive .ll-event-page-facts {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.ll-event-layout--adaptive .ll-event-layout__hero,
.ll-event-layout--adaptive .ll-event-layout__summary,
.ll-event-layout--adaptive .ll-event-layout__followup,
.ll-event-layout--adaptive .ll-event-layout__description {
  min-width: 0;
  grid-area: auto;
  margin: 0;
}
.ll-event-layout--adaptive > .ll-event-layout__description {
  width: 100%;
  border-top: 1px solid #e6ebf1;
  padding: 22px 0 0;
}
.ll-event-layout--adaptive .ll-event-layout__description .ll-event-description,
.ll-event-layout--adaptive .ll-event-page-excerpt,
.ll-event-layout--adaptive .ll-event-page-full-source {
  max-width: 84ch;
  line-height: 1.68;
}
.ll-event-layout--adaptive .ll-event-layout__hero {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  overflow: hidden;
  border-radius: 12px;
  background: #f8fafc;
}
.ll-event-layout--adaptive .ll-event-layout__hero .ll-event-hero__lightbox-trigger,
.ll-event-layout--adaptive .ll-event-layout__hero a {
  max-width: 100%;
}
.ll-event-layout--adaptive .ll-event-hero__image {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  object-fit: contain;
  object-position: center top;
  border-radius: 10px;
}
/* No fixed-height row and no "visual" spanning the details row. */
@media (min-width: 901px) {
  .ll-event-layout--adaptive[data-ll-event-shape="portrait"] > .ll-event-page-intro {
    grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr);
  }
  .ll-event-layout--adaptive[data-ll-event-shape="balanced"] > .ll-event-page-intro {
    grid-template-columns: minmax(0, .98fr) minmax(0, 1.02fr);
  }
  .ll-event-layout--adaptive[data-ll-event-shape="portrait"] .ll-event-hero__image {
    max-height: min(600px, 72vh);
  }
  .ll-event-layout--adaptive[data-ll-event-shape="balanced"] .ll-event-hero__image {
    max-height: 480px;
  }
  .ll-event-layout--adaptive[data-ll-event-shape="landscape"] > .ll-event-page-intro,
  .ll-event-layout--adaptive[data-ll-event-shape="none"] > .ll-event-page-intro {
    grid-template-columns: minmax(0, 1fr);
  }
  .ll-event-layout--adaptive[data-ll-event-shape="landscape"] .ll-event-hero__image {
    max-height: 475px;
  }
  .ll-event-layout--adaptive[data-ll-event-shape="landscape"] .ll-event-page-facts {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(16px, 2.4vw, 26px);
  }
  .ll-event-layout--adaptive[data-ll-event-shape="none"] .ll-event-page-facts {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(16px, 2.4vw, 26px);
  }
  .ll-event-layout--adaptive .ll-event-layout__followup .ll-event-location-map { max-width: 100%; }
}
@media (max-width: 900px) {
  .ll-event-layout--adaptive > .ll-event-page-intro {
    grid-template-columns: minmax(0, 1fr);
  }
  .ll-event-layout--adaptive .ll-event-hero__image { max-height: 500px; }
  .ll-event-layout--adaptive .ll-event-layout__summary { padding: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .ll-event-layout--adaptive * { scroll-behavior: auto; }
}

/* Imported Event editorial typography and source-neutral organizer attribution. */
.ll-event-layout--adaptive .ll-event-page-full-source .ll-event-description,
.ll-event-layout--adaptive .ll-event-page-full-source .ll-event-description p,
.ll-event-layout--adaptive .ll-event-page-full-source .ll-event-description__body {
    line-height: 1.65; max-width: 84ch;
    letter-spacing: normal; overflow-wrap: anywhere;
}
.ll-event-layout--adaptive .ll-event-page-full-source { max-width: 100%; }
.ll-event-layout--adaptive .ll-event-page-intro { align-content: start; grid-auto-rows: max-content; }
.ll-event-layout--adaptive .ll-event-page-facts { align-self: start; }
.ll-event-page-organizer { margin-top: 1rem; border-top: 1px solid #e6ebf1; padding-top: .75rem; font-size: .96rem; }
.ll-event-page-organizer strong { display: block; font-size: .8rem; margin-bottom: .3rem; }
@media (max-width: 900px) {
  .ll-event-layout--adaptive .ll-event-page-intro { grid-template-columns: minmax(0, 1fr) !important; }
}

/* Canonical Event-only description typography. The renderer places the description
 * inside .ll-event-layout__column on initial load and the adaptive script later
 * moves it under .ll-event-layout. Do NOT use a direct-child selector here.
 * Source-neutral: CitySpark, Facebook, Eventbrite and manually authored Events. */
.ll-event-layout--editorial .ll-event-layout__description .ll-event-block--description,
.ll-event-layout--editorial .ll-event-layout__description .ll-event-block__value.ll-event-description,
.ll-event-layout--editorial .ll-event-layout__description .ll-event-description p,
.ll-event-layout--editorial .ll-event-layout__description .ll-event-description li,
.ll-event-layout--editorial .ll-event-layout__description .ll-event-page-excerpt,
.ll-event-layout--editorial .ll-event-layout__description .ll-event-page-full-source,
.ll-event-layout--editorial .ll-event-layout__description .ll-event-page-full-source p {
  font-size: 18px !important;
  line-height: 1.65 !important;
  letter-spacing: normal;
  overflow-wrap: anywhere;
}
.ll-event-layout--editorial .ll-event-layout__description::before {
  font-size: 20px !important;
  line-height: 1.35;
}
.ll-event-layout--editorial .ll-event-layout__description .ll-event-description h3 {
  font-size: 22px !important;
  line-height: 1.35;
}
.ll-event-layout--editorial .ll-event-layout__description .ll-event-description h4 {
  font-size: 19px !important;
  line-height: 1.4;
}
.ll-event-layout--editorial .ll-event-layout__description .ll-event-page-full-source > summary {
  font-size: 16px !important;
  line-height: 1.5;
}
@media (max-width: 650px) {
  .ll-event-layout--editorial .ll-event-layout__description .ll-event-block--description,
  .ll-event-layout--editorial .ll-event-layout__description .ll-event-block__value.ll-event-description,
  .ll-event-layout--editorial .ll-event-layout__description .ll-event-description p,
  .ll-event-layout--editorial .ll-event-layout__description .ll-event-description li,
  .ll-event-layout--editorial .ll-event-layout__description .ll-event-page-excerpt,
  .ll-event-layout--editorial .ll-event-layout__description .ll-event-page-full-source,
  .ll-event-layout--editorial .ll-event-layout__description .ll-event-page-full-source p {
    font-size: 16px !important;
  }
  .ll-event-layout--editorial .ll-event-layout__description::before {
    font-size: 18px !important;
  }
}
