/* ===== Mega menu: Products tab (categories + flat lists) ===== */
.megamenu-products-grid {
	padding: 6px 0;
}
.megamenu-cat-title {
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .5px;
	color: #cd222a;
	margin: 0 0 12px;
}
.megamenu-cat-title--spaced {
	margin-top: 22px;
}
.megamenu-cat-title--spaced a,
.megamenu-cat-title--spaced a:visited,
.megamenu-cat-title--spaced a:active {
	color: #1f1f1f;
}
.megamenu-cat-title--mt {
	margin-top: 22px;
}
.megamenu-cat-label {
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .5px;
	color: #888;
	margin: 22px 0 12px;
}
.megamenu-cat-title a,
.megamenu-cat-title a:visited,
.megamenu-cat-title a:active {
	color: #cd222a;
	text-decoration: none;
}
.megamenu-cat-title a:hover {
	text-decoration: underline;
}
.megamenu-simple-list {
	list-style: none;
	margin: 0 0 8px;
	padding: 0;
}
.megamenu-simple-list--flat {
	margin-top: 28px;
}
.megamenu-simple-list li {
	margin-bottom: 12px;
}
.megamenu-simple-list li:last-child {
	margin-bottom: 0;
}
.megamenu-simple-list a,
.megamenu-simple-list a:visited {
	display: block;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.35;
	color: #1f1f1f;
	text-decoration: none;
}
.megamenu-simple-list a:hover {
	color: #cd222a;
}
.megamenu-simple-list--icons a {
	display: flex;
	align-items: center;
	gap: 12px;
}
.megamenu-simple-list--icons a i {
	flex: 0 0 20px;
	width: 20px;
	font-size: 16px;
	text-align: center;
	color: #cd222a;
}
.megamenu-simple-list--solutions li {
	border-bottom: 1px solid #f0f0f0;
	padding-bottom: 14px;
}
.megamenu-simple-list--solutions li:last-child {
	border-bottom: none;
	padding-bottom: 0;
}
.megamenu-simple-list--solutions a {
	font-size: 15px;
	font-weight: 600;
}
/* Keep the "Other" tab's boxed items visually aligned with the same 15px/600 metric */
.megamenu--tab .meganemu-icon-box-single p {
	font-size: 15px;
	font-weight: 600;
}

.blog-grid-wrapper--style6 {
	padding-bottom: 70px;
}

.blog-grid-wrapper--style6 .blog-cards-row {
	display: flex;
	flex-wrap: wrap;
}
.blog-grid-wrapper--style6 .blog-cards-row > [class*="col-"] {
	display: flex;
}
.blog-grid-wrapper--style6 .blog-post-slider__single-slide--grid-view--style2 {
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 100%;
}
.blog-grid-wrapper--style6 .blog-post-slider__content--style2 {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
}
.blog-grid-wrapper--style6 .blog-post-slider__content--style2 .post-title {
	min-height: 4.8em;
	display: flex;
	align-items: flex-start;
}
.blog-grid-wrapper--style6 .blog-post-slider__content--style2 .post-excerpt {
	flex: 1 1 auto;
}
.blog-grid-wrapper--style6 .blog-readmore-button--icon {
	margin-top: auto;
}

/* "View All Blogs" button row on the home page - centered, with breathing room below the cards */
.blog-view-all-row {
	margin-top: 50px;
	width: 100%;
	display: flex;
	justify-content: center;
	text-align: center;
}

/* ===== Our Clients page ===== */
.ftx-clients-eyebrow {
	display: inline-block;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: #cd222a;
	margin-bottom: 12px;
}
.ftx-clients-heading {
	font-size: 2.1rem;
	font-weight: 700;
	color: #1a1a1a;
	margin-bottom: 18px;
	line-height: 1.3;
}
.ftx-clients-lede {
	color: #666;
	font-size: 1.05rem;
	line-height: 1.85;
}

.ftx-client-logo-grid {
	row-gap: 24px;
}
.ftx-client-logo-grid--4col [class*="col-"] {
	margin-bottom: 24px;
}
.ftx-client-logo-card {
	background: #fff;
	border-radius: 12px;
	height: 130px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 26px;
	box-shadow: 0 6px 18px rgba(0, 0, 0, .05);
	transition: transform .3s ease, box-shadow .3s ease;
}
.ftx-client-logo-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 14px 28px rgba(205, 34, 42, .12);
}
.ftx-client-logo-card__img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}

.megamenu-media {
	border-radius: 12px;
	overflow: hidden;
	height: 100%;
	min-height: 180px;
	box-shadow: 0 0 20px rgba(95, 95, 95, .1);
}
.megamenu-media__img {
	width: 100%;
	height: 100%;
	min-height: 180px;
	object-fit: cover;
	display: block;
}

