/*
Theme Name: Astra Child – Kortsidakis
Template: astra
Version: 2.0.0
Description: Kortsidakis Leathers child theme: single product page ("the workshop" design).
*/

/* ---------- Single product: tokens & page ---------- */
.single-product {
	--kl-ground: #fbf8f3;
	--kl-ink: #2b1d16;
	--kl-body: #4a3b31;
	--kl-muted: #6e5e52;
	--kl-accent: #8a5a32;
	--kl-brown: #5b3a29;
	--kl-panel: #efe7dc;
	--kl-tag: #f1e8dc;
	--kl-stitch: #cdbdaa;
	--kl-line: #dccfc0;
	--kl-dark: #2a1d16;
	--kl-dark-text: #d9ccbd;
	--kl-gold: #d2ae85;
	--kl-serif: "Cormorant Garamond", Georgia, serif;
}

.single-product,
.single-product .site-content,
.single-product #primary,
.single-product .ast-woocommerce-container,
.single-product.ast-separate-container .ast-article-single,
.single-product.ast-separate-container .site-main > .product {
	background: var(--kl-ground);
}
.single-product.ast-separate-container .site-main > .product,
.single-product.ast-separate-container .ast-woocommerce-container {
	padding: 0;
	box-shadow: none;
}
.single-product.ast-separate-container #primary {
	padding-top: 24px;
}
.single-product .product {
	color: var(--kl-body);
}

.kl-eyebrow,
.single-product .woocommerce-breadcrumb {
	font-size: 11.5px;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--kl-accent);
	margin: 0;
}
.single-product .woocommerce-breadcrumb {
	color: var(--kl-muted);
	letter-spacing: .1em;
	margin-bottom: 22px;
}
.single-product .woocommerce-breadcrumb a {
	color: var(--kl-muted);
}
.single-product .kl-h2 { /* .single-product beats Astra's ".woocommerce h2" */
	font-family: var(--kl-serif);
	font-weight: 500;
	font-size: clamp(34px, 3.4vw, 48px);
	line-height: 1.08;
	color: var(--kl-ink);
	margin: 14px 0 22px;
}

/* ---------- Gallery + buy box ---------- */
.kl-product-top {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
	gap: 72px;
	align-items: start;
}
.single-product .kl-product-top > *,
.single-product .kl-product-top .woo-variation-gallery-wrapper {
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
	max-width: none !important;
}
/* both columns stick, so whichever is shorter stays in view */
.single-product .kl-product-top > * {
	position: sticky;
	top: 32px;
}
.single-product .kl-product-top .onsale,
.single-product .kl-product-top .ast-onsale-card {
	display: none; /* the price already shows the discount */
}

/* kortsidakis-variations gallery */
.single-product .kv-gallery {
	margin-bottom: 0;
}
.single-product .kv-main-wrap {
	position: relative;
	aspect-ratio: 1; /* square: landscape product shots and portrait close-ups both fit whole, and the frame never jumps */
	border-radius: 4px;
	background: var(--kl-panel);
	touch-action: pan-y; /* horizontal swipe changes photo (assets/product.js) */
}
.single-product div.product div.images img.kv-main { /* beats WooCommerce's "div.product div.images img { height: auto }" */
	position: absolute; /* pinned to the square frame, so tall photos can't grow past it and get clipped */
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: contain;
	mix-blend-mode: multiply; /* white photo backgrounds melt into the panel */
}
/* the hide from the logo, stitched: a "handmade" stamp */
.single-product .kv-main-wrap::before {
	content: "";
	position: absolute;
	z-index: 1;
	top: 18px;
	left: 18px;
	width: 72px;
	height: 72px;
	opacity: .85;
	pointer-events: none;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='%235B3A29'%3E%3Cpath stroke-width='2' d='M50 4C60 10 70 6 78 12C84 22 96 22 96 34C92 46 98 56 92 66C84 74 86 86 76 92C66 96 58 90 50 96C42 90 34 96 24 92C14 86 16 74 8 66C2 56 8 46 4 34C4 22 16 22 22 12C30 6 40 10 50 4Z'/%3E%3Cpath stroke-width='1' stroke-dasharray='3 3' d='M50 12C58 17 66 14 72 18C77 26 87 27 87 36C84 46 89 55 84 63C77 70 79 79 71 84C63 87 57 83 50 88C43 83 37 87 29 84C21 79 23 70 16 63C11 55 16 46 13 36C13 27 23 26 28 18C34 14 42 17 50 12Z'/%3E%3Ctext x='50' y='47' text-anchor='middle' fill='%235B3A29' stroke='none' font-family='Georgia,serif' font-size='12' font-weight='600' letter-spacing='1.5'%3EHAND%3C/text%3E%3Ctext x='50' y='62' text-anchor='middle' fill='%235B3A29' stroke='none' font-family='Georgia,serif' font-size='12' font-weight='600' letter-spacing='1.5'%3EMADE%3C/text%3E%3C/svg%3E") center / contain no-repeat;
}
.kl-arrow {
	position: absolute;
	top: 50%;
	z-index: 1;
	width: 44px;
	height: 44px;
	margin-top: -22px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(251, 248, 243, .92);
	cursor: pointer;
}
.kl-arrow::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 9px;
	height: 9px;
	border-top: 1.6px solid var(--kl-ink);
	border-left: 1.6px solid var(--kl-ink);
	transform: translate(-30%, -50%) rotate(-45deg);
}
.kl-arrow--prev {
	left: 14px;
}
.kl-arrow--next {
	right: 14px;
}
.kl-arrow--next::before {
	transform: translate(-70%, -50%) rotate(135deg);
}
.kl-arrow:hover,
.kl-arrow:focus {
	background: #fff;
}
.kl-counter {
	position: absolute;
	right: 18px;
	bottom: 14px;
	font-size: 11.5px;
	letter-spacing: .16em;
	color: var(--kl-body);
}
.kl-single-photo .kl-arrow,
.kl-single-photo .kl-counter {
	display: none;
}
.single-product .kv-main-link {
	cursor: zoom-in;
}

