body.home {
	background: var(--g17-bg);
	color: var(--g17-text);
}

.g17-home {
	overflow: clip;
	background:
		radial-gradient(circle at 10% 12%, rgba(49, 133, 220, .09), transparent 32rem),
		var(--g17-bg);
}

.g17-hero { position: relative; aspect-ratio: 1920 / 778; margin-inline: 20px; overflow: hidden; background: #050608; }
.g17-hero__slides, .g17-hero__slide { position: absolute; inset: 0; }
.g17-hero__slide { touch-action: pan-y pinch-zoom; }
.g17-hero__slide[aria-hidden="true"] { visibility: hidden; pointer-events: none; }
.g17-hero__link, .g17-hero__media { display: block; width: 100%; height: 100%; }
.g17-hero__media img { display: block; width: 100%; height: 100%; object-fit: contain; }
.g17-hero__empty { display: grid; align-content: center; justify-items: start; height: 100%; padding: clamp(24px, 5vw, 80px); }

.g17-eyebrow {
	display: block;
	margin-bottom: 18px;
	color: var(--g17-blue);
	font: 700 12px/1.2 var(--g17-display);
	letter-spacing: .16em;
	text-transform: uppercase;
}

.g17-hero__empty h2 { color: #fff; font: 600 clamp(24px, 3.5vw, 56px)/1.25 var(--g17-display); }

.g17-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 26px;
}

.g17-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	padding: 0 24px;
	border: 1px solid transparent;
	font: 700 12px/1 var(--g17-display);
	letter-spacing: .09em;
	text-decoration: none;
	text-transform: uppercase;
	transition: background .18s ease, color .18s ease, border-color .18s ease;
}

.g17-button--primary {
	color: #fff;
	background: var(--g17-action);
}

.g17-button--primary:hover {
	color: #fff;
	background: var(--g17-accent-dark);
}

.g17-button--ghost {
	color: #fff;
	background: rgba(5, 6, 8, .42);
	border-color: rgba(255, 255, 255, .42);
}

.g17-button--ghost:hover {
	color: #fff;
	border-color: #fff;
}

.g17-hero__dots { position: absolute; z-index: 2; bottom: 8px; left: 50%; transform: translateX(-50%); display: flex; justify-content: center; }
.g17-hero__dots button { display: grid; place-items: center; width: 30px; height: 44px; padding: 0; border: 0; background: transparent; cursor: pointer; }
.g17-hero__dots button::after { content: ""; width: 12px; height: 12px; border-radius: 50%; background: #272c32; }
.g17-hero__dots button[aria-current="true"]::after { background: var(--g17-blue); }
.g17-hero__playback { position: absolute; z-index: 2; right: 12px; bottom: 8px; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; color: #fff; background: transparent; border: 0; cursor: pointer; }
.g17-hero__playback::before { content: ""; width: 9px; height: 12px; border-inline: 3px solid currentColor; filter: drop-shadow(0 1px 2px #000); }
.g17-hero__playback.is-paused::before { width: 0; height: 0; border: 6px solid transparent; border-right: 0; border-left: 10px solid currentColor; }

.g17-section,
.g17-newsletter {
	padding: clamp(44px, 4.5vw, 72px) clamp(20px, 3vw, 56px);
}

.g17-section--panel {
	background: var(--g17-panel);
	border-block: 1px solid var(--g17-line);
}

.g17-section__head {
	position: relative;
	display: grid;
	justify-items: center;
	text-align: center;
	max-width: 1600px;
	margin: 0 auto 28px;
}

.g17-section__head h2,
.g17-newsletter h2 {
	margin: 0;
	color: var(--g17-heading);
	font: 600 clamp(24px, 2.5vw, 40px)/1.25 var(--g17-display);
	letter-spacing: -.025em;
	text-transform: uppercase;
}

.g17-section__head > a {
	position: absolute;
	right: 0;
	bottom: 0;
	color: var(--g17-blue);
	border-bottom: 1px solid #355e82;
	font-weight: 700;
	text-decoration: none;
}

.g17-product-grid,
.g17-link-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
	gap: 1px;
	max-width: 1600px;
	margin: 0 auto;
	background: var(--g17-line);
	border: 1px solid var(--g17-line);
}

.g17-product-slider {
	max-width: 1600px;
	margin: 0 auto;
}

.g17-product-slider__controls {
	display: flex;
	justify-content: end;
	gap: 10px;
	margin-bottom: 14px;
}

.g17-product-slider__controls button {
	width: 46px;
	height: 46px;
	padding: 0;
	color: var(--g17-blue);
	background: #101d2b;
	border: 1px solid #355e82;
	border-radius: 50%;
	cursor: pointer;
}

.g17-product-slider__controls button:hover:not(:disabled) {
	color: #fff;
	background: #1b4b78;
	border-color: var(--g17-blue);
}

.g17-product-slider__controls button:disabled {
	opacity: .35;
	cursor: default;
}

.g17-product-slider--scrollable .g17-product-grid {
	grid-template-columns: none;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - 72px) / 4);
	max-width: none;
	overflow-x: auto;
	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}

.g17-product-slider--scrollable .g17-product-grid::-webkit-scrollbar {
	display: none;
}

.g17-product-slider--scrollable .g17-product-card {
	scroll-snap-align: start;
}

.g17-product-card {
	min-width: 0;
	background: var(--g17-panel);
}

.g17-product-card__image {
	position: relative;
	display: block;
	aspect-ratio: 1;
	overflow: hidden;
	background: #fff;
}

.g17-product-card__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .35s ease;
}

