/* ==========================================================================
   LDRmoto theme styles
   Colors, fonts and base typography come from theme.json; this file holds
   the pieces theme.json can't express (pannier, wordmark, odometer, road
   line) plus WooCommerce block styling.
   ========================================================================== */

:root {
	--ldr-asphalt: var(--wp--preset--color--asphalt);
	--ldr-asphalt-2: var(--wp--preset--color--asphalt-2);
	--ldr-asphalt-3: var(--wp--preset--color--asphalt-3);
	--ldr-asphalt-line: var(--wp--preset--color--asphalt-line);
	--ldr-red: var(--wp--preset--color--red);
	--ldr-red-deep: var(--wp--preset--color--red-deep);
	--ldr-yellow: var(--wp--preset--color--yellow);
	--ldr-concrete: var(--wp--preset--color--concrete);
	--ldr-white: var(--wp--preset--color--white);
	--ldr-ink: var(--wp--preset--color--ink);
	--ldr-ink-2: var(--wp--preset--color--ink-2);
	--ldr-ink-3: var(--wp--preset--color--ink-3);
	--ldr-rule: var(--wp--preset--color--rule);
	--ldr-on-dark: var(--wp--preset--color--on-dark);
	--ldr-on-dark-2: var(--wp--preset--color--on-dark-2);
	--ldr-alu-1: var(--wp--preset--color--alu-1);
	--ldr-alu-2: var(--wp--preset--color--alu-2);
	--ldr-alu-3: var(--wp--preset--color--alu-3);

	--ldr-display: var(--wp--preset--font-family--display);
	--ldr-body: var(--wp--preset--font-family--body);
	--ldr-mono: var(--wp--preset--font-family--mono);

	--ldr-announce-h: 36px;

	/* Brushed aluminum side case: rivets, lid seam, brushing, base sheen. */
	--ldr-rivet: radial-gradient(circle, #FFFFFF 0 1.5px, #A7AEB5 3px, #6B727A 5px, transparent 5.5px);
	--ldr-pannier-bg:
		var(--ldr-rivet) left 14px top 14px / 12px 12px no-repeat,
		var(--ldr-rivet) right 14px top 14px / 12px 12px no-repeat,
		var(--ldr-rivet) left 14px bottom 18px / 12px 12px no-repeat,
		var(--ldr-rivet) right 14px bottom 18px / 12px 12px no-repeat,
		linear-gradient(#80878F, #C9CED3) 7px 22% / calc(100% - 14px) 3px no-repeat,
		repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.07) 0 1px, rgba(0, 0, 0, 0.035) 1px 3px),
		linear-gradient(160deg, #E3E6E9 0%, #CDD2D6 38%, #B8BEC4 62%, #D6DADE 100%);
	--ldr-pannier-shadow:
		inset 0 0 0 3px #8B929A,
		inset 0 0 0 7px #C9CED3,
		inset 0 -18px 30px rgba(0, 0, 0, 0.18);
}

body {
	-webkit-font-smoothing: antialiased;
}

:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 3px solid var(--ldr-yellow);
	outline-offset: 2px;
}

/* Header, main and footer butt together; sections carry their own padding. */
.wp-site-blocks > * + * {
	margin-block-start: 0;
}

/* ---------- Shared bits ---------- */

.is-style-eyebrow {
	font-family: var(--ldr-mono);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--ldr-red);
}

.is-style-eyebrow + .wp-block-heading,
.is-style-eyebrow + .wp-block-post-title,
.is-style-eyebrow + .wp-block-query-title {
	margin-block-start: 12px;
}

.ldr-red {
	color: var(--ldr-red);
}

.ldr-muted {
	color: var(--ldr-on-dark-2);
	max-width: 52ch;
}

.ldr-muted-dark {
	color: var(--ldr-ink-2);
	max-width: 46ch;
}

.ldr-text-link {
	margin: 0;
}

.ldr-text-link a {
	font-family: var(--ldr-display);
	font-size: 16px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none;
	border-bottom: 2px solid var(--ldr-red);
	padding-bottom: 4px;
}

.ldr-text-link a:hover {
	color: var(--ldr-red);
}

.wp-block-button.is-style-ghost .wp-block-button__link {
	background: transparent;
	color: var(--ldr-on-dark);
	box-shadow: inset 0 0 0 2px var(--ldr-asphalt-line);
}

.wp-block-button.is-style-ghost .wp-block-button__link:hover {
	background: transparent;
	box-shadow: inset 0 0 0 2px var(--ldr-on-dark-2);
}

.wp-block-button.is-style-dark .wp-block-button__link {
	background: var(--ldr-asphalt);
	color: #FFFFFF;
}