/* full-screen photo viewer (assets/product.js) */
.kl-viewer {
	width: 100vw;
	height: 100vh;
	height: 100dvh;
	max-width: none;
	max-height: none;
	margin: 0;
	padding: 0;
	border: 0;
	background: var(--kl-panel);
	overflow: hidden;
	touch-action: pan-y;
}
.kl-viewer::backdrop {
	background: var(--kl-panel);
}
html:has(.kl-viewer[open]) {
	overflow: hidden; /* no page scrolling behind the viewer */
}
.kl-viewer img {
	display: block;
	width: 100%;
	height: 100%;
	box-sizing: border-box;
	padding: 56px 80px;
	object-fit: contain;
	mix-blend-mode: multiply;
	cursor: zoom-out;
}
.kl-viewer__close {
	position: absolute;
	top: 14px;
	right: 14px;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(251, 248, 243, .92);
	cursor: pointer;
}
.kl-viewer__close::before,
.kl-viewer__close::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 18px;
	height: 1.6px;
	background: var(--kl-ink);
	transform: translate(-50%, -50%) rotate(45deg);
}
.kl-viewer__close::after {
	transform: translate(-50%, -50%) rotate(-45deg);
}
.kl-viewer__close:hover,
.kl-viewer__close:focus {
	background: #fff;
}
.kl-viewer .kl-counter {
	right: 24px;
	bottom: 20px;
}
.single-product .kv-thumbs {
	gap: 10px;
	margin-top: 12px;
}
.single-product .kv-thumb {
	border: 0;
	border-radius: 3px;
	outline: 1px solid transparent;
	outline-offset: 2px;
	opacity: .6;
	transition: opacity .2s;
}
.single-product .kv-gallery .kv-thumbs .kv-thumb img {
	width: 76px;
	height: 76px;
	border-radius: 3px;
	background: var(--kl-panel);
	mix-blend-mode: multiply;
}
.single-product .kv-thumb.is-active,
.single-product .kv-thumb:hover {
	opacity: 1;
	outline: 1.5px solid var(--kl-ink);
}

/* woo-variation-gallery (products not yet on Kortsidakis Variations) */
.single-product .woo-variation-gallery-slider .wvg-single-gallery-image-container img {
	max-height: 72vh;
	width: 100%;
	object-fit: contain;
	mix-blend-mode: multiply;
}
.single-product .woo-variation-gallery-slider-wrapper {
	border-radius: 4px;
	background: var(--kl-panel);
}
.single-product .woo-variation-gallery-thumbnail-slider {
	margin-top: 12px;
}
.single-product .woo-variation-gallery-thumbnail-slider .wvg-gallery-thumbnail-image {
	padding: 0 6px 0 0;
	opacity: .6;
}
.single-product .woo-variation-gallery-thumbnail-slider .wvg-gallery-thumbnail-image.current-thumbnail {
	opacity: 1;
}

