/* Custom shop design "Leithaberg Open Air" (example, fictional festival) – loaded only on /shop/{organizer}/ when the organizer
   uses templates/custom/shop-leithaberg-open-air.php (kt_custom_assets()). Plain CSS, no external fonts/images: the theme's
   self-hosted Space Grotesk, CSS gradients and inline SVG only. Warm "festival poster" look: cream paper, terracotta, gold, wine. */
body.kt-custom-shop-leithaberg-open-air { background: #FBF4E6; }
.lshop { --ls-wine: #2A1B1F; --ls-gold: #F2C14E; --ls-terra: #C8553D; --ls-cream: #FBF4E6; }

/* top bar */
.lshop-bar { background: rgba(251, 244, 230, .88); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-bottom: 2px solid var(--ls-wine); }
.lshop-mark { display: inline-flex; align-items: center; gap: .6rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; font-size: 1.05rem; min-width: 0; }
.lshop-sun { width: 1.6rem; height: 1.6rem; border-radius: 999px; flex-shrink: 0; background: radial-gradient(circle at 50% 60%, var(--ls-gold) 0 45%, var(--ls-terra) 46% 100%); box-shadow: 0 0 0 2px var(--ls-wine); }

/* hero: duotone photo + dusk gradient */
.lshop-hero { background: linear-gradient(160deg, #3A1F2A 0%, #6B2E2E 45%, #C8553D 100%); }
.lshop-hero-img { opacity: .38; mix-blend-mode: luminosity; }
.lshop-hero-img img { filter: grayscale(1) contrast(1.1); }
.lshop-hero::after { content: ""; position: absolute; inset: 0; z-index: -15; background: radial-gradient(70% 60% at 85% 20%, rgba(242, 193, 78, .45), transparent 70%), linear-gradient(180deg, rgba(42, 27, 31, .2), rgba(42, 27, 31, .55)); }
.lshop-eyebrow { display: inline-flex; align-items: center; gap: .6rem; font-size: .78rem; font-weight: 700; letter-spacing: .3em; text-transform: uppercase; color: var(--ls-gold); }
.lshop-eyebrow::before { content: ""; width: 2.5rem; height: 2px; background: currentColor; }
.lshop-title { font-size: clamp(2.5rem, 7vw, 6.5rem); line-height: .9; font-weight: 700; text-transform: uppercase; letter-spacing: -0.03em; overflow-wrap: break-word;
  color: transparent; -webkit-text-stroke: 2px var(--ls-cream); text-shadow: .06em .06em 0 rgba(242, 193, 78, .85); }
.lshop-poster { position: relative; transform: rotate(2.5deg); }
.lshop-poster > div { box-shadow: 0 0 0 8px var(--ls-cream), 0 40px 70px -25px rgba(0, 0, 0, .65); }
.lshop-stamp { position: absolute; left: -1.25rem; bottom: -1.5rem; width: 7.5rem; height: 7.5rem; border-radius: 999px; display: flex; align-items: center; justify-content: center; text-align: center;
  background: var(--ls-gold); color: var(--ls-wine); font-weight: 700; font-size: .85rem; line-height: 1.15; text-transform: uppercase; padding: 1rem; transform: rotate(-12deg); box-shadow: 0 0 0 4px var(--ls-cream); }

/* line-up marquee (static when motion is reduced) */
.lshop-marquee { overflow: hidden; white-space: nowrap; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.lshop-marquee-track { display: inline-flex; }
.lshop-marquee-track > span { display: inline-flex; align-items: center; }
.lshop-marquee b { padding: 0 1.25rem; }
.lshop-marquee i { font-style: normal; color: var(--ls-gold); font-size: .6em; }
@media (prefers-reduced-motion: no-preference) {
  .lshop-marquee-track { animation: lshop-marquee 40s linear infinite; }
  .lshop-poster { transition: transform .6s ease; }
  .lshop-poster:hover { transform: rotate(0deg) scale(1.01); }
}
@keyframes lshop-marquee { to { transform: translateX(-50%); } }

/* typography */
.lshop-h2 { font-size: clamp(2.1rem, 5vw, 4rem); line-height: .95; font-weight: 700; text-transform: uppercase; letter-spacing: -0.03em; overflow-wrap: anywhere; }
.lshop-label { font-size: .78rem; font-weight: 700; letter-spacing: .25em; text-transform: uppercase; color: var(--ls-terra); }
.lshop-num { font-size: clamp(2.75rem, 7vw, 5rem); font-weight: 700; line-height: 1; color: var(--ls-terra); -webkit-text-stroke: 0; }

/* ticket stubs (perforated) */
.lshop-stub { position: relative; display: flex; flex-direction: column; border-radius: 1.25rem; background: #fff; color: var(--ls-wine); border: 2px solid var(--ls-wine); box-shadow: 6px 6px 0 var(--ls-wine); }
.lshop-stub.is-hl { background: var(--ls-terra); color: #fff; }
.lshop-stub-top { position: relative; padding: 1.75rem 1.75rem 1.5rem; flex: 1; }
.lshop-stub-bottom { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; padding: 1.25rem 1.75rem 1.5rem; border-top: 2px dashed currentColor; }
.lshop-stub-bottom::before, .lshop-stub-bottom::after { content: ""; position: absolute; top: -.85rem; width: 1.5rem; height: 1.5rem; border-radius: 999px; background: var(--kt-bg, #FBF4E6); border: 2px solid var(--ls-wine); }
.lshop-stub-bottom::before { left: -.85rem; clip-path: inset(0 0 0 50%); }
.lshop-stub-bottom::after { right: -.85rem; clip-path: inset(0 50% 0 0); }
.lshop-chip { position: absolute; top: 1.25rem; right: 1.25rem; background: var(--ls-gold); color: var(--ls-wine); font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; padding: .35rem .7rem; border-radius: 999px; }
.lshop-btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; border-radius: 999px; padding: .75rem 1.4rem; font-weight: 700; background: var(--ls-wine); color: var(--ls-cream); transition: transform .2s ease, background-color .2s ease; }
.lshop-btn:hover { background: #000; transform: translateY(-2px); }
.lshop-btn:focus-visible { outline: 3px solid var(--ls-gold); outline-offset: 2px; }
.lshop-stub.is-hl .lshop-btn { background: var(--ls-gold); color: var(--ls-wine); }

/* event rows */
.lshop-row { padding-bottom: 1.5rem; border-bottom: 2px solid var(--kt-border, rgba(42, 27, 31, .14)); }
.lshop-row:last-child { border-bottom: 0; padding-bottom: 0; }

/* FAQ plus/minus */
.lshop-plus { position: relative; width: 1.25rem; height: 1.25rem; }
.lshop-plus::before, .lshop-plus::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 2px; background: var(--ls-gold); transition: transform .25s ease; }
.lshop-plus::after { transform: rotate(90deg); }
.lshop-faq[open] .lshop-plus::after { transform: rotate(0deg); }
.lshop-faq a { color: var(--ls-gold); text-decoration: underline; }

/* newsletter */
.lshop-news { background: repeating-linear-gradient(-45deg, rgba(42, 27, 31, .05) 0 12px, transparent 12px 24px), var(--ls-gold); color: var(--ls-wine); border: 2px solid var(--ls-wine); box-shadow: 8px 8px 0 var(--ls-wine); }
.lshop ::selection { background: var(--ls-terra); color: #fff; }
@media (max-width: 640px) {
  .lshop-stamp { width: 6rem; height: 6rem; font-size: .7rem; left: -.5rem; }
  .lshop-title { -webkit-text-stroke-width: 1.5px; }
}
