/* Marconi Software — shared site styles */

.whatsapp-float {
	position: fixed;
	width: 60px;
	height: 60px;
	bottom: 24px;
	right: 24px;
	background-color: #25d366;
	color: #fff !important;
	border-radius: 50%;
	text-align: center;
	font-size: 28px;
	box-shadow: 0 8px 24px rgba(37, 211, 102, 0.45);
	z-index: 9999;
	transition: transform 0.25s ease, background-color 0.25s ease;
	text-decoration: none !important;
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
}

.whatsapp-float:hover,
.whatsapp-float:focus {
	background-color: #1ebe57;
	transform: scale(1.08);
	color: #fff !important;
}

.whatsapp-float .flaticon-whatsapp:before {
	color: #fff;
}

/* TikTok icon (not in flaticon set) — used in footers */
.flaticon-tiktok {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1em;
	height: 1em;
	line-height: 1;
	vertical-align: middle;
}
.flaticon-tiktok:before {
	content: "";
	display: block;
	width: 0.92em;
	height: 0.92em;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M19.59 6.69a4.83 4.83 0 0 1-3.77-4.25V2h-3.45v13.67a2.89 2.89 0 0 1-2.88 2.5 2.89 2.89 0 0 1-2.89-2.89 2.89 2.89 0 0 1 2.89-2.89c.28 0 .54.04.79.1v-3.5a6.37 6.37 0 0 0-.79-.05A6.34 6.34 0 0 0 3.15 15.2a6.34 6.34 0 0 0 6.34 6.34 6.34 6.34 0 0 0 6.34-6.34V8.73a8.18 8.18 0 0 0 4.76 1.52V6.79a4.85 4.85 0 0 1-1-.1z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M19.59 6.69a4.83 4.83 0 0 1-3.77-4.25V2h-3.45v13.67a2.89 2.89 0 0 1-2.88 2.5 2.89 2.89 0 0 1-2.89-2.89 2.89 2.89 0 0 1 2.89-2.89c.28 0 .54.04.79.1v-3.5a6.37 6.37 0 0 0-.79-.05A6.34 6.34 0 0 0 3.15 15.2a6.34 6.34 0 0 0 6.34 6.34 6.34 6.34 0 0 0 6.34-6.34V8.73a8.18 8.18 0 0 0 4.76 1.52V6.79a4.85 4.85 0 0 1-1-.1z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.footer-socials .flaticon-tiktok,
.bottom-footer-socials .flaticon-tiktok {
	font-size: 1em;
}

.brand-logo-text {
	font-weight: 700;
	letter-spacing: -0.02em;
}

.marconi-sector-icon {
	width: 64px;
	height: 64px;
	border-radius: 16px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: rgba(53, 152, 219, 0.12);
	margin-bottom: 18px;
	font-size: 28px;
}

@media (max-width: 575px) {
	.whatsapp-float {
		width: 54px;
		height: 54px;
		bottom: 18px;
		right: 18px;
		font-size: 24px;
	}
}

/* Client logos */
.client-card {
	background: #fff;
	border: 1px solid rgba(0,0,0,.06);
	border-radius: 16px;
	padding: 28px 22px;
	height: 100%;
	text-align: center;
	transition: box-shadow .25s ease, transform .25s ease;
}
.client-card:hover {
	box-shadow: 0 12px 32px rgba(0,0,0,.08);
	transform: translateY(-3px);
}
.client-card .logo-wrap {
	height: 72px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 16px;
}
.client-card .logo-wrap img {
	max-height: 56px;
	max-width: 160px;
	width: auto;
	object-fit: contain;
	filter: grayscale(100%);
	opacity: .85;
	transition: filter .25s ease, opacity .25s ease;
}
.client-card:hover .logo-wrap img {
	filter: grayscale(0%);
	opacity: 1;
}
.client-card .client-name { margin-bottom: 4px; }
.client-card .client-sector { color: #6c757d; font-size: .9rem; margin-bottom: 12px; }
.client-card .client-quote { font-size: .92rem; color: #444; font-style: italic; }

/* Product / store badges */
.store-badges a {
	display: inline-block;
	margin: 6px 8px 6px 0;
}
.store-badges .btn { min-width: 160px; }
.module-list li { margin-bottom: 8px; }
.price-box {
	border: 1px solid rgba(0,0,0,.08);
	border-radius: 16px;
	padding: 28px 24px;
	height: 100%;
	background: #fff;
}
.price-box .price { font-size: 2rem; font-weight: 700; }

/* ==========================================================================
   HEADER: logo sinistra + menu una riga (desktop)
   ========================================================================== */
#header .desktoplogo img,
#header .wsmobileheader .smllogo img {
	max-height: 40px !important;
	width: auto !important;
	height: auto !important;
	max-width: 160px;
	object-fit: contain;
}

#header .desktoplogo a {
	display: inline-flex;
	align-items: center;
}

/* Collapse unused logo wrapper so flex row stays single-line */
#header.navbar-light .wsmainfull:not(.scroll) .desktoplogo:has(a.logo-black),
#header.navbar-light .wsmainfull.scroll .desktoplogo:has(a.logo-white),
#header.navbar-dark .desktoplogo:has(a.logo-white) {
	display: none !important;
}

