/*
Theme Name: XPLOSION Live
Theme URI: https://xplosion.info
Author: XPLOSION
Description: Individuelles responsives Onepage-Bandtheme mit Konzertverwaltung, Video-Hero und Scroll-Animationen.
Version: 1.17
Requires at least: 6.2
Requires PHP: 7.4
Text Domain: xplosion-live
*/
:root{--bg:#090909;--panel:#151515;--fg:#f7f4ee;--muted:#aaa7a2;--accent:#ff6a00;--line:#373330;--max:1240px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;background:var(--bg);color:var(--fg);font-family:Arial,Helvetica,sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:4px}img{max-width:100%;height:auto}button{font:inherit;cursor:pointer}.wrap{width:min(var(--max),calc(100% - 8vw));margin:auto}.eyebrow{text-transform:uppercase;letter-spacing:.23em;font-size:.78rem;font-weight:700;color:var(--accent)}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.065em;line-height:.91}h1{font-size:clamp(5rem,17vw,17rem);margin-bottom:1rem}h2{font-size:clamp(3.5rem,9vw,9rem);margin-bottom:2rem}h3{font-size:clamp(2rem,4vw,4rem)}p{line-height:1.65}.site-header{position:fixed;z-index:100;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:19px 4vw;background:linear-gradient(#080808e8,#08080855);backdrop-filter:blur(8px)}.brand{font-size:1.55rem;letter-spacing:-.06em;font-weight:950}.brand img{max-height:48px;width:auto}.desktop-nav{display:flex;align-items:center;gap:2rem;font-size:.8rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.nav-toggle{display:none;border:1px solid #777;background:transparent;color:white;padding:10px 13px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:15px 24px;border:1px solid var(--fg);text-transform:uppercase;font-size:.78rem;letter-spacing:.13em;font-weight:800;transition:.25s}.btn:hover{background:var(--fg);color:#111}.btn-accent{background:var(--accent);border-color:var(--accent);color:white}.btn-accent:hover{background:#fff;color:#111}.hero{min-height:100svh;position:relative;display:flex;align-items:flex-end;isolation:isolate;background:#171717;overflow:hidden}.hero-media,.hero-media video,.hero-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-media{z-index:-2}.hero:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#090909 0%,#09090935 55%,#09090980 100%)}.hero-inner{width:100%;padding:160px 4vw 8vh}.hero h1{font-weight:950;text-transform:uppercase}.hero-sub{font-size:clamp(1rem,2vw,1.5rem);font-weight:700;letter-spacing:.09em;text-transform:uppercase}.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}.section{padding:120px 0}.section-intro{max-width:740px;margin-bottom:60px}.section-intro p{font-size:1.15rem;color:var(--muted)}.dates{border-top:1px solid var(--line)}.date-row{display:grid;grid-template-columns:120px 1fr 1fr auto;gap:22px;align-items:center;padding:26px 0;border-bottom:1px solid var(--line);transition:padding .25s,background .25s}.date-row:hover{padding-left:12px;background:#ffffff08}.date-day{font-size:2.8rem;line-height:1;font-weight:950}.date-month{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.date-city{font-size:clamp(1.8rem,3vw,3rem);font-weight:950;text-transform:uppercase;letter-spacing:-.05em}.date-venue{color:var(--muted)}.date-year{font-size:.8rem;color:var(--muted)}.dark-section{background:var(--panel)}.split{display:grid;grid-template-columns:1fr 1fr;gap:7vw;align-items:center}.feature-photo{min-height:490px;background:linear-gradient(130deg,#422000,#111 70%);overflow:hidden}.feature-photo img{width:100%;height:100%;min-height:490px;object-fit:cover}.feature-photo-empty{min-height:490px;display:grid;place-items:center;color:#ffffff55;font-size:clamp(3rem,8vw,7rem);font-weight:900;letter-spacing:-.08em}.media-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.media-card{position:relative;min-height:320px;background:#222;overflow:hidden;display:flex;align-items:flex-end;padding:26px}.media-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s;opacity:.7}.media-card:hover img{transform:scale(1.07)}.media-card:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent,#000c)}.media-card span{position:relative;z-index:1;font-size:1.5rem;font-weight:900;text-transform:uppercase}.contact-links{display:flex;gap:16px;flex-wrap:wrap}.site-footer{border-top:1px solid var(--line);padding:32px 0;color:var(--muted);font-size:.8rem}.footer-inner{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}.footer-inner a{text-decoration:underline}.reveal{opacity:0;transform:translateY(45px);transition:opacity .85s ease,transform .85s cubic-bezier(.2,.7,.2,1)}.reveal.visible{opacity:1;transform:none}.empty{color:var(--muted);padding:28px 0}.page-content{padding:160px 0 100px;min-height:65vh}.page-content h1{font-size:clamp(3rem,7vw,7rem)}@media(max-width:850px){.desktop-nav{display:none;position:absolute;top:100%;left:0;right:0;padding:25px 5vw;background:#101010;flex-direction:column;align-items:flex-start;gap:22px}.desktop-nav.open{display:flex}.nav-toggle{display:block}.section{padding:80px 0}.date-row{grid-template-columns:80px 1fr auto;gap:14px}.date-venue{grid-column:2;grid-row:2}.date-row .btn{grid-column:3;grid-row:1/3}.date-day{font-size:2rem}.split{grid-template-columns:1fr}.media-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:550px){.wrap{width:calc(100% - 36px)}.hero-inner{padding:130px 18px 8vh}.hero h1{font-size:clamp(3.4rem,17vw,7rem)}.date-row{grid-template-columns:65px 1fr;gap:10px}.date-row .btn{grid-column:2;grid-row:3;justify-self:start;margin-top:8px}.date-venue{grid-column:2;grid-row:2}.date-city{font-size:1.8rem}.media-grid{grid-template-columns:1fr}.media-card{min-height:260px}.feature-photo,.feature-photo img,.feature-photo-empty{min-height:300px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

/* XPLOSION 1.1 – Bühne, Galerie, Musiker */
.hero{background:radial-gradient(ellipse at 75% 35%,#a84200 0%,#301200 32%,#070707 75%)}.hero-media:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0008,transparent)}.hero-flare{position:absolute;z-index:-1;right:-20vw;top:-35vh;width:80vw;height:95vh;background:conic-gradient(from 210deg,transparent 0deg,#ff6a0038 28deg,transparent 65deg,#ffffff12 92deg,transparent 130deg);filter:blur(24px);animation:flareMove 9s ease-in-out infinite alternate;pointer-events:none}.hero-title{max-width:100%;font-size:clamp(4rem,15vw,15rem);text-shadow:0 10px 55px #0009;animation:titleGlow 5s ease-in-out infinite alternate}.hero-inner{position:relative;z-index:2}.gallery-section{background:#0c0c0c}.xp-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.xp-gallery-item{display:block;aspect-ratio:4/5;overflow:hidden;background:#202020}.xp-gallery-item:nth-child(5n+1){grid-column:span 2;aspect-ratio:8/5}.xp-gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1),filter .8s}.xp-gallery-item:hover img{transform:scale(1.08);filter:contrast(1.12)}.xp-placeholder{grid-column:1/-1;min-height:300px;display:grid;place-items:center;text-align:center;font-size:clamp(2rem,6vw,6rem);font-weight:950;letter-spacing:-.06em;background:linear-gradient(120deg,#281500,#101010)}.musicians{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.musician{min-width:0}.musician-photo{aspect-ratio:3/4;overflow:hidden;background:linear-gradient(145deg,#532600,#121212 75%);display:grid;place-items:center}.musician-photo span{font-size:clamp(6rem,15vw,14rem);font-weight:950;color:#ffffff18}.musician-photo img{width:100%;height:100%;object-fit:cover;transition:transform .8s}.musician:hover img{transform:scale(1.06)}.musician-info{padding:24px 0}.musician h3{font-size:clamp(1.7rem,3vw,3rem);text-transform:uppercase;margin:0 0 10px}.musician p{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-size:.8rem}.xp-lightbox{position:fixed;z-index:9999;inset:0;background:#000e;display:flex;align-items:center;justify-content:center;padding:5vw;cursor:zoom-out}.xp-lightbox img{max-height:90vh;max-width:95vw;object-fit:contain}.xp-lightbox button{position:absolute;right:20px;top:20px;color:white;background:#222;border:1px solid #777;padding:12px 17px}.site-header{transition:background .4s}.site-header.scrolled{background:#090909f2}@keyframes flareMove{to{transform:translate(-8vw,8vh) rotate(15deg);opacity:.55}}@keyframes titleGlow{to{text-shadow:0 0 45px #ff6a0050,0 10px 55px #0009}}@media(max-width:850px){.xp-gallery{grid-template-columns:repeat(2,1fr)}.musicians{gap:12px}.musician-info{padding:15px 0}}@media(max-width:600px){.xp-gallery{gap:8px}.xp-gallery-item:nth-child(5n+1){grid-column:span 2}.musicians{grid-template-columns:1fr}.musician-photo{aspect-ratio:4/4}.hero-title{font-size:clamp(3.2rem,15vw,7rem)}}@media(prefers-reduced-motion:reduce){.hero-flare,.hero-title{animation:none}}

/* Version 1.5 – Bandtext und Kontaktformular */
.xp-band-copy{max-width:920px;margin:70px auto 0;padding:38px 0 0;border-top:1px solid var(--line)}
.xp-band-copy h3{font-size:clamp(1.7rem,3.5vw,3.5rem);line-height:1.1;margin-bottom:26px}
.xp-band-copy p{color:#d1ccc6;font-size:clamp(1rem,1.4vw,1.2rem)}
.xp-contact-form{max-width:850px;margin-top:36px;display:grid;gap:20px}
.xp-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.xp-contact-form label{display:grid;gap:9px;color:#eee;text-transform:uppercase;font-size:.78rem;font-weight:700;letter-spacing:.11em}
.xp-contact-form input,.xp-contact-form textarea{width:100%;background:#0b0b0b;border:1px solid #56514d;color:#fff;padding:16px;font:inherit;font-size:1rem;letter-spacing:normal;border-radius:0}
.xp-contact-form input:focus,.xp-contact-form textarea:focus{outline:2px solid var(--accent);outline-offset:1px}
.xp-contact-form .btn{justify-self:start}.xp-privacy-note{font-size:.85rem;color:var(--muted);margin:0}
.xp-form-honey{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.xp-form-feedback{padding:18px;border-left:4px solid var(--accent);background:#272019;max-width:850px}
.xp-error{border-color:#ed6767}
@media(max-width:600px){.xp-form-grid{grid-template-columns:1fr}.xp-band-copy{margin-top:35px}}

/* Version 1.7 – Termine als orangefarbene Bühne */
#live{background:#ff6a00;color:#111;}
#live .eyebrow,#live .section-intro p,#live .date-month,#live .date-venue{color:#271305;}
#live .dates{border-top:2px solid #17100b;}
#live .date-row{border-bottom:1px solid #1b100b70;}
#live .date-row:hover{background:#00000012;}
#live .date-day,#live .date-city{color:#101010;}
#live .date-row .btn{border-color:#15100c;color:#15100c;background:transparent;}
#live .date-row .btn:hover{background:#15100c;color:#ff6a00;}
#live .empty{color:#271305;}

/* v1.8: Animierte Tour-Liste */
@media (prefers-reduced-motion: no-preference) {
  #live .date-row.reveal {opacity:0;transform:translate3d(0,65px,0) skewY(1.5deg);filter:blur(5px);transition:opacity .75s ease,transform .9s cubic-bezier(.16,1,.3,1),filter .8s ease,background .3s ease,padding-left .35s ease;transition-delay:var(--xp-row-delay,0ms)}
  #live .date-row.reveal.visible {opacity:1;transform:translate3d(0,0,0) skewY(0);filter:blur(0)}
  #live .date-row > * {transition:transform .4s cubic-bezier(.16,1,.3,1)}
  #live .date-row:hover .date-city {transform:translateX(13px)}
  #live .date-row:hover .date-day {transform:scale(1.09)}
  #live .date-row:hover .date-venue {transform:translateX(6px)}
  #live .section-intro h2 {transition:letter-spacing .7s ease}
  #live .section-intro:hover h2 {letter-spacing:-.035em}
}
#live .date-row {position:relative;isolation:isolate}
#live .date-row::before {content:"";position:absolute;inset:0;z-index:-1;background:#111;transform:scaleY(0);transform-origin:bottom;transition:transform .35s cubic-bezier(.16,1,.3,1)}
#live .date-row:hover::before {transform:scaleY(1)}
#live .date-row:hover .date-day,#live .date-row:hover .date-city,#live .date-row:hover .date-month,#live .date-row:hover .date-venue {color:#ff790b}
#live .date-row:hover .btn {border-color:#ff790b;color:#ff790b}
#live .date-row:hover .btn:hover {background:#ff790b;color:#111}
@media (hover:none) {#live .date-row::before {display:none}}
@media (prefers-reduced-motion:reduce) {#live .date-row.reveal {opacity:1;transform:none;filter:none;transition:none}#live .date-row::before,#live .date-row > * {transition:none}}

/* Gallery refinement v1.9 */
.xp-gallery-item{position:relative;border-radius:3px;isolation:isolate}.xp-gallery-item::after{content:"";position:absolute;inset:0;border:1px solid #ffffff16;pointer-events:none;transition:border-color .35s}.xp-gallery-item:hover::after{border-color:#ff6a0099}.xp-gallery-item img{filter:contrast(1.03) saturate(1.02)}.xp-gallery-item:hover img{transform:scale(1.045);filter:contrast(1.08) saturate(1.06)}

.xp-gallery-item img{object-position:center top;transform-origin:center top}
.musician-2 .musician-photo img{object-position:center top;transform-origin:center top}
.xp-next-show{margin-top:32px;max-width:850px;padding:20px 24px;background:var(--accent);color:#090909;display:grid;grid-template-columns:auto 1fr auto;gap:10px 26px;align-items:center;border:2px solid var(--accent)}
.xp-next-label{grid-column:1/-1;font-size:.7rem;letter-spacing:.16em;font-weight:900}
.xp-next-show time{font-size:clamp(1.4rem,3vw,2rem);font-weight:900;white-space:nowrap}
.xp-next-details{display:grid;gap:5px;min-width:0}.xp-next-details strong{font-size:1.35rem;text-transform:uppercase}.xp-next-details span{line-height:1.35}
.xp-next-link{font-size:.8rem;font-weight:800;white-space:nowrap}.xp-next-show:hover{border-color:var(--accent)}
@media(max-width:600px){.xp-next-show{padding:16px;grid-template-columns:1fr;gap:12px}.xp-next-label{grid-column:auto}.xp-next-link{margin-top:3px}}

.xp-glitch-date{position:relative;isolation:isolate}
.xp-glitch-date::before,.xp-glitch-date::after{content:attr(data-date);position:absolute;inset:0;pointer-events:none;opacity:0}
.xp-glitch-date::before{color:#fff;animation:xpGlitchTop 7s infinite}
.xp-glitch-date::after{color:#fff;animation:xpGlitchBottom 7s infinite}
@keyframes xpGlitchTop{0%,2%,8%,100%{opacity:0;transform:none}3%,6%{opacity:.9;transform:translate(-4px,1px);clip-path:inset(12% 0 55% 0)}4%,7%{opacity:.85;transform:translate(4px,-1px);clip-path:inset(48% 0 23% 0)}}
@keyframes xpGlitchBottom{0%,2%,8%,100%{opacity:0;transform:none}3%,6%{opacity:.8;transform:translate(4px,-1px);clip-path:inset(60% 0 8% 0)}4%,7%{opacity:.9;transform:translate(-3px,1px);clip-path:inset(25% 0 49% 0)}}
@media(prefers-reduced-motion:reduce){.xp-glitch-date::before,.xp-glitch-date::after{animation:none!important;display:none}}

/* Subtle warm gradient for the live photo section. */
.gallery-section{background:radial-gradient(ellipse at 90% 15%,rgba(255,106,0,.09),transparent 58%),linear-gradient(155deg,#0c0c0c 0%,#17110d 48%,#0c0c0c 100%)}

.xp-social-section{background:#0c0c0c}.xp-social-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.xp-social-card{display:flex;justify-content:space-between;align-items:center;padding:30px 24px;border:1px solid #ffffff30;font-size:clamp(1.4rem,3vw,2rem);font-weight:800;transition:background .3s,color .3s,border-color .3s}.xp-social-card:hover{background:var(--accent);border-color:var(--accent);color:#090909}.xp-imprint{background:#111}.xp-imprint h2{font-size:clamp(2rem,5vw,4rem)}.xp-imprint p{max-width:700px}.xp-imprint a{text-decoration:underline}@media(max-width:600px){.xp-social-links{grid-template-columns:1fr}}

.xp-next-show,.xp-next-show:hover{border:0}