/* buy box */
.single-product .summary .kl-eyebrow {
	margin-bottom: 10px;
}
.single-product .summary .product_title {
	font-family: var(--kl-serif);
	font-size: clamp(38px, 3.8vw, 54px);
	line-height: 1.04;
	font-weight: 500;
	letter-spacing: -.01em;
	color: var(--kl-ink);
	margin-bottom: 12px;
}
.single-product div.product .summary p.price { /* beats ".woocommerce-js div.product p.price" */
	font-family: var(--kl-serif);
	font-size: 34px;
	font-weight: 600;
	line-height: 1.1;
	color: var(--kl-ink);
	margin: 18px 0 8px;
}
.single-product div.product .summary p.price del {
	font-size: 22px;
	color: var(--kl-muted);
	margin-right: 8px;
}
.single-product .summary .price ins {
	text-decoration: none;
}
.single-product .kv-badges {
	display: block;
	margin: 0 0 4px;
	font-size: 12.5px;
	color: var(--kl-muted);
}
.single-product .kv-badge {
	display: inline;
	background: none;
	padding: 0;
	font-size: inherit;
	color: inherit;
	border-radius: 0;
}
.single-product .kv-badge + .kv-badge::before {
	content: " · ";
}
.single-product .summary .woocommerce-product-details__short-description {
	color: var(--kl-muted);
	font-size: 15px;
	line-height: 1.6;
	margin: 0;
	padding-bottom: 24px;
	border-bottom: 1px dashed var(--kl-stitch);
	margin-bottom: 22px;
}
.single-product .summary .woocommerce-product-details__short-description strong {
	font-weight: 400;
	color: inherit;
}
.single-product .summary .product_meta {
	display: none; /* category is in the eyebrow, SKUs are mostly empty */
}

