/**
 * GC Timeline.
 * Prefix: .gc-tl-* / --gc-tl-*
 *
 * A centre rail with milestone cards alternating either side of it. The node and
 * its stamp sit on the rail; the card hangs off it on a hairline connector. The
 * rail draws itself in on entry and carries a slow travelling sheen, and each
 * card's accent sweep runs outward from the rail, so the two sides mirror rather
 * than repeat.
 *
 * Surfaces follow the theme: white card, pale blue hairline, blue-tinted shadow,
 * and on hover the recurring accent sweep plus an edge glow. No black shadows and
 * no heavy borders.
 */

.gc-tl {
	--gc-tl-max: none;
	--gc-tl-pad-y: 64px;
	--gc-tl-pad-x: 48px;

	--gc-tl-ink: var(--gc-ink, #14212B);
	--gc-tl-muted: var(--gc-muted, #5A6B75);
	--gc-tl-accent: var(--gc-blue, #5BA7DB);
	--gc-tl-accent-deep: var(--gc-blue-dark, #3D82B3);
	--gc-tl-accent-soft: var(--gc-blue-light, #A8D4F0);

	--gc-tl-eyebrow-size: 11.5px;
	--gc-tl-heading-size: clamp(1.6rem, 1.35rem + 1vw, 2.25rem);
	--gc-tl-lead-size: 16px;
	--gc-tl-title-size: clamp(1.02rem, .95rem + .35vw, 1.2rem);
	--gc-tl-summary-size: 14.5px;
	--gc-tl-detail-size: 14.5px;
	--gc-tl-stamp-size: 11.5px;

	--gc-tl-node: 28px;
	--gc-tl-lane: 78px;
	--gc-tl-connector: 26px;
	--gc-tl-row-gap: 26px;

	--gc-tl-rail-w: 2px;
	--gc-tl-rail-top: var(--gc-tl-accent-deep);
	--gc-tl-rail-mid: var(--gc-tl-accent);
	--gc-tl-rail-end: var(--gc-tl-accent-soft);

	--gc-tl-card-bg: var(--gc-white, #fff);
	--gc-tl-card-line: var(--gc-line, #E1E9EE);
	--gc-tl-card-radius: var(--gc-radius-md, 16px);
	--gc-tl-shadow: var(--gc-shadow-card, 0 10px 28px -8px rgba(20, 33, 43, 0.12));
	--gc-tl-shadow-hover: var(--gc-shadow-card-hover, 0 18px 40px -10px rgba(20, 33, 43, 0.22));
	--gc-tl-ease: cubic-bezier(.22, 1, .36, 1);

	position: relative;
	isolation: isolate;
	box-sizing: border-box;
	width: 100%;
	padding-block: var(--gc-tl-pad-y);
	font-family: var(--gc-font-body, "Inter", system-ui, sans-serif);
	color: var(--gc-tl-ink);
}

.gc-tl *,
.gc-tl *::before,
.gc-tl *::after { box-sizing: border-box; }

.gc-tl--full {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
}

.gc-tl__bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	background: var(--gc-tl-bg, transparent);
	pointer-events: none;
}

.gc-tl--fade .gc-tl__bg {
	-webkit-mask-image: linear-gradient(180deg, transparent 0, #000 var(--gc-tl-fade, 18%), #000 calc(100% - var(--gc-tl-fade, 18%)), transparent 100%);
	mask-image: linear-gradient(180deg, transparent 0, #000 var(--gc-tl-fade, 18%), #000 calc(100% - var(--gc-tl-fade, 18%)), transparent 100%);
}

.gc-tl__inner {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: var(--gc-tl-max);
	margin-inline: auto;
	padding-inline: var(--gc-tl-pad-x);
}

/* ---- Header ---- */

.gc-tl__head {
	max-width: 760px;
	margin-bottom: clamp(36px, 4.5vw, 60px);
}
.gc-tl--center .gc-tl__head {
	margin-inline: auto;
	text-align: center;
}

.gc-tl__eyebrow {
	display: flex;
	align-items: center;
	gap: 14px;
	font-family: var(--gc-font-body, "Inter", system-ui, sans-serif);
	font-size: var(--gc-tl-eyebrow-size);
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--gc-tl-accent-deep);
}
.gc-tl__eyebrow::before,
.gc-tl__eyebrow::after {
	content: "";
	flex: 1 1 auto;
	height: 1px;
	background: currentColor;
	opacity: .28;
}
.gc-tl:not(.gc-tl--center) .gc-tl__eyebrow::before { display: none; }

.gc-tl__title {
	margin: 14px 0 0;
	font-family: var(--gc-font-heading, "Manrope", sans-serif);
	font-weight: 700;
	font-size: var(--gc-tl-heading-size);
	line-height: 1.14;
	letter-spacing: -.022em;
	color: var(--gc-tl-heading-color, var(--gc-tl-ink));
	text-wrap: balance;
}
.gc-tl__title em {
	font-style: normal;
	color: var(--gc-tl-swap-color, var(--gc-tl-accent));
}

.gc-tl__lead {
	margin: 14px 0 0;
	max-width: 58ch;
	font-size: var(--gc-tl-lead-size);
	font-weight: 400;
	line-height: 1.6;
	color: var(--gc-tl-lead-color, var(--gc-tl-muted));
}
.gc-tl--center .gc-tl__lead { margin-inline: auto; }

.gc-tl__hint {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 20px 0 0;
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: .02em;
	color: var(--gc-tl-accent-deep);
}
.gc-tl__hint svg {
	width: 14px;
	height: 14px;
	flex: 0 0 auto;
}

/* ---- The rail ---- */

.gc-tl__track { position: relative; }

.gc-tl__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: var(--gc-tl-row-gap);
}

.gc-tl__rail {
	position: absolute;
	top: calc(var(--gc-tl-node) / 2);
	bottom: calc(var(--gc-tl-node) / 2);
	left: 50%;
	width: var(--gc-tl-rail-w);
	margin-left: calc(var(--gc-tl-rail-w) / -2);
	overflow: hidden;
	border-radius: 2px;
	transform: scaleY(0);
	transform-origin: top;
	transition: transform 1.4s var(--gc-tl-ease);
	pointer-events: none;
}
.gc-tl.is-in .gc-tl__rail { transform: scaleY(1); }
.gc-tl__rail::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, var(--gc-tl-rail-top) 0%, var(--gc-tl-rail-mid) 62%, var(--gc-tl-rail-end) 100%);
}
/* ---- Rows ---- */

.gc-tl__item {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) var(--gc-tl-lane) minmax(0, 1fr);
	align-items: start;
}

.gc-tl__mark {
	grid-column: 2;
	grid-row: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 7px;
	z-index: 2;
}

.gc-tl__node {
	position: relative;
	z-index: 2;
	display: grid;
	place-items: center;
	width: var(--gc-tl-node);
	height: var(--gc-tl-node);
	border: 0;
	padding: 0;
	border-radius: 50%;
	background: var(--gc-tl-accent-deep);
	box-shadow:
		0 0 0 3px var(--gc-tl-card-bg),
		0 0 0 4px color-mix(in srgb, var(--gc-tl-accent-deep) 70%, transparent);
	color: var(--gc-tl-card-bg);
	cursor: pointer;
	transition: transform .25s var(--gc-tl-ease), box-shadow .3s ease;
}
.gc-tl__node svg {
	width: 54%;
	height: 54%;
	pointer-events: none;
}
.gc-tl__node--dot::after {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: currentColor;
	opacity: .9;
}
.gc-tl__node:hover { transform: scale(1.12); }
.gc-tl__node:focus-visible {
	outline: 2px solid var(--gc-tl-accent);
	outline-offset: 4px;
}

.gc-tl__item.is-now .gc-tl__node {
	background: var(--gc-tl-accent);
	animation: gc-tl-breathe 2.8s ease-in-out infinite;
}
@keyframes gc-tl-breathe {
	0%, 100% {
		box-shadow:
			0 0 0 3px var(--gc-tl-card-bg),
			0 0 0 5px color-mix(in srgb, var(--gc-tl-accent) 80%, transparent),
			0 0 0 8px color-mix(in srgb, var(--gc-tl-accent) 22%, transparent);
	}
	50% {
		box-shadow:
			0 0 0 3px var(--gc-tl-card-bg),
			0 0 0 5px color-mix(in srgb, var(--gc-tl-accent) 80%, transparent),
			0 0 0 13px color-mix(in srgb, var(--gc-tl-accent) 8%, transparent);
	}
}

.gc-tl__item.is-next:not(.is-now) .gc-tl__node {
	background: var(--gc-tl-card-bg);
	color: var(--gc-tl-accent);
	box-shadow:
		0 0 0 2px var(--gc-tl-card-bg),
		0 0 0 3px color-mix(in srgb, var(--gc-tl-accent) 55%, transparent);
}

.gc-tl__stamp {
	position: relative;
	z-index: 2;
	font-size: var(--gc-tl-stamp-size);
	font-weight: 700;
	letter-spacing: .1em;
	font-variant-numeric: tabular-nums;
	text-align: center;
	line-height: 1.25;
	color: var(--gc-tl-stamp-color, var(--gc-tl-accent-deep));
	white-space: nowrap;
}
.gc-tl__item.is-repeat .gc-tl__stamp { opacity: .35; }

/* ---- Cards, alternating either side of the rail ---- */

.gc-tl__body {
	position: relative;
	grid-row: 1;
	border-radius: var(--gc-tl-card-radius);
	background: var(--gc-tl-card-bg);
	box-shadow: inset 0 0 0 1px var(--gc-tl-card-line), var(--gc-tl-shadow);
	overflow: hidden;
	transition: transform .3s var(--gc-tl-ease), box-shadow .3s ease;
}
.gc-tl__item:nth-child(odd) .gc-tl__body { grid-column: 3; }
.gc-tl__item:nth-child(even) .gc-tl__body {
	grid-column: 1;
	text-align: right;
}

/* Connector: a hairline from the rail to the card, drawn from the rail outward. */
.gc-tl__item::after {
	content: "";
	position: absolute;
	top: calc(var(--gc-tl-node) / 2);
	width: calc((var(--gc-tl-lane) - var(--gc-tl-node)) / 2);
	height: 1px;
	background: var(--gc-tl-card-line);
	transform: scaleX(0);
	transition: transform .5s var(--gc-tl-ease) calc(var(--i, 0) * 55ms + 260ms);
	z-index: 1;
}
.gc-tl__item:nth-child(odd)::after {
	left: calc(50% + var(--gc-tl-node) / 2);
	transform-origin: left;
}
.gc-tl__item:nth-child(even)::after {
	right: calc(50% + var(--gc-tl-node) / 2);
	transform-origin: right;
}
.gc-tl.is-in .gc-tl__item::after { transform: scaleX(1); }

/* Accent sweep, running outward from the rail. Mirrored on the left column, so
   the two sides read as one movement rather than as a repeated card. */
.gc-tl__body::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: linear-gradient(90deg, var(--gc-tl-accent), var(--gc-tl-accent-soft));
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .38s var(--gc-tl-ease);
	z-index: 2;
}
.gc-tl__item:nth-child(even) .gc-tl__body::before {
	background: linear-gradient(90deg, var(--gc-tl-accent-soft), var(--gc-tl-accent));
	transform-origin: right;
}

/* Pointer spotlight on the card edge. The two coordinates are written by JS. */
.gc-tl__body::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	background: radial-gradient(
		240px circle at var(--mx, 50%) var(--my, 0%),
		color-mix(in srgb, var(--gc-tl-accent) 16%, transparent),
		transparent 62%
	);
	opacity: 0;
	transition: opacity .3s ease;
	pointer-events: none;
	z-index: 0;
}

@media (hover: hover) {
	.gc-tl__body:hover {
		transform: translateY(-4px);
		box-shadow:
			inset 0 0 0 1px color-mix(in srgb, var(--gc-tl-accent) 55%, var(--gc-tl-card-line)),
			var(--gc-tl-shadow-hover);
	}
	.gc-tl__body:hover::before { transform: scaleX(1); }
	.gc-tl__body:hover::after { opacity: 1; }
}
.gc-tl__item.is-open .gc-tl__body {
	box-shadow:
		inset 0 0 0 1px color-mix(in srgb, var(--gc-tl-accent) 55%, var(--gc-tl-card-line)),
		var(--gc-tl-shadow-hover);
}
.gc-tl__item.is-open .gc-tl__body::before { transform: scaleX(1); }

.gc-tl__toggle {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: start;
	gap: 14px;
	width: 100%;
	margin: 0;
	padding: 16px 18px;
	border: 0;
	background: none;
	font: inherit;
	color: inherit;
	text-align: inherit;
	cursor: pointer;
}
.gc-tl__item:nth-child(even) .gc-tl__toggle { grid-template-columns: auto minmax(0, 1fr); }
.gc-tl__item:nth-child(even) .gc-tl__chev { grid-column: 1; grid-row: 1; }
.gc-tl__item:nth-child(even) .gc-tl__lines { grid-column: 2; grid-row: 1; }
.gc-tl__toggle:focus-visible {
	outline: 2px solid var(--gc-tl-accent);
	outline-offset: -4px;
	border-radius: var(--gc-tl-card-radius);
}

.gc-tl__label {
	display: block;
	font-family: var(--gc-font-heading, "Manrope", sans-serif);
	font-weight: 700;
	font-size: var(--gc-tl-title-size);
	line-height: 1.28;
	letter-spacing: -.014em;
	color: var(--gc-tl-title-color, var(--gc-tl-ink));
	transition: color .2s ease;
}
.gc-tl__body:hover .gc-tl__label,
.gc-tl__item.is-open .gc-tl__label { color: var(--gc-tl-accent-deep); }

.gc-tl__summary {
	display: block;
	margin-top: 6px;
	font-size: var(--gc-tl-summary-size);
	line-height: 1.55;
	color: var(--gc-tl-summary-color, var(--gc-tl-muted));
}

.gc-tl__chev {
	display: grid;
	place-items: center;
	width: 26px;
	height: 26px;
	margin-top: 1px;
	border-radius: 50%;
	color: var(--gc-tl-accent-deep);
	background: color-mix(in srgb, var(--gc-tl-accent) 12%, transparent);
	transition: transform .34s var(--gc-tl-ease), background-color .2s ease;
}
.gc-tl__chev svg { width: 13px; height: 13px; }
.gc-tl__body:hover .gc-tl__chev { background: color-mix(in srgb, var(--gc-tl-accent) 22%, transparent); }
.gc-tl__item.is-open .gc-tl__chev { transform: rotate(180deg); }

.gc-tl__panel {
	position: relative;
	z-index: 1;
	height: 0;
	overflow: hidden;
	visibility: hidden;
	transition: height .4s var(--gc-tl-ease), visibility 0s linear .4s;
}
.gc-tl__item.is-open .gc-tl__panel {
	visibility: visible;
	transition: height .4s var(--gc-tl-ease), visibility 0s;
}
.gc-tl__panel-inner {
	margin: 0 18px 18px;
	padding-top: 14px;
	border-top: 1px solid var(--gc-tl-card-line);
}
.gc-tl__panel-inner > * {
	opacity: 0;
	transform: translateY(6px);
}
.gc-tl__item.is-open .gc-tl__panel-inner > * {
	animation: gc-tl-rise .42s var(--gc-tl-ease) forwards;
}
.gc-tl__item.is-open .gc-tl__panel-inner > *:nth-child(2) { animation-delay: .1s; }
@keyframes gc-tl-rise {
	to { opacity: 1; transform: none; }
}

.gc-tl__detail {
	margin: 0;
	font-size: var(--gc-tl-detail-size);
	line-height: 1.7;
	color: var(--gc-tl-detail-color, var(--gc-tl-muted));
}
.gc-tl__detail + .gc-tl__points { margin-top: 14px; }

.gc-tl__points {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 9px;
}
.gc-tl__points li {
	position: relative;
	padding-left: 20px;
	font-size: 13.5px;
	line-height: 1.5;
	color: var(--gc-tl-detail-color, var(--gc-tl-muted));
}
.gc-tl__item:nth-child(even) .gc-tl__points li {
	padding-left: 0;
	padding-right: 20px;
}
.gc-tl__points li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .62em;
	width: 10px;
	height: 1px;
	background: var(--gc-tl-accent);
	opacity: .85;
}
.gc-tl__item:nth-child(even) .gc-tl__points li::before {
	left: auto;
	right: 0;
}

