/* BongoHive Theme - Elementor Compatibility */

/* Ensure design system variables are available */
:root {
	/* Neutrals */
	--bh-white: #ffffff;
	--bh-neutral-lightest: #f2f2f2;
	--bh-neutral-lighter: #d8d8d8;
	--bh-neutral-light: #b2b2b2;
	--bh-neutral: #7f7f7f;
	--bh-neutral-dark: #4c4c4c;
	--bh-neutral-darker: #191919;
	--bh-neutral-darkest: #000000;

	/* Fuel Yellow */
	--bh-fy-lightest: #fdf7e9;
	--bh-fy-lighter: #fcefd3;
	--bh-fy-light: #f4c765;
	--bh-fuel-yellow: #f0af24;
	--bh-fy-dark: #c08c1c;
	--bh-fy-darker: #60460e;
	--bh-fy-darkest: #48340a;

	/* Shark */
	--bh-shark-lightest: #e8e8e9;
	--bh-shark-lighter: #d1d2d4;
	--bh-shark-light: #606469;
	--bh-shark: #1d2229;
	--bh-shark-dark: #171b20;
	--bh-shark-darker: #0b0d10;
	--bh-shark-darkest: #080a0c;

	/* Shadows */
	--bh-shadow-xxsmall: 0 1px 2px rgba(0, 0, 0, 0.05);
	--bh-shadow-xsmall: 0 1px 2px rgba(0, 0, 0, 0.06), 0 1px 3px rgba(0, 0, 0, 0.1);
	--bh-shadow-small: 0 2px 4px -2px rgba(0, 0, 0, 0.06), 0 4px 8px -2px rgba(0, 0, 0, 0.1);
	--bh-shadow-medium: 0 4px 6px -2px rgba(0, 0, 0, 0.03), 0 12px 16px -4px rgba(0, 0, 0, 0.08);
	--bh-shadow-large: 0 8px 8px -4px rgba(0, 0, 0, 0.03), 0 20px 24px -4px rgba(0, 0, 0, 0.08);

	/* Border Radius */
	--bh-radius-small: 4px;
	--bh-radius-medium: 8px;
	--bh-radius-large: 16px;
	--bh-radius-full: 999px;
}

/* Full width Elementor pages */
.elementor-page .site-content,
.elementor-page #content,
.elementor-page #main {
	width: 100%;
	max-width: 100%;
	padding: 0;
	margin: 0;
}

.elementor-page .row {
	max-width: 100%;
	margin: 0;
}

/* Canvas template */
body.elementor-template-canvas {
	overflow-x: hidden;
}

/* Full width template */
body.elementor-template-full-width #content {
	padding: 0;
}

body.elementor-template-full-width .off-canvas-content {
	padding: 0;
}

/* Elementor Section defaults matching design system */
.elementor-section {
	--e-global-color-primary: var(--bh-shark);
	--e-global-color-secondary: var(--bh-fuel-yellow);
	--e-global-color-text: var(--bh-shark);
	--e-global-color-accent: var(--bh-fuel-yellow);
}

/* Typography consistency */
.elementor-widget-heading .elementor-heading-title {
	font-family: 'PT Sans', sans-serif;
	font-weight: 700;
	letter-spacing: -1px;
}

.elementor-widget-text-editor {
	font-family: 'Ubuntu', sans-serif;
	line-height: 1.5;
}

/* Button styling to match design system */
.elementor-button {
	font-family: 'Ubuntu', sans-serif;
	font-weight: 500;
	border-radius: var(--bh-radius-medium);
	transition: all 0.2s ease;
}

/* Primary button style — opt-in via class, no !important so widget/section
   color overrides still win. */
.elementor-button.elementor-button-primary {
	background-color: var(--bh-shark);
}

.elementor-button.elementor-button-primary:hover {
	background-color: var(--bh-shark-dark);
}

/* Accent button style — opt-in via class, no !important. */
.elementor-button.elementor-button-accent {
	background-color: var(--bh-fuel-yellow);
	color: var(--bh-shark);
}

.elementor-button.elementor-button-accent:hover {
	background-color: var(--bh-fy-dark);
}

/* Form styling */
.elementor-form .elementor-field-group .elementor-field {
	font-family: 'Ubuntu', sans-serif;
	border-radius: var(--bh-radius-medium);
	border: 1px solid var(--bh-neutral-lighter);
	padding: 12px 16px;
}

.elementor-form .elementor-field-group .elementor-field:focus {
	border-color: var(--bh-fuel-yellow);
	box-shadow: 0 0 0 3px var(--bh-fy-lightest);
	outline: none;
}