/* kortsidakis-variations form */
.single-product .kv-form fieldset {
	position: relative;
	margin-bottom: 26px;
}
.single-product .kv-form legend {
	font-size: 11.5px;
	letter-spacing: .16em;
	color: var(--kl-muted);
	margin-bottom: 14px;
}
.single-product .kv-form legend span {
	margin-left: 6px;
	font-size: 14px;
	font-weight: 500;
	color: var(--kl-ink);
}
.single-product .kv-swatches {
	gap: 12px;
}
.single-product .kv-swatch-dot {
	position: relative;
	width: 42px;
	height: 42px;
	border: 0;
	box-shadow: 0 0 0 1px #d8cbbb;
	background-size: 340%;
	transition: box-shadow .15s;
}
/* saddle stitching on every swatch */
.single-product .kv-swatch-dot::after {
	content: "";
	position: absolute;
	inset: 5px;
	border-radius: 50%;
	border: 1px dashed rgba(239, 228, 214, .75);
}
.single-product .kv-swatch input[value*="blue-stitching"] + .kv-swatch-dot::after {
	border-color: #5b8cf0;
}
.single-product .kv-swatch input[value*="red-stitching"] + .kv-swatch-dot::after {
	border-color: #e5584c;
}
.single-product .kv-swatch:hover .kv-swatch-dot {
	box-shadow: 0 0 0 1px var(--kl-muted);
}
.single-product .kv-swatch input:checked + .kv-swatch-dot {
	box-shadow: 0 0 0 2px var(--kl-ground), 0 0 0 3.5px var(--kl-ink);
}
.single-product .kv-cards {
	grid-template-columns: repeat(auto-fit, minmax(96px, 1fr)); /* three sizes still fit in one row on a phone */
	gap: 10px;
}
.single-product .kv-card-body {
	border: 1px solid var(--kl-line);
	border-radius: 4px;
	padding: 16px 16px 14px;
	background: transparent;
	color: var(--kl-muted);
	font-size: 12.5px;
	transition: border-color .15s;
}
.single-product .kv-card:hover .kv-card-body {
	border-color: var(--kl-muted);
}
.single-product .kv-card-body strong {
	font-family: var(--kl-serif);
	font-size: 23px;
	font-weight: 600;
	line-height: 1.1;
	color: var(--kl-ink);
	margin-bottom: 4px;
}
.single-product .kv-card-price {
	font-size: 14px;
	font-weight: 500;
	color: var(--kl-ink);
	margin-top: 8px;
}
.single-product .kv-card input:checked + .kv-card-body {
	border: 1px solid var(--kl-ink);
	box-shadow: inset 0 0 0 1px var(--kl-ink);
	padding: 16px 16px 14px;
	background: #fff;
}
.single-product .kv-note {
	background: none;
	border: 0;
	border-radius: 0;
	padding: 0;
	margin-top: 12px;
	font-family: var(--kl-serif);
	font-style: italic;
	font-size: 16px;
	line-height: 1.45;
	color: var(--kl-muted);
}
/* one-size products: nothing to choose, and the "every colour in every size" note doesn't apply (dimensions are in the specs) */
.single-product .kv-sizes:has(.kv-card:only-child),
.single-product .kv-form:has(.kv-card:only-child) .kv-note {
	display: none;
}
/* size guide (wpc-product-size-chart), moved next to the sizes by assets/product.js */
.single-product .wpcsc-size-charts-list {
	font-size: 12.5px;
	margin: 0 0 16px;
}
.single-product .kl-has-guide .wpcsc-size-charts-list {
	position: absolute;
	right: 0;
	bottom: calc(100% + 14px); /* on the legend's line: a fieldset's box starts below its legend */
	margin: 0;
}
.single-product .kl-has-guide .wpcsc-size-charts-list-label {
	display: none;
}
.single-product .wpcsc-size-charts-list-item {
	color: var(--kl-accent);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* quantity + add to cart */
.single-product .summary .kv-actions,
.single-product .summary .woocommerce-variation-add-to-cart,
.single-product.product-type-simple .summary form.cart,
.single-product .product-type-simple .summary form.cart {
	display: flex;
	flex-wrap: nowrap;
	gap: 10px;
	border-top: 0;
	padding-top: 0;
}
.single-product .summary form.cart .quantity .qty {
	height: 58px;
	border: 1px solid var(--kl-stitch);
	border-radius: 4px;
	background: transparent;
}
.single-product .summary .single_add_to_cart_button {
	flex: 1;
	height: 58px;
	border-radius: 4px !important;
	background: var(--kl-brown) !important;
	color: #fff !important;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .16em;
	text-transform: uppercase;
}
.single-product .summary .single_add_to_cart_button:hover,
.single-product .summary .single_add_to_cart_button:focus {
	background: var(--kl-ink) !important;
}
.kl-assurance {
	display: flex;
	flex-wrap: wrap;
	gap: 14px 24px;
	list-style: none;
	margin: 26px 0 0;
	padding: 20px 0 0;
	border-top: 1px dashed var(--kl-stitch);
	font-size: 13px;
	line-height: 1.5;
	color: var(--kl-body);
}
.kl-assurance li {
	flex: 1 1 200px;
	display: flex;
	gap: 12px;
	align-items: flex-start;
	margin: 0;
}
.kl-assurance svg {
	flex: 0 0 auto;
	color: var(--kl-accent);
}

/* ---------- Sections under the buy box ---------- */
.kl-sections > section {
	margin-top: 120px;
	display: flex;
	flex-wrap: wrap;
	gap: 64px;
	align-items: flex-start;
}
.kl-sections p {
	margin: 0 0 16px;
}

/* the workshop story: full-bleed dark band */
.kl-sections > .kl-story {
	padding: 120px 0;
	background: var(--kl-dark);
	box-shadow: 0 0 0 100vmax var(--kl-dark);
	clip-path: inset(0 -100vmax);
	color: var(--kl-dark-text);
}
.kl-story .kl-eyebrow {
	color: var(--kl-gold);
}
.kl-story .kl-h2 {
	color: #efe4d6;
}
.kl-story__text {
	flex: 1 1 520px;
	min-width: 0;
	max-width: 620px;
}
.kl-story__link {
	display: inline-block;
	margin-top: 12px;
	color: #efe4d6;
	font-size: 12.5px;
	letter-spacing: .16em;
	text-transform: uppercase;
	text-decoration: underline;
	text-underline-offset: 6px;
}
.kl-story__link:hover,
.kl-story__link:focus {
	color: var(--kl-gold);
}
.kl-timeline {
	flex: 1 1 380px;
	min-width: 0;
	list-style: none;
	margin: 0;
	padding: 0 0 0 28px;
	border-left: 1px dashed #8c6e55;
}
.kl-timeline li {
	position: relative;
	margin: 0;
	padding-bottom: 30px;
}
.kl-timeline li:last-child {
	padding-bottom: 0;
}
.kl-timeline li::before {
	content: "";
	position: absolute;
	left: -34px;
	top: 8px;
	width: 11px;
	height: 11px;
	border-radius: 50%;
	background: var(--kl-dark);
	border: 1px solid var(--kl-gold);
}
.kl-timeline li:last-child::before {
	background: var(--kl-gold);
}
.kl-timeline strong {
	display: block;
	font-family: var(--kl-serif);
	font-size: 26px;
	font-weight: 600;
	line-height: 1.2;
	color: var(--kl-gold);
}

/* details */
.kl-details {
	align-items: center;
}
.kl-details__photo {
	flex: 1 1 440px;
	min-width: 0;
	border-radius: 4px;
	overflow: hidden;
	background: var(--kl-panel);
}
.kl-details__photo img {
	width: 100%;
	height: auto; /* whole photo, at its own proportions */
	display: block;
	mix-blend-mode: multiply;
}
.kl-details__text {
	flex: 1 1 480px;
	min-width: 0;
}
.kl-features {
	list-style: none;
	margin: 30px 0 0;
	padding: 0;
	border-bottom: 1px dashed var(--kl-stitch);
}
.kl-features li {
	display: flex;
	gap: 22px;
	margin: 0;
	padding: 20px 0;
	border-top: 1px dashed var(--kl-stitch);
}
.kl-features__no {
	flex: 0 0 34px;
	font-family: var(--kl-serif);
	font-size: 22px;
	font-weight: 600;
	color: var(--kl-accent);
}
.kl-features strong {
	font-weight: 500;
	color: var(--kl-ink);
}
.kl-features p {
	margin: 0;
	color: var(--kl-muted);
}
.kl-more {
	margin-top: 22px;
}
.kl-more > summary {
	cursor: pointer;
	color: var(--kl-accent);
	font-size: 12.5px;
	letter-spacing: .14em;
	text-transform: uppercase;
	text-decoration: underline;
	text-underline-offset: 5px;
}
.kl-more[open] > summary {
	margin-bottom: 18px;
}
.kl-prose {
	font-size: 15px;
	line-height: 1.75;
}
.kl-prose h2,
.kl-prose h3 {
	font-family: var(--kl-serif);
	font-size: 24px;
	font-weight: 600;
	color: var(--kl-ink);
	margin: 26px 0 8px;
}
.kl-prose br {
	display: none; /* old descriptions use <br> spacers */
}
.kl-prose table {
	border: 0;
	font-size: 14px;
}
.kl-prose table th,
.kl-prose table td {
	border: 0;
	border-bottom: 1px solid var(--kl-line);
	padding: 10px 8px 10px 0;
	background: none;
	text-align: left;
}

/* specifications tag + care */
.kl-tag {
	flex: 1 1 380px;
	min-width: 0;
	max-width: 520px;
	position: relative;
	padding: 48px 34px 34px;
	border-radius: 6px;
	background: var(--kl-tag);
}
.kl-tag::before { /* the punched hole */
	content: "";
	position: absolute;
	top: 16px;
	left: 50%;
	width: 14px;
	height: 14px;
	margin-left: -7px;
	border-radius: 50%;
	background: var(--kl-ground);
	border: 1px solid var(--kl-stitch);
}
.kl-tag::after { /* stitching */
	content: "";
	position: absolute;
	inset: 8px;
	border: 1px dashed #bfa88f;
	border-radius: 3px;
	pointer-events: none;
}
.kl-sections .kl-tag__brand {
	margin: 0;
	text-align: center;
	font-family: var(--kl-serif);
	font-size: 20px;
	font-weight: 600;
	letter-spacing: .32em;
	color: var(--kl-ink);
}
.kl-sections .kl-tag__sub {
	margin: 0 0 22px;
	text-align: center;
	font-size: 11px;
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--kl-muted);
}
.kl-tag dl {
	margin: 0;
	font-size: 14px;
	border-bottom: 1px solid #dccdbb;
}
.kl-tag dl > div {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 11px 0;
	border-top: 1px solid #dccdbb;
}
.kl-tag dt {
	font-weight: 400;
	color: var(--kl-muted);
}
.kl-tag dd {
	margin: 0;
	text-align: right;
	color: var(--kl-ink);
}
.kl-care__text {
	flex: 1 1 440px;
	min-width: 0;
}
.kl-sections .kl-care__label {
	margin: 28px 0 12px;
	font-size: 11.5px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--kl-muted);
}
.kl-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.kl-chips li {
	margin: 0;
	padding: 9px 16px;
	border: 1px dashed #bfa88f;
	border-radius: 999px;
	font-size: 13.5px;
	color: var(--kl-ink);
}