.gc-tl__static { padding: 16px 18px; }
.gc-tl__heading-row { margin: 0; font: inherit; color: inherit; }

/* ---- Entry ----
   The reveal rides on the card, the node and the stamp individually rather than
   on their wrapper, because the wrapper becomes display:contents on the narrow
   and single-lane layouts and a contents box cannot be transformed. */

.gc-tl__body {
	opacity: 0;
	transform: translateY(26px) scale(.97);
	transition:
		opacity .6s var(--gc-tl-ease) calc(var(--i, 0) * 90ms),
		transform .7s var(--gc-tl-ease) calc(var(--i, 0) * 90ms),
		box-shadow .3s ease;
}
.gc-tl.is-in .gc-tl__body {
	opacity: 1;
	transform: none;
}
.gc-tl__node,
.gc-tl__stamp { opacity: 0; }
.gc-tl.is-in .gc-tl__node,
.gc-tl.is-in .gc-tl__stamp { opacity: 1; }
.gc-tl.is-in .gc-tl__node { animation: gc-tl-pop .55s cubic-bezier(.34, 1.56, .64, 1) calc(var(--i, 0) * 90ms + .1s) both; }
.gc-tl.is-in .gc-tl__item.is-now .gc-tl__node { animation: gc-tl-breathe 2.8s ease-in-out infinite 1s; }
@keyframes gc-tl-pop {
	0%   { transform: scale(0); opacity: 0; }
	60%  { transform: scale(1.22); opacity: 1; }
	100% { transform: scale(1); opacity: 1; }
}
.gc-tl.is-in .gc-tl__stamp { animation: gc-tl-fade .5s ease calc(var(--i, 0) * 90ms + .34s) both; }
@keyframes gc-tl-fade {
	from { opacity: 0; }
	to   { opacity: 1; }
}