.g17-product-card:hover .g17-product-card__image img {
	display: block;
	transform: scale(1.035);
}

.g17-product-card__body {
	display: flex;
	flex-direction: column;
	padding: 22px;
}

.g17-product-card__badge {
	position: absolute;
	top: 16px;
	left: 16px;
	padding: 8px 12px;
	color: #fff;
	background: #60646d;
	font: 700 13px/1 var(--g17-body);
	letter-spacing: .06em;
	text-transform: uppercase;
}

.g17-product-card__badge--instock {
	background: #087a55;
}

.g17-product-card__badge--preorder {
	background: var(--g17-action);
}

.g17-product-card__meta,
.g17-stock-note {
	color: var(--g17-muted);
	font-size: 12px;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.g17-product-card h3 {
	height: 2.9em;
	margin: 10px 0 16px;
	font: 600 18px/1.45 var(--g17-body);
}

.g17-product-card h3 a {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	overflow: hidden;
	color: var(--g17-text);
	text-decoration: none;
}

.g17-product-card__price {
	color: #fff;
	font-size: 21px;
	font-weight: 700;
}

.g17-product-card__cta {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	min-height: 46px;
	margin-top: 20px;
	padding-top: 14px;
	color: var(--g17-blue);
	border-top: 1px solid var(--g17-line);
	font: 700 12px/1 var(--g17-display);
	letter-spacing: .08em;
	text-decoration: none;
	text-transform: uppercase;
}

.g17-stock-note {
	max-width: 1600px;
	margin: 22px auto 0;
}

.g17-stock-note span {
	display: inline-block;
	width: 7px;
	height: 7px;
	margin-right: 8px;
	background: #34d399;
	border-radius: 50%;
}

.g17-link-grid a {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	min-height: 170px;
	padding: 28px;
	color: var(--g17-text);
	background: var(--g17-bg);
	text-decoration: none;
	transition: background .18s ease, color .18s ease;
}

.g17-link-grid a:hover {
	color: #fff;
	background: var(--g17-accent-dark);
}

.g17-link-grid span {
	font: 700 clamp(24px, 2.6vw, 42px)/1 var(--g17-display);
	text-transform: uppercase;
}

.g17-link-grid small {
	color: var(--g17-muted);
	font-size: 12px;
	text-transform: uppercase;
}

.g17-link-grid a:hover small {
	color: #fff;
}

.g17-collection-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
	max-width: 1600px;
	margin: 0 auto;
}

.g17-collection-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	color: var(--g17-text);
	background: #08090c;
	border: 1px solid var(--g17-line);
	text-decoration: none;
	transition: transform .2s ease, border-color .2s ease;
}

.g17-collection-card:hover {
	color: #fff;
	border-color: var(--g17-blue);
	transform: translateY(-4px);
}

.g17-collection-card__image {
	display: block;
	aspect-ratio: 5 / 4;
	overflow: hidden;
	background: #050608;
}

.g17-collection-card__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .35s ease;
}

.g17-collection-card:hover .g17-collection-card__image img {
	transform: scale(1.035);
}

.g17-collection-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	min-height: 190px;
	padding: 24px;
	border-top: 8px solid #3987cf;
}

.g17-collection-card__body > small {
	color: var(--g17-blue);
	font: 700 11px/1 var(--g17-display);
	letter-spacing: .14em;
	text-transform: uppercase;
}

.g17-collection-card__body > strong {
	margin-top: 12px;
	color: var(--g17-heading);
	font: 700 clamp(28px, 3vw, 46px)/1 var(--g17-display);
	text-transform: uppercase;
}

.g17-collection-card__body > span:not(.g17-collection-card__footer) {
	margin-top: 14px;
	color: var(--g17-muted);
	font-size: 14px;
	line-height: 1.55;
}

