/* Event page themes (selected per event by the organiser). Each theme is scoped to body.kp-theme-<key>. */

/* ---------- classic ---------- */
.kp-theme-classic .kp-ev-hero { min-height: 340px; }
.kp-theme-classic .kp-ev-kicker { color: #7fd6f7; }
.kp-theme-classic .kp-ev-sub { font-size: 16px; opacity: .92; }

/* ---------- worship ---------- */
.kp-theme-worship { --gold: #c9a24b; --navy: #14213d; --cream: #fdf8ee; background: var(--cream); }
.kp-theme-worship .kp-ev-hero { min-height: 520px; }
.kp-theme-worship .kp-ev-hero:before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20,33,61,.78), rgba(20,33,61,.92)); z-index: 0; }
.kp-theme-worship .hero-caption { position: relative; z-index: 1; }
.kp-theme-worship .kp-ev-title { font-family: 'Playfair Display', serif; font-size: 52px; letter-spacing: 1px; }
@media (max-width: 767px) { .kp-theme-worship .kp-ev-title { font-size: 30px; } }
.kp-theme-worship .kp-ev-kicker { color: var(--gold); }
.kp-theme-worship .kp-ev-sub { font-size: 20px; margin: 4px 0; }
.kp-theme-worship .kp-ev-sub-2 { font-size: 15px; opacity: .85; }
.kp-ornament { display: flex; align-items: center; justify-content: center; gap: 14px; color: var(--gold); margin: 10px 0 14px; }
.kp-ornament span { width: 70px; height: 1px; background: var(--gold); }
.kp-btn-gold { background: var(--gold); color: #1b1405; font-weight: 700; border: 0; padding: 14px 38px; }
.kp-btn-gold:hover { background: #dbb55c; color: #1b1405; }
.kp-band { background: var(--navy); color: #fff; padding: 28px 0; }
.kp-band-item { text-align: center; padding: 10px 15px; }
.kp-band-item i { color: var(--gold); font-size: 22px; display: block; margin-bottom: 6px; }
.kp-band-item small { display: block; text-transform: uppercase; letter-spacing: 2px; font-size: 11px; opacity: .7; }
.kp-band-item strong { font-weight: 600; }
.kp-theme-worship .bg-white-dark { background: #f6efdd; }
.kp-theme-worship .kp-description-centered { text-align: center; font-family: 'Playfair Display', serif; font-size: 18px; }
.kp-theme-worship .kp-block-title { text-align: center; font-family: 'Playfair Display', serif; text-transform: none; font-size: 24px; letter-spacing: 0; }
.kp-theme-worship .kp-day-num { background: var(--navy); }
.kp-theme-worship .kp-timeline li:before { border-color: var(--gold); }
.kp-theme-worship .kp-ticket-card { border-top-color: var(--gold) !important; }
.kp-theme-worship .btn-base { background: var(--navy); border-color: var(--navy); color: #fff; }
.kp-theme-worship .btn-base:hover { background: var(--gold); border-color: var(--gold); color: #1b1405; }

/* ---------- conference ---------- */
.kp-theme-conference { --blue: #2b6cb0; --ink: #0f172a; background: #f8fafc; }
.kp-theme-conference .kp-ev-hero { background: var(--ink); color: #fff; padding: 70px 0; }
.kp-theme-conference .kp-ev-kicker { color: #7cb7f5; }
.kp-theme-conference .kp-ev-title { font-size: 36px; }
.kp-theme-conference .kp-ev-sub { opacity: .85; }
.kp-chips { list-style: none; padding: 0; margin: 16px 0 0; }
.kp-chips li { display: inline-block; background: rgba(255,255,255,.1); border-radius: 20px; padding: 7px 14px; margin: 0 8px 8px 0; font-size: 13px; }
.kp-chips i { color: #7cb7f5; margin-right: 4px; }
.kp-cover-frame { border-radius: 8px; overflow: hidden; box-shadow: 0 20px 50px rgba(0,0,0,.4); }
.kp-cover-frame img { width: 100%; display: block; }
.kp-tabs { border-bottom: 2px solid #dbe3ee; margin-bottom: 0; }
.kp-tabs > li > a { font-weight: 700; text-transform: uppercase; letter-spacing: 1px; font-size: 12px; color: #55627a; border-radius: 0; padding: 14px 22px; }
.kp-tabs > li.active > a, .kp-tabs > li.active > a:focus, .kp-tabs > li.active > a:hover { color: var(--blue); border: 0; border-bottom: 3px solid var(--blue); margin-bottom: -2px; background: transparent; }
.kp-tab-content { background: #fff; border: 1px solid #e5eaf2; border-top: 0; padding: 30px; }
.kp-theme-conference .kp-day-num { background: var(--blue); }
.kp-theme-conference .kp-agenda-time { color: var(--blue); }
.kp-theme-conference .btn-base { background: var(--blue); border-color: var(--blue); }
.kp-theme-conference .btn-base:hover { background: var(--ink); border-color: var(--ink); }

/* ---------- concert ---------- */
.kp-theme-concert { --pink: #ff2d95; --violet: #7c3aed; --night: #0b0b14; background: var(--night); color: #d8d8e6; }
.kp-theme-concert .kp-ev-hero { min-height: 640px; }
.kp-theme-concert .kp-ev-hero:before { content: ""; position: absolute; inset: 0; background: linear-gradient(135deg, rgba(11,11,20,.88), rgba(124,58,237,.45)); z-index: 0; }
.kp-theme-concert .hero-caption { position: relative; z-index: 1; }
.kp-theme-concert .kp-ev-title { font-size: 60px; text-transform: uppercase; font-weight: 700; text-shadow: 0 0 30px rgba(255,45,149,.6); }
@media (max-width: 767px) { .kp-theme-concert .kp-ev-title { font-size: 32px; } }
.kp-theme-concert .kp-ev-kicker { color: var(--pink); }
.kp-theme-concert .kp-ev-sub { font-size: 18px; letter-spacing: 1px; }
.kp-countdown { display: inline-flex; gap: 14px; margin-top: 24px; }
.kp-countdown div { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.18); border-radius: 8px; width: 82px; padding: 12px 0; backdrop-filter: blur(4px); }
.kp-countdown strong { display: block; font-size: 30px; font-family: Montserrat, sans-serif; }
.kp-countdown small { text-transform: uppercase; font-size: 10px; letter-spacing: 2px; opacity: .7; }
.kp-btn-neon { background: linear-gradient(90deg, var(--pink), var(--violet)); color: #fff; border: 0; padding: 15px 44px; text-transform: uppercase; letter-spacing: 2px; font-weight: 700; box-shadow: 0 0 25px rgba(255,45,149,.55); }
.kp-btn-neon:hover { color: #fff; box-shadow: 0 0 40px rgba(255,45,149,.9); }
.kp-dark-section { background: var(--night); color: #d8d8e6; }
.kp-dark-alt { background: #12121f !important; }
.kp-theme-concert h3, .kp-theme-concert h4, .kp-theme-concert h5 { color: #fff; }
.kp-theme-concert a { color: var(--pink); }
.kp-poster img { width: 100%; border-radius: 10px; box-shadow: 0 0 40px rgba(124,58,237,.55); }
.kp-facts-dark li { border-color: rgba(255,255,255,.1); }
.kp-facts-dark li > i { background: rgba(255,45,149,.15); color: var(--pink); }
.kp-facts-dark small { color: #9a9ab5; }
.kp-theme-concert .kp-ticket-card { background: #1a1a2b; border-color: #2c2c45; border-top-color: var(--pink) !important; color: #fff; }
.kp-theme-concert .btn-base { background: var(--pink); border-color: var(--pink); color: #fff; }
.kp-theme-concert .kp-day-num { background: var(--violet); }
.kp-theme-concert .kp-timeline { border-color: #2c2c45; }
.kp-theme-concert .kp-timeline li:before { background: var(--night); border-color: var(--pink); }
.kp-theme-concert .kp-card { background: #1a1a2b; border-color: #2c2c45; }
.kp-theme-concert .kp-card-title a { color: #fff; }
.kp-theme-concert .kp-share a { background: #1f1f33; color: #fff; }
.kp-theme-concert .alert { background: #1f1f33; border-color: #2c2c45; color: #fff; }
.kp-theme-concert .kp-map-frame iframe { filter: invert(.9) hue-rotate(180deg); }

/* ---------- gala ---------- */
.kp-theme-gala { --gold: #b08d57; --ink: #111; background: #faf7f2; }
.kp-theme-gala h1, .kp-theme-gala h2, .kp-theme-gala h3, .kp-theme-gala h4, .kp-theme-gala .kp-ev-title { font-family: 'Playfair Display', serif; }
.kp-invite { background: #faf7f2; padding-top: 90px; }
.kp-theme-gala .kp-ev-kicker { color: var(--gold); letter-spacing: 4px; }
.kp-theme-gala .kp-ev-title { font-size: 50px; font-weight: 400; color: var(--ink); }
@media (max-width: 767px) { .kp-theme-gala .kp-ev-title { font-size: 30px; } }
.kp-rule { width: 90px; height: 1px; background: var(--gold); margin: 20px auto; position: relative; }
.kp-rule:after { content: ""; position: absolute; left: 50%; top: -4px; width: 9px; height: 9px; background: var(--gold); transform: translateX(-50%) rotate(45deg); }
.kp-theme-gala .kp-ev-sub { font-size: 20px; letter-spacing: 1px; margin: 0; }
.kp-theme-gala .kp-ev-sub-2 { color: #6c6558; margin-bottom: 30px; }
.kp-cover-framed { padding: 10px; border: 1px solid var(--gold); background: #fff; display: inline-block; max-width: 100%; }
.kp-cover-framed img { max-width: 100%; max-height: 520px; display: block; }
.kp-btn-outline-gold { border: 1px solid var(--gold); color: var(--gold); background: transparent; text-transform: uppercase; letter-spacing: 3px; padding: 14px 46px; border-radius: 0; }
.kp-btn-outline-gold:hover { background: var(--gold); color: #fff; }
.kp-theme-gala .bg-white-dark { background: #fff; }
.kp-theme-gala .kp-description { font-size: 17px; }
.kp-side-plain { border-left: 1px solid #e7dfd1; padding-left: 26px; }
.kp-facts-ruled li { display: block; padding: 14px 0; border-bottom: 1px solid #e7dfd1; }
.kp-facts-ruled small { color: var(--gold); letter-spacing: 3px; }
.kp-theme-gala .kp-day-num { background: var(--ink); border-radius: 0; }
.kp-theme-gala .kp-agenda-time { color: var(--gold); }
.kp-theme-gala .btn-base { background: var(--ink); border-color: var(--ink); border-radius: 0; letter-spacing: 2px; text-transform: uppercase; font-size: 12px; }
.kp-theme-gala .btn-base:hover { background: var(--gold); border-color: var(--gold); }
.kp-theme-gala .kp-block-title { font-weight: 400; font-size: 22px; letter-spacing: 3px; }
.kp-theme-gala .kp-share a:hover { background: var(--gold); }

/* ---------- community ---------- */
.kp-theme-community { --orange: #ff7a18; --green: #22c55e; background: #fff7ed; }
.kp-theme-community .kp-ev-hero { background: linear-gradient(135deg, #ffe7cc, #d9f8e4); padding: 60px 0; }
.kp-theme-community .kp-ev-kicker { background: #fff; color: var(--orange); border-radius: 20px; padding: 6px 14px; letter-spacing: 1px; }
.kp-theme-community .kp-ev-title { font-size: 42px; color: #1f2937; }
.kp-theme-community .kp-ev-sub { font-size: 17px; color: #4b5563; }
.kp-btn-fun { background: var(--orange); color: #fff; font-weight: 700; padding: 15px 42px; box-shadow: 0 6px 0 #d45f08; border: 0; }
.kp-btn-fun:hover { color: #fff; background: #ff8a33; }
.kp-btn-fun:active { transform: translateY(3px); box-shadow: 0 3px 0 #d45f08; }
.kp-cover-round { border-radius: 40px 8px 40px 8px; overflow: hidden; box-shadow: 0 16px 40px rgba(255,122,24,.28); border: 6px solid #fff; }
.kp-cover-round img { width: 100%; display: block; }
.kp-tiles { margin-top: -34px; position: relative; z-index: 2; }
.kp-tile { border-radius: 18px; color: #fff; padding: 18px 16px; margin-bottom: 14px; min-height: 120px; box-shadow: 0 8px 18px rgba(0,0,0,.12); }
.kp-tile i { font-size: 22px; display: block; margin-bottom: 6px; }
.kp-tile small { display: block; text-transform: uppercase; letter-spacing: 1px; font-size: 11px; opacity: .85; }
.kp-tile strong { display: block; font-size: 14px; line-height: 1.35; }
.kp-panel { background: #fff; border-radius: 22px; padding: 28px; box-shadow: 0 6px 22px rgba(0,0,0,.06); }
.kp-theme-community .kp-day-num { background: var(--green); border-radius: 20px; padding: 4px 14px; }
.kp-theme-community .kp-timeline li:before { border-color: var(--orange); }
.kp-theme-community .btn-base { background: var(--green); border-color: var(--green); color: #fff; border-radius: 30px; font-weight: 700; }
.kp-theme-community .btn-base:hover { background: #16a34a; border-color: #16a34a; }
.kp-theme-community .kp-ticket-card { border-radius: 18px; border: 2px dashed #ffd2a6; border-top: 2px dashed #ffd2a6; background: #fffaf3; }
.kp-theme-community .kp-card { border-radius: 18px; }

.kp-theme-conference .kp-ev-hero h1, .kp-theme-conference .kp-ev-hero p, .kp-theme-conference .kp-ev-hero strong { color: #fff; }
.kp-theme-worship .kp-ev-hero h1, .kp-theme-worship .kp-ev-hero p, .kp-theme-concert .kp-ev-hero h1, .kp-theme-concert .kp-ev-hero p { color: #fff; }
.kp-theme-concert .kp-dark-section p, .kp-theme-concert .kp-dark-section li, .kp-theme-concert .kp-description { color: #d8d8e6; }

/* ---------- classic: editorial layout ---------- */
.kp-theme-classic { --ed-accent: #f4846e; --ed-ink: #1f1f1f; --ed-muted: #8a8f98; --ed-line: #ececec; background: #fff; }
.kp-ed-top { padding: 28px 0 0; }
.kp-gallery { display: grid; grid-template-columns: 1fr; gap: 14px; }
.kp-gallery.has-side { grid-template-columns: 2fr 1fr; }
.kp-gallery-main, .kp-gallery-side { position: relative; border-radius: 10px; overflow: hidden; background: #e9edf2; min-height: 260px; }
.kp-gallery-main { aspect-ratio: 16 / 8; }
.kp-gallery-main img { width: 100%; height: 100%; object-fit: cover; display: block; position: absolute; inset: 0; }
.kp-gallery-tag { position: absolute; left: 16px; bottom: 16px; background: rgba(255,255,255,.95); color: var(--ed-ink); font-size: 12px; font-weight: 600; padding: 7px 13px; border-radius: 6px; }
.kp-gallery-side iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; pointer-events: none; }
.kp-gallery-btn { position: absolute; right: 14px; bottom: 14px; background: #fff; color: var(--ed-ink) !important; font-size: 12px; font-weight: 600; padding: 8px 14px; border-radius: 6px; box-shadow: 0 2px 10px rgba(0,0,0,.18); text-decoration: none; }
@media (max-width: 767px) { .kp-gallery.has-side { grid-template-columns: 1fr; } .kp-gallery-main { aspect-ratio: 4 / 3; } .kp-gallery-side { min-height: 200px; } }

.kp-ed-body { padding-top: 40px; }
.kp-ed-title { font-family: 'Playfair Display', Georgia, serif; font-size: 36px; font-weight: 700; line-height: 1.2; color: var(--ed-ink); margin: 0 0 8px; }
.kp-ed-subtitle { color: var(--ed-muted); font-size: 16px; margin: 0 0 26px; }
.kp-ed-metrics { display: flex; flex-wrap: wrap; gap: 14px 44px; padding-bottom: 26px; border-bottom: 1px solid var(--ed-line); }
.kp-metric { display: flex; align-items: center; gap: 12px; }
.kp-metric > i { color: var(--ed-accent); font-size: 26px; width: 30px; text-align: center; }
.kp-metric small { display: block; color: var(--ed-muted); font-size: 12px; }
.kp-metric strong { display: block; font-size: 15px; color: var(--ed-ink); }

.kp-ed-section { padding: 30px 0; border-bottom: 1px solid var(--ed-line); }
.kp-ed-section:last-child { border-bottom: 0; }
.kp-ed-heading { font-size: 17px; font-weight: 700; color: var(--ed-ink); margin: 0 0 16px; font-family: 'Open Sans', sans-serif; text-transform: none; letter-spacing: 0; }
.kp-theme-classic .kp-description { font-size: 15px; line-height: 1.85; color: #4a4f57; }
.kp-readmore.is-clamped:not(.is-open) { max-height: 340px; overflow: hidden; position: relative; }
.kp-readmore.is-clamped:not(.is-open):after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 90px; background: linear-gradient(to bottom, rgba(255,255,255,0), #fff); }
.kp-readmore-btn { margin-top: 12px; background: none; border: 0; padding: 0; color: var(--ed-accent); font-weight: 700; cursor: pointer; }

.kp-detail-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0 48px; }
.kp-detail-grid li { display: flex; align-items: center; gap: 12px; padding: 13px 0; border-bottom: 1px solid #f3f3f3; }
.kp-detail-grid li > i { width: 22px; color: #6b7078; font-size: 17px; text-align: center; }
.kp-detail-grid li span { flex: 1; color: #4a4f57; }
.kp-detail-grid li strong { color: var(--ed-ink); font-weight: 700; text-align: right; }
@media (max-width: 575px) { .kp-detail-grid { grid-template-columns: 1fr; } }

.kp-pill-dark { background: #1c1c1c; color: #fff !important; border-radius: 30px; padding: 13px 28px; font-weight: 600; border: 0; }
.kp-pill-dark:hover { background: var(--ed-accent); }
.kp-theme-classic .kp-block-title { font-family: 'Open Sans', sans-serif; font-size: 17px; font-weight: 700; text-transform: none; letter-spacing: 0; }
.kp-theme-classic .kp-day-num { background: var(--ed-accent); }
.kp-theme-classic .kp-timeline li:before { border-color: var(--ed-accent); }
.kp-theme-classic .kp-agenda-time, .kp-theme-classic .kp-tl-time { color: var(--ed-muted); }
.kp-theme-classic .kp-ed-location .kp-map-address { color: var(--ed-muted); }

/* smaller cover banners on phones */
@media (max-width: 767px) {
	.kp-ed-top { padding-top: 14px; }
	.kp-gallery-main { aspect-ratio: 16 / 9; min-height: 0; }
	.kp-gallery-side { display: none; }
	.kp-gallery-tag { left: 10px; bottom: 10px; font-size: 11px; padding: 5px 10px; }
	.kp-cover-round { border-width: 4px; }
	.kp-cover-round img, .kp-poster img, .kp-cover-frame img { max-height: 220px; object-fit: cover; }
	.kp-cover-framed img { max-height: 240px; }
}