.gc-tl.no-anim .gc-tl__body,
.gc-tl.no-anim .gc-tl__node,
.gc-tl.no-anim .gc-tl__stamp {
	opacity: 1;
	transform: none;
	transition: none;
}
.gc-tl.no-anim .gc-tl__rail { transform: scaleY(1); }
.gc-tl.no-anim .gc-tl__item::after { transform: scaleX(1); }

/* ---- Single lane: stamp column, rail, then one column of cards ----
   The wrapper drops to display:contents so the stamp, the node and the card each
   take their own grid cell. Nothing is absolutely placed, so a long stamp widens
   its own column instead of running under the card. */

.gc-tl--lane { --gc-tl-lane: 132px; }
.gc-tl--lane .gc-tl__stamp { white-space: normal; }
.gc-tl--lane .gc-tl__rail {
	left: calc(var(--gc-tl-lane) + var(--gc-tl-node) / 2);
	margin-left: calc(var(--gc-tl-rail-w) / -2);
}
.gc-tl--lane .gc-tl__item {
	grid-template-columns: var(--gc-tl-lane) var(--gc-tl-node) minmax(0, 1fr);
	column-gap: 0;
}
.gc-tl--lane .gc-tl__mark { display: contents; }
.gc-tl--lane .gc-tl__stamp {
	grid-column: 1;
	grid-row: 1;
	justify-self: end;
	padding-right: 16px;
	padding-top: calc(var(--gc-tl-node) / 2 - var(--gc-tl-stamp-size) * .7);
	text-align: right;
}
.gc-tl--lane .gc-tl__node { grid-column: 2; grid-row: 1; }
.gc-tl--lane .gc-tl__item:nth-child(odd) .gc-tl__body,
.gc-tl--lane .gc-tl__item:nth-child(even) .gc-tl__body {
	grid-column: 3;
	grid-row: 1;
	margin-left: var(--gc-tl-connector);
	text-align: left;
}
.gc-tl--lane .gc-tl__item:nth-child(odd)::after,
.gc-tl--lane .gc-tl__item:nth-child(even)::after {
	left: calc(var(--gc-tl-lane) + var(--gc-tl-node));
	right: auto;
	width: var(--gc-tl-connector);
	transform-origin: left;
}
.gc-tl--lane .gc-tl__item:nth-child(even) .gc-tl__body::before {
	background: linear-gradient(90deg, var(--gc-tl-accent), var(--gc-tl-accent-soft));
	transform-origin: left;
}
.gc-tl--lane .gc-tl__item:nth-child(even) .gc-tl__toggle { grid-template-columns: minmax(0, 1fr) auto; }
.gc-tl--lane .gc-tl__item:nth-child(even) .gc-tl__chev { grid-column: 2; grid-row: 1; }
.gc-tl--lane .gc-tl__item:nth-child(even) .gc-tl__lines { grid-column: 1; grid-row: 1; }
.gc-tl--lane .gc-tl__item:nth-child(even) .gc-tl__points li { padding-left: 20px; padding-right: 0; }
.gc-tl--lane .gc-tl__item:nth-child(even) .gc-tl__points li::before { left: 0; right: auto; }