.g17-collection-card__footer {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 18px;
	margin-top: auto;
	padding-top: 22px;
	color: var(--g17-muted);
	font-size: 11px;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.g17-collection-card__footer b {
	color: var(--g17-blue);
	white-space: nowrap;
}

.g17-feature-collection {
	position: relative;
	display: block;
	min-height: clamp(430px, 52vw, 660px);
	max-width: 1600px;
	margin: 0 auto;
	overflow: hidden;
	color: #fff;
	background: #050608;
	border: 1px solid var(--g17-line);
	text-decoration: none;
}

.g17-feature-collection > img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .4s ease;
}

.g17-feature-collection:hover > img {
	transform: scale(1.025);
}

.g17-feature-collection__shade {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(5, 6, 8, .96) 0%, rgba(5, 6, 8, .72) 44%, rgba(5, 6, 8, .12) 78%);
}

.g17-feature-collection__content {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	box-sizing: border-box;
	max-width: 650px;
	min-height: inherit;
	padding: clamp(30px, 6vw, 86px);
}

.g17-feature-collection__content small {
	color: var(--g17-accent);
	font: 700 11px/1 var(--g17-display);
	letter-spacing: .16em;
	text-transform: uppercase;
}

.g17-feature-collection__content strong {
	margin-top: 18px;
	font: 700 clamp(38px, 5.4vw, 78px)/.95 var(--g17-display);
	text-transform: uppercase;
}

.g17-feature-collection__content > span {
	max-width: 520px;
	margin-top: 20px;
	color: #d7dae0;
	font-size: 17px;
	line-height: 1.6;
}

.g17-feature-collection__content b {
	align-self: flex-start;
	min-height: 46px;
	margin-top: 28px;
	padding: 16px 20px;
	background: var(--g17-action);
	font: 700 12px/1 var(--g17-display);
	letter-spacing: .08em;
	text-transform: uppercase;
}

.g17-empty {
	grid-column: 1 / -1;
	margin: 0;
	padding: 32px;
	color: var(--g17-muted);
	background: var(--g17-panel);
	border-left: 3px solid var(--g17-accent);
}

.g17-newsletter {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(36px, 7vw, 110px);
	align-items: center;
	background:
		linear-gradient(90deg, rgba(49, 133, 220, .12), transparent 52%),
		var(--g17-panel);
	border-top: 4px solid var(--g17-accent);
}

.g17-newsletter .g17-eyebrow {
	color: var(--g17-accent);
}

.g17-newsletter p {
	max-width: 640px;
	color: var(--g17-muted);
	font-size: 16px;
	line-height: 1.65;
}

.g17-home a:focus-visible,
.g17-home button:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 4px;
}

@media (max-width: 1199px) {
	.g17-product-grid,
	.g17-link-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.g17-collection-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.g17-product-slider--scrollable .g17-product-grid {
		grid-auto-columns: calc((100% - 48px) / 3);
	}
}

@media (max-width: 767px) {
	.g17-hero { margin-inline: 0; }
	.g17-hero__dots, .g17-hero__playback { bottom: 0; }
	.g17-hero__playback { right: 0; }

	.g17-actions {
		margin-top: 22px;
	}

	.g17-button {
		flex: 1 1 150px;
	}

	.g17-newsletter {
		grid-template-columns: 1fr;
	}

	.g17-section__head {
		gap: 16px;
	}

	.g17-section__head > a {
		position: static;
		white-space: nowrap;
	}

	.g17-product-grid,
	.g17-link-grid {
		grid-template-columns: 1fr 1fr;
	}

	.g17-product-slider--scrollable .g17-product-grid {
		grid-auto-columns: calc((100% - 24px) / 2);
	}

	.g17-product-card__body {
		padding: 16px;
	}

	.g17-product-card h3 {
		font-size: 16px;
	}

	.g17-link-grid a {
		min-height: 130px;
		padding: 20px;
	}

	.g17-collection-grid {
		grid-template-columns: 1fr;
	}

	.g17-collection-card__body {
		min-height: 160px;
		padding: 20px;
	}

	.g17-feature-collection__shade {
		background: linear-gradient(0deg, rgba(5, 6, 8, .97) 5%, rgba(5, 6, 8, .68) 55%, rgba(5, 6, 8, .12) 88%);
	}

	.g17-feature-collection__content {
		justify-content: flex-end;
		padding: 30px 20px;
	}

	.g17-newsletter {
		padding-block: 64px;
	}
}

@media (max-width: 430px) {
	.g17-product-grid {
		grid-template-columns: 1fr;
	}
}

@media (prefers-reduced-motion: reduce) {
	.g17-hero__slide,
	.g17-hero__dots button::after,
	.g17-product-card__image img,
	.g17-button,
	.g17-link-grid a,
	.g17-collection-card,
	.g17-collection-card__image img,
	.g17-feature-collection > img,
	.g17-product-slider--scrollable .g17-product-grid {
		transition: none;
		scroll-behavior: auto;
	}
}