@media (min-width: 992px) {
	#header .header-wrapper,
	#header .wsmainwp {
		max-width: 1320px;
		width: 100%;
		margin-left: auto;
		margin-right: auto;
		padding-left: 16px;
		padding-right: 16px;
		box-sizing: border-box;
	}

	#header .wsmainwp {
		display: flex !important;
		flex-wrap: nowrap;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		min-height: 72px;
	}

	#header .desktoplogo {
		float: none !important;
		flex: 0 0 auto;
		line-height: 1 !important;
		margin: 0 !important;
		padding: 0 !important;
		order: 0;
	}

	#header .wsmenu {
		float: none !important;
		flex: 1 1 auto;
		display: flex !important;
		justify-content: flex-end;
		min-width: 0;
	}

	#header .wsmenu > .wsmenu-list.marconi-nav,
	#header .wsmenu > .wsmenu-list {
		display: flex !important;
		flex-wrap: nowrap !important;
		align-items: center;
		justify-content: flex-end;
		width: auto !important;
		gap: 0;
		margin: 0;
		padding: 0;
	}

	#header .wsmenu > .wsmenu-list > li {
		float: none !important;
		flex: 0 0 auto;
	}

	#header .wsmenu > .wsmenu-list > li > a.h-link {
		font-size: 13px !important;
		font-weight: 600 !important;
		letter-spacing: 0 !important;
		padding: 8px 10px !important;
		line-height: 1.2 !important;
		white-space: nowrap;
	}

	#header .wsmenu > .wsmenu-list > li > a.h-link .wsarrow {
		margin-left: 2px;
	}

	#header .wsmenu > .wsmenu-list > li.nav-cta > a.btn,
	#header .wsmenu > .wsmenu-list > li > a.btn.last-link {
		font-size: 13px !important;
		line-height: 1.2 !important;
		padding: 8px 14px !important;
		margin: 0 0 0 6px !important;
		white-space: nowrap;
	}
}

@media (min-width: 1400px) {
	#header .wsmenu > .wsmenu-list > li > a.h-link {
		font-size: 14px !important;
		padding: 8px 12px !important;
	}
}

@media (min-width: 1200px) and (max-width: 1399.98px) {
	#header .desktoplogo img { max-height: 34px !important; }
	#header .wsmenu > .wsmenu-list > li > a.h-link {
		font-size: 12.5px !important;
		padding: 8px 8px !important;
	}
	#header .wsmenu > .wsmenu-list > li.nav-cta > a.btn {
		padding: 7px 12px !important;
		font-size: 12.5px !important;
	}
}

/* ==========================================================================
   RESPONSIVE GLOBAL
   ========================================================================== */
img, video, iframe, svg {
	max-width: 100%;
	height: auto;
}

.table-responsive, table {
	max-width: 100%;
}

.hero-3-txt h1,
.hero-3-txt .s-60,
.page-hero-section h1,
.inner-page-hero h1,
.inner-page-hero h2.s-52 {
	overflow-wrap: anywhere;
	word-break: break-word;
}

.store-badges .btn,
.btn {
	max-width: 100%;
}

/* Mobile header logo */
.wsmobileheader .smllogo img {
	max-height: 36px !important;
}

@media (max-width: 767.98px) {
	.hero-3-txt h1,
	.hero-3-txt .s-60,
	.page-hero-section h1 {
		font-size: clamp(1.6rem, 7vw, 2.4rem) !important;
		line-height: 1.2 !important;
	}
	.section-title h2,
	.s-50, .s-52, .s-46 {
		font-size: clamp(1.45rem, 6vw, 2.1rem) !important;
		line-height: 1.25 !important;
	}
	.container, .container-fluid {
		padding-left: 16px;
		padding-right: 16px;
	}
	.price-box { margin-bottom: 16px; }
	.client-card { margin-bottom: 8px; }
	.whatsapp-float {
		bottom: max(16px, env(safe-area-inset-bottom));
		right: max(16px, env(safe-area-inset-right));
	}
	/* Guide article readability */
	.page-hero-section .hero-txt,
	.pb-100 .col-lg-10 {
		padding-left: 0;
		padding-right: 0;
	}
}

