/* Locations Auto Builder (rsgdx) — frontend.css — v1
   Only enqueued on a managed Location Page using the Plugin Template.
   Custom properties (--rsgdxlab-*) come from General tab settings, added
   via wp_add_inline_style() in functions/frontend-enqueue.php. */

.rsgdxlab-main {
	max-width: var( --rsgdxlab-max-width, 1200px );
	margin: 0 auto;
}

.rsgdxlab-btn {
	display: inline-block;
	font-size: var( --rsgdxlab-button-size, 16px );
	padding: 12px 24px;
	border-radius: 4px;
	text-decoration: none;
}

.rsgdxlab-btn--primary {
	background-color: var( --rsgdxlab-primary, #111111 );
	color: #fff;
}

.rsgdxlab-btn--secondary {
	background-color: transparent;
	border: 1px solid var( --rsgdxlab-primary, #111111 );
	color: var( --rsgdxlab-primary, #111111 );
}

/* ---- Banner ---- */

.rsgdxlab-banner {
	position: relative;
	overflow: hidden;
	padding: 80px 24px;
	text-align: center;
	color: #fff;
}

.rsgdxlab-bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 0;
}

.rsgdxlab-banner__inner {
	position: relative;
	z-index: 1;
	max-width: var( --rsgdxlab-max-width, 1200px );
	margin: 0 auto;
}

.rsgdxlab-banner__eyebrow {
	font-size: var( --rsgdxlab-eyebrow-size, 14px );
	text-transform: uppercase;
	letter-spacing: 0.08em;
	margin-bottom: 12px;
}

.rsgdxlab-banner__title {
	font-size: var( --rsgdxlab-h1, 48px );
	margin: 0 0 24px;
}

.rsgdxlab-banner__buttons {
	display: flex;
	gap: 12px;
	justify-content: center;
	flex-wrap: wrap;
}

/* ---- Info Grid (logo marquee + timeline) ---- */

.rsgdxlab-info-grid {
	position: relative;
	padding: 60px 24px;
}

.rsgdxlab-info-grid__inner {
	position: relative;
	z-index: 1;
	max-width: var( --rsgdxlab-max-width, 1200px );
	margin: 0 auto;
}

/* Continuous marquee, same approach as Exhibit Central's logo slider: the
   list renders twice back to back and CSS animates a constant leftward
   scroll, so the loop has no visible seam. */

.rsgdxlab-info-grid__marquee {
	overflow: hidden;
	margin-bottom: 48px;
}

.rsgdxlab-info-grid__marquee-track {
	display: flex;
	width: max-content;
	animation: rsgdxlab-marquee linear infinite;
}

.rsgdxlab-info-grid__marquee-item {
	flex: 0 0 auto;
	padding: 0 32px;
	display: flex;
	align-items: center;
}

.rsgdxlab-info-grid__marquee-item img {
	max-height: 48px;
	width: auto;
}

@keyframes rsgdxlab-marquee {
	from { transform: translateX( 0 ); }
	to   { transform: translateX( -50% ); }
}

/* Timeline, a connected vertical line with a dot per item rather than a
   boxed card grid. */

.rsgdxlab-timeline {
	position: relative;
	max-width: 720px;
	margin: 0 auto;
	padding-left: 32px;
	border-left: 2px solid var( --rsgdxlab-primary, #111111 );
}

.rsgdxlab-timeline__item {
	position: relative;
	padding-bottom: 40px;
}

.rsgdxlab-timeline__item:last-child {
	padding-bottom: 0;
}

.rsgdxlab-timeline__marker {
	position: absolute;
	left: -41px;
	top: 2px;
}

.rsgdxlab-timeline__dot {
	display: block;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var( --rsgdxlab-primary, #111111 );
	border: 3px solid #fff;
}

.rsgdxlab-timeline__icon-img {
	max-height: 36px;
	width: auto;
	margin-bottom: 10px;
}

.rsgdxlab-timeline__icon-font {
	font-size: 28px;
	color: var( --rsgdxlab-primary, #111111 );
	margin-bottom: 10px;
	display: inline-block;
}

.rsgdxlab-timeline__title {
	font-size: var( --rsgdxlab-h3, 28px );
	margin: 0 0 6px;
}

.rsgdxlab-timeline__subtext {
	font-size: var( --rsgdxlab-description-size, 16px );
	margin: 0;
}