.wp-block-button.is-style-dark .wp-block-button__link:hover {
	background: var(--ldr-asphalt-3);
}

/* Road center line: yellow dashes on asphalt */
.wp-block-separator.is-style-road {
	border: 0;
	height: 26px;
	margin-block: 0;
	max-width: none;
	width: auto;
	opacity: 1;
	background:
		repeating-linear-gradient(90deg, var(--ldr-yellow) 0 46px, transparent 46px 78px) center / 100% 5px no-repeat,
		var(--ldr-asphalt-2);
}

.ldr-article .wp-block-separator.is-style-road {
	height: 14px;
	margin-block: 2.5rem;
	border-radius: 2px;
}

.ldr-section {
	padding-block: clamp(48px, 7vw, 88px);
}

.ldr-section--tight-top {
	padding-top: 0;
}

.ldr-page-head + .ldr-section--tight-top {
	padding-top: clamp(28px, 4vw, 44px);
}

.ldr-section-head {
	gap: 20px;
	margin-bottom: 30px;
}

.ldr-section-head .wp-block-heading {
	margin-bottom: 0;
}

/* Stack-to-two instead of stack-to-one for small grids of columns */
@media (max-width: 781px) {
	.ldr-spec-strip .ldr-spec-strip__cols.wp-block-columns,
	.ldr-section .ldr-tiles.wp-block-columns,
	.ldr-footer .ldr-footer__cols.wp-block-columns {
		flex-wrap: wrap !important;
	}

	.ldr-spec-strip .ldr-spec-strip__cols.wp-block-columns > .wp-block-column,
	.ldr-section .ldr-tiles.wp-block-columns > .wp-block-column,
	.ldr-footer .ldr-footer__cols.wp-block-columns > .wp-block-column {
		flex-basis: calc(50% - 10px) !important;
		flex-grow: 0;
	}

	.ldr-footer .ldr-footer__cols.wp-block-columns > .wp-block-column:first-child {
		flex-basis: 100% !important;
	}
}

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

.wp-site-blocks > header.wp-block-template-part {
	position: sticky;
	top: calc(-1 * var(--ldr-announce-h));
	z-index: 50;
}

.admin-bar .wp-site-blocks > header.wp-block-template-part {
	top: calc(32px - var(--ldr-announce-h));
}

@media (max-width: 782px) {
	.admin-bar .wp-site-blocks > header.wp-block-template-part {
		top: calc(46px - var(--ldr-announce-h));
	}
}

@media (max-width: 600px) {
	.admin-bar .wp-site-blocks > header.wp-block-template-part {
		top: calc(-1 * var(--ldr-announce-h));
	}
}

.ldr-announce {
	margin: 0;
	height: var(--ldr-announce-h);
	display: flex;
	align-items: center;
	justify-content: center;
	padding-inline: 16px;
	background: var(--ldr-yellow);
	color: var(--ldr-asphalt);
	font-family: var(--ldr-body);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

@media (max-width: 600px) {
	.ldr-announce {
		font-size: 12px;
	}
}

.ldr-header {
	background: var(--ldr-asphalt);
	color: var(--ldr-on-dark);
	border-bottom: 3px solid var(--ldr-red);
}

.ldr-header__row {
	min-height: 72px;
	gap: 20px;
}

.ldr-header__actions {
	gap: 10px;
}

/* Wordmark: red LDR + chrome MOTO on a slanted black plate */
.ldr-wordmark {
	margin: 0;
	font-family: var(--ldr-display);
	font-style: italic;
	font-weight: 900;
	font-size: 38px;
	line-height: 1;
	letter-spacing: -0.01em;
}

.ldr-wordmark a {
	position: relative;
	display: inline-flex;
	align-items: baseline;
	padding: 6px 14px 8px 10px;
	text-decoration: none;
	isolation: isolate;
}

.ldr-wordmark a::before {
	content: "";
	position: absolute;
	inset: 0;
	background: #000000;
	border: 2px solid var(--ldr-alu-3);
	transform: skewX(-14deg);
	z-index: -1;
}

.ldr-wordmark a::after {
	content: "";
	position: absolute;
	left: 10px;
	right: 6px;
	bottom: -5px;
	height: 3px;
	background: var(--ldr-red);
	transform: skewX(-14deg);
}

.ldr-wordmark .ldr {
	color: var(--ldr-red);
}

.ldr-wordmark .moto {
	background: linear-gradient(180deg, #FFFFFF 0%, #FFFFFF 45%, #B9BEC4 55%, #E9EBED 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

@media (max-width: 600px) {
	.ldr-header .ldr-wordmark {
		font-size: 30px;
	}
}

/* Navigation */
.ldr-nav .wp-block-navigation-item__content {
	font-family: var(--ldr-display);
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--ldr-on-dark-2);
	padding: 10px 12px;
}

.ldr-nav .wp-block-navigation-item__content:hover,
.ldr-nav .current-menu-item > .wp-block-navigation-item__content {
	color: var(--ldr-on-dark);
}

.ldr-nav .current-menu-item > .wp-block-navigation-item__content {
	box-shadow: inset 0 -3px 0 var(--ldr-yellow);
}

.ldr-nav .ldr-soon > .wp-block-navigation-item__content::after {
	content: "SOON";
	margin-left: 5px;
	font-family: var(--ldr-mono);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.08em;
	color: var(--ldr-yellow);
	vertical-align: 2px;
}

.ldr-nav .wp-block-navigation__responsive-container-open,
.ldr-nav .wp-block-navigation__responsive-container-close {
	color: var(--ldr-on-dark);
}

/* Core only collapses the menu below 600px; four items + cart don't fit until ~960px. */
@media (min-width: 600px) and (max-width: 959px) {
	.ldr-nav .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}

	.ldr-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none;
	}
}

