:root {
  --jlo-black: #080808;
  --jlo-paper: #f2efe8;
  --jlo-ink: #111111;
  --jlo-accent: #ff3b1f;
  --jlo-line: rgba(242, 239, 232, 0.22);
  --jlo-display: Poppins, "Helvetica Neue", Arial, sans-serif;
  --jlo-sans: Poppins, "Helvetica Neue", Arial, sans-serif;
}

/* The installer marks only its generated page with this body class. */
.mediadiv-jlo-page,
.mediadiv-jlo-page #page-container,
.mediadiv-jlo-page #et-main-area,
.mediadiv-jlo-page #main-content {
  margin: 0;
  padding: 0;
  background: var(--jlo-black);
}

.mediadiv-jlo-page #main-content .container,
.mediadiv-jlo-page #main-content .et_pb_section,
.mediadiv-jlo-page #main-content .et_pb_row,
.mediadiv-jlo-page #main-content .et_pb_column {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

.mediadiv-jlo-page #main-content .container::before {
  display: none;
}

.mediadiv_jlo_immersive_hero,
.mediadiv_jlo_landing_body,
.mediadiv-jlo-hero__mount,
.mediadiv-jlo-landing__mount {
  width: 100%;
  max-width: none;
  padding: 0;
  margin: 0;
}

.mediadiv_jlo_immersive_hero,
.mediadiv_jlo_landing_body {
  position: relative;
  z-index: 1;
}

.mediadiv_jlo_immersive_hero .et_pb_module_inner,
.mediadiv_jlo_landing_body .et_pb_module_inner {
  width: 100%;
}

.jlo-hero,
.jlo-landing,
.jlo-hero *,
.jlo-landing * {
  box-sizing: border-box;
}

.jlo-hero,
.jlo-landing {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  font-family: var(--jlo-sans);
}

