  /*
Theme Name: Agora Child Theme
Template: agora
Theme URI: https://agora.ancorathemes.com/
Description: Agora Child Theme
Author: AncoraThemes
Author URI: https://ancorathemes.com/
Version: 1.0.0
Tested up to: 6.6
Requires at least: 5.0
Requires PHP: 7.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Tags: classes, event, event theme, venue, meetup, events calendar, conference, event management, exhibition, expo, meeting, schedule, seminar, speakers, tickets, webinar
Text Domain: agora
*/


/* =Child-Theme customization starts here
------------------------------------------------------------ */

/* Make cookie consent buttons visibly focusable for keyboard users */
.cmplz-btn:focus,
.cmplz-btn:focus-visible {
	outline: 3px solid #005fcc !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 4px rgba(0,95,204,0.12) !important;
}

/* More specific rule for the cookie buttons container if needed */
.cmplz-buttons .cmplz-btn:focus,
.cmplz-buttons .cmplz-btn:focus-visible {
	outline: 3px solid #005fcc !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 4px rgba(0,95,204,0.12) !important;
}

/* ÃÛÌÒ´«Ã½ News / jet-posts: parent uses overflow:hidden â€” use :focus-within so the ring is not clipped */
.jet-posts__inner-box:focus-within {
	outline: 3px solid #005fcc !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 4px rgba(0,95,204,0.2) !important;
}

.jet-posts__item a:focus,
.jet-posts__item a:focus-visible,
.jet-posts .entry-title a:focus,
.jet-posts .entry-title a:focus-visible,
.jet-posts .post-thumbnail__link:focus,
.jet-posts .post-thumbnail__link:focus-visible,
.jet-posts .jet-more:focus,
.jet-posts .jet-more:focus-visible {
	outline: none !important;
	box-shadow: inset 0 0 0 3px #005fcc !important;
}

.jet-slick-dots li:focus,
.jet-slick-dots li:focus-visible {
    outline: 3px solid #005fcc !important;
    outline-offset: 2px !important;
    box-shadow: 0 0 0 4px rgba(0,95,204,0.12) !important;
}

/* White focus outline for accordion toggles (keyboard users) */
.jet-toggle__control:focus,
.jet-toggle__control:focus-visible{
  outline: 1px dotted white !important;
  margin-bottom: 3px;
  outline-offset: 2px;
  box-shadow: 0 0 0 4px rgba(255,255,255,0.12);
}

.elementor-nav-menu--dropdown ul li a:focus,
.elementor-nav-menu--dropdown ul li a:focus-visible {
    margin-bottom: 1px !important;
    margin-top: 1px !important;
}

/* Hide manage-consent on small touch devices only (prevents hiding when desktop is zoomed) */
@media (max-width: 768px) and (pointer: coarse) {
	#cmplz-manage-consent .cmplz-manage-consent {
		display: none;
	}
}

/* Ensure the manage-consent button remains visible on non-touch (mouse) even if viewport <=768px */
@media (max-width: 768px) and (pointer: fine) {
	#cmplz-manage-consent .cmplz-manage-consent {
		display: inline-block !important;
	}
}

/* Constrain cookie banner on very small viewports / high zoom */
.cmplz-cookiebanner {
	box-sizing: border-box;
	/* never wider than 200px, but adapt to viewport when narrower */
	max-width: min(600px, 95vw) !important;
	width: auto !important;
	padding: 8px !important;
}

.cmplz-cookiebanner .cmplz-body,
.cmplz-cookiebanner .cmplz-message,
.cmplz-cookiebanner .cmplz-buttons {
	word-break: break-word;
	white-space: normal;
}

.jet-posts__item .entry-excerpt {
    color: #000000 !important;
    padding: 10px 0 0 0 !important;
    line-height: 1.3;
}

.jet-ajax-search__field::placeholder {
    color: #000000 !important;
}

/* Search popup: keyboard focus visible (WCAG 2.1.1 / 2.4.7) */
.jet-popup__close-button:focus,
.jet-popup__close-button:focus-visible,
.jet-ajax-search__field:focus,
.jet-ajax-search__field:focus-visible,
.jet-ajax-search__submit:focus,
.jet-ajax-search__submit:focus-visible {
	outline: 3px solid #005fcc !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 4px rgba(0,95,204,0.12) !important;
}