/* ===== Product Videos gallery ===== */
.ftx-video-grid {
	row-gap: 30px;
}
.ftx-video-card {
	cursor: pointer;
}
.ftx-video-card__thumb {
	position: relative;
	border-radius: 12px;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	background: #111;
	box-shadow: 0 8px 20px rgba(0, 0, 0, .08);
	transition: box-shadow .35s ease;
}
.ftx-video-card__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: scale(1);
	transition: transform .5s ease, filter .35s ease;
	filter: brightness(.92);
}
.ftx-video-card__thumb::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0) 55%, rgba(0, 0, 0, .55) 100%);
	opacity: 0;
	transition: opacity .35s ease;
}
.ftx-video-card__play {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%) scale(.85);
	width: 58px;
	height: 58px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .92);
	color: #cd222a;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 18px;
	padding-left: 3px;
	box-shadow: 0 6px 18px rgba(0, 0, 0, .25);
	transition: transform .35s cubic-bezier(.34, 1.56, .64, 1), background .3s ease, color .3s ease;
	z-index: 2;
}
.ftx-video-card:hover .ftx-video-card__thumb {
	box-shadow: 0 16px 34px rgba(205, 34, 42, .22);
}
.ftx-video-card:hover .ftx-video-card__thumb img {
	transform: scale(1.08);
	filter: brightness(.65);
}
.ftx-video-card:hover .ftx-video-card__thumb::after {
	opacity: 1;
}
.ftx-video-card:hover .ftx-video-card__play {
	transform: translate(-50%, -50%) scale(1);
	background: #cd222a;
	color: #fff;
}
.ftx-video-card__title {
	margin: 14px 0 0;
	font-size: .98rem;
	font-weight: 700;
	color: #1a1a1a;
	line-height: 1.4;
	transition: color .3s ease;
}
.ftx-video-card:hover .ftx-video-card__title {
	color: #cd222a;
}

.ftx-video-modal .modal-content {
	border: none;
	border-radius: 12px;
	overflow: hidden;
}
.ftx-video-modal .modal-header {
	border-bottom: 1px solid #eee;
	padding: 14px 20px;
}
.ftx-video-modal .modal-title {
	font-size: 1rem;
	font-weight: 700;
	color: #1a1a1a;
}
.ftx-video-modal__frame-wrapper {
	position: relative;
	width: 100%;
	padding-top: 56.25%;
	background: #000;
}
.ftx-video-modal__frame-wrapper iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

/* Hide the "scroll to top" floating button on mobile only (keep WhatsApp + Call buttons) */
@media (max-width: 767px) {
	.scroll-top.cn-cb-fab--top {
		display: none !important;
	}
}

/* ===== Event details modal (Upcoming Events) ===== */
.ftx-event-trigger {
	cursor: pointer;
}
.ftx-event-modal .modal-content {
	border: none;
	border-radius: 16px;
	overflow: visible;
	box-shadow: 0 24px 60px rgba(0, 0, 0, .25);
}
.ftx-event-modal__close {
	position: absolute;
	top: -16px;
	right: -16px;
	z-index: 3;
	background-color: #fff;
	border-radius: 50%;
	opacity: 1;
	width: 34px;
	height: 34px;
	padding: 0;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .2);
}
.ftx-event-modal__image {
	display: block;
	width: 100%;
	height: 320px;
	object-fit: contain;
	background: #f4f4f4;
	border-radius: 16px 16px 0 0;
}
@media (max-width: 575px) {
	.ftx-event-modal__image {
		height: 220px;
	}
}
.ftx-event-modal .modal-body {
	padding: 44px 40px 40px;
}
.ftx-event-modal__header {
	display: flex;
	align-items: center;
	gap: 22px;
	padding-bottom: 24px;
	margin-bottom: 24px;
	border-bottom: 1px solid #eee;
}
.ftx-event-modal__date {
	flex: 0 0 auto;
	width: 84px;
	height: 84px;
	border-radius: 12px;
	background: #fdeceb;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	line-height: 1.1;
}
.ftx-event-modal__date span:first-child {
	font-size: 1.7rem;
	font-weight: 800;
	color: #1a1a1a;
}
.ftx-event-modal__date span:last-child {
	font-size: .8rem;
	font-weight: 700;
	text-transform: uppercase;
	color: #cd222a;
	letter-spacing: .5px;
}
.ftx-event-modal__header-text {
	flex: 1 1 auto;
	min-width: 0;
}
.ftx-event-modal__location {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .4px;
	color: #888;
	margin-bottom: 10px;
}
.ftx-event-modal__location i {
	color: #cd222a;
}
.ftx-event-modal__title {
	font-size: 1.5rem;
	font-weight: 800;
	color: #1a1a1a;
	margin-bottom: 16px;
}
.ftx-event-modal__desc {
	color: #666;
	line-height: 1.8;
	margin-bottom: 24px;
}