.elementor-form .elementor-button[type="submit"] {
	font-family: 'Ubuntu', sans-serif;
	font-weight: 500;
	background-color: var(--bh-shark);
	border-radius: var(--bh-radius-medium);
	padding: 12px 24px;
}

.elementor-form .elementor-button[type="submit"]:hover {
	background-color: var(--bh-shark-dark);
}

/* Icon styling */
.elementor-icon {
	transition: all 0.2s ease;
}

/* Card shadows */
.elementor-widget-image-box:hover,
.elementor-widget-icon-box:hover {
	box-shadow: var(--bh-shadow-medium);
}

/* Testimonial styling */
.elementor-testimonial-content {
	font-family: 'Ubuntu', sans-serif;
}

.elementor-testimonial-name {
	font-family: 'PT Sans', sans-serif;
	font-weight: 700;
}

/* Nav menu styling */
.elementor-nav-menu .elementor-item {
	font-family: 'Ubuntu', sans-serif;
}

.elementor-nav-menu .elementor-item:hover,
.elementor-nav-menu .elementor-item.elementor-item-active {
	color: var(--bh-fuel-yellow);
}

/* Social icons */
.elementor-social-icon {
	transition: all 0.2s ease;
}

.elementor-social-icon:hover {
	transform: translateY(-2px);
}

/* Accordion styling */
.elementor-accordion .elementor-accordion-item {
	border-radius: var(--bh-radius-medium);
	overflow: hidden;
}

.elementor-accordion .elementor-tab-title {
	font-family: 'PT Sans', sans-serif;
	font-weight: 700;
}

.elementor-accordion .elementor-tab-content {
	font-family: 'Ubuntu', sans-serif;
}

/* Tabs styling */
.elementor-tabs .elementor-tab-title {
	font-family: 'Ubuntu', sans-serif;
	font-weight: 500;
}

.elementor-tabs .elementor-tab-title.elementor-active {
	color: var(--bh-fuel-yellow);
}

/* Progress bar */
.elementor-progress-bar {
	background-color: var(--bh-fuel-yellow);
}

/* Counter */
.elementor-counter-number-wrapper {
	font-family: 'PT Sans', sans-serif;
	font-weight: 700;
}

.elementor-counter-title {
	font-family: 'Ubuntu', sans-serif;
}

/* Divider */
.elementor-divider-separator {
	border-color: var(--bh-neutral-lighter);
}

/* Alert styling */
.elementor-alert {
	border-radius: var(--bh-radius-medium);
	font-family: 'Ubuntu', sans-serif;
}

.elementor-alert-title {
	font-family: 'PT Sans', sans-serif;
	font-weight: 700;
}

/* Pagination */
.elementor-pagination .page-numbers {
	font-family: 'Ubuntu', sans-serif;
	border-radius: var(--bh-radius-medium);
}

.elementor-pagination .page-numbers.current {
	background-color: var(--bh-shark);
	color: var(--bh-white);
}

.elementor-pagination .page-numbers:hover:not(.current) {
	background-color: var(--bh-neutral-lightest);
}

/* Search form */
.elementor-search-form__input {
	font-family: 'Ubuntu', sans-serif;
	border-radius: var(--bh-radius-medium);
}

.elementor-search-form__submit {
	background-color: var(--bh-shark);
	border-radius: var(--bh-radius-medium);
}

/* Share buttons */
.elementor-share-btn {
	border-radius: var(--bh-radius-medium);
}

/* Posts/Archive widgets */
.elementor-posts-container .elementor-post__title {
	font-family: 'PT Sans', sans-serif;
	font-weight: 700;
}

.elementor-posts-container .elementor-post__excerpt {
	font-family: 'Ubuntu', sans-serif;
}

.elementor-posts-container .elementor-post__read-more {
	color: var(--bh-fuel-yellow);
}

.elementor-posts-container .elementor-post__read-more:hover {
	color: var(--bh-fy-dark);
}

/* Flip box */
.elementor-flip-box__front,
.elementor-flip-box__back {
	border-radius: var(--bh-radius-large);
}

/* Call to action */
.elementor-cta {
	border-radius: var(--bh-radius-large);
	overflow: hidden;
}

/* Price table */
.elementor-price-table {
	border-radius: var(--bh-radius-large);
	overflow: hidden;
}

.elementor-price-table__heading {
	font-family: 'PT Sans', sans-serif;
}

.elementor-price-table__price {
	font-family: 'PT Sans', sans-serif;
	font-weight: 700;
}

