/*
Theme Name: TicketsPlus
Theme URI: https://ticketsplus.ky
Author: TicketsPlus
Description: TicketsPlus storefront (Option B: Dynamic). Built for The Events Calendar, Event Tickets and WooCommerce.
Version: 1.6.6
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: ticketsplus
*/

:root {
	--tp-navy: #00045C;
	--tp-cyan: #00ACE7;
	--tp-cyan-ink: #0077A8;
	--tp-bg: #F4FAFD;
	--tp-tint: #E9F7FD;
	--tp-line: #DCEAF2;
	--tp-muted: #4A4F7A;
	--tp-body: #2B3066;
	--tp-white: #FFFFFF;
	--tp-font: "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;
	--tp-radius: 28px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body.tp {
	margin: 0;
	font-family: var(--tp-font);
	color: var(--tp-navy);
	background: var(--tp-bg);
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
}
:where(body.tp) img { max-width: 100%; height: auto; }
body.tp a { color: var(--tp-navy); }
body.tp a:hover { color: var(--tp-cyan-ink); }
body.tp :focus-visible { outline: 3px solid var(--tp-cyan); outline-offset: 2px; }

.tp-wrap { max-width: 1240px; margin: 0 auto; padding-left: 24px; padding-right: 24px; }
.tp-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.tp-skip { position: absolute; left: -9999px; top: 8px; z-index: 100; background: var(--tp-navy); color: #fff !important; padding: 10px 16px; border-radius: 12px; }
.tp-skip:focus { left: 8px; }

.tp-h1 { font-weight: 800; font-size: clamp(32px, 5vw, 48px); line-height: 1.05; letter-spacing: -0.03em; margin: 0 0 20px; }
.tp-h2 { font-weight: 800; font-size: clamp(24px, 3vw, 30px); letter-spacing: -0.02em; margin: 0; }
.tp-link { font-weight: 700; font-size: 15px; }
.tp-row-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 18px; }

.tp-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; height: 48px; padding: 0 18px; border-radius: 16px; font-weight: 700; font-size: 15px; text-decoration: none; border: 0; cursor: pointer; font-family: inherit; }
.tp-btn--navy, body.tp a.tp-btn--navy { background: var(--tp-navy); color: #fff; }
body.tp a.tp-btn--navy:hover { background: #0B1270; color: #fff; }
.tp-btn--lg { height: 56px; padding: 0 24px; border-radius: 18px; font-size: 16px; }
.tp-pill { height: 48px; padding: 0 14px; border-radius: 16px; border: 2px solid var(--tp-line); background: #fff; color: var(--tp-navy); font: inherit; font-size: 14px; font-weight: 700; }
.tp-country[disabled] { cursor: default; opacity: 1; }

/* ---------- Header ---------- */
.tp-header { background: #fff; border-bottom: 1px solid var(--tp-line); position: sticky; top: 0; z-index: 50; }
.admin-bar .tp-header { top: 32px; }
.tp-header__row { display: flex; align-items: center; gap: 16px; padding-top: 14px; padding-bottom: 14px; flex-wrap: wrap; }
.tp-header__logo img { height: 30px; width: auto; display: block; }
.tp-search { flex: 1 1 240px; display: flex; align-items: center; gap: 10px; border: 2px solid var(--tp-line); border-radius: 16px; padding: 0 16px; height: 48px; background: #fff; }
.tp-search input { border: 0; background: transparent; font: inherit; font-size: 15px; color: var(--tp-navy); flex: 1; min-width: 0; outline: none; }
.tp-header__tools { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.tp-header__link { font-weight: 700; font-size: 15px; text-decoration: none; }
.tp-cur { display: flex; gap: 2px; border: 2px solid var(--tp-line); border-radius: 16px; padding: 3px; background: #fff; }
.tp-cur button { height: 38px; padding: 0 12px; border-radius: 12px; border: 0; background: transparent; color: var(--tp-navy); font: inherit; font-weight: 700; font-size: 13px; cursor: pointer; }
.tp-cur button[aria-pressed="true"] { background: var(--tp-navy); color: #fff; }

@media (max-width: 760px) {
	.tp-wrap { padding-left: 16px; padding-right: 16px; }
	.admin-bar .tp-header { top: 0; position: relative; }
	.tp-header__row { gap: 10px; }
	.tp-header__logo { flex: 1; }
	.tp-header__logo img { height: 26px; }
	.tp-search { order: 3; flex-basis: 100%; height: 46px; }
	.tp-header__tools { gap: 8px; }
	.tp-header__link, .tp-header__sell, .tp-country { display: none; }
	.tp-cur button { height: 34px; padding: 0 9px; font-size: 12px; }
}

/* ---------- Home: bento ---------- */
.tp-bento { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: 220px 220px; gap: 16px; padding-top: 24px; }
.tp-bento__tile { position: relative; border-radius: var(--tp-radius); overflow: hidden; display: block; background: #0B1270; transition: transform .25s ease; }
.tp-bento__tile:hover { transform: scale(1.015); }
.tp-bento__tile img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tp-bento__tile--0 { grid-column: span 2; grid-row: span 2; }
.tp-bento:has(.tp-bento__tile--0:only-child) .tp-bento__tile--0 { grid-column: 1 / -1; }
@media (max-width: 760px) {
	.tp-bento { grid-template-columns: 1fr 1fr; grid-template-rows: 200px 120px; gap: 10px; padding-top: 16px; }
	.tp-bento__tile { border-radius: 20px; }
	.tp-bento__tile--0 { grid-column: 1 / -1; grid-row: auto; }
}

/* ---------- Home: day strip ---------- */
.tp-days { padding-top: 36px; }
.tp-seg { display: flex; gap: 6px; background: #fff; border: 2px solid var(--tp-line); border-radius: 16px; padding: 4px; }
.tp-seg a { height: 40px; display: inline-flex; align-items: center; padding: 0 14px; border-radius: 12px; font-weight: 700; font-size: 14px; text-decoration: none; }
.tp-seg a:hover, .tp-seg a.is-on { background: var(--tp-cyan); color: var(--tp-navy); }
.tp-events { scroll-margin-top: 90px; }
.tp-days__strip { display: flex; gap: 10px; overflow-x: auto; padding-bottom: 4px; scrollbar-width: thin; }
.tp-day { flex: none; width: 72px; height: 96px; border-radius: 20px; border: 2px solid var(--tp-line); background: #fff; text-decoration: none; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; }
.tp-day.is-on, .tp-day:hover { background: var(--tp-navy); border-color: var(--tp-navy); color: #fff !important; }
.tp-day__dow { font-size: 12px; font-weight: 700; letter-spacing: .06em; }
.tp-day__num { font-weight: 800; font-size: 26px; line-height: 1; }
.tp-day__dot { width: 6px; height: 6px; border-radius: 50%; margin-top: 4px; }
.tp-day__dot.is-busy { background: var(--tp-cyan); }
@media (max-width: 760px) { .tp-seg { width: 100%; } .tp-seg a { flex: 1; justify-content: center; padding: 0 6px; font-size: 13px; } .tp-day { width: 60px; height: 84px; } }

/* ---------- Event cards ---------- */
.tp-events { padding-top: 40px; padding-bottom: 72px; }
.tp-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: 32px 24px; }
.tp-card { min-width: 0; text-decoration: none; display: flex; flex-direction: column; gap: 14px; transition: transform .25s ease; }
.tp-card:hover { transform: translateY(-6px); }
.tp-card__media { position: relative; aspect-ratio: 1 / 1; border-radius: 22px; overflow: hidden; background: #0B1270; transition: box-shadow .25s ease; }
.tp-card:hover .tp-card__media { box-shadow: 0 18px 36px rgba(0, 4, 92, .18); }
.tp-flyer, .tp-flyer__bg, .tp-flyer__img { position: absolute; inset: 0; width: 100%; height: 100%; }
.tp-flyer__bg { inset: -20px; width: calc(100% + 40px); height: calc(100% + 40px); object-fit: cover; filter: blur(18px) saturate(1.2); opacity: .85; }
.tp-flyer__img { object-fit: contain; }
.tp-flyer--empty { background: linear-gradient(135deg, var(--tp-navy), var(--tp-cyan)); }
.tp-card__body { display: flex; flex-direction: column; gap: 4px; }
.tp-card__date { font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--tp-cyan-ink); }
.tp-card__title { font-weight: 800; font-size: 20px; line-height: 1.2; }
.tp-card__title--lg { font-size: 24px; }
.tp-card__venue { font-size: 14px; color: var(--tp-muted); }
.tp-card__price { font-size: 16px; font-weight: 800; margin-top: 4px; }
.tp-card--fest { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; gap: 24px; align-items: center; }
.tp-card--fest .tp-card__media { flex: 2 1 420px; aspect-ratio: 21 / 9; }
.tp-card--fest .tp-card__body { flex: 1 1 280px; }
.tp-fest-media { background: linear-gradient(120deg, #00045C 0%, #002C8A 55%, #00ACE7 100%); display: flex; align-items: flex-end; padding: 22px; }
.tp-fest-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.tp-fest-media__title { color: #fff; font-weight: 800; font-size: clamp(26px, 4vw, 40px); line-height: 1; letter-spacing: -0.02em; }
.tp-empty { color: var(--tp-muted); }
@media (max-width: 760px) {
	.tp-events { padding-top: 28px; }
	.tp-grid { grid-template-columns: 1fr; gap: 18px; }
	.tp-card:not(.tp-card--fest) { flex-direction: row; align-items: center; gap: 14px; }
	.tp-card:not(.tp-card--fest) .tp-card__media { width: 112px; flex: none; border-radius: 18px; }
	.tp-card:not(.tp-card--fest) .tp-badge { display: none; }
	.tp-card__title { font-size: 16px; }
	.tp-card__date { font-size: 12px; }
	.tp-card__venue { font-size: 13px; }
	.tp-card__price { font-size: 15px; }
	.tp-card--fest .tp-card__media { flex-basis: 100%; aspect-ratio: 16 / 9; border-radius: 20px; }
	.tp-card--fest { gap: 10px; }
}

/* Card date box + category */
.tp-datebox { position: absolute; right: 12px; top: 12px; z-index: 2; width: 58px; padding: 7px 0 6px; border-radius: 14px; background: #fff; color: var(--tp-navy); display: flex; flex-direction: column; align-items: center; line-height: 1; box-shadow: 0 4px 14px rgba(0, 4, 92, .18); }
.tp-datebox__m { font-size: 12px; font-weight: 800; letter-spacing: .08em; color: var(--tp-cyan-ink); }
.tp-datebox__d { font-size: 24px; font-weight: 800; margin-top: 3px; }
.tp-card__meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.tp-cat { display: inline-flex; align-items: center; height: 24px; padding: 0 9px; border-radius: 8px; background: var(--tp-navy); color: #fff; font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
@media (max-width: 760px) {
	.tp-card:not(.tp-card--fest) .tp-datebox { right: 6px; top: 6px; width: 40px; padding: 5px 0 4px; border-radius: 10px; }
	.tp-card:not(.tp-card--fest) .tp-datebox__m { font-size: 9px; }
	.tp-card:not(.tp-card--fest) .tp-datebox__d { font-size: 17px; margin-top: 2px; }
	.tp-cat { height: 20px; font-size: 10px; padding: 0 7px; }
}

.tp-bento__tile .tp-datebox { right: 16px; top: 16px; }
.tp-bento__tile--0 .tp-datebox { width: 76px; padding: 10px 0 9px; border-radius: 18px; right: 20px; top: 20px; }
.tp-bento__tile--0 .tp-datebox__m { font-size: 14px; }
.tp-bento__tile--0 .tp-datebox__d { font-size: 32px; }
@media (max-width: 760px) { .tp-bento__tile .tp-datebox, .tp-bento__tile--0 .tp-datebox { right: 10px; top: 10px; width: 48px; padding: 6px 0 5px; border-radius: 12px; } .tp-bento__tile .tp-datebox__m { font-size: 10px; } .tp-bento__tile .tp-datebox__d { font-size: 19px; } }

/* ---------- Badges ---------- */
.tp-badge { display: inline-block; border: 2px solid var(--tp-navy); border-radius: 12px; padding: 5px 10px; font-size: 12px; font-weight: 800; letter-spacing: .02em; line-height: 1.2; }
.tp-card__media .tp-badge { position: absolute; left: 12px; top: 12px; z-index: 2; }
.tp-badge--low { background: var(--tp-cyan); color: var(--tp-navy); }
.tp-badge--almost { background: var(--tp-navy); color: #fff; }
.tp-badge--sold { background: #fff; color: var(--tp-navy); }
.tp-badge--fest { background: var(--tp-cyan); color: var(--tp-navy); letter-spacing: .04em; text-transform: uppercase; }
.tp-badge--lg { font-size: 14px; padding: 7px 12px; margin-bottom: 16px; }

/* ---------- Promo ---------- */
.tp-promo { padding-bottom: 72px; }
.tp-promo__box { background: var(--tp-cyan); border-radius: 32px; padding: 48px; display: flex; flex-wrap: wrap; gap: 32px; align-items: center; justify-content: space-between; }
.tp-promo__box > div { flex: 1 1 460px; }
.tp-promo h2 { margin: 0 0 12px; font-weight: 800; font-size: clamp(28px, 4vw, 40px); line-height: 1.05; letter-spacing: -0.02em; }
.tp-promo p { margin: 0; font-size: 17px; line-height: 1.55; }
@media (max-width: 760px) { .tp-promo__box { padding: 28px 22px; border-radius: 24px; } .tp-promo__box > div { flex-basis: 100%; } .tp-promo .tp-btn { width: 100%; } }

/* ---------- Footer ---------- */
.tp-footer { background: var(--tp-navy); color: #C3C8EC; font-size: 14px; }
.tp-footer a { color: #C3C8EC !important; text-decoration: none; }
.tp-footer a:hover { color: #fff !important; }
.tp-footer__row { display: flex; flex-wrap: wrap; gap: 32px; justify-content: space-between; padding-top: 44px; padding-bottom: 28px; }
.tp-footer__brand { display: flex; flex-direction: column; gap: 10px; }
.tp-footer__brand img { height: 38px; width: auto; align-self: flex-start; }
.tp-footer__secure { font-size: 13px; }
.tp-footer__cols { display: flex; gap: 40px; flex-wrap: wrap; }
.tp-footer__cols div { display: flex; flex-direction: column; gap: 8px; }
.tp-footer__cols strong { color: #fff; }
.tp-footer__base { border-top: 1px solid rgba(255, 255, 255, .12); padding-top: 18px; padding-bottom: 28px; font-size: 13px; }

/* ---------- Pages ---------- */
.tp-page { padding-top: 40px; padding-bottom: 72px; }
.tp-content { font-size: 16px; line-height: 1.65; color: var(--tp-body); max-width: 760px; }
.tp-page--shop .tp-content { max-width: none; }

/* ---------- The Events Calendar: single event ---------- */
body.tp .tribe-events-single, body.tp #tribe-events-pg-template { max-width: 1240px; margin: 0 auto; padding: 28px 24px 80px; }
body.tp .tribe-events-back a { font-weight: 700; text-decoration: none; font-family: var(--tp-font); }
body.tp .tribe-events-single-event-title { font-family: var(--tp-font); font-weight: 800; font-size: clamp(34px, 6vw, 56px); line-height: 1; letter-spacing: -0.03em; color: var(--tp-navy); margin: 12px 0 10px; }
body.tp .tribe-events-schedule { display: inline-flex; flex-wrap: wrap; gap: 8px; align-items: center; background: #fff; border-radius: 18px; padding: 12px 16px; margin: 0 0 20px; font-family: var(--tp-font); }
body.tp .tribe-events-schedule h2, body.tp .tribe-events-schedule .tribe-events-cost { font-family: var(--tp-font); font-size: 16px; font-weight: 700; color: var(--tp-navy); margin: 0; }
body.tp .tribe-events-event-image { border-radius: 32px; overflow: hidden; margin-bottom: 24px; background: #0B1270; }
body.tp .tribe-events-event-image img { width: 100%; display: block; max-height: 720px; object-fit: contain; }
body.tp .tribe-events-single-event-description { font-family: var(--tp-font); font-size: 16px; line-height: 1.65; color: var(--tp-body); background: #fff; border-radius: var(--tp-radius); padding: 26px; margin-bottom: 24px; }
body.tp .tribe-events-event-meta { font-family: var(--tp-font); background: #fff; border: 0; border-radius: var(--tp-radius); padding: 10px 6px; margin: 24px 0; }
body.tp .tribe-events-meta-group .tribe-events-single-section-title { font-family: var(--tp-font); font-weight: 800; font-size: 18px; color: var(--tp-navy); }
body.tp .tribe-events-meta-group dt, body.tp .tribe-events-meta-group dd { font-family: var(--tp-font); color: var(--tp-body); }
body.tp .tribe-events-c-subscribe-dropdown__button { border-radius: 14px !important; font-family: var(--tp-font) !important; }
body.tp .tribe-events-nav-pagination { font-family: var(--tp-font); }
@media (max-width: 760px) { body.tp .tribe-events-single, body.tp #tribe-events-pg-template { padding: 16px 16px 60px; } body.tp .tribe-events-event-image { border-radius: 22px; } }

/* Event Tickets form (Choose tickets) */
body.tp .tribe-common .tribe-tickets__tickets-form,
body.tp .tribe-tickets__tickets-wrapper .tribe-tickets__tickets-form { font-family: var(--tp-font); background: #fff; border: 2px solid var(--tp-line); border-radius: 32px; padding: 24px; }
body.tp .tribe-common .tribe-tickets__tickets-title { font-family: var(--tp-font); font-weight: 800; font-size: 24px; color: var(--tp-navy); }
body.tp .tribe-common .tribe-tickets__tickets-item { background: var(--tp-bg); border-radius: 20px; padding: 14px; border: 0; margin-bottom: 10px; }
body.tp .tribe-common .tribe-tickets__tickets-item-content-title { font-family: var(--tp-font); font-weight: 700; color: var(--tp-navy); }
body.tp .tribe-common .tribe-tickets__tickets-sale-price { font-family: var(--tp-font); font-weight: 700; color: var(--tp-navy); }
body.tp .tribe-common .tribe-tickets__tickets-item-quantity button { border-radius: 12px; min-width: 44px; min-height: 44px; }
body.tp .tribe-common .tribe-tickets__tickets-item-quantity-add { background: var(--tp-cyan); color: var(--tp-navy); }
body.tp .tribe-common .tribe-tickets__tickets-buy,
body.tp .tribe-common .tribe-common-c-btn { background: var(--tp-navy) !important; color: #fff !important; border-radius: 18px !important; min-height: 56px; font-family: var(--tp-font) !important; font-weight: 700 !important; }

/* ---------- WooCommerce basics ---------- */
body.tp .woocommerce .button, body.tp .woocommerce button.button, body.tp .woocommerce a.button, body.tp .woocommerce input.button,
body.tp .woocommerce #place_order, body.tp .wc-block-components-button:not(.is-link) { background: var(--tp-navy) !important; color: #fff !important; border-radius: 16px !important; font-family: var(--tp-font) !important; font-weight: 700 !important; min-height: 48px; padding: 0 22px !important; border: 0 !important; }
body.tp .woocommerce input.input-text, body.tp .woocommerce select, body.tp .woocommerce textarea,
body.tp .wc-block-components-text-input input { border: 2px solid var(--tp-line) !important; border-radius: 14px !important; min-height: 50px; padding: 0 14px; font-family: var(--tp-font); font-size: 16px; }
body.tp .woocommerce-info, body.tp .woocommerce-message { border-top-color: var(--tp-cyan); background: var(--tp-tint); border-radius: 16px; }

/* ---------- Single event (Option B) ---------- */
body.tp .tp-event { max-width: 1240px; margin: 0 auto; padding: 28px 24px 80px; }
.tp-event__layout { display: flex; flex-wrap: wrap; gap: 32px; align-items: flex-start; }
.tp-event__main { flex: 999 1 560px; min-width: 0; display: flex; flex-direction: column; gap: 22px; }
.tp-event__aside { flex: 1 1 360px; min-width: 0; position: sticky; top: 100px; }
.tp-event__back { font-weight: 700; text-decoration: none; font-size: 15px; }
.tp-event__hero { border-radius: 32px; overflow: hidden; background: #0B1270; }
.tp-event__hero img { width: 100%; height: auto; display: block; max-height: 760px; object-fit: contain; }
.tp-event__tags { display: flex; flex-wrap: wrap; gap: 8px; }
.tp-tag { height: 36px; display: inline-flex; align-items: center; padding: 0 14px; border-radius: 12px; background: #fff; border: 2px solid var(--tp-line); font-size: 14px; font-weight: 700; }
.tp-event__title { margin: 0; font-weight: 800; font-size: clamp(34px, 6vw, 56px); line-height: 1; letter-spacing: -0.03em; }
.tp-event .tp-badge--lg { align-self: flex-start; margin: -6px 0 0; }
.tp-event__facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 12px; }
.tp-fact { background: #fff; border-radius: 22px; padding: 18px; display: flex; flex-direction: column; gap: 4px; }
.tp-fact strong { font-size: 17px; }
.tp-fact a { font-size: 14px; font-weight: 700; margin-top: 4px; }
.tp-fact__label { font-size: 13px; color: var(--tp-muted); }
.tp-fact--count { background: var(--tp-navy); color: #fff; }
.tp-fact--count .tp-fact__label { color: #C3C8EC; }
.tp-fact--count strong { font-size: 26px; letter-spacing: -0.01em; }
.tp-event__about { background: #fff; border-radius: var(--tp-radius); padding: 26px; }
.tp-event__about h2 { margin: 0 0 12px; font-weight: 800; font-size: 24px; }
.tp-event__desc { font-size: 16px; line-height: 1.65; color: var(--tp-body); }
.tp-event__desc p { margin: 0 0 12px; }
.tp-tix { background: #fff; border: 2px solid var(--tp-line); border-radius: 32px; padding: 24px; display: flex; flex-direction: column; gap: 16px; }
.tp-tix__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.tp-tix__head h2 { margin: 0; font-weight: 800; font-size: 24px; }
.tp-tix__price { margin: 0; font-weight: 800; font-size: 28px; }
.tp-tix__soon, .tp-tix__sold { margin: 0; padding: 14px; border-radius: 18px; background: var(--tp-bg); font-weight: 600; }
.tp-tix__note { margin: 0; font-size: 13px; color: var(--tp-muted); text-align: center; }
.tp-tix .tribe-common .tribe-tickets__tickets-form, .tp-tix .tribe-tickets__tickets-wrapper .tribe-tickets__tickets-form { border: 0 !important; padding: 0 !important; }
.tp-tix .tribe-tickets__tickets-title { display: none; }
@media (max-width: 760px) {
	body.tp .tp-event { padding: 16px 16px 60px; }
	.tp-event__aside { position: static; }
	.tp-event__hero { border-radius: 22px; }
	.tp-event__facts { grid-template-columns: 1fr 1fr; }
	.tp-fact--count { grid-column: 1 / -1; flex-direction: row; align-items: center; justify-content: space-between; }
	.tp-fact--count strong { font-size: 22px; }
	.tp-tix { border-radius: 24px; padding: 16px; }
}

/* Ticket rows inside "Choose tickets" */
.tp-tix .tribe-common .tribe-tickets__tickets-item { display: grid !important; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "title qty" "desc qty" "extra qty"; column-gap: 12px; row-gap: 2px; align-items: center; padding: 14px; }
.tp-tix .tribe-tickets__tickets-item-content-title-container { grid-area: title; margin: 0 !important; }
.tp-tix .tribe-tickets__tickets-item-details-content { grid-area: desc; margin: 0 !important; font-size: 13px !important; color: var(--tp-muted) !important; }
.tp-tix .tribe-tickets__tickets-item-extra { grid-area: extra; display: block !important; text-align: left !important; margin: 4px 0 0 !important; }
.tp-tix .tribe-tickets__tickets-item-quantity { grid-area: qty; display: flex !important; align-items: center; gap: 4px; background: #fff; border-radius: 14px; padding: 2px; margin: 0 !important; }
.tp-tix .tribe-tickets__tickets-item-content-title { font-size: 16px !important; font-weight: 800 !important; }
.tp-tix .tribe-tickets__tickets-sale-price { font-size: 15px !important; font-weight: 700 !important; }
.tp-tix .tribe-tickets__tickets-item-extra-available { display: none !important; }
.tp-tix .tribe-tickets__tickets-item-quantity-number input { width: 32px !important; text-align: center; font-weight: 800; font-size: 17px; border: 0 !important; background: transparent !important; }
.tp-tix .tribe-tickets__tickets-item-quantity-remove { background: transparent !important; color: var(--tp-navy) !important; }
.tp-tix .tribe-tickets__tickets-footer-total .tribe-amount::after { content: " KYD"; }
.tp-tix .tribe-tickets__tickets-footer { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; border-top: 2px dashed var(--tp-line); padding-top: 14px; }
.tp-tix .tribe-tickets__tickets-buy { width: 100%; }

/* ---------- Buttons (extra) ---------- */
.tp-btn--ghost, body.tp a.tp-btn--ghost { background: #fff; color: var(--tp-navy); border: 2px solid var(--tp-navy); }
body.tp a.tp-btn--ghost:hover { background: var(--tp-tint); }

/* ---------- My account (login / register / tickets) ---------- */
body.tp.woocommerce-account .tp-page { max-width: 1240px; }
body.tp .woocommerce-account .woocommerce, body.tp.woocommerce-account .woocommerce { display: flex; flex-wrap: wrap; gap: 28px; align-items: flex-start; }
body.tp .woocommerce-MyAccount-navigation { flex: 1 1 240px; max-width: 280px; }
body.tp .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 8px; background: #fff; border-radius: 22px; display: flex; flex-direction: column; gap: 4px; }
body.tp .woocommerce-MyAccount-navigation a { display: flex; align-items: center; min-height: 46px; padding: 0 14px; border-radius: 14px; text-decoration: none; font-weight: 700; }
body.tp .woocommerce-MyAccount-navigation .is-active a { background: var(--tp-navy); color: #fff; }
body.tp .woocommerce-MyAccount-navigation a:hover { background: var(--tp-tint); }
body.tp .woocommerce-MyAccount-navigation .is-active a:hover { background: var(--tp-navy); color: #fff; }
body.tp .woocommerce-MyAccount-content { flex: 999 1 520px; min-width: 0; }
body.tp .woocommerce form.login, body.tp .woocommerce form.register, body.tp .woocommerce form.lost_reset_password,
body.tp .woocommerce-MyAccount-content form, body.tp .woocommerce-EditAccountForm { background: #fff; border: 0 !important; border-radius: var(--tp-radius); padding: 24px !important; margin: 0 !important; }
body.tp .woocommerce .u-columns.col2-set { display: flex; flex-wrap: wrap; gap: 24px; width: 100%; }
body.tp .woocommerce .u-columns .u-column1, body.tp .woocommerce .u-columns .u-column2 { flex: 1 1 340px; float: none; width: auto; }
body.tp .woocommerce .u-columns h2, body.tp .woocommerce-MyAccount-content h2 { font-weight: 800; font-size: 24px; margin: 0 0 12px; }
body.tp .woocommerce form .form-row label { font-weight: 700; font-size: 14px; }
body.tp .woocommerce form .form-row { margin-bottom: 14px; }
body.tp .woocommerce-privacy-policy-text, body.tp .woocommerce form .woocommerce-form-login__rememberme { font-size: 13px; color: var(--tp-muted); }
body.tp .woocommerce-error, body.tp .woocommerce-error li { border-radius: 16px; }
body.tp .woocommerce-orders-table, body.tp .shop_table { background: #fff; border-radius: 22px !important; overflow: hidden; border: 0 !important; }
.tp-mytix__h { font-weight: 800; font-size: 22px; margin: 6px 0 12px; }
.tp-mytix__h:not(:first-child) { margin-top: 28px; }
.tp-mytix__list { display: flex; flex-direction: column; gap: 14px; }
.tp-mytix__empty { background: #fff; border-radius: var(--tp-radius); padding: 24px; display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }
.tp-mytix__empty p { margin: 0; }
.tp-tk { background: #fff; border-radius: 24px; padding: 12px; display: flex; gap: 16px; align-items: center; flex-wrap: wrap; }
.tp-tk.is-past { opacity: .7; }
.tp-tk__media { position: relative; width: 120px; aspect-ratio: 1 / 1; border-radius: 18px; overflow: hidden; background: #0B1270; flex: none; }
.tp-tk__body { flex: 1 1 240px; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.tp-tk__title { font-weight: 800; font-size: 19px; line-height: 1.2; text-decoration: none; }
.tp-tk__meta { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 6px 0 0; font-size: 13px; }
.tp-tk__meta div { display: flex; gap: 6px; }
.tp-tk__meta dt { color: var(--tp-muted); }
.tp-tk__meta dd { margin: 0; font-weight: 700; }
.tp-tk__flag { align-self: flex-start; margin-top: 6px; font-size: 12px; font-weight: 800; padding: 4px 9px; border-radius: 8px; background: var(--tp-tint); }
.tp-tk__flag--warn { background: #FFF1D6; }
.tp-tk__qr { flex: none; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 8px 12px; }
.tp-tk__qr img { width: 140px; height: 140px; border-radius: 12px; background: #fff; }
.tp-tk__qr code { font-size: 15px; font-weight: 800; padding: 10px 14px; border-radius: 12px; background: var(--tp-bg); }
.tp-tk__qr span { font-size: 12px; color: var(--tp-muted); font-weight: 600; }
@media (max-width: 760px) {
	body.tp .woocommerce-MyAccount-navigation { max-width: none; flex-basis: 100%; }
	body.tp .woocommerce-MyAccount-navigation ul { flex-direction: row; overflow-x: auto; }
	body.tp .woocommerce-MyAccount-navigation li { flex: none; }
	.tp-tk__media { width: 88px; }
	.tp-tk__qr { width: 100%; padding-top: 12px; border-top: 2px dashed var(--tp-line); }
	.tp-tk__qr img { width: 180px; height: 180px; }
}

/* ---------- Sell tickets ---------- */
.tp-sell { background: linear-gradient(120deg, #00045C 0%, #002C8A 55%, #00ACE7 100%); color: #fff; }
.tp-sell__hero { padding-top: 56px; padding-bottom: 56px; display: flex; flex-direction: column; gap: 16px; align-items: flex-start; }
.tp-sell__hero h1 { margin: 0; font-weight: 800; font-size: clamp(36px, 6vw, 60px); line-height: 1; letter-spacing: -0.03em; max-width: 800px; }
.tp-sell__hero p { margin: 0; font-size: 18px; color: #C3E9F8; max-width: 620px; }
.tp-sell__cta { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 8px; }
.tp-sell .tp-btn--navy, body.tp .tp-sell a.tp-btn--navy { background: var(--tp-cyan); color: var(--tp-navy); }
.tp-sell .tp-btn--ghost, body.tp .tp-sell a.tp-btn--ghost { background: transparent; color: #fff; border-color: #fff; }
.tp-sell__who { font-size: 14px !important; }
.tp-sell__steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 16px; padding-top: 40px; }
.tp-step { background: #fff; border-radius: var(--tp-radius); padding: 24px; }
.tp-step__n { display: inline-flex; width: 40px; height: 40px; border-radius: 12px; background: var(--tp-cyan); align-items: center; justify-content: center; font-weight: 800; font-size: 18px; }
.tp-step h2 { margin: 14px 0 6px; font-weight: 800; font-size: 20px; }
.tp-step p { margin: 0; color: var(--tp-body); }
.tp-sell__faq { padding-top: 40px; padding-bottom: 72px; }
.tp-sell__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 12px; margin-top: 16px; }
.tp-sell__grid div { background: #fff; border-radius: 22px; padding: 18px; }
.tp-sell__grid p { margin: 6px 0 0; color: var(--tp-body); font-size: 15px; }

/* ---------- Organizer wizard (Community form) — Option B ---------- */
body.tp.tp-organizer .tp-main { background: var(--tp-bg); }
body.tp.tp-organizer-form .tp-header { display: none; }
body.tp.tp-organizer #tribe-events-pg-template { max-width: none; padding: 0 0 80px; }
body.tp #tribe-community-events, body.tp .tribe-community-events { font-family: var(--tp-font); color: var(--tp-navy); max-width: 1240px; margin: 0 auto; padding: 0 24px 40px !important; box-sizing: border-box; background: transparent !important; border: 0 !important; box-shadow: none !important; }
body.tp .tribe-community-events *, body.tp .tribe-community-events input, body.tp .tribe-community-events select, body.tp .tribe-community-events textarea, body.tp .tribe-community-events button { font-family: var(--tp-font) !important; }
body.tp .tp-ce-form .tp-hide, body.tp .tp-ce-form tr.recurrence-row, body.tp .tp-ce-form #recurrence-changed-row, body.tp .tp-ce-form .tribe-change-timezone, body.tp .tp-ce-form .tribe-timezone, body.tp #tec-tickets-commerce-rsvp, body.tp #event_tribe_virtual, body.tp #event_tribe_event_status, body.tp .tribe-section-website, body.tp .tribe-section-virtual, body.tp .tribe-section-event-status { display: none !important; }
.tp-orgbar { background: #fff; border-bottom: 1px solid var(--tp-line); margin: 0 calc(50% - 50vw) 24px; }
.tp-orgbar__in { max-width: 1240px; margin: 0 auto; padding: 14px 24px; display: flex; align-items: center; gap: 14px; box-sizing: border-box; }
.tp-orgbar__logo img { height: 30px; width: auto; display: block; }
.tp-orgbar__pill { height: 32px; display: inline-flex; align-items: center; padding: 0 12px; border-radius: 10px; background: var(--tp-tint); font-size: 13px; font-weight: 700; }
.tp-orgbar__sp { flex: 1; }
.tp-orgbar__draft { background: none; border: 0; padding: 0 6px; font: inherit; font-weight: 700; font-size: 15px; color: var(--tp-navy); text-decoration: underline; cursor: pointer; }
.tp-orgbar__draft[hidden] { display: none; }
body.tp .tp-orgbar__exit { height: 44px; border-width: 2px; border-color: var(--tp-line); }
body.tp .tribe-community-events .tribe-community-notice, body.tp .tribe-community-events .notice { border-radius: 18px; padding: 14px 18px; margin: 0 0 18px; border: 0; background: var(--tp-tint); font-weight: 600; }
body.tp .tribe-community-events .tribe-community-notice-error, body.tp .tribe-community-events .notice-error { background: #FFE9E9; }
.tp-wiz__steps ol { list-style: none; margin: 0 0 22px; padding: 0; display: flex; gap: 8px; flex-wrap: wrap; }
.tp-wiz__steps button { height: 44px; display: inline-flex; align-items: center; gap: 8px; padding: 0 16px 0 6px; border-radius: 14px; border: 0; background: #fff; color: var(--tp-navy); font: inherit; font-weight: 700; font-size: 14px; cursor: pointer; }
.tp-wiz__dot { width: 32px; height: 32px; border-radius: 10px; background: var(--tp-bg); display: inline-flex; align-items: center; justify-content: center; font-size: 13px; }
.tp-wiz__steps li.is-done .tp-wiz__dot { background: var(--tp-tint); }
.tp-wiz__steps li.is-on button { background: var(--tp-navy); color: #fff; }
.tp-wiz__steps li.is-on .tp-wiz__dot { background: var(--tp-cyan); color: var(--tp-navy); }
.tp-wiz__cols { display: flex; flex-wrap: wrap; gap: 28px; align-items: flex-start; }
.tp-wiz__main { flex: 999 1 560px; min-width: 0; }
.tp-wiz__aside { flex: 1 1 320px; min-width: 0; position: sticky; top: 24px; }
.admin-bar .tp-wiz__aside { top: 56px; }
.tp-wiz__title { margin: 0 0 20px; font-weight: 800; font-size: clamp(32px, 5vw, 44px); letter-spacing: -0.03em; line-height: 1.05; color: var(--tp-navy); }
.tp-wiz__panel { display: flex; flex-direction: column; gap: 20px; }
.tp-wiz__panel[hidden] { display: none !important; }
.tp-wiz__actions { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 20px; }
.tp-wiz__actions button { height: 52px; padding: 0 24px; border-radius: 16px; font: inherit; font-weight: 700; font-size: 16px; cursor: pointer; }
.tp-wiz__back { background: #fff; border: 2px solid var(--tp-line); color: var(--tp-navy); }
.tp-wiz__next { background: var(--tp-navy); border: 0; color: #fff; }
.tp-wiz__actions [hidden] { display: none; }
body.tp .tp-ce-form .tribe-section { background: #fff !important; border: 0 !important; border-radius: var(--tp-radius) !important; padding: 24px !important; margin: 0 !important; box-shadow: none !important; }
body.tp .tp-ce-form .tribe-section.has-err { box-shadow: 0 0 0 2px #E0393E inset !important; }
.tp-field-err { color: #B00020; font-weight: 700; margin: 10px 0 0; }
body.tp .tp-ce-form .tribe-section-header { border: 0 !important; padding: 0 !important; margin: 0 0 14px !important; background: none !important; }
body.tp .tp-ce-form .tribe-section-header h3, .tp-switchrow__h { margin: 0 !important; font-size: 22px !important; font-weight: 800 !important; letter-spacing: -0.01em; text-transform: none !important; color: var(--tp-navy) !important; }
.tp-sec-head { display: flex !important; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.tp-sec-aside { font-size: 14px; color: var(--tp-muted); }
.tp-sec-aside strong { color: var(--tp-navy); }
.tp-sec-intro { margin: -4px 0 14px; color: var(--tp-body); font-size: 15px; }
body.tp .tp-ce-form label, body.tp .tp-ce-form .tribe-section-content-label { font-size: 14px !important; font-weight: 700 !important; text-transform: none !important; color: var(--tp-navy) !important; letter-spacing: 0 !important; }
body.tp .tp-ce-form .req { color: var(--tp-cyan-ink); font-weight: 600; font-style: normal; }
body.tp .tp-ce-form table { width: 100%; border: 0 !important; border-collapse: separate; border-spacing: 0 10px; }
body.tp .tp-ce-form td { border: 0 !important; padding: 0 10px 0 0 !important; vertical-align: middle; background: none !important; }
body.tp .tp-ce-form input[type=text], body.tp .tp-ce-form input[type=url], body.tp .tp-ce-form input[type=email], body.tp .tp-ce-form input[type=tel], body.tp .tp-ce-form input[type=number], body.tp .tp-ce-form select, body.tp .tp-ce-form textarea, body.tp .tp-ce-form .select2-container .select2-selection { border: 2px solid var(--tp-line) !important; border-radius: 14px !important; min-height: 48px; padding: 8px 14px !important; font-size: 16px !important; color: var(--tp-navy) !important; background: #fff !important; box-shadow: none !important; box-sizing: border-box; }
body.tp .tp-ce-form input:focus, body.tp .tp-ce-form textarea:focus, body.tp .tp-ce-form select:focus { border-color: var(--tp-navy) !important; outline: none; }
body.tp .tp-ce-form #post_title { width: 100%; font-size: 20px !important; font-weight: 700; min-height: 56px; }
body.tp .tp-ce-basics label { display: block; margin-bottom: 6px; }
body.tp .tp-ce-desc label { display: none; }
body.tp .tp-ce-desc .wp-editor-wrap { border-radius: 14px; overflow: hidden; }
body.tp .tp-ce-form .tribe-datepicker, body.tp .tp-ce-form .tribe-timepicker { width: 150px !important; display: inline-block; }
body.tp .tp-ce-form .tribe-datetime-separator { margin: 0 6px; color: var(--tp-muted); font-weight: 700; }
body.tp .tp-ce-form .select2-container .select2-selection--single { display: flex; align-items: center; }
body.tp .tp-ce-form .select2-container { min-width: 260px; }
body.tp .tp-ce-form .tribe-button, body.tp .tp-ce-form button.button, body.tp .tp-ce-form .button, body.tp .tp-ce-form input[type=button] { background: #fff !important; color: var(--tp-navy) !important; border: 2px solid var(--tp-navy) !important; border-radius: 14px !important; min-height: 44px; padding: 0 16px !important; font-weight: 700 !important; font-size: 14px !important; text-transform: none !important; letter-spacing: 0 !important; box-shadow: none !important; line-height: 40px; }
body.tp .tp-ce-form #ticket_form_toggle, body.tp .tp-ce-form #ticket_form_save, body.tp .tp-ce-form .ticket_form_save { background: var(--tp-navy) !important; color: #fff !important; }
body.tp .tp-ce-form .tribe-section-taxonomy ul { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px; }
body.tp .tp-ce-form .tribe-section-taxonomy li label { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 14px; border-radius: 12px; border: 2px solid var(--tp-line); background: #fff; cursor: pointer; }
body.tp .tp-ce-form .tribe-section-tickets .tribe-section-content, body.tp .tp-ce-form #event_tickets { background: none !important; border: 0 !important; padding: 0 !important; }
body.tp .tp-ce-form #ticket_form, body.tp .tp-ce-form .ticket_panel { background: var(--tp-bg) !important; border: 0 !important; border-radius: 20px !important; padding: 18px !important; }
body.tp .tp-ce-form .helper-text, body.tp .tp-ce-form .description { color: var(--tp-muted); font-size: 13px; }
.tp-choices { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 12px; }
.tp-choice { position: relative; cursor: pointer; display: block; margin: 0 !important; }
.tp-choice input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.tp-choice__box { display: flex; flex-direction: column; gap: 4px; height: 100%; box-sizing: border-box; padding: 16px 18px; border-radius: 20px; border: 2px solid var(--tp-line); background: #fff; }
.tp-choice__box strong { font-size: 16px; font-weight: 700; }
.tp-choice__box span { font-size: 14px; color: var(--tp-muted); font-weight: 500; }
.tp-choice input:checked + .tp-choice__box { border-color: var(--tp-navy); background: var(--tp-tint); }
.tp-choice input:focus-visible + .tp-choice__box { outline: 3px solid var(--tp-cyan); outline-offset: 2px; }
.tp-choices--seg { display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 4px; border-radius: 16px; background: var(--tp-bg); }
.tp-choices--seg .tp-choice__box { padding: 0 18px; height: 44px; justify-content: center; border: 0; border-radius: 12px; background: transparent; }
.tp-choices--seg .tp-choice__box strong { font-size: 14px; }
.tp-choices--seg .tp-choice input:checked + .tp-choice__box { background: var(--tp-cyan); }
.tp-choices--pill { display: flex; flex-wrap: wrap; gap: 8px; }
.tp-choices--pill .tp-choice__box { padding: 0 16px; height: 44px; justify-content: center; border-radius: 14px; }
.tp-choices--pill .tp-choice__box strong { font-size: 14px; }
.tp-plan-sched { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; margin-top: 14px; }
.tp-plan-sched div { background: var(--tp-tint); border-radius: 16px; padding: 12px 14px; display: flex; flex-direction: column; gap: 2px; }
.tp-plan-sched span { font-size: 13px; color: var(--tp-muted); }
.tp-plan-sched strong { font-size: 16px; }
.tp-switchrow { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.tp-switchrow > div { flex: 1 1 320px; }
.tp-switchrow p { margin: 6px 0 0; color: var(--tp-body); font-size: 15px; }
.tp-switch { display: inline-flex !important; align-items: center; gap: 12px; cursor: pointer; position: relative; }
.tp-switch input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.tp-switch__track { width: 76px; height: 44px; border-radius: 999px; background: #DCE2EE; position: relative; transition: background .2s; flex: none; }
.tp-switch__track::after { content: ""; position: absolute; top: 5px; left: 5px; width: 34px; height: 34px; border-radius: 50%; background: #fff; box-shadow: 0 2px 6px rgba(0, 4, 92, .25); transition: left .2s; }
.tp-switch input:checked + .tp-switch__track { background: var(--tp-navy); }
.tp-switch input:checked + .tp-switch__track::after { left: 37px; }
.tp-switch input:focus-visible + .tp-switch__track { outline: 3px solid var(--tp-cyan); outline-offset: 2px; }
.tp-switch__txt { font-weight: 700; width: 32px; }
.tp-badge-mode { margin-bottom: 16px; }
.tp-badge-auto { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 12px; }
.tp-thr { background: var(--tp-tint); border-radius: 20px; padding: 16px; display: flex; flex-direction: column; gap: 8px; }
body.tp .tp-ce-form .tp-thr input { width: 100%; }
.tp-thr--fixed { background: var(--tp-bg); border: 2px dashed var(--tp-line); justify-content: center; }
.tp-thr--fixed span { font-size: 13px; color: var(--tp-muted); }
.tp-badge-manual { display: none; }
.tp-badge-is-manual .tp-badge-auto { display: none; }
.tp-badge-is-manual .tp-badge-manual { display: block; }
body.tp .tp-ce-form .tribe-image-upload-area { position: relative; text-align: center; border: 2px dashed var(--tp-line); border-radius: 20px; padding: 18px; background: var(--tp-bg); transition: border-color .2s, background .2s; }
.tp-drop__hint { display: flex; flex-direction: column; gap: 4px; align-items: center; padding: 10px 10px 12px; }
.tp-drop__hint strong { font-size: 18px; }
.tp-drop__hint span { color: var(--tp-muted); font-size: 14px; }
.tp-drop__preview { display: block; max-width: 320px; max-height: 320px; margin: 14px auto 0; border-radius: 16px; object-fit: contain; background: #0B1270; }
.tp-drop__preview[hidden] { display: none; }
.tp-drop__err { color: #B00020; font-weight: 700; margin: 10px 0 0; }
body.tp-dragging .tp-ce-form .tribe-image-upload-area { border-color: var(--tp-cyan) !important; background: var(--tp-tint) !important; }
body.tp-dragging::after { content: "Drop your flyer anywhere"; position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; background: rgba(0, 4, 92, .55); color: #fff; font: 800 28px/1.2 var(--tp-font); pointer-events: none; }
body.tp .tp-ce-form .tp-ex__label { display: block; margin-bottom: 6px; }
body.tp .tp-ce-form #tp_video { width: 100%; }
.tp-ex__help { margin: 8px 0 0; color: var(--tp-muted); font-size: 13px; }
.tp-ex__check { margin: 6px 0 0; font-size: 13px; font-weight: 700; }
.tp-ex__check.is-ok { color: #0A7A3B; }
.tp-ex__check.is-bad { color: #B00020; }
.tp-wiz__aside-k { margin: 0 0 12px; font-size: 13px; font-weight: 700; color: var(--tp-cyan-ink); letter-spacing: .04em; text-transform: uppercase; }
.tp-prev { background: #fff; border-radius: var(--tp-radius); padding: 12px; display: flex; flex-direction: column; gap: 6px; }
.tp-prev__media { position: relative; aspect-ratio: 4 / 3; border-radius: 20px; overflow: hidden; background: linear-gradient(135deg, var(--tp-navy), var(--tp-cyan)); margin-bottom: 8px; }
.tp-prev__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tp-prev__media img[hidden] { display: none; }
.tp-prev__empty { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: #fff; font-weight: 700; }
.tp-prev__empty[hidden] { display: none; }
.tp-prev__badge { position: absolute; left: 12px; top: 12px; }
.tp-prev__badge[hidden] { display: none; }
.tp-prev__ex { margin: 0 8px; font-size: 13px; color: var(--tp-muted); }
.tp-prev__ex[hidden] { display: none; }
.tp-prev > strong, .tp-prev > span, .tp-prev > div { margin-left: 8px; margin-right: 8px; }
.tp-prev__title { font-size: 20px; font-weight: 800; line-height: 1.2; }
.tp-prev__when { font-size: 14px; color: var(--tp-muted); }
.tp-prev__price { font-size: 18px; font-weight: 800; }
.tp-prev__plan { font-size: 13px; color: var(--tp-muted); }
.tp-prev__tags { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 8px; }
.tp-prev__tags span { height: 28px; display: inline-flex; align-items: center; padding: 0 10px; border-radius: 8px; background: var(--tp-bg); border: 2px solid var(--tp-line); font-size: 12px; font-weight: 700; }
.tp-review__list { margin: 0; display: flex; flex-direction: column; }
.tp-review__list > div { display: grid; grid-template-columns: 180px 1fr auto; gap: 12px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--tp-line); }
.tp-review__list > div:last-child { border-bottom: 0; }
.tp-review__list dt { color: var(--tp-muted); font-size: 14px; }
.tp-review__list dd { margin: 0; font-weight: 700; }
.tp-review__edit { background: none; border: 0; font: inherit; font-weight: 700; color: var(--tp-cyan-ink); text-decoration: underline; cursor: pointer; }
body.tp .tp-ce-submit { background: #fff; border-radius: var(--tp-radius); padding: 22px 24px; display: flex; flex-wrap: wrap; gap: 14px; align-items: center; justify-content: space-between; border: 0 !important; margin: 0 !important; }
body.tp .tp-ce-submit p { margin: 0; flex: 1 1 320px; color: var(--tp-muted); font-size: 14px; }
body.tp .tp-ce-submit input[type=submit] { background: var(--tp-navy) !important; color: #fff !important; border: 0 !important; border-radius: 18px !important; min-height: 56px; padding: 0 30px !important; font-size: 17px !important; font-weight: 700 !important; text-transform: none !important; letter-spacing: 0 !important; cursor: pointer; float: none !important; }
@media (max-width: 760px) {
	body.tp #tribe-community-events, body.tp .tribe-community-events { padding: 0 16px 40px !important; }
	.tp-orgbar__in { padding: 12px 16px; gap: 10px; }
	.tp-orgbar__pill { display: none; }
	.tp-wiz__steps ol { flex-wrap: nowrap; overflow-x: auto; margin: 0 -16px 18px; padding: 0 16px 4px; }
	.tp-wiz__steps li { flex: none; }
	.tp-wiz__aside { display: none; }
	body.tp .tp-ce-form .tribe-section { padding: 18px 16px !important; border-radius: 22px !important; }
	body.tp .tp-ce-form table, body.tp .tp-ce-form tbody, body.tp .tp-ce-form tr, body.tp .tp-ce-form td { display: block; width: 100%; }
	body.tp .tp-ce-form td { padding: 0 0 6px !important; }
	body.tp .tp-ce-form .tribe-datepicker, body.tp .tp-ce-form .tribe-timepicker { width: calc(50% - 6px) !important; margin-bottom: 8px; }
	body.tp .tp-ce-form .select2-container { min-width: 0; width: 100% !important; }
	.tp-review__list > div { grid-template-columns: 1fr auto; }
	.tp-review__list dt { grid-column: 1 / -1; }
	.tp-wiz__actions button { flex: 1; }
	body.tp .tp-ce-submit input[type=submit] { width: 100%; }
}

/* Event page video + age tags */
.tp-video { position: relative; aspect-ratio: 16 / 9; border-radius: var(--tp-radius); overflow: hidden; background: #000; }
.tp-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.tp-tag--adult { background: var(--tp-navy) !important; color: #fff !important; border-color: var(--tp-navy) !important; }
.tp-tag--family { background: var(--tp-tint) !important; }
.tp-cat--adult { background: #fff; color: var(--tp-navy); border: 2px solid var(--tp-navy); height: 24px; box-sizing: border-box; }
.tp-cat--family { background: var(--tp-cyan); color: var(--tp-navy); }
.tp-tix__norefund { margin: 0; padding: 10px 14px; border-radius: 14px; background: #FFF1D6; font-weight: 700; font-size: 14px; }
#tp_extras .tp-choices { margin-bottom: 8px; }

/* Social login */
.tp-social { margin-bottom: 18px; }
.tp-social .nsl-container-buttons { display: flex !important; flex-direction: column; gap: 10px; }
.tp-social .nsl-container .nsl-button { border-radius: 14px !important; min-height: 48px; font-family: var(--tp-font) !important; font-weight: 700 !important; box-shadow: none !important; }
.tp-social__or { display: flex; align-items: center; gap: 12px; margin: 18px 0 4px; color: var(--tp-muted); font-size: 13px; font-weight: 600; }
.tp-social__or::before, .tp-social__or::after { content: ""; flex: 1; height: 2px; background: var(--tp-line); }

/* My events list */
body.tp .tribe-community-events-list, body.tp .tribe-community-events .tribe-community-events-list { background: #fff; border-radius: var(--tp-radius); overflow: hidden; border: 0; }
body.tp .tribe-community-events table.tribe-community-events-list th { background: var(--tp-navy); color: #fff; font-weight: 700; text-transform: none; }
body.tp .tribe-community-events table.tribe-community-events-list td { border-color: var(--tp-line); }
@media (max-width: 760px) {
	body.tp #tribe-community-events, body.tp .tribe-community-events { padding: 20px 16px 60px; }
	body.tp .tp-ce-form .tribe-section { padding: 18px 16px !important; border-radius: 22px !important; }
	body.tp .tp-ce-form table, body.tp .tp-ce-form tbody, body.tp .tp-ce-form tr, body.tp .tp-ce-form td { display: block; width: 100%; }
	body.tp .tp-ce-form td { padding: 0 0 6px !important; }
	body.tp .tp-ce-form .tribe-datepicker, body.tp .tp-ce-form .tribe-timepicker { width: calc(50% - 6px) !important; margin-bottom: 8px; }
	body.tp .tp-ce-form .select2-container { min-width: 0; width: 100% !important; }
	body.tp .tp-ce-submit input[type=submit] { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
	.tp-card, .tp-card__media, .tp-bento__tile { transition: none; }
	.tp-card:hover, .tp-bento__tile:hover { transform: none; }
}

/* Organizer wizard: win over Community's own styles */
body.tp .tribe-community-events h1.tp-wiz__title { margin: 0 0 20px !important; font-weight: 800 !important; font-size: clamp(32px, 5vw, 44px) !important; letter-spacing: -0.03em !important; line-height: 1.05 !important; color: var(--tp-navy) !important; text-transform: none !important; }
body.tp .tribe-community-events .tp-prev__title { font-size: 20px !important; font-weight: 800 !important; line-height: 1.2 !important; }
body.tp .tribe-community-events .tp-prev__when { font-size: 14px !important; color: var(--tp-muted) !important; }
body.tp .tribe-community-events .tp-prev__price { font-size: 18px !important; font-weight: 800 !important; }
body.tp .tribe-community-events .tp-prev__plan, body.tp .tribe-community-events .tp-prev__ex { font-size: 13px !important; color: var(--tp-muted) !important; }
body.tp .tp-ce-form .tribe-image-upload-area { background-image: none !important; }
body.tp .tp-ce-form .tribe-image-upload-area::before, body.tp .tp-ce-form .tribe-image-upload-area::after { display: none !important; }
body.tp .tp-ce-form .tribe-image-upload-area .tribe-image-upload-placeholder, body.tp .tp-ce-form .tribe-image-upload-area svg.placeholder { display: none !important; }
body.tp .tp-ce-form .tribe-section .tribe-section-content { margin: 0 !important; padding: 0 !important; }

/* ---------- Organizer: "What are you creating?" ---------- */
body.tp-fw-page .tp-main { background: var(--tp-bg); }
body.tp-fw-page .tp-orgbar { margin: 0 0 24px; }
.tp-start { max-width: 920px; margin: 0 auto; padding: 32px 24px 80px; }
.tp-start__k { display: block; font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--tp-cyan-ink); }
.tp-start__h { margin: 8px 0 8px; font-weight: 800; font-size: clamp(32px, 6vw, 48px); line-height: 1.05; letter-spacing: -0.03em; }
.tp-start__sub { margin: 0 0 28px; font-size: 17px; color: var(--tp-muted); }
.tp-start__opts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 20px; }
.tp-start__opt { position: relative; cursor: pointer; display: block; }
.tp-start__opt input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.tp-start__card { position: relative; height: 100%; box-sizing: border-box; display: flex; flex-direction: column; gap: 12px; padding: 28px; border-radius: 28px; border: 3px solid var(--tp-line); background: #fff; transition: border-color .15s, background .15s; }
.tp-start__card strong { font-size: 24px; line-height: 1.2; padding-right: 40px; }
.tp-start__sub1 { font-size: 16px; font-weight: 600; }
.tp-start__eg { font-size: 14px; color: var(--tp-muted); }
.tp-start__ic { width: 64px; height: 64px; border-radius: 20px; background: var(--tp-tint); display: flex; align-items: center; justify-content: center; color: var(--tp-navy); }
.tp-start__dot { position: absolute; right: 22px; top: 22px; width: 28px; height: 28px; border-radius: 50%; border: 3px solid var(--tp-line); background: #fff; box-sizing: border-box; }
.tp-start__opt:hover .tp-start__card { border-color: #B8D8E8; }
.tp-start__opt input:checked + .tp-start__card { border-color: var(--tp-navy); background: var(--tp-tint); }
.tp-start__opt input:checked + .tp-start__card .tp-start__ic { background: var(--tp-cyan); }
.tp-start__opt input:checked + .tp-start__card .tp-start__dot { border-color: var(--tp-navy); box-shadow: inset 0 0 0 4px #fff; background: var(--tp-navy); }
.tp-start__opt input:focus-visible + .tp-start__card { outline: 3px solid var(--tp-cyan); outline-offset: 3px; }
.tp-start__go { display: flex; justify-content: flex-end; margin-top: 28px; }
.tp-start__go .tp-btn:disabled { background: #DCE2EE; color: var(--tp-muted); cursor: not-allowed; }
.tp-start__mine { margin-top: 48px; background: #fff; border-radius: var(--tp-radius); padding: 24px; }
.tp-start__mine h2 { margin: 0 0 12px; font-size: 22px; font-weight: 800; }
.tp-start__row { display: flex; align-items: center; gap: 14px; padding: 12px 0; border-top: 1px solid var(--tp-line); flex-wrap: wrap; }
.tp-start__row > div { flex: 1 1 240px; display: flex; flex-direction: column; }
.tp-start__row span { font-size: 14px; color: var(--tp-muted); }
.tp-start__row .tp-btn { height: 44px; border-width: 2px; border-color: var(--tp-line); }
@media (max-width: 760px) {
	.tp-start { padding: 20px 16px 120px; }
	.tp-start__card { flex-direction: row; flex-wrap: wrap; padding: 18px; border-radius: 22px; gap: 6px 14px; }
	.tp-start__card strong { font-size: 18px; flex: 1 1 calc(100% - 80px); padding-right: 30px; align-self: center; }
	.tp-start__ic { width: 52px; height: 52px; border-radius: 16px; }
	.tp-start__sub1, .tp-start__eg { flex-basis: 100%; }
	.tp-start__dot { right: 16px; top: 16px; width: 26px; height: 26px; }
	.tp-start__go { position: fixed; left: 0; right: 0; bottom: 0; margin: 0; padding: 12px 16px 22px; background: #fff; border-top: 1px solid var(--tp-line); z-index: 50; }
	.tp-start__go .tp-btn { width: 100%; }
}

/* ---------- Organizer: festival setup ---------- */
.tp-fw__wrap { padding-bottom: 80px; }
.tp-fw__msg { margin: 0 0 18px; padding: 14px 18px; border-radius: 18px; background: var(--tp-tint); font-weight: 600; }
.tp-fw__type { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 14px 18px; border-radius: 20px; background: var(--tp-tint); }
.tp-fw__type strong { flex: 1 1 220px; }
.tp-fw__type a { font-weight: 700; }
.tp-fsec { background: #fff; border-radius: var(--tp-radius); padding: 24px; display: flex; flex-direction: column; gap: 12px; }
.tp-fsec.has-err { box-shadow: 0 0 0 2px #E0393E inset; }
.tp-fsec__h { margin: 0; font-size: 22px; font-weight: 800; letter-spacing: -0.01em; display: block; color: var(--tp-navy); }
.tp-fsec__h--gap { margin-top: 10px; }
.tp-fsec__l { display: block; font-size: 14px; font-weight: 700; margin-bottom: 6px; }
.tp-fsec .tp-sec-intro { margin: 0; }
.tp-fsec.tp-switchrow { flex-direction: row; }
.tp-in { width: 100%; box-sizing: border-box; min-height: 48px; border: 2px solid var(--tp-line); border-radius: 14px; padding: 8px 14px; font: inherit; font-size: 16px; color: var(--tp-navy); background: #fff; }
.tp-in:focus { border-color: var(--tp-navy); outline: none; }
.tp-in--big { min-height: 56px; font-size: 20px; font-weight: 700; }
textarea.tp-in { resize: vertical; line-height: 1.5; }
.tp-fw__two { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 12px; }
.tp-fw__drop { position: relative; display: block; cursor: pointer; text-align: center; border: 3px dashed var(--tp-cyan); border-radius: 22px; background: var(--tp-bg); padding: 24px 16px; }
.tp-fw__drop input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.tp-fw__drop:focus-within { outline: 3px solid var(--tp-cyan); outline-offset: 2px; }
.tp-fw__drop .tp-drop__preview { max-width: 100%; max-height: 260px; }
body.tp-dragging .tp-fw__drop { background: var(--tp-tint); }
body.tp-fw-page.tp-dragging::after { content: "Drop your artwork anywhere"; }
.tp-fw__venues { display: flex; flex-direction: column; gap: 10px; }
.tp-fw__venue { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 44px; gap: 10px; align-items: center; }
.tp-fw__x { width: 44px; height: 44px; border-radius: 12px; border: 2px solid var(--tp-line); background: #fff; color: var(--tp-navy); font-size: 22px; line-height: 1; cursor: pointer; }
.tp-fw__x:hover { border-color: var(--tp-navy); }
.tp-fw__add { height: 48px; border-radius: 16px; border: 2px dashed var(--tp-cyan); background: #fff; color: var(--tp-navy); font: inherit; font-weight: 700; cursor: pointer; }
.tp-fw__days { display: flex; gap: 4px; background: var(--tp-bg); border-radius: 16px; padding: 4px; flex-wrap: wrap; }
.tp-fw__days button { height: 44px; padding: 0 16px; border-radius: 12px; border: 0; background: transparent; color: var(--tp-navy); font: inherit; font-weight: 700; font-size: 14px; cursor: pointer; }
.tp-fw__days button[aria-selected=true] { background: var(--tp-cyan); }
.tp-fw__events { display: flex; flex-direction: column; gap: 10px; }
.tp-fe { display: grid; grid-template-columns: 236px minmax(0, 1fr) 112px 124px 84px 44px; grid-template-areas: "time name name name name x" "venue venue cap price pass pass"; gap: 10px; align-items: end; padding: 12px; border-radius: 18px; background: var(--tp-bg); }
.tp-fe[hidden] { display: none; }
.tp-fe .tp-in { min-height: 44px; padding: 6px 10px; font-size: 15px; }
.tp-fe__time { grid-area: time; display: flex; gap: 6px; align-items: center; }
.tp-fe__time span { font-weight: 700; color: var(--tp-muted); }
.tp-fe__time .tp-in { width: 0; flex: 1; min-width: 0; }
.tp-fe__name { grid-area: name; }
.tp-fe__name .tp-in { font-weight: 700; }
.tp-fe > .tp-fw__x { grid-area: x; }
.tp-fe__f { display: flex; flex-direction: column; gap: 4px; margin: 0; }
.tp-fe__f > span { font-size: 12px; font-weight: 700; color: var(--tp-muted); }
.tp-fe__v { grid-area: venue; }
.tp-fe__c { grid-area: cap; }
.tp-fe__p { grid-area: price; }
.tp-fe__s { grid-area: pass; }
.tp-fe__sold { display: inline-block; margin-top: 4px; font-size: 11px; font-weight: 800; color: var(--tp-cyan-ink); }
.tp-switch--sm .tp-switch__track { width: 64px; height: 38px; }
.tp-switch--sm .tp-switch__track::after { width: 30px; height: 30px; top: 4px; left: 4px; }
.tp-switch--sm input:checked + .tp-switch__track::after { left: 30px; }
.tp-fw__pass { background: var(--tp-bg); border-radius: 20px; padding: 16px; display: flex; flex-direction: column; gap: 12px; }
.tp-fw__passhead { display: flex; align-items: center; gap: 14px; }
.tp-fw__passhead > div { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.tp-fw__passhead strong { font-size: 17px; }
.tp-fw__passhead span { font-size: 14px; color: var(--tp-muted); }
.tp-fw__passin { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); gap: 12px; }
.tp-fw__pass.is-off .tp-fw__passin { display: none; }
.tp-fw__list { display: flex; flex-direction: column; gap: 8px; }
.tp-fw__list > div { display: grid; grid-template-columns: 120px minmax(0, 1fr) minmax(0, 1fr) auto; gap: 12px; padding: 12px 14px; border-radius: 16px; background: var(--tp-bg); font-size: 14px; }
.tp-fw__list > div span:last-child { font-weight: 700; }
.tp-fw__checks { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.tp-fw__checks li { display: flex; align-items: center; gap: 12px; font-size: 15px; }
.tp-fw__checks li span { width: 32px; height: 32px; flex: none; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-weight: 800; background: var(--tp-tint); }
.tp-fw__checks li.is-warn span { background: #FFF1D6; }
.tp-fw__publish { height: 56px; padding: 0 28px; border-radius: 18px; border: 0; background: var(--tp-cyan); color: var(--tp-navy); font: inherit; font-weight: 800; font-size: 17px; cursor: pointer; }
.tp-fw__publish[hidden] { display: none; }
.tp-fw__publish:disabled { opacity: .7; cursor: wait; }
.tp-fw__log { margin-top: 24px; font-size: 12px; color: var(--tp-muted); }
.tp-fw__log pre { white-space: pre-wrap; background: #fff; padding: 12px; border-radius: 12px; }
.tp-prev--fest .tp-prev__media { aspect-ratio: 21 / 11; position: relative; display: flex; align-items: flex-end; padding: 18px; box-sizing: border-box; }
.tp-prev--fest .tp-fest-media__title { position: relative; font-size: 26px; }
.tp-fw__ptags { display: flex; gap: 6px; }
.tp-fw__ptags .tp-badge { font-size: 11px; padding: 4px 8px; }
.tp-fw__age { background: #fff; color: var(--tp-navy); }
.tp-fw__age[hidden] { display: none; }
.tp-prev--fest .tp-card__date { margin: 0 8px; font-size: 12px; }
.tp-fw__asidenote { margin: 12px 4px 0; font-size: 13px; color: var(--tp-muted); }
@media (max-width: 760px) {
	.tp-fe { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 76px; grid-template-areas: "time time x" "name name name" "venue venue venue" "cap price pass"; }
	.tp-fe > .tp-fw__x { justify-self: end; }
	.tp-fe__time .tp-in { flex: 1; min-width: 0; }
}
@media (max-width: 760px) {
	.tp-fw__wrap { padding-bottom: 120px; }
	.tp-fsec { padding: 18px 16px; border-radius: 22px; }
	.tp-fsec__h { font-size: 19px; }
	.tp-fw__venue { grid-template-columns: minmax(0, 1fr) 44px; }
	.tp-fw__venue input:nth-child(2) { grid-column: 1; }
	.tp-fw__venue .tp-fw__x { grid-row: 1; grid-column: 2; }
	.tp-fw__days { width: 100%; flex-wrap: nowrap; }
	.tp-fw__days button { flex: 1; padding: 0 8px; }
	.tp-fw__list > div { grid-template-columns: 1fr auto; }
	.tp-fsec.tp-switchrow { flex-direction: row; flex-wrap: nowrap; }
	.tp-fw .tp-wiz__actions { position: fixed; left: 0; right: 0; bottom: 0; margin: 0; padding: 12px 16px 22px; background: #fff; border-top: 1px solid var(--tp-line); z-index: 50; }
	.tp-fw .tp-wiz__actions > span { display: none; }
	.tp-fw .tp-wiz__actions button { flex: 1; height: 52px; }
	.tp-fw__publish { flex: 2 !important; }
}

/* ---------- Festival page ---------- */
.tp-fest__hero { background: linear-gradient(120deg, #00045C 0%, #002C8A 55%, #00ACE7 100%); color: #fff; }
.tp-fest__heroin { display: flex; gap: 32px; align-items: center; padding-top: 36px; padding-bottom: 40px; flex-wrap: wrap; }
.tp-fest__herotext { flex: 1 1 520px; display: flex; flex-direction: column; gap: 16px; min-width: 0; }
body.tp .tp-fest__back { color: #C3E9F8; font-weight: 700; text-decoration: none; font-size: 14px; }
body.tp .tp-fest__back:hover { color: #fff; }
.tp-fest__tags { display: flex; gap: 8px; flex-wrap: wrap; }
.tp-fest__tags .tp-badge--fest { border-color: var(--tp-navy); }
.tp-fest__tag { height: 32px; display: inline-flex; align-items: center; padding: 0 12px; border-radius: 10px; background: rgba(255,255,255,.14); font-size: 13px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.tp-fest__tag--adult { background: #fff; color: var(--tp-navy); }
.tp-fest__tag--family { background: var(--tp-cyan); color: var(--tp-navy); }
.tp-fest h1 { margin: 0; font-weight: 800; font-size: clamp(36px, 7vw, 64px); line-height: 1; letter-spacing: -0.03em; }
.tp-fest__chips { display: flex; gap: 10px; flex-wrap: wrap; }
.tp-fest__chips span { height: 44px; display: inline-flex; align-items: center; padding: 0 16px; border-radius: 14px; background: rgba(255,255,255,.12); font-weight: 700; }
body.tp a.tp-fest__edit { align-self: flex-start; height: 44px; background: #fff; }
.tp-fest__art { flex: 0 1 380px; border-radius: 24px; overflow: hidden; box-shadow: 0 20px 40px rgba(0,4,92,.35); }
.tp-fest__art img { display: block; width: 100%; height: auto; }
.tp-fest__saved { margin-top: 20px; }
.tp-fest__cols { display: flex; flex-wrap: wrap; gap: 32px; align-items: flex-start; padding-top: 28px; padding-bottom: 80px; }
.tp-fest__main { flex: 999 1 560px; min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.tp-fest__aside { flex: 1 1 360px; min-width: 0; position: sticky; top: 24px; }
.admin-bar .tp-fest__aside { top: 56px; }
.tp-fest__schedhead { margin: 0; }
.tp-fest__daytabs { display: flex; gap: 4px; background: #fff; border: 2px solid var(--tp-line); border-radius: 16px; padding: 4px; }
.tp-fest__daytabs button { height: 44px; padding: 0 18px; border-radius: 12px; border: 0; background: transparent; color: var(--tp-navy); font: inherit; font-weight: 700; font-size: 14px; cursor: pointer; }
.tp-fest__daytabs button[aria-selected=true] { background: var(--tp-navy); color: #fff; }
.tp-fest__venues { display: flex; gap: 8px; flex-wrap: wrap; }
.tp-fest__venues button { height: 40px; padding: 0 14px; border-radius: 12px; border: 2px solid var(--tp-line); background: #fff; color: var(--tp-navy); font: inherit; font-weight: 700; font-size: 13px; cursor: pointer; white-space: nowrap; }
.tp-fest__venues button[aria-pressed=true] { border-color: var(--tp-navy); background: var(--tp-tint); }
.tp-fest__sched { display: flex; flex-direction: column; gap: 10px; }
.tp-fest__dayh { margin: 14px 4px 2px; font-size: 15px; font-weight: 800; letter-spacing: .04em; color: var(--tp-cyan-ink); }
.tp-fest__dayh[hidden], .tp-fe-row[hidden] { display: none; }
.tp-fe-row { display: flex; align-items: center; gap: 16px; padding: 16px; border-radius: 22px; background: #fff; border: 2px solid var(--tp-line); }
.tp-fe-row.is-picked { background: var(--tp-tint); border-color: var(--tp-navy); }
.tp-fe-row.is-sold { background: #EEF1F6; }
.tp-fe-row__time { width: 92px; flex: none; display: flex; flex-direction: column; }
.tp-fe-row__time strong { font-size: 17px; }
.tp-fe-row__time span { font-size: 12px; color: var(--tp-muted); }
.tp-fe-row__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.tp-fe-row__title { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
body.tp .tp-fe-row__title a { font-size: 17px; font-weight: 800; text-decoration: none; }
body.tp .tp-fe-row__title a:hover { text-decoration: underline; }
.tp-fe-row__title .tp-badge { font-size: 11px; padding: 2px 8px; border-radius: 9px; }
.tp-fe-row__venue { font-size: 14px; color: var(--tp-muted); }
.tp-fe-row__pass { font-size: 12px; font-weight: 700; color: var(--tp-muted); }
.tp-fe-row__pass.is-in { color: var(--tp-cyan-ink); }
.tp-fe-row__buy { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; flex: none; }
.tp-fe-row__price { font-size: 15px; font-weight: 700; }
.tp-fe-row__add { height: 44px; min-width: 96px; padding: 0 14px; border-radius: 14px; border: 2px solid var(--tp-navy); background: #fff; color: var(--tp-navy); font: inherit; font-weight: 700; font-size: 14px; cursor: pointer; }
.tp-fe-row__add[aria-pressed=true] { background: var(--tp-navy); color: #fff; }
.tp-fe-row__state { height: 44px; display: inline-flex; align-items: center; padding: 0 14px; border-radius: 14px; background: #DCE2EE; color: var(--tp-muted); font-weight: 700; font-size: 14px; }
.tp-fe-row__state--pass { background: var(--tp-tint); color: var(--tp-cyan-ink); }
body.tp .tp-fe-row__more { font-size: 12px; font-weight: 700; }
.tp-fest__box { background: #fff; border-radius: var(--tp-radius); padding: 24px; margin-top: 10px; display: flex; flex-direction: column; gap: 14px; }
.tp-fest__box h2 { margin: 0; font-size: 24px; font-weight: 800; }
.tp-fest__note { margin: 0; font-size: 15px; }
.tp-fest__vgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 10px; }
.tp-fest__vgrid > div { padding: 14px; border-radius: 18px; background: var(--tp-bg); display: flex; flex-direction: column; gap: 4px; }
.tp-fest__vgrid span { font-size: 13px; color: var(--tp-muted); }
body.tp .tp-fest__vgrid a { font-size: 13px; font-weight: 700; }
.tp-pass { display: flex; align-items: center; gap: 12px; padding: 14px; border-radius: 20px; background: var(--tp-bg); margin-bottom: 10px; }
.tp-pass.is-picked { background: #D8EEF8; }
.tp-pass__txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.tp-pass__txt strong { font-size: 16px; }
.tp-pass__txt span { font-size: 13px; color: var(--tp-muted); }
.tp-pass__txt .tp-pass__price { font-size: 15px; font-weight: 700; color: var(--tp-navy); }
.tp-qty { display: flex; align-items: center; gap: 2px; background: #fff; border-radius: 14px; padding: 2px; flex: none; }
.tp-qty button { width: 44px; height: 44px; border-radius: 12px; border: 0; background: transparent; color: var(--tp-navy); font: inherit; font-size: 20px; cursor: pointer; }
.tp-qty button[data-step="1"] { background: var(--tp-cyan); font-weight: 700; }
.tp-qty input { width: 34px; height: 44px; border: 0; text-align: center; font: inherit; font-weight: 700; font-size: 17px; color: var(--tp-navy); background: transparent; -moz-appearance: textfield; }
.tp-qty input::-webkit-inner-spin-button, .tp-qty input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.tp-fest__picks { border-top: 2px dashed var(--tp-line); padding-top: 14px; display: flex; flex-direction: column; gap: 8px; }
.tp-fest__picks [data-fest-picks] { display: flex; flex-direction: column; gap: 6px; }
.tp-fest__picks [data-fest-picks] div { display: flex; justify-content: space-between; gap: 8px; font-size: 14px; }
.tp-fest__hint { font-size: 14px; color: var(--tp-muted); }
.tp-fest__hint[hidden] { display: none; }
.tp-fest__total { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; padding: 14px 4px 4px; }
.tp-fest__total span { font-weight: 700; }
.tp-fest__total strong { font-size: 24px; font-weight: 800; }
.tp-fest__go { width: 100%; }
.tp-fest__go:disabled { background: #DCE2EE !important; color: var(--tp-muted) !important; cursor: not-allowed; }
.tp-fest__terms { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; padding: 12px 14px; border-radius: 16px; background: var(--tp-tint); font-size: 14px; }
.tp-fest__bar { display: none; }
@media (max-width: 900px) {
	.tp-fest__aside { position: static; order: -1; flex-basis: 100%; }
	.tp-fest__main { order: 0; }
	.tp-fest__art { flex-basis: 100%; max-width: 420px; }
}
@media (max-width: 760px) {
	.tp-fest__heroin { padding-top: 16px; padding-bottom: 26px; gap: 20px; }
	.tp-fest__chips span { height: 36px; padding: 0 10px; font-size: 13px; border-radius: 10px; }
	.tp-fest__tag { height: 28px; font-size: 12px; }
	.tp-fest__schedhead { flex-direction: column; align-items: stretch; gap: 10px; }
	.tp-fest__daytabs button { flex: 1; padding: 0 6px; font-size: 13px; }
	.tp-fest__venues { flex-wrap: nowrap; overflow-x: auto; margin: 0 -16px; padding: 0 16px 4px; }
	.tp-fe-row { flex-wrap: wrap; gap: 8px 12px; padding: 14px; border-radius: 20px; }
	.tp-fe-row__time { width: auto; flex-direction: row; gap: 6px; align-items: baseline; order: 0; }
	.tp-fe-row__time strong { font-size: 13px; font-weight: 800; color: var(--tp-cyan-ink); }
	.tp-fe-row__body { flex-basis: 100%; order: 1; }
	.tp-fe-row__buy { flex-basis: 100%; order: 2; flex-direction: row; justify-content: space-between; align-items: center; }
	.tp-fest__box { padding: 18px 16px; border-radius: 22px; }
	.tp-fest__cols { padding-bottom: 120px; }
	.tp-fest__aside .tp-fest__go { display: none; }
	.tp-fest__bar { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; align-items: center; gap: 12px; padding: 12px 16px 22px; background: #fff; border-top: 1px solid var(--tp-line); transform: translateY(110%); transition: transform .2s; }
	.tp-fest__bar.is-on { transform: none; }
	.tp-fest__bar > div { display: flex; flex-direction: column; min-width: 0; }
	.tp-fest__bar span { font-size: 12px; color: var(--tp-muted); }
	.tp-fest__bar strong { font-size: 17px; }
	.tp-fest__bar .tp-fest__go { flex: 1; height: 54px; }
}
body.tp a.tp-event__fest { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 10px; font-weight: 700; text-decoration: none; }
body.tp a.tp-event__fest:hover { text-decoration: underline; }

/* Payment plan due days, photo sizes, venue note, ticket editor extras */
.tp-plan-days[hidden], .tp-plan-day[hidden] { display: none !important; }
.tp-plan-day { margin: 0 !important; cursor: text; }
.tp-plan-day__in { display: flex; align-items: center; gap: 8px; }
.tp-plan-day__in input { width: 76px !important; min-height: 40px !important; padding: 4px 10px !important; border: 2px solid var(--tp-line) !important; border-radius: 12px !important; font: inherit !important; font-size: 16px !important; font-weight: 700 !important; color: var(--tp-navy) !important; background: #fff !important; }
.tp-plan-day__in em { font-style: normal; font-size: 14px; font-weight: 600; }
.tp-plan-days__err { grid-column: 1 / -1; margin: 0; color: #B00020; font-weight: 700; font-size: 14px; }
.tp-plan-days__err[hidden] { display: none; }
.tp-drop__size { display: block; margin-top: 4px; font-size: 13px; color: var(--tp-navy) !important; }
.tp-drop__size b { font-weight: 800; }
.tp-drop__dims { margin: 10px 0 0; font-size: 13px; font-weight: 700; color: #0A7A3B; }
.tp-drop__dims.is-warn { color: #9A5B00; }
.tp-drop__dims[hidden] { display: none; }
.tp-venue-note { margin-top: 12px !important; }
body:not(.tp-can-edit-venues) .tribe-section-venue .edit-linked-post-link, body:not(.tp-can-edit-venues) .tribe-section-venue a[href*="edit/venue"] { display: none !important; }
.tp-tix__plan { margin: 0; padding: 10px 14px; border-radius: 14px; background: var(--tp-tint); font-size: 14px; font-weight: 600; }
body.tp .tp-ce-form .tribe-section-tickets [class*="purchase"] img, body.tp .tp-ce-form .tribe-section-tickets [class*="purchase"] svg { width: 22px !important; height: 22px !important; max-width: 22px; }
body.tp .tp-ce-form .tribe-section-tickets [class*="purchase-rules"] a, body.tp .tp-ce-form .tribe-section-tickets [class*="purchase-rules"] button { display: inline-flex; align-items: center; gap: 6px; }