.top_panel .jet-popup-target[data-widget_type="icon.default"]:focus,
.top_panel .jet-popup-target[data-widget_type="icon.default"]:focus-visible {
	outline: 3px solid #005fcc !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 4px rgba(0,95,204,0.12) !important;
}
/* If you want to specifically target extremely small viewports (e.g. when zoomed to 400%),
	 adjust this threshold as needed. */
@media (max-width: 240px) {
	.cmplz-cookiebanner {
		max-width: 200px !important;
		font-size: 12px !important;
	}
}

/* When viewport becomes very narrow (e.g. desktop zoom ~400%), constrain the banner height
   so it doesn't fill the screen. Text stays at whatever size zoom dictates â€” we don't
   shrink it; we just scroll the banner body instead of letting it overflow. */
@media (max-width: 480px) {
	.cmplz-cookiebanner {
		max-height: 75vh !important;
		overflow-y: auto !important;
	}
	.cmplz-cookiebanner .cmplz-body,
	.cmplz-body {
		min-width: unset !important;
		width: auto !important;
		max-width: 95vw !important;
		padding: 8px !important;
	}
	.cmplz-cookiebanner .cmplz-buttons .cmplz-btn {
		height: auto !important;
		padding: 8px !important;
		white-space: normal !important;
	}
}

/* Crawler ticker pause button (WCAG 2.2.2) */
.crawler-pause-btn {
	position: absolute;
	right: 8px;
	bottom: -12px;
	transform: translateY(-50%);
	z-index: 10;
	background: rgba(0, 0, 0, 0.55);
	color: #fff;
	border: 1px solid rgba(255, 255, 255, 0.6) !important;
	padding: 3px 8px;
	border-radius: 3px;
	cursor: pointer;
	font-size: 13px;
	line-height: 1 !important;
    padding: 6px 7px 6px !important;
}
.crawler-pause-btn:focus,
.crawler-pause-btn:focus-visible {
	outline: 3px solid #005fcc !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 4px rgba(0, 95, 204, 0.12) !important;
}

/* Revolution Slider toolbar â€” overlaid at the bottom of the slider block */
.rev-slider-toolbar {
	position: absolute;
	bottom: 5px;
	right: 0;
	display: inline-flex;
	gap: 6px;
	padding: 6px 10px;
	z-index: 100;
	background: rgba(0, 0, 0, 0.45);
	border-radius: 4px 0 0 0;
}
.rev-slider-toolbar button {
	background: transparent;
	border: 1px solid rgba(255, 255, 255, 0.7);
	color: #fff;
	padding: 4px 12px;
	border-radius: 3px;
	cursor: pointer;
	font-size: 13px;
	line-height: 1.4;
	font-weight: 400;
}
.rev-slider-toolbar button:hover {
	background: rgba(255, 255, 255, 0.15);
	color: #ffffff !important;
	border: 1px solid rgba(255, 255, 255, 1) !important;
}
.rev-slider-toolbar button:focus,
.rev-slider-toolbar button:focus-visible {
	outline: 3px solid #fff !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 4px rgba(0, 0, 0, 0.4) !important;
}

/* Slider toolbar styles (Pause / Hide) */
.slider-toolbar {
	display: flex;
    justify-content: center;
	gap: 8px;
	margin-top: 8px;
	align-items: center;
}
.slider-toolbar button {
	background: #fff;
	border: 1px solid #ccc;
	padding: 6px 10px;
	border-radius: 4px;
    color: #000000;
	cursor: pointer;
}
.slider-toolbar button:focus,
.slider-toolbar button:focus-visible {
	outline: 3px solid #005fcc !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 4px rgba(0,95,204,0.12) !important;
}

.elementor-slick-slider[aria-hidden="true"] {
	display: none !important;
}

/* Jet carousel/posts arrow buttons: focus visible (WCAG 2.4.7) */
/* Reveal arrows that are hover-only/hidden when keyboard-focused */
.jet-arrow:focus,
.jet-arrow:focus-visible {
	opacity: 1 !important;
	visibility: visible !important;
	outline: 3px solid #005fcc !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 4px rgba(0,95,204,0.25) !important;
	z-index: 1000 !important;
}

/* Testimonials / carousel slide content */
.jet-testimonials__item:focus-within,
.jet-carousel__item:focus-within {
	outline: 3px solid #005fcc !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 4px rgba(0,95,204,0.2) !important;
}

