/* =========================================================================
   JWH Tickets – modernes Layout der Tickets-Seite (Seite 515)
   Marken: navy #004070 · rot #E52D35 · gold #C8A24B · papier
   ========================================================================= */
.jwh-tix{
  --navy:#004070; --navy-2:#012a44; --red:#E52D35; --red-dark:#c41f27;
  --gold:#C8A24B; --ink:#243239; --muted:#5d6b73; --line:#e7e1d3;
  --card:#ffffff; --radius:16px; --shadow:0 10px 30px rgba(0,40,70,.10);
  max-width:1080px; margin:0 auto; padding:8px 18px 40px;
  color:var(--ink);
  font-family:"Roboto",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  -webkit-font-smoothing:antialiased;
}
.jwh-tix *{box-sizing:border-box;}
.jwh-tix h1,.jwh-tix h2,.jwh-tix h3{font-family:"Roboto Slab",Georgia,serif;color:var(--navy);line-height:1.15;margin:0;}

/* dopplten Seitentitel des Themes ausblenden */
.page-id-515 .entry-title,
.page-id-515 h1.elementor-heading-title.jwh-hide{display:none!important;}

/* Leeren Header-Freiraum NUR auf der Tickets-Seite kürzen:
   Der Header hat unten 250px padding + einen 103px-Spacer (#431d430),
   den die Elementor-Seiten sonst per negativer Margin überlappen. Da wir
   den Seiteninhalt ersetzen, entfernen wir den Freiraum hier direkt. */
body.page-id-515 .elementor-location-header .elementor-element-78aa152 > .e-con-inner{
  padding-bottom:22px !important;
}
body.page-id-515 .elementor-location-header .elementor-element-431d430{
  min-height:0 !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
}

/* ---------- HERO ---------- */
.jwh-tix-hero{text-align:center;padding:14px 0 26px;}
.jwh-tix-hero .eyebrow{
  display:inline-block;letter-spacing:.14em;text-transform:uppercase;
  font-size:.78rem;font-weight:700;color:var(--red);
  background:#fff;border:1px solid var(--line);border-radius:999px;
  padding:7px 16px;margin-bottom:16px;box-shadow:var(--shadow);
}
.jwh-tix-hero h1{font-size:clamp(2rem,6vw,3.1rem);margin-bottom:12px;}
.jwh-tix-hero .lead{font-size:clamp(1.02rem,2.4vw,1.18rem);color:var(--muted);max-width:640px;margin:0 auto;}
.jwh-tix-hero .hero-facts{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:20px;}
.jwh-tix-hero .fact{
  display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);
  border-radius:12px;padding:9px 14px;font-size:.9rem;font-weight:600;color:var(--navy);box-shadow:var(--shadow);
}
.jwh-tix-hero .fact b{color:var(--ink);}

/* ---------- Abschnittstitel ---------- */
.jwh-tix section{margin-top:40px;}
.jwh-tix .sec-head{text-align:center;margin-bottom:22px;}
.jwh-tix .sec-head h2{font-size:clamp(1.5rem,4vw,2rem);}
.jwh-tix .sec-head p{color:var(--muted);margin:8px auto 0;max-width:560px;}

