/* KidsClub UX before-upload fixes (Claude 27-09-2026). Part of inc/kc-ux-27-09.php. */

/* 1a. Contrast: amber buttons get dark text (#3A2400 on #FFB22A = 8.1:1, same as the listing "Book with" button). */
body .kc-search-btn,
body #kc-ajax-search-btn,
body .ova__fillter_wrap.zl-yell-btn.main__clipper,
body .ova__fillter_wrap.zl-yell-btn.main__clipper a,
body .forminator-button.forminator-button-submit,
body .kc-amber-fix,
body .kc-amber-fix * { color: #3A2400 !important; }
body .kc-coral-fix { background-color: #C8323A !important; border-color: #C8323A !important; color: #fff !important; }
body .kc-grey-fix { color: #666 !important; }

/* 1b. Price blue: #1F5FA8 on white = 6.4:1 (was #40A0FF 2.7:1). */
body .event_loop_price,
body .event_loop_price *,
body .event_price,
body .event_price *,
body .kc-cta .kc-cta-amount,
body .el_share_social > a { color: #1F5FA8 !important; }
/* Claim link on the pale pink claim box: #A3283A on #FDF3F5 = 6.6:1 (was #888 3.3:1). */
body .kc-claim-listing a { color: #A3283A !important; }

/* 1c. Visible keyboard focus. */
html body a:focus-visible,
html body button:focus-visible,
html body input:focus-visible,
html body select:focus-visible,
html body textarea:focus-visible,
html body [role="button"]:focus-visible,
html body [tabindex]:focus-visible { outline: 3px solid #1F5FA8 !important; outline-offset: 2px !important; box-shadow: none; }

/* 1d. Tap targets >= 44px. */
/* Size only - never change display (these controls are hidden at some widths). */
body button.ova_openNav,
body a.ova_closeNav,
body .dialog-close-button { min-width: 44px !important; min-height: 44px !important; align-items: center; justify-content: center; box-sizing: border-box; }
body .kc-claim-login-close { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; cursor: pointer; }
body .kc-claim-listing a { display: inline-flex; align-items: center; min-height: 44px; }
body .kc-claim-login-actions a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; box-sizing: border-box; }
@media (max-width: 767px) {
	body .event_item .event_location a { display: inline-flex; align-items: center; min-height: 32px; }
}

/* 3. Filters: hide controls that do not apply (Online/Offline, DBS status, price slider). Fields stay in the form. */
body .label_search.event_type,
body .field_search.event_type,
body .kc_taxonomy_el_dbs_event_status,
body .el_tax_el_dbs_event_status,
body .wrap_search_filters .wrap_range_price,
body .label_search.wrap_range_price,
body .field_search.wrap_range_price { display: none !important; }

/* 4. Review form hidden on listings with no reviews. */
body.kc-no-reviews .event_comments { display: none !important; }

/* 5. Category badge moved off the card image (W9). */
/* Position only - where a page hides the badge (home carousels), it stays hidden. */
body .event_item.type1 .event_thumbnail .event_meta_cat { position: static !important; padding: 10px 12px 0; margin: 0; }
body .event_item.type3 .image_feature .categories { position: static !important; padding: 10px 0 0; margin: 0; transform: none !important; }
body .event_item .thumbnail_figure img[src*="kidsclub_Logo.svg"],
body .event_item .image_feature img[src*="kidsclub_Logo.svg"] { object-fit: contain !important; padding: 16px; box-sizing: border-box; background: #f0f8ff; }

/* 7. Phone "Filters" toggle and home "More options" (classes set by js/kc-ux-27-09.js below 768px). */
.kc-filter-toggle { display: none; }
@media (max-width: 767px) {
	.kc-filter-toggle { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 48px; margin: 0 0 12px; padding: 10px 16px; border: 1.5px solid #2B5477; border-radius: 8px; background: #fff; color: #2B5477; font-size: 16px; font-weight: 600; cursor: pointer; box-sizing: border-box; }
	.kc-filter-toggle::after { content: "+"; font-size: 22px; line-height: 1; }
	.kc-filter-toggle[aria-expanded="true"]::after { content: "\2212"; }
	.kc-f-collapsed .kc-f-item { display: none !important; }
}

/* 8. Organiser registration: no Stripe set-up guide while bookings are off (W2). */
body .el-stripe-guide-wrap { display: none !important; }

/* 9. Compact cards on phone: image left, text right (FA results, hubs, organiser page). Carousels untouched. */
@media (max-width: 767px) {
	#search_result .event_item.type1,
	.event_archive .event_item.type1,
	.event_item.type3 { display: grid !important; grid-template-columns: 104px 1fr; gap: 0 12px; align-items: start; padding: 10px !important; height: auto !important; }
	#search_result .event_item.type1 .event_thumbnail,
	.event_archive .event_item.type1 .event_thumbnail,
	.event_item.type3 .image_feature { grid-column: 1; grid-row: 1 / span 2; width: 104px !important; margin: 0 !important; }
	#search_result .event_item.type1 .thumbnail_figure,
	.event_archive .event_item.type1 .thumbnail_figure { height: 104px !important; min-height: 0 !important; overflow: hidden; border-radius: 8px; }
	#search_result .event_item.type1 .thumbnail_figure img,
	.event_archive .event_item.type1 .thumbnail_figure img,
	.event_item.type3 .image_feature img { width: 104px !important; height: 104px !important; object-fit: cover; border-radius: 8px; }
	#search_result .event_item.type1 .thumbnail_figure img[src*="kidsclub_Logo.svg"],
	.event_archive .event_item.type1 .thumbnail_figure img[src*="kidsclub_Logo.svg"],
	.event_item.type3 .image_feature img[src*="kidsclub_Logo.svg"] { object-fit: contain; padding: 12px; box-sizing: border-box; }
	#search_result .event_item.type1 .event_meta_cat,
	.event_archive .event_item.type1 .event_meta_cat,
	.event_item.type3 .image_feature .categories,
	#search_result .event_item.type1 .img-author,
	.event_archive .event_item.type1 .img-author,
	#search_result .event_item.type1 .el-wishlist,
	.event_archive .event_item.type1 .el-wishlist { display: none !important; }
	#search_result .event_item.type1 .event_detail,
	.event_archive .event_item.type1 .event_detail,
	.event_item.type3 .info_event { grid-column: 2; padding: 0 !important; border: 0 !important; min-width: 0; }
	#search_result .event_item.type1 .loop_title,
	.event_archive .event_item.type1 .loop_title,
	.event_item.type3 .loop_title,
	#search_result .event_item.type1 .loop_title a,
	.event_archive .event_item.type1 .loop_title a,
	.event_item.type3 .loop_title a { font-size: 15px !important; line-height: 1.3 !important; margin: 0 0 6px !important; }
	#search_result .event_item.type1 .event_detail > *,
	.event_archive .event_item.type1 .event_detail > *,
	.event_item.type3 .info_event > * { margin-bottom: 4px !important; font-size: 13px; }
	#search_result .event_item.type1 .event_thumbnail,
	.event_archive .event_item.type1 .event_thumbnail { height: auto !important; min-height: 0 !important; }
	/* Date-range line hidden on phone cards (the title already carries weekday + time; full dates on the listing). */
	#search_result .event_item.type1 .event-time,
	.event_archive .event_item.type1 .event-time,
	.event_item.type3 .event-time { display: none !important; }
	#search_result .event_item.type1 .event-location-time,
	.event_archive .event_item.type1 .event-location-time { gap: 2px !important; }
	.kc-browse { padding-left: 16px !important; padding-right: 16px !important; box-sizing: border-box; }
	.kc-browse a { display: inline-flex; align-items: center; min-height: 32px; }
	.select2-hidden-accessible { max-width: 1px !important; }
}

/* 10. Browse block anchor clears the sticky header. */
#browse-by-area { scroll-margin-top: 100px; }