@media (max-width: 575.98px) {
	.store-badges a {
		display: block;
		margin: 8px 0;
	}
	.store-badges .btn {
		width: 100%;
		min-width: 0;
	}
	.btn.ms-2 {
		margin-left: 0 !important;
		margin-top: 10px;
	}
}

/* Prevent horizontal scroll from absolute decorations.
   Do not set overflow-x on .page — it breaks position:fixed header. */
html, body {
	overflow-x: hidden;
}

/* Sticky header — always pinned (desktop + mobile bar) */
#header .header-wrapper {
	position: fixed !important;
	top: 0;
	left: 0;
	right: 0;
	width: 100%;
	z-index: 1030;
}
#header .wsmainfull {
	position: relative;
	z-index: 1031;
}
#header .wsmobileheader {
	position: fixed !important;
	top: 0;
	left: 0;
	right: 0;
	z-index: 1032;
}
@supports (top: env(safe-area-inset-top)) {
	#header .wsmobileheader {
		top: env(safe-area-inset-top, 0px);
	}
}

/* Mobile top bar: logo + brand name grouped together and centered,
   hamburger stays absolutely positioned on the right (untouched). */
.mobile-brand-name {
	display: none;
}
@media only screen and (max-width: 991px) {
	#header .wsmobileheader {
		display: flex;
		align-items: center;
		justify-content: center;
	}
	#header .wsmobileheader .smllogo {
		display: inline-flex !important;
		align-items: center;
		margin-top: 0 !important;
		padding-left: 0 !important;
	}
	.mobile-brand-name {
		display: inline-block;
		margin-left: 8px;
		font-weight: 700;
		font-size: 16px;
		letter-spacing: .3px;
		color: #1d222f;
		white-space: nowrap;
		max-width: 55vw;
		overflow: hidden;
		text-overflow: ellipsis;
	}
	.dark-menu .mobile-brand-name,
	.black-scroll .mobile-brand-name,
	.theme--dark .mobile-brand-name {
		color: #fff;
	}
}

/* Fix: mobile slide-out menu must start below the fixed mobile header bar
   (54px + iOS notch/safe-area on top), otherwise the first item ("Home")
   gets clipped/hidden behind it. Instead of stacking z-index (fragile),
   the panel is offset to begin right under the bar. */
@media only screen and (max-width: 991px) {
	:root {
		--mheader-h: calc(54px + env(safe-area-inset-top, 0px));
	}
	#header .wsmenu {
		top: var(--mheader-h) !important;
		height: calc(100% - var(--mheader-h)) !important;
		z-index: 1029;
	}
	#header .wsmenu > .wsmenu-list {
		height: auto !important;
		min-height: calc(100% - var(--mheader-h));
		padding-top: 10px;
	}
	#header .wsmobileheader {
		z-index: 1032 !important;
		height: 54px;
	}
	#header .wsmenu .overlapblackbg {
		top: var(--mheader-h) !important;
		height: calc(100% - var(--mheader-h)) !important;
	}
}


/* Client logos in homepage brands carousel */
.brands-carousel-6 .brand-logo img {
	max-height: 48px;
	width: auto;
	margin: 0 auto;
	filter: grayscale(1);
	opacity: 0.85;
	object-fit: contain;
}
.brands-carousel-6 .brand-logo:hover img {
	filter: grayscale(0);
	opacity: 1;
}

/* Case study app panels & screenshots */
.case-app-panel {
	padding: 28px;
	border: 1px solid rgba(15, 23, 42, 0.08);
	border-radius: 16px;
	background: #f8fafc;
}
.case-app-icon {
	border-radius: 22px;
	box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
	object-fit: cover;
}
.case-client-logo {
	max-height: 48px;
	width: auto;
	margin-bottom: 12px;
	display: block;
}
.case-client-logo--lg {
	max-height: 72px;
}
.case-shot {
	border-radius: 12px;
	border: 1px solid rgba(15, 23, 42, 0.08);
	background: #fff;
	max-height: 420px;
	width: 100%;
	object-fit: contain;
}
.case-hub-icon {
	object-fit: cover;
}
@media (max-width: 767.98px) {
	.case-shot { max-height: 280px; }
}