/* Slideshow/Carousel */
.elementor-slides .swiper-slide-contents {
	font-family: 'Ubuntu', sans-serif;
}

.elementor-slides .elementor-slide-heading {
	font-family: 'PT Sans', sans-serif;
	font-weight: 700;
}

/* ==========================================================================
   Z-INDEX STACKING ORDER
   Header must stay above all content sections including carousels/cards
   ========================================================================== */

/* Elementor Theme Builder header - always on top of content */
.elementor-location-header,
[data-elementor-type="header"],
header[data-elementor-type="header"] {
	position: relative;
	z-index: var(--bh-z-header, 1000);
}

/* Sticky header support */
.elementor-location-header.elementor-sticky,
.elementor-location-header .elementor-sticky,
.elementor-sticky--active {
	z-index: var(--bh-z-header, 1000);
}

/* Content sections stay below header */
.elementor-location-single,
.elementor-location-archive,
[data-elementor-type="page"],
[data-elementor-type="single"],
[data-elementor-type="archive"],
.elementor-section:not([data-elementor-type="header"]) {
	position: relative;
	z-index: var(--bh-z-content, 10);
}

/* Carousels and transformed elements should not create unwanted stacking contexts above header */
.bh-testimonials-carousel,
.bh-trusted-by,
.elementor-widget-slides,
.elementor-widget-carousel,
.elementor-widget-image-carousel,
.swiper-container,
.swiper {
	position: relative;
	z-index: var(--bh-z-content, 10);
}

/* Prevent transform from creating stacking issues - isolate within theme carousels only */
.bh-testimonials-carousel .swiper-slide,
.bh-trusted-by .swiper-slide,
.bh-testimonials-carousel__swiper,
.bh-testimonials-carousel__card {
	isolation: isolate;
}

/* Dropdown menus in header must appear above everything */
.elementor-nav-menu--dropdown,
.elementor-nav-menu__container,
.elementor-menu-toggle,
.sub-menu {
	z-index: var(--bh-z-header-dropdown, 1010);
}

/* Ensure proper z-index for Elementor popups */
.elementor-popup-modal {
	z-index: var(--bh-z-modal, 1100);
}

/* Hide theme elements when Elementor header/footer is active */
body.elementor-header-active .header,
body.elementor-header-active header.header {
	display: none;
}

body.elementor-footer-active .footer,
body.elementor-footer-active footer.footer {
	display: none;
}

/* ==========================================================================
   EMPTY CONTENT HANDLING - Elementor Specific
   Only hide known empty containers, do not globally hide Elementor sections.
   ========================================================================== */

/* Hidden sections should not reserve space */
.elementor-section[style*="display: none"],
.elementor-section.elementor-hidden-desktop,
.elementor-section.elementor-hidden-tablet,
.elementor-section.elementor-hidden-phone,
.elementor-element[style*="display: none"] {
	padding: 0 !important;
	margin: 0 !important;
	min-height: 0 !important;
	height: 0 !important;
	overflow: hidden !important;
}

/* When Elementor Pro is not active, hide empty theme builder placeholders */
body:not(.elementor-editor-active) .elementor-location-header:empty,
body:not(.elementor-editor-active) .elementor-location-footer:empty,
body:not(.elementor-editor-active) .elementor-location-single:empty,
body:not(.elementor-editor-active) .elementor-location-archive:empty {
	display: none !important;
}

/* Plugin shortcode wrappers that render empty */
body:not(.elementor-editor-active) .elementor-shortcode:empty,
body:not(.elementor-editor-active) .elementor-widget-shortcode .elementor-widget-container:empty {
	display: none;
}

/* Dynamic content that fails to load */
body:not(.elementor-editor-active) .elementor-widget-theme-post-content:empty,
body:not(.elementor-editor-active) .elementor-widget-theme-archive-posts:empty {
	display: none;
}

/* Theme opt-in class for collapsible empty sections */
body:not(.elementor-editor-active) .bh-collapse-if-empty:empty {
	display: none !important;
	padding: 0 !important;
	margin: 0 !important;
	min-height: 0 !important;
}

/* Smooth scrolling for anchor links - only if user hasn't requested reduced motion */
@media (prefers-reduced-motion: no-preference) {
	html {
		scroll-behavior: smooth;
	}
}

/* Print styles - hide Elementor editing UI */
@media print {
	.elementor-element-overlay,
	.elementor-element-empty,
	.elementor-edit-area-active .elementor-edit-tools {
		display: none !important;
	}
}