.ldr-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--ldr-asphalt-2);
	color: var(--ldr-on-dark);
	padding: 24px var(--wp--custom--gutter);
}

.ldr-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-size: 24px;
	padding: 12px 0;
}

/* Mini cart */
.ldr-cart .wc-block-mini-cart__button {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: var(--ldr-asphalt-3);
	border: 1px solid var(--ldr-asphalt-line);
	border-radius: 2px;
	padding: 8px 12px;
	color: var(--ldr-on-dark);
	font-family: var(--ldr-mono);
	font-size: 14px;
}

.ldr-cart .wc-block-mini-cart__button:hover:not([disabled]) {
	opacity: 1;
	border-color: var(--ldr-on-dark-2);
}

.ldr-cart .wc-block-mini-cart__badge {
	background: var(--ldr-red);
	border-color: var(--ldr-red);
	color: #FFFFFF;
	font-family: var(--ldr-mono);
}

/* ---------- Hero ---------- */

.ldr-hero {
	background: var(--ldr-asphalt);
	color: var(--ldr-on-dark);
	overflow: hidden;
	padding-block: clamp(40px, 7vw, 84px);
}

.ldr-hero__grid.wp-block-columns {
	gap: clamp(28px, 5vw, 64px);
	margin-bottom: 0;
}

.ldr-hero__title.wp-block-heading {
	font-size: var(--wp--preset--font-size--huge);
	margin-block-start: 16px;
}

.ldr-hero__lede {
	color: var(--ldr-on-dark-2);
	font-size: 19px;
	max-width: 44ch;
	margin-block: 22px 30px;
}

.ldr-hero__caption {
	margin-block-start: 14px;
	font-family: var(--ldr-mono);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--ldr-on-dark-2);
}

/* The pannier */
.ldr-pannier {
	position: relative;
	aspect-ratio: 1.18 / 1;
	max-width: 100%;
	border-radius: 18px 18px 26px 26px;
	background: var(--ldr-pannier-bg);
	box-shadow: var(--ldr-pannier-shadow), 0 30px 60px rgba(0, 0, 0, 0.45);
	isolation: isolate;
}

.ldr-pannier::before,
.ldr-pannier::after {
	content: "";
	position: absolute;
	top: calc(22% - 14px);
	width: 54px;
	height: 30px;
	border-radius: 4px;
	background: linear-gradient(#2A2E33, #0E1012);
	box-shadow: 0 2px 0 rgba(255, 255, 255, 0.4), 0 4px 8px rgba(0, 0, 0, 0.35);
	z-index: 2;
}

.ldr-pannier::before {
	left: 16%;
}

.ldr-pannier::after {
	right: 16%;
}

.ldr-pannier > .ldr-sticker {
	position: absolute;
	margin: 0;
	mix-blend-mode: multiply; /* drops the white print background onto the aluminum */
	filter: contrast(1.06) saturate(1.08);
}

.ldr-pannier > .ldr-sticker img {
	width: 100%;
	height: auto;
}

.ldr-pannier > .ldr-s1 { width: 58%; left: 5%; top: 29%; transform: rotate(-5deg); }
.ldr-pannier > .ldr-s2 { width: 40%; right: 4%; top: 25%; transform: rotate(7deg); }
.ldr-pannier > .ldr-s3 { width: 37%; right: 9%; bottom: 5%; transform: rotate(-3deg); }

/* ---------- Spec strip ---------- */

.ldr-spec-strip {
	background: var(--ldr-white);
	border-bottom: 1px solid var(--ldr-rule);
	padding-block: 18px;
}

.ldr-spec-strip__cols.wp-block-columns {
	gap: 18px;
	margin-bottom: 0;
}

.ldr-spec {
	position: relative;
	margin: 0;
	padding-left: 38px;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.3;
}

.ldr-spec strong {
	display: inline-block;
	margin-bottom: 3px;
	font-family: var(--ldr-mono);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--ldr-ink-3);
}

