/*
 * GMS custom styles. Loaded after the compiled Tailwind file (dist/styles.css),
 * so these rules can safely override it.
 */

/* ---- Brand logo carousel: logos only, no boxes ---- */
.gms-marquee .gms-marquee-track {
	gap: 0;
	align-items: center;
	animation: gms-logos 32s linear infinite;
}
.gms-marquee .gms-brand {
	width: auto;
	height: auto;
	padding: 0;
	margin-right: 5rem;
	background: none;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}
.gms-marquee .gms-brand:hover {
	border: 0;
	box-shadow: none;
}
.gms-marquee .gms-brand img {
	height: 76px;
	width: auto;
	max-width: 190px;
	max-height: none;
	object-fit: contain;
}
@keyframes gms-logos {
	from { transform: translateX(0); }
	to { transform: translateX(-25%); }
}
@media (max-width: 640px) {
	.gms-marquee .gms-brand {
		width: auto;
		height: auto;
		padding: 0;
		margin-right: 3rem;
	}
	.gms-marquee .gms-brand img {
		height: 56px;
		max-width: 140px;
		max-height: none;
	}
}
@media (prefers-reduced-motion: reduce) {
	.gms-marquee .gms-marquee-track {
		animation: none;
		flex-wrap: wrap;
		justify-content: center;
		width: auto;
		row-gap: 1.5rem;
	}
}

/* ---- Services carousel (home page) ---- */
.gms-carousel-track {
	display: flex;
	gap: 1.5rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
	padding: 0.5rem 0.25rem 1.75rem;
	margin: 0 -0.25rem;
}
.gms-carousel-track::-webkit-scrollbar {
	display: none;
}
.gms-carousel-item {
	flex: 0 0 calc((100% - 3rem) / 3);
	min-width: 0;
	scroll-snap-align: start;
	display: flex;
}
.gms-carousel-item > a {
	width: 100%;
}
@media (max-width: 1023px) {
	.gms-carousel-item {
		flex-basis: calc((100% - 1.5rem) / 2);
	}
}
@media (max-width: 639px) {
	.gms-carousel-item {
		flex-basis: 86%;
	}
}
.gms-carousel-btn {
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 9999px;
	border: 1px solid #c7c9d0;
	background: #fff;
	color: #14151a;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: background .2s, color .2s, border-color .2s, opacity .2s;
}
.gms-carousel-btn:hover:not(:disabled) {
	background: #14151a;
	border-color: #14151a;
	color: #fff;
}
.gms-carousel-btn:disabled {
	opacity: .35;
	cursor: default;
}
.gms-svc-body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 1.75rem;
}
.gms-svc-body .gms-svc-more {
	margin-top: auto;
	padding-top: .5rem;
}

/* Services page: leave room for the sticky header when jumping to a service */
.gms-service-anchor {
	scroll-margin-top: 7rem;
}
/* ---- Text logo (company name instead of the image logo) ---- */
.gms-wordmark { display: inline-flex; flex-direction: column; justify-content: center; flex-shrink: 0; line-height: 1.1; text-decoration: none; color: #1568d1; }
.gms-wordmark:hover { color: #0f56b0; }
.gms-wordmark-main { font-family: 'Poppins', 'Segoe UI', sans-serif; font-weight: 800; font-size: 1.15rem; letter-spacing: -0.02em; white-space: nowrap; color: inherit; }
.gms-wordmark-sub { font-family: 'Poppins', 'Segoe UI', sans-serif; font-weight: 600; font-size: .78rem; letter-spacing: .08em; color: inherit; opacity: .85; }
.gms-wordmark--drawer .gms-wordmark-main { font-size: 1.05rem; }
.gms-wordmark--footer .gms-wordmark-main { font-size: 1.4rem; }
.gms-wordmark--footer .gms-wordmark-sub { font-size: .85rem; }

/* ---- Header + drawer: company name on ONE line, same size & style, fluid on mobile ---- */
.gms-wordmark--header,
.gms-wordmark--drawer {
	flex-direction: row;
	align-items: baseline;
	flex-wrap: nowrap;
	gap: .28em;
	min-width: 0;
	white-space: nowrap;
	line-height: 1.2;
	font-family: 'Poppins', 'Segoe UI', sans-serif;
	font-weight: 800;
	letter-spacing: -0.02em;
	font-size: 1.2rem;
}
/* Both parts inherit the exact same font, size, weight and spacing */
.gms-wordmark--header .gms-wordmark-main,
.gms-wordmark--header .gms-wordmark-sub,
.gms-wordmark--drawer .gms-wordmark-main,
.gms-wordmark--drawer .gms-wordmark-sub {
	font: inherit;
	letter-spacing: inherit;
	opacity: 1;
	white-space: nowrap;
}
.gms-wordmark--drawer { font-size: clamp(.82rem, 3.9vw, 1rem); }

/* Laptop widths: menu + search + quote button share the row */
@media (min-width: 1024px) and (max-width: 1279px) {
	.gms-wordmark--header { font-size: 1rem; }
	.gms-header-row form[role='search'] { width: 10rem; }
}

/* Tablet */
@media (max-width: 1023px) {
	.gms-wordmark--header { font-size: 1.1rem; }
}

/* Phones: scale with the screen so the name always fits beside the icons */
@media (max-width: 639px) {
	.gms-header > div { padding-left: 1rem; padding-right: 1rem; }
	.gms-header-row, .gms-header.is-scrolled .gms-header-row { gap: .5rem; }
	.gms-wordmark--header { font-size: clamp(.74rem, 3.8vw, 1.05rem); letter-spacing: -0.025em; gap: .25em; }
}
@media (max-width: 359px) {
	.gms-header-row > div:last-child { gap: .25rem; }
	.gms-header-row > div:last-child button { width: 2.25rem; height: 2.25rem; }
}
