/* Jezweb Event Booking — frontend */
.jeb-wrap { max-width: 720px; margin: 0 auto; font-family: inherit; }
.jeb-event { padding: 1.25rem 1.5rem; border: 1px solid #e1e5ea; border-radius: 8px; background: #fafbfc; margin-bottom: 1rem; }
.jeb-event__title { margin: 0 0 0.75rem; font-size: 1.4rem; }
.jeb-event__description { margin: 0 0 1rem; line-height: 1.55; color: #2c3543; }
.jeb-event__description p:last-child { margin-bottom: 0; }
.jeb-event__details { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0.4rem 1.5rem; }
.jeb-event__details li { padding: 0.15rem 0; }

.jeb-capacity { padding: 0.85rem 1rem; border-radius: 6px; background: #e8f4ff; color: #0b3d70; margin-bottom: 1rem; font-size: 1rem; }
.jeb-capacity--full { background: #fde7e7; color: #7a1d1d; }

.jeb-flash { padding: 0.85rem 1rem; border-radius: 6px; margin-bottom: 1rem; }
.jeb-flash--success { background: #e6f7ec; color: #14532d; border: 1px solid #b6e4c4; }
.jeb-flash--warn    { background: #fff5e1; color: #6b3c00; border: 1px solid #f5d59a; }
.jeb-flash--error   { background: #fde7e7; color: #7a1d1d; border: 1px solid #f1b6b6; }

.jeb-form { display: grid; gap: 0.85rem; padding: 1.25rem 1.5rem; border: 1px solid #e1e5ea; border-radius: 8px; }
.jeb-form label { display: block; font-weight: 600; }
.jeb-form input, .jeb-form textarea { width: 100%; padding: 0.55rem 0.7rem; border: 1px solid #cbd2da; border-radius: 6px; font-size: 1rem; margin-top: 0.25rem; box-sizing: border-box; }
.jeb-form textarea { resize: vertical; }
.jeb-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0.85rem; }
@media (max-width: 540px) { .jeb-row { grid-template-columns: 1fr; } }

.jeb-rate { background: #f4f6f8; padding: 0.7rem 0.9rem; border-radius: 6px; }
.jeb-submit { background: #0b66c1; color: #fff; padding: 0.75rem 1.1rem; border: 0; border-radius: 6px; font-size: 1rem; cursor: pointer; }
.jeb-submit:hover { background: #0a5aac; }
.jeb-fineprint { font-size: 0.85rem; color: #5b6573; margin: 0; }

/* Subtle highlight when the live counter ticks down */
.jeb-remaining--bump { animation: jeb-bump 0.6s ease; }
@keyframes jeb-bump {
	0%   { transform: scale(1);   color: inherit; }
	30%  { transform: scale(1.25); color: #c44; }
	100% { transform: scale(1);   color: inherit; }
}

/* Events list cards — fixed 3-up grid, collapsing on narrower screens */
.jeb-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
@media (max-width: 900px) { .jeb-list { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .jeb-list { grid-template-columns: 1fr; } }
.jeb-card { position: relative; display: flex; flex-direction: column; overflow: hidden; border: 1px solid #e1e5ea; border-radius: 10px; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,0.04); }

/* Diagonal "Coming Soon" corner ribbon for undated events
   Color + proportions matched to the reference design. */
.jeb-ribbon { position: absolute; top: 0; right: 0; width: 150px; height: 150px; overflow: hidden; pointer-events: none; z-index: 3; }
.jeb-ribbon::before, .jeb-ribbon::after {
	content: '';
	position: absolute;
	z-index: 2;
	border-style: solid;
	border-color: #6f6440;
}
.jeb-ribbon::before { top: 0; right: 56px; border-width: 5px 5px 0 0; border-right-color: transparent; }
.jeb-ribbon::after  { top: 56px; right: 0; border-width: 5px 0 0 5px; border-top-color: transparent; }
.jeb-ribbon span {
	position: absolute;
	display: block;
	width: 220px;
	padding: 9px 0;
	top: 34px;
	right: -58px;
	transform: rotate(45deg);
	background: #a89968;
	background-image: linear-gradient(180deg, #b3a576 0%, #a39466 100%);
	color: #ffffff;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	text-align: center;
	text-shadow: 0 1px 1px rgba(0,0,0,0.18);
	box-shadow: 0 5px 10px -3px rgba(0,0,0,0.28);
}
.jeb-card--full { opacity: 0.75; }

/* Featured image header */
.jeb-card__image { display: block; aspect-ratio: 16 / 9; overflow: hidden; background: #f1f3f5; }
.jeb-card__image-img,
.jeb-card__image img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.4s ease; }
.jeb-card__image:hover img { transform: scale(1.03); }

.jeb-card__body { display: flex; flex-direction: column; flex: 1; padding: 1.25rem 1.4rem; }
.jeb-card__head { margin-bottom: 0.6rem; }
.jeb-card__title { font-size: 1.2rem; margin: 0 0 0.25rem; line-height: 1.25; }
.jeb-card__title a { color: inherit; text-decoration: none; }
.jeb-card__title a:hover { text-decoration: underline; }
.jeb-card__date { color: #5b6573; font-size: 0.95rem; }
.jeb-card__deadline { color: #8a5a00; font-size: 0.85rem; margin-top: 0.25rem; font-style: italic; }
.jeb-card__meta { list-style: none; padding: 0; margin: 0 0 0.85rem; font-size: 0.93rem; }
.jeb-card__meta li { padding: 0.15rem 0; }
.jeb-card__capacity { margin-bottom: 0.85rem; }
.jeb-pill { display: inline-block; padding: 3px 10px; border-radius: 12px; background: #e8f4ff; color: #0b3d70; font-size: 0.85rem; font-weight: 600; }
.jeb-pill--full { background: #fde7e7; color: #7a1d1d; }

.jeb-book-btn { margin-top: auto; display: inline-block; text-align: center; padding: 0.7rem 1rem; background: #0b66c1; color: #fff !important; border-radius: 6px; text-decoration: none; font-weight: 600; }
.jeb-book-btn:hover { background: #0a5aac; }
.jeb-book-btn--disabled { background: #b5bcc4; cursor: not-allowed; pointer-events: none; }

/* Ticket / docket — written defensively to survive theme overrides */
.jeb-ticket { box-sizing: border-box; max-width: 540px; margin: 1.5rem auto; padding: 1.75rem; border: 1px solid #d8dde3; border-radius: 12px; background: #fff; box-shadow: 0 2px 8px rgba(0,0,0,0.04); font-family: inherit; color: #1d2330; }
.jeb-ticket *, .jeb-ticket *::before, .jeb-ticket *::after { box-sizing: border-box; }
.jeb-ticket--missing { text-align: center; color: #6b3c00; }
.jeb-ticket__intro { font-size: 1rem; margin: 0 0 1.25rem; color: #2c3543; }

.jeb-ticket__barcode-wrap { text-align: center; margin: 0 0 1.5rem; }
.jeb-ticket__barcode { margin: 0; padding: 0.5rem 0.75rem; background: #fff; display: inline-block; max-width: 100%; }
.jeb-ticket__barcode svg { display: block; width: 100%; max-width: 360px; height: auto; }
.jeb-ticket__code { font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-size: 0.95rem; color: #1d2330; margin: 0.4rem 0 0; letter-spacing: 0.1em; font-weight: 600; }

.jeb-ticket__details { display: block; margin: 0; padding: 1rem 0 0; border-top: 1px solid #eef0f2; }
.jeb-ticket__row { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: 0.55rem 0; border-bottom: 1px solid #f3f4f6; margin: 0; }
.jeb-ticket__row:last-child { border-bottom: 0; }
.jeb-ticket__label { display: inline-block; flex: 0 0 auto; font-size: 0.78rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; color: #6b7280; margin: 0; padding: 0; }
.jeb-ticket__value { display: inline-block; flex: 1 1 auto; min-width: 0; text-align: right; color: #1d2330; font-size: 0.98rem; word-break: break-word; margin: 0; padding: 0; }

.jeb-ticket__actions { margin: 1.5rem 0 0; padding: 0; text-align: center; }
.jeb-ticket .jeb-ticket__print { display: inline-block; background: #0b66c1; color: #fff; border: 0; padding: 0.7rem 1.4rem; border-radius: 6px; cursor: pointer; font-size: 0.95rem; font-weight: 600; line-height: 1.2; text-decoration: none; }
.jeb-ticket .jeb-ticket__print:hover { background: #0a5aac; color: #fff; }

@media (max-width: 480px) {
	.jeb-ticket { padding: 1.25rem; margin: 1rem auto; }
	.jeb-ticket__row { flex-direction: column; align-items: flex-start; gap: 0.15rem; padding: 0.5rem 0; }
	.jeb-ticket__value { text-align: left; }
}

/* Print is handled by a clean popup window via jebPrintDocket() so the theme's
   header/sidebar/footer don't push the docket onto extra pages. */