.ldr-spec::before {
	content: "";
	position: absolute;
	left: 0;
	top: 2px;
	width: 26px;
	height: 26px;
	background: var(--ldr-red);
	-webkit-mask: var(--ldr-icon) center / contain no-repeat;
	mask: var(--ldr-icon) center / contain no-repeat;
}

.ldr-spec--laminate { --ldr-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M12 3v3M12 18v3M4.2 7.5l2.6 1.5M17.2 15l2.6 1.5M4.2 16.5l2.6-1.5M17.2 9l2.6-1.5'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3C/svg%3E"); }
.ldr-spec--weather { --ldr-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M12 3c-3 4-6 7-6 11a6 6 0 0 0 12 0c0-4-3-7-6-11z'/%3E%3C/svg%3E"); }
.ldr-spec--case { --ldr-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='4' y='6' width='16' height='13' rx='2'/%3E%3Cpath d='M4 10h16M9 6V4h6v2'/%3E%3C/svg%3E"); }
.ldr-spec--ship { --ldr-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M3 7h13v10H3zM16 10h3l2 3v4h-5'/%3E%3Ccircle cx='7' cy='18' r='1.6'/%3E%3Ccircle cx='18' cy='18' r='1.6'/%3E%3C/svg%3E"); }

/* ---------- Shop-by-ride tiles ---------- */

.ldr-tiles.wp-block-columns {
	gap: 14px;
	margin-bottom: 0;
}

.ldr-tile {
	position: relative;
	height: 100%;
	background: var(--ldr-asphalt);
	color: var(--ldr-on-dark);
	border-radius: 3px;
	overflow: hidden;
}

.ldr-tile > * + * {
	margin-block-start: 0;
}

.ldr-tile__img {
	margin: 0;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	background: var(--ldr-white);
}

.ldr-tile__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.35s ease;
}

.ldr-tile:hover .ldr-tile__img img {
	transform: scale(1.04);
}

.ldr-tile__meta {
	padding: 14px 16px 16px;
}

.ldr-tile__meta .wp-block-heading {
	font-size: 26px;
	margin: 0;
}

.ldr-tile__meta .wp-block-heading a {
	text-decoration: none;
	color: inherit;
}

/* Whole tile is the link target */
.ldr-tile__meta .wp-block-heading a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.ldr-tile__meta p {
	margin-block: 6px 0;
	font-family: var(--ldr-mono);
	font-size: 12px;
	color: var(--ldr-on-dark-2);
}

/* ---------- Product cards (Product Collection block) ---------- */

.ldr-products .wc-block-product-template {
	gap: 18px;
	margin-block: 0;
}

.ldr-products .wc-block-product {
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--ldr-white);
	border: 1px solid var(--ldr-rule);
	border-radius: 3px;
	overflow: hidden;
	padding-bottom: 16px;
	text-align: left;
	transition: border-color 0.2s, transform 0.2s;
}

.ldr-products .wc-block-product:hover {
	border-color: var(--ldr-ink-3);
	transform: translateY(-2px);
}

.ldr-products .wc-block-components-product-image {
	margin: 0 0 14px !important;
	padding: 14px;
	aspect-ratio: 1 / 1;
	display: grid;
	place-items: center;
	border-bottom: 1px solid var(--ldr-rule);
}

.ldr-products .wc-block-components-product-image img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.ldr-products .wp-block-post-title {
	margin: 0 16px 4px !important;
	font-family: var(--ldr-display);
	font-size: 22px;
	font-style: normal;
	font-weight: 700;
	line-height: 1.05;
	letter-spacing: 0.01em;
	text-align: left;
}

.ldr-products .wp-block-post-title a {
	text-decoration: none;
	color: var(--ldr-ink);
}

/* Whole card is the link target */
.ldr-products .wp-block-post-title a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.ldr-products .wc-block-components-product-price {
	margin: 6px 16px 0 !important;
	font-family: var(--ldr-mono);
	font-size: 16px;
	font-weight: 600;
	text-align: left;
}

.ldr-products .wc-block-components-product-button {
	position: relative;
	z-index: 2;
	margin: 14px 16px 0 !important;
	justify-content: flex-start;
	align-items: stretch;
}

.ldr-products .wc-block-components-product-button .wp-block-button__link,
.ldr-products .wc-block-components-product-button__button {
	width: 100%;
	font-size: 15px;
	padding: 11px 16px 10px;
	margin: 0;
}

.ldr-products .wc-block-components-product-sale-badge {
	font-family: var(--ldr-mono);
	font-size: 10px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	background: var(--ldr-red);
	color: #FFFFFF;
	border: 0;
	border-radius: 2px;
}

/* ---------- Why-LDR band + odometer ---------- */

.ldr-band-dark {
	background: var(--ldr-asphalt);
	color: var(--ldr-on-dark);
}

.ldr-ld-grid.wp-block-columns {
	gap: clamp(32px, 6vw, 80px);
	margin-bottom: 0;
}

.ldr-ld-title.wp-block-heading {
	font-size: clamp(2.6rem, 6vw, 4.75rem);
}

.ldr-tiers {
	list-style: none;
	margin-block: 0 30px;
	padding: 0;
	border-top: 1px solid var(--ldr-asphalt-line);
}

.ldr-tiers li {
	display: grid;
	grid-template-columns: 9.5em minmax(0, 1fr);
	gap: 14px;
	padding-block: 12px;
	border-bottom: 1px solid var(--ldr-asphalt-line);
	font-size: 16px;
	color: var(--ldr-on-dark-2);
}

.ldr-tiers strong {
	font-family: var(--ldr-mono);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.5;
	color: var(--ldr-on-dark);
	font-variant-numeric: tabular-nums;
}

.ldr-odo-wrap {
	container-type: inline-size;
	background: linear-gradient(#0B0C0E, #16181B);
	border: 2px solid var(--ldr-asphalt-line);
	border-radius: 6px;
	padding: 26px 22px 20px;
	box-shadow: inset 0 2px 14px rgba(0, 0, 0, 0.7);
	color: var(--ldr-on-dark-2);
}

.ldr-odo-label,
.ldr-odo-foot {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	font-family: var(--ldr-mono);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.ldr-odo-foot {
	font-size: 12px;
	letter-spacing: 0.02em;
	text-transform: none;
	flex-wrap: wrap;
}

.ldr-odo-foot b {
	color: var(--ldr-yellow);
	font-weight: 600;
}

.ldr-odo {
	--w: clamp(26px, 11cqi, 58px);
	--h: calc(var(--w) * 1.45);
	display: flex;
	justify-content: center;
	gap: 5px;
	margin-block: 18px 16px;
	font-family: var(--ldr-mono);
	font-size: calc(var(--w) * 0.86);
	font-weight: 600;
	line-height: 1;
	color: #F4F4F2;
	text-align: center;
}

.ldr-odo__d {
	width: var(--w);
	height: var(--h);
	overflow: hidden;
	border-radius: 3px;
	background: linear-gradient(#050506, #26292D 50%, #050506);
	box-shadow: inset 0 0 0 1px #3A3F45;
}

.ldr-odo__d.is-tenth {
	margin-left: 8px;
	background: linear-gradient(#6E060B, var(--ldr-red) 50%, #6E060B);
}

.ldr-odo__strip {
	display: flex;
	flex-direction: column;
	transform: translateY(calc(var(--to, 0) * -1 * var(--h)));
	transition: transform 1.8s cubic-bezier(0.2, 0.7, 0.1, 1);
}

.ldr-odo__strip span {
	height: var(--h);
	display: grid;
	place-items: center;
}

/* ---------- Ride reports ---------- */

.ldr-reports .wp-block-post-template {
	gap: 18px;
}

.ldr-report {
	height: 100%;
	background: var(--ldr-white);
	border: 1px solid var(--ldr-rule);
	border-radius: 3px;
	overflow: hidden;
}

.ldr-report > * + * {
	margin-block-start: 0;
}

.ldr-report .wp-block-post-featured-image {
	margin: 0;
	background: var(--ldr-asphalt-2);
}

.ldr-report__body {
	padding: 16px 18px 18px;
}

.ldr-report__body > * + * {
	margin-block-start: 8px;
}

.ldr-report .wp-block-post-title {
	font-size: 27px;
}

.ldr-report .wp-block-post-title a {
	text-decoration: none;
}

.ldr-report .wp-block-post-excerpt {
	color: var(--ldr-ink-2);
	font-size: 15px;
}

.ldr-report .wp-block-post-excerpt__excerpt {
	margin: 0;
}

.ldr-report .wp-block-post-excerpt__more-text {
	margin-block-start: 8px;
}

/* ---------- LD gear teaser ---------- */

.ldr-gear {
	background: var(--ldr-white);
	border-block: 1px solid var(--ldr-rule);
}

.ldr-gear__grid.wp-block-columns {
	gap: clamp(28px, 5vw, 64px);
	margin-bottom: 0;
}

.ldr-gear-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	border-top: 2px solid var(--ldr-ink);
}

.ldr-gear-list li {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
	padding: 14px 4px;
	border-bottom: 1px solid var(--ldr-rule);
	font-family: var(--ldr-display);
	font-size: 20px;
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.ldr-gear-list li:nth-child(odd) {
	padding-right: 18px;
}

.ldr-gear-list li:nth-child(even) {
	padding-left: 18px;
	border-left: 1px solid var(--ldr-rule);
}

.ldr-gear-list em {
	font-family: var(--ldr-mono);
	font-size: 12px;
	font-style: normal;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
	text-align: right;
	color: var(--ldr-ink-3);
}

@media (max-width: 781px) {
	.ldr-gear-list {
		grid-template-columns: minmax(0, 1fr);
	}

	.ldr-gear-list li:nth-child(n) {
		padding-inline: 4px;
		border-left: 0;
	}
}

/* ---------- Newsletter ---------- */

.ldr-signup {
	background: var(--ldr-red);
	color: #FFFFFF;
	padding-block: 40px;
}

.ldr-signup__row {
	gap: 24px 40px;
}

.ldr-signup .wp-block-heading {
	font-size: clamp(2.1rem, 4.4vw, 3.1rem);
}

.ldr-signup p {
	margin-block-start: 8px;
	opacity: 0.92;
}

/* ---------- Footer ---------- */

.ldr-footer {
	background: var(--ldr-asphalt);
	color: var(--ldr-on-dark-2);
	padding-block: 48px 28px;
	font-size: 15px;
}

.ldr-footer__cols.wp-block-columns {
	gap: 32px;
	margin-bottom: 0;
}

.ldr-footer .wp-block-heading {
	margin: 0 0 12px;
	font-family: var(--ldr-display);
	font-size: 15px;
	font-style: normal;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.1em;
	color: var(--ldr-on-dark);
}

.ldr-footer .ldr-wordmark {
	font-size: 30px;
	margin-bottom: 14px;
}

.ldr-footer__note {
	max-width: 34ch;
}

.ldr-footer__links {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 8px;
}

.ldr-footer__links a {
	text-decoration: none;
}

.ldr-footer__links a:hover {
	color: var(--ldr-on-dark);
}

.ldr-footer__legal {
	margin-block-start: 36px !important;
	padding-top: 18px;
	border-top: 1px solid var(--ldr-asphalt-line);
	gap: 10px;
	font-family: var(--ldr-mono);
	font-size: 12px;
}

.ldr-footer__legal p {
	margin: 0;
}

/* ---------- Page heads (pages, archives, shop, product) ---------- */

.ldr-page-head {
	background: var(--ldr-asphalt);
	color: var(--ldr-on-dark);
	padding-block: 40px 34px;
}

.ldr-page-head--slim {
	padding-block: 18px;
}

.ldr-page-head .wp-block-post-title,
.ldr-page-head .wp-block-query-title,
.ldr-page-head h1.wp-block-heading {
	font-size: clamp(2.9rem, 7vw, 5.25rem);
	margin-block-start: 14px;
}

.ldr-page-head > :first-child {
	margin-block-start: 0;
}

.ldr-page-head__lede,
.ldr-page-head .wp-block-term-description {
	color: var(--ldr-on-dark-2);
	max-width: 60ch;
	margin-block-start: 12px;
}

.ldr-page-head__meta {
	gap: 16px;
}

.ldr-page-head .wp-block-post-date,
.ldr-page-head .wp-block-post-terms {
	font-family: var(--ldr-mono);
	font-size: 12px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--ldr-on-dark-2);
}

.ldr-page-head .wp-block-post-terms a {
	color: var(--ldr-yellow);
	text-decoration: none;
}

.ldr-page-head .ldr-search {
	max-width: 520px;
	margin-block: 24px;
}

.ldr-search .wp-block-search__input {
	border: 1px solid var(--ldr-asphalt-line);
	border-radius: 2px;
	padding: 12px 14px;
	font: 500 16px/1 var(--ldr-body);
}

.ldr-crumbs,
.woocommerce-breadcrumb {
	font-family: var(--ldr-mono);
	font-size: 12px;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--ldr-on-dark-2);
}

.ldr-page-head .woocommerce-breadcrumb {
	margin: 0;
}

.ldr-crumbs a,
.ldr-page-head .woocommerce-breadcrumb a {
	color: inherit;
	text-underline-offset: 3px;
}

.ldr-article {
	padding-block: clamp(32px, 5vw, 56px) clamp(48px, 7vw, 80px);
}

/* Reading pages (policies, ride reports): section headings sized for text, not for banners */
.ldr-article h2.wp-block-heading {
	font-size: clamp(1.6rem, 3.2vw, 2.25rem);
	margin-block-start: 2.25rem;
}

.ldr-article h3.wp-block-heading {
	font-size: clamp(1.3rem, 2.4vw, 1.6rem);
	margin-block-start: 1.75rem;
}

/* ---------- Shop archive ---------- */

.ldr-shop {
	padding-bottom: 70px;
}

.ldr-toolbar {
	padding-block: 24px;
	gap: 14px 24px;
}

.ldr-toolbar__right {
	gap: 16px;
}

.ldr-chips .wc-block-product-categories-list {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
}

.ldr-chips .wc-block-product-categories-list-item {
	display: inline-flex;
	align-items: center;
	margin: 0;
	padding-right: 12px;
	background: var(--ldr-white);
	border: 1px solid var(--ldr-rule);
	border-radius: 2px;
}

.ldr-chips .wc-block-product-categories-list-item:hover {
	border-color: var(--ldr-ink-3);
}

.ldr-chips .wc-block-product-categories-list-item a {
	padding: 9px 6px 9px 14px;
	font-family: var(--ldr-display);
	font-size: 15px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--ldr-ink);
}

.ldr-chips .wc-block-product-categories-list-item-count {
	font-family: var(--ldr-mono);
	font-size: 11px;
	color: var(--ldr-ink-3);
}

.ldr-chips .wc-block-product-categories-list-item-count::before,
.ldr-chips .wc-block-product-categories-list-item-count::after {
	content: none;
}

.woocommerce-result-count,
.wc-block-product-results-count {
	margin: 0;
	font-family: var(--ldr-mono);
	font-size: 12px;
	color: var(--ldr-ink-3);
}

.woocommerce-ordering {
	margin: 0;
}

.woocommerce-ordering select,
.ldr-pdp__cart select {
	font: 500 15px/1.2 var(--ldr-body);
	padding: 9px 10px;
	border: 1px solid var(--ldr-rule);
	border-radius: 2px;
	background: var(--ldr-white);
	color: var(--ldr-ink);
}

.ldr-pagination {
	margin-block-start: 40px;
	gap: 6px;
	font-family: var(--ldr-mono);
	font-size: 14px;
}

.ldr-pagination .page-numbers {
	display: inline-grid;
	place-items: center;
	min-width: 38px;
	height: 38px;
	padding-inline: 8px;
	border: 1px solid var(--ldr-rule);
	border-radius: 2px;
	background: var(--ldr-white);
	text-decoration: none;
}

.ldr-pagination .page-numbers.current {
	background: var(--ldr-asphalt);
	border-color: var(--ldr-asphalt);
	color: #FFFFFF;
}

/* ---------- Single product ---------- */

.ldr-pdp-wrap {
	padding-block: 34px 70px;
}

.ldr-pdp.wp-block-columns {
	gap: clamp(28px, 5vw, 64px);
	align-items: flex-start;
}

.ldr-gallery .woocommerce-product-gallery__image {
	background: var(--ldr-white);
	border: 1px solid var(--ldr-rule);
	border-radius: 3px;
}

.ldr-gallery .woocommerce-product-gallery__image > a,
.ldr-gallery .woocommerce-product-gallery__image > img {
	display: block;
	padding: 22px;
}

.ldr-gallery .flex-control-thumbs {
	display: flex;
	gap: 10px;
	margin: 12px 0 0;
	padding: 0;
	list-style: none;
}

.ldr-gallery .flex-control-thumbs li {
	width: 92px !important;
	margin: 0 !important;
	background: var(--ldr-white);
	border: 1px solid var(--ldr-rule);
	border-radius: 3px;
	padding: 6px;
	display: grid;
	place-items: center;
	aspect-ratio: 1 / 1;
}

/* Thumbnails are uncropped (see functions.php); show the whole sticker and mark the active one */
.ldr-gallery .flex-control-thumbs li img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	opacity: 0.6;
}

.ldr-gallery .flex-control-thumbs li img.flex-active,
.ldr-gallery .flex-control-thumbs li img:hover {
	opacity: 1;
}

.ldr-gallery .flex-control-thumbs li:has(img.flex-active) {
	border: 2px solid var(--ldr-ink);
	padding: 5px;
}

.ldr-pdp__cat {
	font-family: var(--ldr-mono);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.ldr-pdp__cat a {
	color: var(--ldr-red);
	text-decoration: none;
}

.ldr-pdp .wp-block-post-title {
	font-size: clamp(2.75rem, 5.4vw, 4.4rem);
	margin-block-start: 12px;
}

.ldr-pdp__blurb {
	color: var(--ldr-ink-2);
	max-width: 50ch;
}

.ldr-pdp__price,
.ldr-pdp__price .wc-block-components-product-price {
	font-family: var(--ldr-mono);
	font-size: 30px;
	font-weight: 600;
	line-height: 1;
	font-variant-numeric: tabular-nums;
}

.ldr-pdp__cart {
	margin-block-start: 24px;
}

.ldr-pdp__cart table.variations {
	border: 0;
	margin-bottom: 12px;
}

.ldr-pdp__cart table.variations th,
.ldr-pdp__cart table.variations td {
	border: 0;
	padding: 6px 12px 6px 0;
	text-align: left;
	vertical-align: middle;
}

.ldr-pdp__cart table.variations label {
	font-family: var(--ldr-mono);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--ldr-ink-2);
}

.ldr-pdp__cart .reset_variations {
	font-family: var(--ldr-mono);
	font-size: 12px;
	margin-left: 8px;
}

.ldr-pdp__cart form.cart:not(.variations_form),
.ldr-pdp__cart .woocommerce-variation-add-to-cart {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: stretch;
}

.ldr-pdp__cart .quantity .qty {
	width: 70px;
	height: 100%;
	min-height: 48px;
	padding: 10px;
	border: 1px solid var(--ldr-rule);
	border-radius: 2px;
	background: var(--ldr-white);
	font: 600 17px/1 var(--ldr-mono);
	text-align: center;
}

.ldr-pdp__cart .single_add_to_cart_button {
	flex: 1 1 220px;
}

.ldr-pdp__cart .woocommerce-variation-price {
	margin-block: 10px;
	font-family: var(--ldr-mono);
	font-size: 22px;
	font-weight: 600;
}

.ldr-assure {
	list-style: none;
	margin-block-start: 18px;
	padding: 0;
	display: grid;
	gap: 8px;
	font-size: 15px;
	color: var(--ldr-ink-2);
}

.ldr-assure li {
	position: relative;
	padding-left: 28px;
}

.ldr-assure li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 3px;
	width: 18px;
	height: 18px;
	background: var(--ldr-red);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4'%3E%3Cpath d='M4 12l5 5L20 6'/%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' fill='none' stroke='black' stroke-width='2.4'%3E%3Cpath d='M4 12l5 5L20 6'/%3E%3C/svg%3E") center / contain no-repeat;
}

.ldr-pdp__sku {
	font-family: var(--ldr-mono);
	font-size: 12px;
	color: var(--ldr-ink-3);
}

.ldr-pdp__details .wc-tabs {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	margin: 48px 0 20px;
	padding: 0;
	border-bottom: 2px solid var(--ldr-ink);
}

.ldr-pdp__details .wc-tabs li {
	margin: 0;
}

.ldr-pdp__details .wc-tabs li a {
	display: block;
	padding: 10px 14px 9px;
	font-family: var(--ldr-display);
	font-size: 18px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--ldr-ink-2);
}