.jlo-hero {
  --jlo-accent-rgb: 255, 59, 31;
  --jlo-scroll: 0;
  --jlo-pointer-x: 0;
  --jlo-pointer-y: 0;
  position: relative;
  isolation: isolate;
  min-height: max(760px, 100svh);
  overflow: hidden;
  color: var(--jlo-paper);
  background:
    radial-gradient(circle at 50% 60%, rgba(255,255,255,.08), transparent 30%),
    linear-gradient(180deg, rgba(6,6,6,.16) 0%, rgba(11,11,11,.34) 64%, #050505 100%),
    url("../assets/hero-poster.webp") center / cover no-repeat;
}

.jlo-hero::before {
  position: absolute;
  z-index: 2;
  inset: 0;
  content: "";
  pointer-events: none;
  opacity: .26;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.95' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.2'/%3E%3C/svg%3E");
  mix-blend-mode: soft-light;
}

.jlo-hero__media,
.jlo-hero__video,
.jlo-hero__poster,
.jlo-hero__shade {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.jlo-hero__media { z-index: -4; }

.jlo-hero__video {
  object-fit: cover;
  filter: grayscale(1) contrast(1.15) brightness(.48);
  transform: scale(calc(1.03 + var(--jlo-scroll) * .04));
}

.jlo-hero__poster {
  background-position: center;
  background-size: cover;
  filter: grayscale(1) contrast(1.15) brightness(.48);
}

.jlo-hero__shade {
  background:
    linear-gradient(180deg, rgba(0,0,0,.22), transparent 26%, rgba(0,0,0,.14) 55%, #050505 100%),
    radial-gradient(circle at center, transparent 0 25%, rgba(0,0,0,.3) 68%, rgba(0,0,0,.75) 100%);
}

.jlo-hero__energy,
.jlo-hero__ring-fallback {
  position: absolute;
  z-index: -1;
  top: 49%;
  left: 50%;
  width: min(74vw, 880px);
  aspect-ratio: 1;
  pointer-events: none;
  transform: translate(calc(-50% + var(--jlo-pointer-x) * 9px), calc(-50% + var(--jlo-pointer-y) * 7px)) scale(calc(1 + var(--jlo-scroll) * .22));
}

.jlo-hero__energy {
  height: auto;
  opacity: var(--jlo-intensity, .78);
  filter: saturate(1.12);
}

.jlo-hero__ring-fallback {
  z-index: -2;
  border: 1px solid color-mix(in srgb, var(--jlo-accent) 78%, white);
  border-radius: 50%;
  opacity: calc(var(--jlo-intensity, .78) * .65);
  box-shadow:
    0 0 8px var(--jlo-accent),
    0 0 32px color-mix(in srgb, var(--jlo-accent) 58%, transparent),
    inset 0 0 22px color-mix(in srgb, var(--jlo-accent) 32%, transparent);
  animation: jlo-ring-breathe 3.2s ease-in-out infinite;
}

.jlo-hero__ring-fallback::before,
.jlo-hero__ring-fallback::after {
  position: absolute;
  content: "";
  border-radius: 50%;
  inset: 5%;
  border: 1px dashed color-mix(in srgb, var(--jlo-accent) 44%, transparent);
  animation: jlo-ring-spin 18s linear infinite;
}

.jlo-hero__ring-fallback::after {
  inset: -4%;
  border-style: dotted;
  animation-direction: reverse;
  animation-duration: 26s;
}

.jlo-hero__title-back,
.jlo-hero__title {
  margin: 0;
  color: var(--jlo-paper);
  font-family: var(--jlo-display);
  font-size: clamp(6rem, 17.4vw, 18rem);
  font-stretch: condensed;
  font-weight: 900;
  letter-spacing: -.075em;
  line-height: .74;
  text-transform: uppercase;
  white-space: nowrap;
}

.jlo-hero__title-back {
  position: absolute;
  z-index: -3;
  top: 12%;
  left: 50%;
  width: 104%;
  text-align: center;
  transform: translateX(-50%);
  opacity: .96;
}

.jlo-hero__portrait {
  position: absolute;
  z-index: 0;
  bottom: calc((100 - var(--jlo-portrait-y, 100)) * 1%);
  left: calc(var(--jlo-portrait-x, 50) * 1%);
  width: min(48vw, 660px);
  height: 78%;
  pointer-events: none;
  transform: translateX(calc(-50% + var(--jlo-pointer-x) * -12px)) translateY(calc(var(--jlo-pointer-y) * -6px)) scale(calc(var(--jlo-portrait-scale, 100) / 100));
  transform-origin: bottom center;
  filter:
    drop-shadow(0 0 18px rgba(0,0,0,.62))
    drop-shadow(0 0 18px color-mix(in srgb, var(--jlo-accent) 20%, transparent));
}

.jlo-hero__artist {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: bottom center;
}

.jlo-hero__artist-placeholder {
  position: absolute;
  bottom: -9%;
  left: 50%;
  width: 55%;
  height: 74%;
  border-radius: 48% 48% 18% 18%;
  background:
    radial-gradient(circle at 50% 17%, #161616 0 17%, transparent 17.6%),
    linear-gradient(95deg, transparent 0 12%, #151515 13% 87%, transparent 88%);
  box-shadow: inset 0 0 60px #000;
  transform: translateX(-50%);
}

.jlo-hero__artist-placeholder span {
  position: absolute;
  left: 50%;
  top: 39%;
  color: rgba(255,255,255,.08);
  font: 900 clamp(4rem, 10vw, 8rem)/1 var(--jlo-display);
  transform: translate(-50%, -50%);
}

.jlo-hero__content {
  position: absolute;
  z-index: 3;
  top: 50%;
  left: 50%;
  width: min(94vw, 1540px);
  text-align: center;
  transform: translate(-50%, -50%);
}

.jlo-hero__title {
  opacity: 0;
  pointer-events: none;
}

.jlo-hero__kicker {
  margin: clamp(3.5rem, 9vh, 7rem) 0 1.8rem;
  font-family: var(--jlo-display);
  font-size: clamp(.78rem, 1.35vw, 1.1rem);
  font-weight: 700;
  letter-spacing: .18em;
  line-height: 1.25;
  text-transform: uppercase;
}

.jlo-hero__actions {
  display: flex;
  justify-content: center;
  gap: 1rem;
}

.jlo-button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  min-width: 190px;
  min-height: 54px;
  padding: 0 1.25rem;
  border: 1px solid rgba(242,239,232,.48);
  color: var(--jlo-paper) !important;
  font-family: var(--jlo-display);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .13em;
  line-height: 1;
  text-decoration: none !important;
  text-transform: uppercase;
  transition: color .25s ease, background .25s ease, border-color .25s ease, transform .25s ease;
}

.jlo-button b { font-size: 1.15rem; font-weight: 400; }
.jlo-button:hover { transform: translateY(-3px); }
.jlo-button--primary { border-color: var(--jlo-accent); background: var(--jlo-accent); }
.jlo-button--primary:hover { color: var(--jlo-ink) !important; background: var(--jlo-paper); border-color: var(--jlo-paper); }
.jlo-button--ghost:hover { background: var(--jlo-paper); color: var(--jlo-ink) !important; }

.jlo-hero__ticker {
  position: absolute;
  z-index: 3;
  right: 4vw;
  bottom: 4.5rem;
  left: 4vw;
  padding: .85rem 0;
  overflow: hidden;
  border-top: 1px solid var(--jlo-line);
  border-bottom: 1px solid var(--jlo-line);
  text-align: center;
}

.jlo-hero__ticker span {
  display: inline-block;
  font-family: var(--jlo-display);
  font-size: clamp(.68rem, 1.1vw, .95rem);
  font-weight: 700;
  letter-spacing: .42em;
  white-space: nowrap;
}

.jlo-hero__scroll {
  position: absolute;
  z-index: 3;
  right: 1.35rem;
  bottom: 1.8rem;
  display: flex;
  align-items: center;
  gap: .65rem;
  color: rgba(242,239,232,.6);
  font-size: .55rem;
  letter-spacing: .22em;
  transform: rotate(-90deg) translateX(100%);
  transform-origin: right bottom;
}

.jlo-hero__scroll i { display: block; width: 38px; height: 1px; background: currentColor; }

.jlo-landing {
  padding: 0 max(4vw, 28px);
  overflow: hidden;
  color: var(--jlo-paper);
  background: var(--jlo-black);
}

.jlo-section { padding: clamp(4rem, 8vw, 8rem) 0 0; }
.jlo-section__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1rem;
  padding-bottom: .65rem;
  border-bottom: 1px solid var(--jlo-line);
  font-family: var(--jlo-display);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .16em;
}
.jlo-section__head i { font-style: normal; opacity: .7; }

.jlo-show-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.jlo-show-card {
  position: relative;
  display: block;
  min-height: 350px;
  overflow: hidden;
  border: 1px solid var(--jlo-line);
  color: var(--jlo-paper) !important;
  text-decoration: none !important;
}

.jlo-show-card__image {
  position: absolute;
  inset: 0 0 72px;
  background-position: center;
  background-size: cover;
  filter: grayscale(1);
  transition: filter .45s ease, transform .65s cubic-bezier(.2,.75,.2,1);
}

.jlo-show-card--1 .jlo-show-card__image { background-image: url("../assets/show-art-of-night.webp"); }
.jlo-show-card--2 .jlo-show-card__image { background-image: url("../assets/show-opera-club.webp"); }
.jlo-show-card--3 .jlo-show-card__image { background-image: url("../assets/show-white-experience.webp"); }

.jlo-show-card::after {
  position: absolute;
  inset: 0;
  content: "";
  pointer-events: none;
  opacity: 0;
  background: linear-gradient(135deg, transparent 35%, color-mix(in srgb, var(--jlo-accent) 44%, transparent));
  transition: opacity .35s ease;
}

.jlo-show-card:hover .jlo-show-card__image { filter: grayscale(.4) contrast(1.08); transform: scale(1.045); }
.jlo-show-card:hover::after { opacity: 1; }

.jlo-show-card__meta {
  position: absolute;
  z-index: 1;
  right: 0;
  bottom: 0;
  left: 0;
  display: grid;
  grid-template-columns: 1fr auto;
  min-height: 72px;
  padding: .95rem 1rem;
  background: #090909;
}
.jlo-show-card__meta b { font-family: var(--jlo-display); font-size: 1.05rem; letter-spacing: .04em; }
.jlo-show-card__meta small { grid-column: 1; font-size: .58rem; letter-spacing: .2em; opacity: .72; }
.jlo-show-card__meta i { grid-row: 1 / 3; grid-column: 2; align-self: center; color: var(--jlo-accent); font-size: 1.15rem; font-style: normal; }

.jlo-date-list { border-top: 1px solid var(--jlo-line); }
.jlo-date {
  display: grid;
  grid-template-columns: 72px 70px minmax(220px, 1fr) minmax(120px, .45fr) 26px;
  align-items: center;
  min-height: 92px;
  border-bottom: 1px solid var(--jlo-line);
  color: var(--jlo-paper) !important;
  text-decoration: none !important;
  transition: background .25s ease, padding .25s ease;
}
.jlo-date:hover { padding: 0 1rem; background: rgba(255,255,255,.04); }
.jlo-date__day { font-family: var(--jlo-display); font-size: 2.65rem; font-weight: 800; line-height: 1; }
.jlo-date__month, .jlo-date__event { font-family: var(--jlo-display); font-size: .73rem; font-weight: 700; letter-spacing: .12em; }
.jlo-date__month small, .jlo-date__event small { display: block; margin-top: .25rem; font-size: .55rem; font-weight: 500; opacity: .65; }
.jlo-date__place { font-size: .6rem; letter-spacing: .2em; opacity: .78; }
.jlo-date > i { color: var(--jlo-accent); font-style: normal; font-size: 1.1rem; }

.jlo-manifesto {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(280px, .55fr);
  gap: 5vw;
  margin-top: clamp(5rem, 10vw, 10rem);
  padding: clamp(2rem, 4vw, 4rem);
  color: var(--jlo-ink);
  background: var(--jlo-paper);
}
.jlo-manifesto > div:first-child { display: grid; grid-template-columns: 1fr auto; align-items: start; }
.jlo-manifesto > div:first-child span { grid-column: 2; font-size: .65rem; }
.jlo-manifesto h2 { grid-row: 1 / 3; grid-column: 1; max-width: 780px; margin: 0; font-family: var(--jlo-display); font-size: clamp(4.2rem, 9vw, 9rem); font-weight: 900; letter-spacing: -.055em; line-height: .8; }
.jlo-manifesto__copy { align-self: center; }
.jlo-manifesto__copy > i { display: block; width: 32px; height: 2px; margin-bottom: 2rem; background: var(--jlo-accent); }
.jlo-manifesto__copy h3 { margin: 0 0 1.7rem; font-family: var(--jlo-display); font-size: 1rem; letter-spacing: .1em; }
.jlo-manifesto__copy p { margin: 0 0 1rem; font-size: .86rem; line-height: 1.55; }
.jlo-manifesto__copy b { display: block; margin-top: 1.4rem; color: var(--jlo-accent); font-family: cursive; font-size: 1.55rem; font-weight: 400; transform: rotate(-5deg); }

.jlo-press { padding: 2rem 0 0; }
.jlo-press > a {
  display: grid;
  grid-template-columns: 1fr 1fr auto;
  align-items: center;
  min-height: 150px;
  border: 1px solid var(--jlo-line);
  color: var(--jlo-paper) !important;
  text-decoration: none !important;
}
.jlo-press__mark { display: grid; place-items: center; height: 100%; color: var(--jlo-accent); background: linear-gradient(145deg, #171717, #292929 46%, #0a0a0a 47%); font-family: Georgia, serif; font-size: 3rem; font-style: italic; }
.jlo-press a > span:nth-child(2) { padding: 1.5rem; }
.jlo-press b { display: block; font-family: var(--jlo-display); font-size: 1.05rem; letter-spacing: .08em; }
.jlo-press small { display: block; margin-top: .55rem; font-size: .58rem; letter-spacing: .17em; opacity: .65; }
.jlo-press a > i { padding: 1.5rem; color: var(--jlo-accent); font-style: normal; font-size: 1.3rem; }

.jlo-booking {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  margin-top: 2rem;
  padding: clamp(1.7rem, 3vw, 3rem);
  color: var(--jlo-paper);
  background: var(--jlo-accent);
}
.jlo-booking h2 { margin: 0; font-family: var(--jlo-display); font-size: clamp(3rem, 7vw, 7.6rem); font-weight: 900; letter-spacing: -.05em; line-height: .9; }
.jlo-button--light { min-width: 220px; border-color: var(--jlo-paper); color: var(--jlo-ink) !important; background: var(--jlo-paper); }
.jlo-button--light:hover { color: var(--jlo-paper) !important; background: var(--jlo-black); border-color: var(--jlo-black); }

.jlo-footer {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  min-height: 96px;
  margin-top: 2rem;
  border-top: 1px solid var(--jlo-line);
  color: rgba(242,239,232,.65);
  font-size: .55rem;
  letter-spacing: .14em;
}
.jlo-footer nav { display: flex; gap: 2rem; }
.jlo-footer a { color: inherit !important; text-decoration: none !important; }
.jlo-footer nav span,
.jlo-footer > div span { color: inherit; }
.jlo-footer > div { display: flex; justify-content: flex-end; gap: 1rem; }
.jlo-footer > div :is(a, span) + :is(a, span)::before { margin-right: 1rem; content: "/"; color: rgba(242,239,232,.3); }
.jlo-footer a:hover { color: var(--jlo-accent) !important; }

@keyframes jlo-ring-breathe {
  0%, 100% { opacity: calc(var(--jlo-intensity, .78) * .5); filter: brightness(.88); }
  48% { opacity: var(--jlo-intensity, .78); filter: brightness(1.25); }
  52% { opacity: calc(var(--jlo-intensity, .78) * .7); }
  56% { opacity: var(--jlo-intensity, .78); }
}
@keyframes jlo-ring-spin { to { transform: rotate(360deg); } }

@media (max-width: 980px) {
  .jlo-hero { min-height: 800px; }
  .jlo-hero__energy, .jlo-hero__ring-fallback { width: min(94vw, 760px); top: 46%; }
  .jlo-hero__portrait { width: min(70vw, 560px); height: 70%; }
  .jlo-hero__title-back, .jlo-hero__title { font-size: clamp(5.2rem, 20vw, 12rem); }
  .jlo-show-grid { grid-template-columns: 1fr; }
  .jlo-show-card { min-height: 420px; }
  .jlo-manifesto { grid-template-columns: 1fr; }
  .jlo-manifesto__copy { max-width: 520px; }
  .jlo-footer { grid-template-columns: 1fr auto; gap: 1.2rem; }
  .jlo-footer nav { grid-row: 2; grid-column: 1 / 3; justify-content: space-between; padding-bottom: 1.5rem; }
}

@media (max-width: 767px) {
  .jlo-hero { min-height: 720px; }
  .jlo-hero__content { top: 51%; }
  .jlo-hero__title-back { top: 14%; font-size: clamp(4.7rem, 27vw, 8rem); }
  .jlo-hero__portrait { width: 96vw; height: 67%; }
  .jlo-hero__energy, .jlo-hero__ring-fallback { width: 112vw; top: 45%; }
  .jlo-hero__kicker { max-width: 82vw; margin: 14rem auto 1.4rem; font-size: .67rem; line-height: 1.5; }
  .jlo-hero__actions { flex-direction: column; align-items: center; gap: .7rem; }
  .jlo-button { width: min(82vw, 320px); }
  .jlo-hero__ticker { right: 1rem; bottom: 1.5rem; left: 1rem; text-align: left; }
  .jlo-hero__ticker span { animation: jlo-ticker 12s linear infinite; }
  .jlo-hero__scroll { display: none; }
  .jlo-landing { padding-right: 1rem; padding-left: 1rem; }
  .jlo-show-card { min-height: 330px; }
  .jlo-date { grid-template-columns: 52px 48px 1fr 20px; min-height: 84px; }
  .jlo-date__day { font-size: 2rem; }
  .jlo-date__place { display: none; }
  .jlo-manifesto { margin-right: -1rem; margin-left: -1rem; padding: 2rem 1rem; }
  .jlo-manifesto h2 { font-size: clamp(3.8rem, 20vw, 6.8rem); }
  .jlo-press > a { grid-template-columns: 110px 1fr auto; }
  .jlo-booking { flex-direction: column; align-items: stretch; margin-right: -1rem; margin-left: -1rem; }
  .jlo-booking h2 { font-size: clamp(3.2rem, 18vw, 5.6rem); }
  .jlo-footer { grid-template-columns: 1fr; gap: 1.3rem; padding: 1.7rem 0; }
  .jlo-footer nav { grid-row: auto; grid-column: auto; flex-wrap: wrap; justify-content: flex-start; gap: 1rem 1.4rem; padding: 0; }
  .jlo-footer > div { justify-content: flex-start; }
}

@keyframes jlo-ticker { to { transform: translateX(-55%); } }

@media (prefers-reduced-motion: reduce) {
  .jlo-hero__ring-fallback,
  .jlo-hero__ring-fallback::before,
  .jlo-hero__ring-fallback::after,
  .jlo-hero__ticker span { animation: none !important; }
  .jlo-hero__video { display: none; }
  .jlo-show-card__image,
  .jlo-button,
  .jlo-date { transition: none; }
}