/* faq + reviews */
.kl-faq {
	gap: 24px 64px;
}
.kl-faq > div:first-child {
	flex: 1 1 300px;
	min-width: 0;
}
.kl-faq__list {
	flex: 2 1 560px;
	min-width: 0;
	border-top: 1px dashed var(--kl-stitch);
}
.kl-faq__list > details {
	border-bottom: 1px dashed var(--kl-stitch);
}
.kl-faq__list summary {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	padding: 20px 0;
	cursor: pointer;
	list-style: none;
	font-family: var(--kl-serif);
	font-size: 23px;
	font-weight: 600;
	color: var(--kl-ink);
}
.kl-faq__list summary::-webkit-details-marker {
	display: none;
}
.kl-faq__list summary::after {
	content: "+";
	font-family: Poppins, sans-serif;
	font-size: 22px;
	font-weight: 300;
	color: var(--kl-accent);
}
.kl-faq__list details[open] > summary::after {
	content: "−";
}
.kl-faq__list details > p {
	max-width: 640px;
	margin: 0 0 22px;
}
.kl-reviews #reviews {
	padding-bottom: 22px;
}
.kl-reviews .woocommerce-Reviews-title,
.kl-reviews #reply-title {
	font-family: var(--kl-serif);
	font-size: 22px;
	font-weight: 600;
	color: var(--kl-ink);
}