.ldr-pdp__details .wc-tabs li.active a {
	background: var(--ldr-ink);
	color: #FFFFFF;
}

.ldr-pdp__details .woocommerce-Tabs-panel {
	max-width: 760px;
}

.ldr-pdp__details .woocommerce-product-attributes {
	width: 100%;
	border-collapse: collapse;
}

.ldr-pdp__details .woocommerce-product-attributes th,
.ldr-pdp__details .woocommerce-product-attributes td {
	padding: 10px 0;
	border-top: 1px solid var(--ldr-rule);
	text-align: left;
	vertical-align: top;
}

.ldr-pdp__details .woocommerce-product-attributes th {
	width: 38%;
	font-family: var(--ldr-mono);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--ldr-ink-3);
}

.ldr-pdp__details .woocommerce-product-attributes td p {
	margin: 0;
}

/* "Preview on an aluminum case" toggle (assets/js/case-preview.js) */
.ldr-case-toggle {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 12px;
	padding: 10px 14px;
	border: 1px solid var(--ldr-rule);
	border-radius: 2px;
	background: linear-gradient(160deg, var(--ldr-alu-1), var(--ldr-alu-2));
	color: var(--ldr-ink);
	font-family: var(--ldr-mono);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	cursor: pointer;
}

.ldr-case-toggle[aria-pressed="true"] {
	border: 2px solid var(--ldr-ink);
	padding: 9px 13px;
}

.ldr-on-case .woocommerce-product-gallery__image {
	background: var(--ldr-pannier-bg);
	box-shadow: var(--ldr-pannier-shadow);
	border-radius: 14px;
	overflow: hidden;
}

.ldr-on-case .woocommerce-product-gallery__image img {
	mix-blend-mode: multiply;
	transform: rotate(-3deg) scale(0.8);
	transform-origin: center 60%;
}

.ldr-on-case .zoomImg,
.ldr-on-case .woocommerce-product-gallery__trigger {
	display: none !important;
}

/* ---------- Motion preferences ---------- */

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
	}
}
