/* =====================================================================
   Our light trails - /our-light-trails
   One section per live venue: photo beside name, dates, trail facts and
   the ticket button. Alternate venues mirror the layout on wide screens.
   ===================================================================== */

/* ---------- Opener ---------- */

.olt-hero .lx-lede { max-width: 44ch; }
.olt-count { margin-top: 16px; }
.olt-hero .lx-chooser { margin-top: clamp(32px, 5vw, 48px); }

/* ---------- Venue sections ---------- */

.olt-venue { --lx-section: clamp(56px, 7vw, 96px); }

.olt-venue-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 80px); align-items: center; }
.olt-venue--flip .olt-venue-photo { order: 2; }

.olt-venue-photo { display: block; border-radius: var(--lx-radius); overflow: hidden; aspect-ratio: 4 / 3; background: var(--lx-raise); }
.olt-venue-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--lx-ease); }
.olt-venue-photo:hover img { transform: scale(1.03); }

.olt-venue-body h2 a { text-decoration: none; }
.olt-venue-body h2 a:hover { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 6px; }
.olt-place { margin-top: 10px; font-size: 15px; color: var(--lx-ink-3); }
.olt-venue-body .lx-lede { margin-top: 18px; color: var(--lx-ink); }
.olt-blurb { margin-top: 12px; color: var(--lx-ink-2); max-width: 46ch; }

.olt-specs { margin: 28px 0 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; border-top: 1px solid var(--lx-line); }
.olt-specs > div { padding: 16px 0; border-bottom: 1px solid var(--lx-line); }
.olt-specs dt { font-size: 12px; color: var(--lx-ink-3); margin-bottom: 3px; }
.olt-specs dd { margin: 0; font-size: 15px; line-height: 1.35; }
.olt-specs .olt-specs-wide { grid-column: 1 / -1; }
.olt-price strong { color: var(--lx-gold); font-weight: 700; }

.olt-venue-body .lx-actions { margin-top: 28px; }

@media (max-width: 860px) {
  .olt-venue-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .olt-venue--flip .olt-venue-photo { order: 0; }
}
/* Phones: shorter photo, the facts two-up, no second blurb - each trail fits in about a screen */
@media (max-width: 640px) {
  .olt-venue-photo { aspect-ratio: 16 / 9; }
  .olt-blurb { display: none; }
  .olt-venue-body .lx-lede { margin-top: 12px; }
  .olt-specs { margin-top: 20px; gap: 0 16px; }
  .olt-specs > div { padding: 12px 0; }
  .olt-venue-body .lx-actions { margin-top: 20px; }
}

/* ---------- Every trail: copy + installations strip ---------- */

.olt-about { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.olt-about-copy p + p { margin-top: 14px; }
.olt-about-copy .lx-lede { margin: 18px 0 22px; }
.olt-about-copy p:not(.lx-lede) { color: var(--lx-paper-ink-2); max-width: 60ch; }
.olt-photos { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(10px, 1.4vw, 16px); }
.olt-photos img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--lx-radius); }
.olt-photos img:nth-child(2) { margin-top: clamp(24px, 5vw, 64px); }
@media (max-width: 860px) {
  .olt-about { grid-template-columns: minmax(0, 1fr); }
}

.olt-why { margin-top: clamp(56px, 8vw, 96px); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 24px clamp(32px, 6vw, 96px); align-items: start; }
.olt-why ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--lx-paper-line); }
.olt-why li {
  padding: 20px 0; border-bottom: 1px solid var(--lx-paper-line);
  font: 600 clamp(1.125rem, 1.8vw, 1.375rem)/1.3 var(--lx-font-display); letter-spacing: -0.018em;
}
@media (max-width: 860px) {
  .olt-why { grid-template-columns: minmax(0, 1fr); }
}

.olt-installs { margin-top: clamp(56px, 8vw, 96px); }
.olt-installs .lx-lede { margin-top: 14px; max-width: 52ch; }
.olt-note { margin-top: 12px; }
.olt-strip { margin-top: clamp(28px, 4vw, 40px); }
.lx-light .lx-strip .lx-tile { aspect-ratio: 1; }
.lx-light .lx-strip { grid-auto-columns: clamp(220px, 26vw, 340px); }
.lx-light .lx-round { background: var(--lx-white); color: var(--lx-paper-ink); box-shadow: inset 0 0 0 1px var(--lx-paper-line); }
.lx-light .lx-round:hover { background: var(--lx-accent); color: #fff; box-shadow: none; }

/* Match the homepage trail cards: festive glow, gold place line, bigger and brighter details */
.olt-venue-photo {
  position: relative;
  box-shadow: 0 0 0 1px rgba(249, 192, 84, .32), 0 0 26px -6px rgba(249, 192, 84, .35), 0 18px 60px -22px rgba(204, 0, 102, .55);
  transition: box-shadow .35s var(--lx-ease);
}
.olt-venue-photo:hover { box-shadow: 0 0 0 1px rgba(249, 192, 84, .7), 0 0 36px -4px rgba(249, 192, 84, .5), 0 26px 80px -20px rgba(228, 12, 120, .75); }
.olt-place { color: var(--lx-gold); font-weight: 500; }
.olt-blurb { color: #ecebf3; font-size: 17px; }
.olt-specs dt { font-size: 13px; color: var(--lx-gold); font-weight: 500; }
.olt-specs dd { font-size: 16px; color: #fff; font-weight: 500; }