/* ===== Hero video caption overlay ===== */
.ftx-hero-video {
	position: relative;
	overflow: hidden;
}
.ftx-hero-video video {
	height: auto;
}
.ftx-hero-video__overlay {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	text-align: center;
	padding-top: 130px;
}
.ftx-hero-video__title {
	color: #fff;
	font-weight: 800;
	text-transform: uppercase;
	line-height: 1.15;
	font-size: 3.6rem;
	max-width: 1200px;
	margin: 0 auto 24px;
	text-shadow: 0 3px 14px rgba(0, 0, 0, .6);
}
.ftx-hero-video__subtitle {
	color: #fff;
	font-weight: 700;
	text-transform: uppercase;
	font-size: 1.75rem;
	line-height: 1.4;
	max-width: 700px;
	margin: 0 auto;
	text-shadow: 0 2px 10px rgba(0, 0, 0, .55);
}
@media (max-width: 991px) {
	.ftx-hero-video__title {
		font-size: 2.2rem;
	}
	.ftx-hero-video__subtitle {
		font-size: 1.25rem;
	}
}
@media (max-width: 575px) {
	.ftx-hero-video__overlay {
		align-items: flex-start;
		padding-top: 60px;
	}
	.ftx-hero-video__title {
		font-size: 1.5rem;
		margin-bottom: 14px;
	}
	.ftx-hero-video__subtitle {
		font-size: 1rem;
	}
}

/* ===== Product spec bullet list (proper markers, since theme resets ul to list-style:none) ===== */
.pd-spec-list {
	margin: 0 0 24px;
	padding: 0;
	list-style: none;
}
.pd-spec-list li {
	position: relative;
	padding-left: 26px;
	margin-bottom: 12px;
	color: #555;
	font-size: 14.5px;
	line-height: 1.6;
}
.pd-spec-list li:last-child {
	margin-bottom: 0;
}
.pd-spec-list li i {
	position: absolute;
	left: 0;
	top: 4px;
	color: #cd222a;
	font-size: 13px;
}

/* ===== Mobile header/menu fixes (site-wide) =====
   NOTE: this file is linked in <head> BEFORE style.css / responsive.css on every
   page, so any rule here that also exists in those files loses the cascade.
   Every rule below is !important specifically to guarantee it wins regardless
   of file order. */
@media (max-width: 575px) {
	/* On very small phones the mobile header row splits 75/25 (logo / menu-content) —
	   the 5 social icons + hamburger icon don't fit in that 25% column, causing the
	   menu icon to overlap/get pushed off-screen. Hide the social row here so the
	   hamburger has room and is always visible and tappable. */
	.header-area__mobile .mobile-menu-content .social-links {
		display: none !important;
	}
	.header-area__mobile .col-9 {
		flex: 0 0 65% !important;
		max-width: 65% !important;
	}
	.header-area__mobile .col-3 {
		flex: 0 0 35% !important;
		max-width: 35% !important;
		display: flex !important;
		justify-content: flex-end !important;
		align-items: center !important;
	}
	.header-area__mobile .mobile-menu-content {
		justify-content: flex-end !important;
	}
	.header-area__mobile .mobile-navigation-icon {
		display: block !important;
		opacity: 1 !important;
		visibility: visible !important;
	}
}

/* Keep every image inside content sections from forcing horizontal overflow
   on narrow screens, regardless of any fixed width set on the tag itself. */
@media (max-width: 767px) {
	.pd-section img,
	.industry-slider-area img,
	.about-content img,
	.ftx-goal-area img {
		max-width: 100%;
		height: auto;
	}
}

/* ===== Product / solution / industry page gallery — huge gap under the image
   on mobile =====
   Every pd-gallery page hardcodes a fixed pixel height directly on the element
   (style="height:480px" etc). Inline styles beat any plain rule in a stylesheet,
   including each page's own @media (max-width:991px) block, so the outer box
   stayed at its desktop height (e.g. 480px) while the photo inside shrank to
   fit mobile (300px) — leaving 100-200px of dead blank space below every
   product image on phones/tablets. !important is required here specifically
   to win over that inline style. Fixes every page using this template at once. */
@media (max-width: 991px) {
	.pd-gallery,
	.pd-gallery--single {
		height: auto !important;
	}
}