/* ---------- Ticket-Karten ---------- */
.jwh-tix-cards .cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:stretch;}
.tix-card{
  position:relative;display:flex;flex-direction:column;background:var(--card);
  border:1px solid var(--line);border-radius:var(--radius);padding:26px 22px;box-shadow:var(--shadow);
  transition:transform .18s ease,box-shadow .18s ease;
}
.tix-card:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(0,40,70,.16);}
.tix-card.featured{border-color:var(--gold);box-shadow:0 16px 44px rgba(200,162,75,.28);}
.tix-card .badge{
  position:absolute;top:-12px;left:50%;transform:translateX(-50%);
  background:var(--gold);color:#3a2c05;font-size:.72rem;font-weight:800;letter-spacing:.06em;
  text-transform:uppercase;padding:6px 14px;border-radius:999px;white-space:nowrap;
}
.tix-card .day{font-size:.82rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--red);}
.tix-card .date{font-family:"Roboto Slab",serif;font-size:1.32rem;color:var(--navy);margin:4px 0 2px;font-weight:600;}
.tix-card .hours{font-size:.9rem;color:var(--muted);}
.tix-card .price{display:flex;align-items:baseline;gap:6px;margin:18px 0 4px;}
.tix-card .price .amount{font-family:"Roboto Slab",serif;font-size:2.6rem;font-weight:700;color:var(--navy);line-height:1;}
.tix-card .price .cur{font-size:1.3rem;font-weight:700;color:var(--navy);}
.tix-card .incl{display:inline-flex;align-items:center;gap:7px;font-size:.9rem;color:var(--ink);font-weight:600;margin-bottom:20px;}
.tix-card .incl svg{flex:0 0 auto;color:var(--gold);}
.tix-card .buy{margin-top:auto;}
.tix-card .alt-link{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;
  margin-top:10px;font-size:.85rem;font-weight:600;text-decoration:none;
  transition:color .16s ease;
}
.jwh-tix .tix-card a.alt-link{color:var(--muted);}
.jwh-tix .tix-card a.alt-link:hover,
.jwh-tix .tix-card a.alt-link:focus{color:var(--red);text-decoration:underline;}
.tix-card .alt-link svg{color:inherit;opacity:.85;flex:0 0 auto;}
.jwh-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;width:100%;
  background:var(--red);color:#fff;font-weight:700;font-size:1rem;text-decoration:none;
  padding:14px 18px;border-radius:12px;border:0;cursor:pointer;
  transition:background .16s ease,transform .16s ease;box-shadow:0 6px 16px rgba(229,45,53,.32);
}
.jwh-btn:hover{background:var(--red-dark);transform:translateY(-1px);color:#fff;}
.jwh-btn svg{flex:0 0 auto;}
.jwh-btn.ghost{background:#fff;color:var(--navy);border:2px solid var(--navy);box-shadow:none;}
.jwh-btn.ghost:hover{background:var(--navy);color:#fff;}

/* Button-Textfarbe gegen die Kit-Regel `.elementor-kit-6 a{color:rot}` durchsetzen */
.jwh-tix a.jwh-btn,
.jwh-tix a.jwh-btn:hover,
.jwh-tix a.jwh-btn:focus{color:#fff;}
.jwh-tix a.jwh-btn.ghost{color:var(--navy);}
.jwh-tix a.jwh-btn.ghost:hover{color:#fff;}
.jwh-tix .anfahrt .a-map a.jwh-btn{color:var(--navy);}
.jwh-tix .anfahrt .a-map a.jwh-btn:hover{color:#3a2c05;}
.jwh-tix a.jwh-btn svg{color:inherit;}
.jwh-tix a.jwh-btn{text-decoration:none !important;}

/* Tageskasse-Hinweis */
.jwh-tix-note{
  display:flex;align-items:center;gap:12px;justify-content:center;text-align:center;
  background:#fff8ec;border:1px solid #ecd9b0;border-radius:12px;
  padding:14px 18px;margin-top:20px;font-size:.94rem;color:#6b5320;
}
.jwh-tix-note svg{flex:0 0 auto;color:var(--gold);}

/* ---------- Kanäle ---------- */
.jwh-tix-channels .channels{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.channel{
  display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);
  border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);
}
.channel .k-top{display:flex;align-items:center;gap:12px;margin-bottom:8px;}
.channel .k-ico{width:44px;height:44px;flex:0 0 auto;border-radius:12px;display:grid;place-items:center;background:#eef4f8;color:var(--navy);}
.channel.eventim .k-ico{background:#003cff12;color:#0033cc;}
.channel h3{font-size:1.16rem;}
.channel p{color:var(--muted);font-size:.94rem;margin:2px 0 18px;flex:1;}
.channel .jwh-btn{margin-top:auto;}

/* ---------- Info-Grid ---------- */
.jwh-tix-info .info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.info-item{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px;box-shadow:var(--shadow);}
.info-item .i-ico{width:40px;height:40px;border-radius:10px;background:#eef4f8;color:var(--navy);display:grid;place-items:center;margin-bottom:12px;}
.info-item h3{font-size:1.05rem;margin-bottom:6px;}
.info-item p{color:var(--muted);font-size:.94rem;margin:0;line-height:1.5;}
.info-item p b{color:var(--ink);}

/* ---------- Anfahrt ---------- */
.jwh-tix-anfahrt .anfahrt{
  display:grid;grid-template-columns:1.1fr .9fr;gap:0;background:#fff;
  border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);
}
.anfahrt .a-body{padding:28px;}
.anfahrt .a-body h2{font-size:clamp(1.4rem,3.5vw,1.8rem);margin-bottom:6px;text-align:left;}
.anfahrt .addr{font-size:1.05rem;color:var(--ink);font-weight:600;margin:10px 0 4px;}
.anfahrt .addr span{display:block;font-weight:400;color:var(--muted);font-size:.95rem;}
.anfahrt ul{list-style:none;padding:0;margin:18px 0 22px;display:flex;flex-direction:column;gap:12px;}
.anfahrt li{display:flex;gap:12px;align-items:flex-start;font-size:.95rem;color:var(--ink);}
.anfahrt li .pin{flex:0 0 auto;width:30px;height:30px;border-radius:8px;background:#eef4f8;color:var(--navy);display:grid;place-items:center;font-size:.72rem;font-weight:800;}
.anfahrt li b{color:var(--navy);}
.anfahrt .a-map{
  position:relative;min-height:260px;background:linear-gradient(135deg,#0a3a5c,#004070);
  display:grid;place-items:center;text-align:center;color:#fff;padding:24px;
}
.anfahrt .a-map .m-inner{position:relative;z-index:1;}
.anfahrt .a-map svg{opacity:.9;}
.anfahrt .a-map p{color:#dce8f0;font-size:.92rem;margin:8px 0 16px;}
.anfahrt .a-map .jwh-btn{width:auto;background:#fff;color:var(--navy);box-shadow:none;}
.anfahrt .a-map .jwh-btn:hover{background:var(--gold);color:#3a2c05;}

/* ---------- Kontakt-Fuß ---------- */
.jwh-tix-foot{margin-top:36px;text-align:center;color:var(--muted);font-size:.92rem;}
.jwh-tix-foot a{color:var(--navy);font-weight:600;}

/* ---------- Responsive ---------- */
@media (max-width:860px){
  .jwh-tix-cards .cards{grid-template-columns:1fr;max-width:440px;margin:0 auto;}
  .jwh-tix-channels .channels{grid-template-columns:1fr;}
  .jwh-tix-info .info-grid{grid-template-columns:1fr;}
  .jwh-tix-anfahrt .anfahrt{grid-template-columns:1fr;}
  .anfahrt .a-map{min-height:200px;}
  .tix-card.featured{order:-1;} /* Kombi zuerst auf Mobil */
}

/* ---- Phase-Varianten (zeitgesteuerte Umstellung) ---- */
.jwh-tix-cards .cards.two{grid-template-columns:repeat(2,minmax(0,1fr));max-width:620px;margin:0 auto;}
.jwh-tix-channels .channels.one{grid-template-columns:1fr;max-width:560px;margin:0 auto;}
.tix-card .tk-tag{margin-top:auto;display:inline-flex;align-items:center;gap:8px;justify-content:center;
  background:#eef4f8;color:var(--navy);font-weight:700;font-size:.9rem;padding:11px 14px;border-radius:12px;border:1px dashed #c7d6e0;}
.tix-card .tk-tag svg{flex:0 0 auto;color:var(--gold);}
.jwh-tix-note.accent{border-color:var(--gold);background:#fff8ec;}
.jwh-tix-note.accent svg{color:#b8860b;}
@media (max-width:720px){
  .jwh-tix-cards .cards.two{grid-template-columns:1fr;max-width:440px;}
}
