/* Home page v2 (page 237137, build/pages/home.py): only what Elementor V4 element styles cannot carry, i.e. the HTML that
 * cjpt-site shortcodes / snippets print. Tokens: build/mockups/home-v2/notes.md (login + CRE pages).
 * Loaded on the front page only (inc/page-styles.php). */

/* [cjpt_rating]: 5 gold stars + "5.0 · 17 reviews" */
.cjpt-rating { display: inline-flex; align-items: center; gap: 10px; font-family: "Open Sans", Helvetica, Arial, sans-serif; font-size: 15px; line-height: 1.6; letter-spacing: 0.01em; color: #656563; }
.cjpt-rating__stars { display: inline-flex; gap: 2px; }
.cjpt-rating__stars svg { display: block; width: 18px; height: 18px; fill: #F5B400; }
.cjpt-rating__stars svg.is-off { fill: #D9D9D9; }

/* snippets/home-newsletter.html: email field + teal button on one line (stacked on phones) */
.cjpt-hnl { width: 100%; }
.cjpt-hnl form.formkit-form { display: block; width: 100%; max-width: none; margin: 0; padding: 0; border: 0; background: none; box-shadow: none; }
.cjpt-hnl form.formkit-form [data-style] { margin: 0; padding: 0; }
.cjpt-hnl .formkit-fields { display: flex; gap: 0; margin: 0; padding: 0; }
.cjpt-hnl .formkit-field { flex: 1 1 auto; min-width: 0; margin: 0; padding: 0; }
.cjpt-hnl input.formkit-input {
	display: block; box-sizing: border-box; width: 100%; height: 48px; margin: 0; padding: 0 16px;
	border: 1px solid #CFD6D6; border-right: 0; border-radius: 0; box-shadow: none; background: #FFFFFF;
	font-family: "Open Sans", Helvetica, Arial, sans-serif; font-size: 16px; font-weight: 400; line-height: normal; letter-spacing: normal; color: #262626;
}
.cjpt-hnl input.formkit-input::placeholder { color: #8A8A88; opacity: 1; }
.cjpt-hnl input.formkit-input:focus { outline: 2px solid #262626; outline-offset: -2px; }
.cjpt-hnl input.formkit-input[aria-invalid="true"] { border-color: #B3261E; }
.cjpt-hnl button.formkit-submit {
	position: relative; flex: none; display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box;
	height: 48px; margin: 0; padding: 3px 30px 0; border: 1px solid transparent; border-radius: 0; box-shadow: none; cursor: pointer;
	background: #56C6D6; color: #262626; font-family: "Josefin Sans", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: 700;
	line-height: 1; letter-spacing: 0.14em; text-transform: uppercase; transition: background-color 0.15s;
}
.cjpt-hnl button.formkit-submit:hover { background: #C3E800; color: #262626; }
.cjpt-hnl button.formkit-submit:focus-visible { outline: 3px solid #262626; outline-offset: 2px; }
.cjpt-hnl button.formkit-submit > span { position: static; }
.cjpt-hnl .formkit-spinner { display: none; }
.cjpt-hnl ul.formkit-alert { list-style: none; margin: 0; padding: 0; }
.cjpt-hnl ul.formkit-alert:empty { display: none; }
.cjpt-hnl ul.formkit-alert-error li { margin: 0 0 10px; padding: 0; font-family: "Open Sans", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 1.5; color: #B3261E; }
.cjpt-hnl .formkit-alert-success {
	margin: 0; padding: 13px 16px; border: 1px solid #CFD6D6; background: #FFFFFF; list-style: none;
	font-family: "Open Sans", Helvetica, Arial, sans-serif; font-size: 16px; line-height: 1.4; color: #262626;
}
@media (max-width: 767px) {
	.cjpt-hnl .formkit-fields { flex-direction: column; gap: 10px; }
	.cjpt-hnl input.formkit-input { border-right: 1px solid #CFD6D6; }
	.cjpt-hnl button.formkit-submit { width: 100%; }
}

/* [cjpt_events_list]: one row per event in snippets/home-events.html (date | event + place | price | Get tickets) */
.cjpt-ev { list-style: none; margin: 0; padding: 0; border-top: 1px solid #E3E8E8; }
.cjpt-ev__row { display: grid; grid-template-columns: 200px minmax(0, 1fr) auto auto; align-items: center; gap: 8px 32px; margin: 0; padding: 26px 0; border-bottom: 1px solid #E3E8E8; }
.cjpt-ev__date { font-family: "Josefin Sans", Helvetica, Arial, sans-serif; font-size: 15px; font-weight: 700; line-height: 1.3; letter-spacing: 0.12em; text-transform: uppercase; color: #262626; padding-top: 2px; }
.cjpt-ev__main { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.cjpt-ev a.cjpt-ev__title { font-family: "Josefin Sans", Helvetica, Arial, sans-serif; font-size: 22px; font-weight: 700; line-height: 1.2; letter-spacing: 0.01em; color: #262626; text-decoration: none; }
.cjpt-ev a.cjpt-ev__title:hover, .cjpt-ev a.cjpt-ev__title:focus-visible { text-decoration: underline; text-decoration-color: #56C6D6; text-decoration-thickness: 2px; text-underline-offset: 5px; }
.cjpt-ev__place { font-family: "Open Sans", Helvetica, Arial, sans-serif; font-size: 15px; line-height: 1.5; letter-spacing: 0.01em; color: #656563; }
.cjpt-ev__price { font-family: "Josefin Sans", Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 700; line-height: 1; color: #262626; padding-top: 3px; }
.cjpt-ev a.cjpt-ev__btn {
	display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; height: 48px; padding: 3px 30px 0;
	background: #56C6D6; color: #262626; border-radius: 0; text-decoration: none; white-space: nowrap;
	font-family: "Josefin Sans", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: 700; line-height: 1; letter-spacing: 0.14em; text-transform: uppercase; transition: background-color 0.15s;
}
.cjpt-ev a.cjpt-ev__btn:hover { background: #C3E800; color: #262626; }
.cjpt-ev a.cjpt-ev__btn:focus-visible { background: #C3E800; outline: 3px solid #262626; outline-offset: 2px; }
.cjpt-ev__none { margin: 0; padding: 24px 0; border-top: 1px solid #E3E8E8; border-bottom: 1px solid #E3E8E8; font-family: "Open Sans", Helvetica, Arial, sans-serif; font-size: 16px; color: #656563; }
@media (max-width: 767px) {
	.cjpt-ev__row { grid-template-columns: minmax(0, 1fr) auto; gap: 10px 16px; padding: 22px 0; }
	.cjpt-ev__date { grid-column: 1 / -1; font-size: 13px; }
	.cjpt-ev a.cjpt-ev__title { font-size: 20px; }
	.cjpt-ev__main { grid-column: 1 / -1; }
	.cjpt-ev__price { align-self: center; }
	.cjpt-ev a.cjpt-ev__btn { justify-self: end; }
}

/* snippets/anchor-events.html: /#events lands with the heading clear of the sticky header */
.cjpt-anchor#events { display: block; height: 0; scroll-margin-top: 96px; }

/* home-newsletter on the deep-teal band (v8): white field without the grey edge, white error / success text */
.cjpt-hnl input.formkit-input { border-color: #FFFFFF; }
.cjpt-hnl input.formkit-input:focus { outline: 2px solid #C3E800; outline-offset: 2px; }
.cjpt-hnl button.formkit-submit:focus-visible { outline-color: #FFFFFF; }
.cjpt-hnl ul.formkit-alert-error li { color: #FFFFFF; }
/* "Join the newsletter" stays on one line; the field takes the remaining width (min 160px) */
.cjpt-hnl button.formkit-submit { white-space: nowrap; }
.cjpt-hnl .formkit-field { min-width: 160px; }
