/**
 * Fixes horizontal scrollbar and improves narrow-viewport behavior
 * for the mirrored Elementor template.
 */

/* Offline mirror: Elementor entrance animations never run → content stays invisible. */
.elementor .elementor-invisible,
.elementor-section.elementor-invisible,
.elementor-column.elementor-invisible {
	opacity: 1 !important;
	visibility: visible !important;
	transform: none !important;
	animation-name: none !important;
}

/* About / Projects image cards (tf-imagebox) */
.tf-imagebox.style-2 .image {
	display: block !important;
	overflow: hidden;
}
.tf-imagebox.style-2 .image img {
	display: block !important;
	width: 100%;
	height: auto;
	opacity: 1 !important;
	visibility: visible !important;
}
.tf-imagebox.style-2 .content-only,
.tf-imagebox.style-2 .content {
	opacity: 1 !important;
	visibility: visible !important;
}

html {
	overflow-x: hidden;
	width: 100%;
	max-width: 100%;
}

body {
	overflow-x: hidden;
	width: 100%;
	max-width: 100%;
	position: relative;
}

/* 100vw / negative margin tricks often cause sideways scroll */
.elementor-section.elementor-section-stretched {
	width: 100% !important;
	max-width: 100% !important;
}

.elementor-section.elementor-section-full_width {
	max-width: 100%;
	box-sizing: border-box;
}

.elementor-container,
.e-con,
.e-con-inner,
.elementor-widget-wrap {
	max-width: 100%;
	box-sizing: border-box;
}

img,
video,
iframe,
svg {
	max-width: 100%;
	height: auto;
}

.swiper,
.elementor-slides-wrapper,
.elementor-main-swiper {
	max-width: 100%;
	overflow: hidden;
}

/* Long contact lines / labels */
.elementor-icon-list-text {
	overflow-wrap: anywhere;
}

/* Mobile menu panel */
.nav-panel,
.tf-nav-menu .nav-panel {
	max-width: 100%;
	box-sizing: border-box;
}

@media (max-width: 767px) {
	.elementor-section.elementor-section-boxed > .elementor-container {
		padding-left: max(12px, env(safe-area-inset-left));
		padding-right: max(12px, env(safe-area-inset-right));
	}
}

/* ---- Mirrored Site: Themesflat nav ----
   If tf-style.css fails to load, desktop + mobile menus both appear and “+” shows on every link. */
@media (min-width: 992px) {
	.tf-nav-menu:not(.only-icon) > .nav-panel {
		display: none !important;
		visibility: hidden !important;
		pointer-events: none !important;
	}

	.tf-nav-menu:not(.only-icon) .btn-menu-mobile,
	.tf-nav-menu:not(.only-icon) .btn-menu-only,
	.tf-nav-menu:not(.only-icon) > .tf-close,
	.tf-nav-menu:not(.only-icon) > .mobile-menu-overlay {
		display: none !important;
	}

	.tf-nav-menu .mainnav.nav {
		display: block !important;
	}
}

@media (max-width: 991px) {
	.tf-nav-menu .mainnav.nav {
		display: none !important;
	}
}

/* Only “More” (and other parents) should show submenu chevron; markup uses <i>+</i> on all items */
.tf-nav-menu .mainnav .menu-container li:not(.menu-item-has-children) > a > i {
	display: none !important;
}

.tf-nav-menu .mainnav .menu-container ul.sub-menu > li > a > i {
	display: none !important;
}

.tf-nav-menu .mainnav .menu-container li.menu-item-has-children > a > i {
	display: inline-block !important;
	font-style: normal;
	font-weight: 700;
	font-size: 0.75em;
	margin-left: 0.2em;
	vertical-align: middle;
	line-height: 1;
	opacity: 0.75;
}

/* Top bar: ElementsKit social icons in a horizontal row */
.elementor-element-9696e1f .ekit_social_media,
.ekit-template-content-header .ekit_social_media {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: 0.55rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.elementor-element-9696e1f .ekit_social_media li,
.ekit-template-content-header .ekit_social_media li {
	display: inline-flex;
	margin: 0;
}

/* Demo kit hid social column on mobile — reference shows them; keep bar balanced */
@media (max-width: 767px) {
	.elementor-element-9696e1f .elementor-element-ac4b5fb.elementor-hidden-mobile {
		display: flex !important;
	}

	.elementor-element-9696e1f .elementor-element-ac4b5fb.elementor-hidden-mobile .elementor-widget-wrap {
		justify-content: flex-end;
	}

	.elementor-element-9696e1f .ekit_social_media {
		justify-content: center;
		padding-top: 0.35rem;
	}
}

/* ElementsKit accordion (FAQ): visible chevrons on mirrors / localhost when icon webfont misses /layout8 base */
.elementskit-accordion .ekit_accordion_icon_group i.icon-down-arrow1::before,
.elementskit-accordion .ekit_accordion_icon_group i.icon-up-arrow1::before {
	font-family: inherit !important;
	font-style: normal;
	font-weight: 700;
	line-height: 1;
	display: inline-block;
	opacity: 0.85;
}
.elementskit-accordion .ekit_accordion_icon_group i.icon-down-arrow1::before {
	content: "\25BE\00a0" !important;
}
.elementskit-accordion .ekit_accordion_icon_group i.icon-up-arrow1::before {
	content: "\25B4\00a0" !important;
}

/* Home / header phone — two lines in card, single line in top bar */
h3.sts-call-now a {
	display: flex;
	flex-direction: column;
	line-height: 1.2;
}
h3.sts-call-now .sts-call-label,
h3.sts-call-now .sts-call-number {
	display: block;
}
.elementor-element-38fbc3b .elementor-icon-list-text,
.elementor-element-eeceb3b .elementor-icon-list-text {
	white-space: nowrap;
}