/* ---- Narrow: rail on the left, stamp on the node's row, card beneath ---- */

@media (max-width: 900px) {
	.gc-tl {
		--gc-tl-node: 24px;
		--gc-tl-connector: 16px;
		--gc-tl-row-gap: 20px;
	}
	.gc-tl__rail,
	.gc-tl--lane .gc-tl__rail {
		left: calc(var(--gc-tl-node) / 2);
		margin-left: calc(var(--gc-tl-rail-w) / -2);
	}
	.gc-tl__item,
	.gc-tl--lane .gc-tl__item {
		grid-template-columns: var(--gc-tl-node) minmax(0, 1fr);
		column-gap: var(--gc-tl-connector);
		row-gap: 8px;
	}
	.gc-tl__mark,
	.gc-tl--lane .gc-tl__mark { display: contents; }
	.gc-tl__node,
	.gc-tl--lane .gc-tl__node { grid-column: 1; grid-row: 1; }
	.gc-tl__stamp,
	.gc-tl--lane .gc-tl__stamp {
		grid-column: 2;
		grid-row: 1;
		align-self: center;
		justify-self: start;
		padding: 0;
		font-size: 10.5px;
		text-align: left;
	}
	.gc-tl__item:nth-child(odd) .gc-tl__body,
	.gc-tl__item:nth-child(even) .gc-tl__body,
	.gc-tl--lane .gc-tl__item:nth-child(odd) .gc-tl__body,
	.gc-tl--lane .gc-tl__item:nth-child(even) .gc-tl__body {
		grid-column: 2;
		grid-row: 2;
		margin-left: 0;
		text-align: left;
	}
	.gc-tl__item::after { display: none; }
	.gc-tl__item:nth-child(even) .gc-tl__body::before {
		background: linear-gradient(90deg, var(--gc-tl-accent), var(--gc-tl-accent-soft));
		transform-origin: left;
	}
	.gc-tl__item:nth-child(even) .gc-tl__toggle { grid-template-columns: minmax(0, 1fr) auto; }
	.gc-tl__item:nth-child(even) .gc-tl__chev { grid-column: 2; grid-row: 1; }
	.gc-tl__item:nth-child(even) .gc-tl__lines { grid-column: 1; grid-row: 1; }
	.gc-tl__item:nth-child(even) .gc-tl__points li { padding-left: 20px; padding-right: 0; }
	.gc-tl__item:nth-child(even) .gc-tl__points li::before { left: 0; right: auto; }
	.gc-tl__toggle { padding: 14px 15px; }
	.gc-tl__panel-inner { margin: 0 15px 15px; }
	.gc-tl__static { padding: 14px 15px; }
}