/* Give each product its own space and keep actions aligned. */
.g17-product-grid { gap: 24px; background: transparent; border: 0; }
.g17-product-card { display: flex; flex-direction: column; border: 1px solid var(--g17-line); }
.g17-product-card__body { flex: 1; }
.g17-product-card__cta { margin-top: auto; }
.g17-product-card__price { margin-bottom: 18px; }
.g17-product-card h3 { margin-bottom: 22px; }

/* Compact scales and fixed category rows share the product shelf width. */
#g17-scales .g17-collection-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 20px; }
#g17-scales .g17-collection-card__image { aspect-ratio: 1; }
#g17-scales .g17-collection-card__body { min-height: 0; padding: 18px 12px; border-top-width: 2px; text-align: center; }
#g17-scales .g17-collection-card__body > small { display: none; }
#g17-scales .g17-collection-card__body > strong { margin: 0; font-size: clamp(22px, 2vw, 30px); }
#g17-scales .g17-collection-card__footer { flex-direction: column; align-items: center; gap: 8px; padding-top: 14px; font-size: 12px; }
#g17-collections .g17-collection-grid, #g17-addons .g17-collection-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: 1fr; gap: 24px; }
#g17-collections .g17-collection-card__image, #g17-addons .g17-collection-card__image { aspect-ratio: 4 / 3; }
#g17-collections .g17-collection-card__body, #g17-addons .g17-collection-card__body { min-height: 0; padding: 22px 24px; border-top-width: 2px; }
#g17-collections .g17-collection-card__body > strong, #g17-addons .g17-collection-card__body > strong { min-height: 1.3em; font-size: clamp(22px, 2vw, 30px); line-height: 1.3; }
#g17-collections .g17-collection-card__footer, #g17-addons .g17-collection-card__footer { flex-wrap: wrap; gap: 10px; padding-top: 20px; font-size: 13px; }
.g17-collection-card__image--illustrated { background: radial-gradient(ellipse at center, #17354d, #0b131e 72%); }
.g17-collection-card__image--illustrated img { object-fit: contain; padding: 12%; }
@media (max-width: 1023px) {
 #g17-scales .g17-collection-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
 #g17-scales .g17-collection-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 #g17-collections .g17-collection-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 #g17-addons .g17-collection-grid { grid-template-columns: 1fr; grid-auto-rows: auto; }
 #g17-addons .g17-collection-card__image { aspect-ratio: 2 / 1; }
}
@media (max-width: 600px) {
 #g17-scales .g17-collection-grid { gap: 12px; }
 #g17-collections .g17-collection-grid, #g17-addons .g17-collection-grid { gap: 20px; }
 #g17-collections .g17-collection-grid { grid-template-columns: 1fr; }
 #g17-collections .g17-collection-card__body { padding: 20px; }
 #g17-collections .g17-collection-card__body > strong { font-size: 26px; }
 .g17-product-grid { gap: 12px; }
 .g17-product-slider--scrollable .g17-product-grid { grid-auto-columns: calc((100% - 12px) / 2); }
 .g17-product-card__body { padding: 12px; }
 .g17-product-card h3 { font-size: 14px; }
 .g17-product-card__badge { top: 8px; left: 8px; padding: 6px; font-size: 10px; }
 .g17-product-card__meta { font-size: 10px; letter-spacing: .04em; }
 .g17-product-card__cta { gap: 4px; font-size: 9px; line-height: 1.4; letter-spacing: .02em; }
}

/* Small visual controls with a comfortable touch target. */
.g17-hero__arrow { position:absolute; z-index:3; top:50%; transform:translateY(-50%); display:grid; place-items:center; width:44px; height:44px; min-height:0; padding:0; border:0; background:transparent; color:#fff; cursor:pointer; }
.g17-hero__arrow--prev { left:8px; }
.g17-hero__arrow--next { right:8px; }
.g17-hero__arrow::before { content:""; position:absolute; inset:5px; border:1px solid rgba(140,196,244,.5); border-radius:50%; background:rgba(5,12,20,.68); transition:background .2s,border-color .2s; }
.g17-hero__arrow svg { position:relative; width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.g17-hero__arrow:hover::before { background:#226298; border-color:var(--g17-blue); }
.g17-hero__arrow:focus-visible { outline:2px solid var(--g17-blue); outline-offset:1px; border-radius:50%; }
@media(max-width:600px) { .g17-hero__arrow--prev { left:0; } .g17-hero__arrow--next { right:0; } .g17-hero__arrow::before { inset:7px; } }