.jet-testimonials a:focus,
.jet-testimonials a:focus-visible,
.jet-carousel a:focus,
.jet-carousel a:focus-visible {
	outline: 3px solid #005fcc !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 4px rgba(0,95,204,0.2) !important;
}

/* JetBanner links in Our Partners carousel: focus visible (WCAG 2.4.7) */
.jet-banner__link:focus,
.jet-banner__link:focus-visible {
	outline: 3px solid #005fcc !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 4px rgba(0,95,204,0.12) !important;
}

/* Hamburger / mobile nav links at 200%+ zoom: tighten focus ring to avoid
   ambiguity where the indicator appears to span two adjacent items (WCAG 2.4.7) */
.menu_mobile_nav_area a:focus,
.menu_mobile_nav_area a:focus-visible,
.jet-hamburger-panel a:focus,
.jet-hamburger-panel a:focus-visible {
	outline: 3px solid #005fcc !important;
	outline-offset: -1px !important;
	box-shadow: none !important;
}

/* Reserve scroll space at the bottom so focused elements are not hidden behind
   the fixed cookie banner when the browser scrolls them into view (WCAG 2.4.11) */
html {
	scroll-padding-top: 85px;
	scroll-padding-bottom: 130px;
}

/* CTA / Elementor button links: focus visible (WCAG 2.4.7) */
/* Covers "Book our next open event", "Get directions", "APPLY", etc. */
.elementor-button:focus,
.elementor-button:focus-visible {
	outline: 3px solid #005fcc !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 4px rgba(0,95,204,0.12) !important;
}

/* Desktop nav top-level items: focus visible (WCAG 2.4.7) */
/* Covers "ÃÛÌÒ´«Ã½", "About ÃÛÌÒ´«Ã½", etc. in the main SmartMenus/Elementor nav */
a.elementor-item:focus,
a.elementor-item:focus-visible {
	outline: 3px solid #005fcc !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 4px rgba(0,95,204,0.12) !important;
}

/* Footer / icon-list links (e.g. ÃÛÌÒ´«Ã½, info@lcb.ac.uk) â€” container clips overflow */
.elementor-widget-icon-list:focus-within .elementor-widget-container {
	overflow: visible !important;
}

.elementor-icon-list-item a:focus,
.elementor-icon-list-item a:focus-visible {
	outline: 3px solid #005fcc !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 4px rgba(0,95,204,0.2) !important;
	border-radius: 2px;
}

/* High-contrast focus on dark header/footer areas */
.top_panel a:focus,
.top_panel a:focus-visible,
.top_panel .elementor-button:focus,
.top_panel .elementor-button:focus-visible,
.footer_wrap a:focus,
.footer_wrap a:focus-visible,
.footer_wrap .elementor-button:focus,
.footer_wrap .elementor-button:focus-visible,
.scheme_dark a:focus,
.scheme_dark a:focus-visible,
.scheme_dark .elementor-button:focus,
.scheme_dark .elementor-button:focus-visible {
	outline: 3px solid #ffffff !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 4px rgba(0, 0, 0, 0.55) !important;
}

/* Reflow (WCAG 1.4.10)
   The theme uses 100vw-based "full width" blocks (alignfull/alignwide). At 400% zoom,
   100vw includes the scrollbar width and can cause horizontal scrolling.
   Constrain these blocks to the viewport on narrow layouts. */
@media (max-width: 480px) {
	body.sidebar_hide .alignfull,
	body.sidebar_hide .wp-block-cover.alignfull,
	body.sidebar_hide .wp-block-group.alignfull,
	body.sidebar_hide .wp-block-media-text.alignfull {
		margin-left: 0 !important;
		margin-right: 0 !important;
		width: auto !important;
		max-width: 100% !important;
	}

	body.sidebar_hide .alignwide,
	body.sidebar_hide .wp-block-cover.alignwide,
	body.sidebar_hide .wp-block-group.alignwide,
	body.sidebar_hide .wp-block-media-text.alignwide {
		left: auto !important;
		right: auto !important;
		width: 100% !important;
		max-width: 100% !important;
	}

	/* Prevent long strings (URLs/emails) from forcing horizontal scroll */
	.page_wrap,
	.body_wrap,
	.content_wrap,
	.content_wrap_fullscreen {
		overflow-wrap: anywhere;
	}
}