/* related */
.single-product .related.products {
	margin-top: 120px;
}
.single-product .related.products > h2 {
	font-family: var(--kl-serif);
	font-weight: 500;
	font-size: clamp(34px, 3.4vw, 48px);
	text-align: left;
	color: var(--kl-ink);
	margin-bottom: 26px;
}
.single-product .related.products .astra-shop-thumbnail-wrap,
.single-product .related.products .woocommerce-LoopProduct-link img {
	background: var(--kl-panel);
	border-radius: 4px;
}
.single-product .related.products img {
	mix-blend-mode: multiply;
}
.single-product .related.products .woocommerce-loop-product__title {
	font-family: var(--kl-serif);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.2;
	text-align: left;
	color: var(--kl-ink);
}
.single-product .related.products .astra-shop-summary-wrap,
.single-product .related.products .price {
	text-align: left;
}
.single-product .related.products .price {
	font-size: 13.5px;
	font-weight: 400;
	color: var(--kl-muted);
}
.single-product .related.products .button,
.single-product .related.products .ast-on-card-button {
	display: none;
}

/* ---------- Tablet & phone ---------- */
@media (max-width: 921px) {
	.single-product .kv-card-body,
	.single-product .kv-card input:checked + .kv-card-body {
		padding: 14px 10px 12px;
	}
	.kl-product-top {
		grid-template-columns: minmax(0, 1fr); /* plain 1fr lets slick's slide width blow up the column */
		gap: 28px;
	}
	.single-product .kl-product-top > * {
		position: static;
	}
	/* the grey card used to supply the side padding; without it Astra leaves ~7px */
	.single-product #content > .ast-container {
		padding-left: 20px !important;
		padding-right: 20px !important;
	}
	.single-product.ast-separate-container #primary {
		padding-top: 16px;
	}
	.single-product .woocommerce-breadcrumb {
		margin-bottom: 16px;
	}
	/* full-bleed swipe gallery */
	.single-product .kl-product-top > .woo-variation-product-gallery,
	.single-product .kl-product-top > .kv-gallery {
		margin: 0 calc(50% - 50vw) !important;
		width: 100vw !important;
	}
	.single-product .kv-main-wrap,
	.single-product .woo-variation-gallery-slider-wrapper {
		border-radius: 0;
	}
	.single-product .kv-main-wrap::before {
		width: 58px;
		height: 58px;
		top: 14px;
		left: 14px;
	}
	.single-product .woo-variation-gallery-slider .wvg-single-gallery-image-container img {
		max-height: none;
	}
	.single-product .woo-variation-gallery-slider .slick-arrow {
		display: none !important;
	}
	.single-product .kv-thumbs,
	.single-product .woo-variation-gallery-thumbnail-slider {
		flex-wrap: nowrap;
		overflow-x: auto;
		padding: 2px 20px;
		scrollbar-width: none;
	}
	.single-product .kv-gallery .kv-thumbs .kv-thumb img {
		width: 60px;
		height: 60px;
	}
	.kl-viewer img {
		padding: 64px 0;
	}
	.kl-sections > section,
	.single-product .related.products {
		margin-top: 72px;
		gap: 40px;
	}
	.kl-sections > .kl-story {
		padding: 72px 0;
	}
	.kl-tag {
		padding: 44px 24px 26px;
	}
}