@media (max-width: 640px) {
	.gc-tl {
		--gc-tl-pad-y: 42px;
		--gc-tl-pad-x: 20px;
		--gc-tl-eyebrow-size: 10.5px;
		--gc-tl-heading-size: 1.6rem;
		--gc-tl-lead-size: 15px;
		--gc-tl-card-radius: 14px;
	}
	.gc-tl__eyebrow { gap: 10px; }
}

@media (max-width: 480px) {
	.gc-tl {
		--gc-tl-pad-y: 36px;
		--gc-tl-pad-x: 16px;
		--gc-tl-heading-size: 1.45rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.gc-tl__body,
	.gc-tl__mark,
	.gc-tl__panel,
	.gc-tl__chev,
	.gc-tl__node,
	.gc-tl__item::after,
	.gc-tl__rail { transition: none; }
	.gc-tl__body,
	.gc-tl__mark { opacity: 1; transform: none; }
	.gc-tl__rail { transform: scaleY(1); }
	.gc-tl__item::after { transform: scaleX(1); }
	.gc-tl.is-in .gc-tl__node,
	.gc-tl.is-in .gc-tl__item.is-now .gc-tl__node,
	.gc-tl.is-in .gc-tl__stamp,
	.gc-tl__item.is-open .gc-tl__panel-inner > * { animation: none; }
	.gc-tl__panel-inner > * { opacity: 1; transform: none; }
}

/* Eyebrow: one spec across every Gencore widget. Inter 11.5/600/.16em,
   uppercase, no trailing rule. */
.gc-tl__eyebrow {
	display: block;
	font-family: var(--gc-font-body, "Inter", system-ui, sans-serif);
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	line-height: 1.4;
	margin-bottom: 14px;
}

.gc-tl__eyebrow::before,
.gc-tl__eyebrow::after { display: none; }

@media (max-width: 640px) {
	.gc-tl__eyebrow { font-size: 10.5px; margin-bottom: 12px; }
}
