/*
 * «Вязаные вещи» — accepted homepage composition.
 * Loaded only on is_front_page(); master header and footer stay in their FINAL files.
 */

/*
 * Desktop full-page capture can expose canvas below #page. Because this file
 * is loaded only on the front page, matching that canvas to the accepted
 * footer is isolated from every other WordPress and WooCommerce screen.
 */
@media (min-width: 761px) {
	html,
	body.ki-homepage-v01 {
		background-color: var(--ki-footer-bg);
	}

	body.ki-homepage-v01 #page.site {
		background-color: var(--ki-bg);
	}
}

/*
 * Bono's mobile master layout leaves a narrow #page canvas visible between
 * the sticky header and the homepage hero. Match that canvas to the hero so
 * the accepted composition starts cleanly without altering either component.
 */
@media (max-width: 760px) {
	body.ki-homepage-v01 #page.site {
		background-color: var(--ki-surface);
	}

	body.ki-homepage-v01 #content.site-content,
	body.ki-homepage-v01 .site-content-inner,
	body.ki-homepage-v01 .ki-home-content-shell {
		margin-top: 0;
		padding-top: 0;
	}
}

body.ki-homepage-v01 .site-content,
body.ki-homepage-v01 .site-content-inner,
body.ki-homepage-v01 .ki-home-content-shell {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
}

body.ki-homepage-v01 .block-after-site {
	display: none;
}

.ki-home {
	--ki-home-bg: #fbf8f4;
	--ki-home-surface: #fffdf9;
	--ki-home-soft: #f1ebe3;
	--ki-home-ink: #28231f;
	--ki-home-muted: #756a60;
	--ki-home-accent: #9a7c5f;
	--ki-home-button: #8e6f51;
	--ki-home-button-hover: #7a5d43;
	--ki-home-line: #ddd4ca;
	--ki-home-container: 1180px;
	width: 100%;
	background: var(--ki-home-bg);
	color: var(--ki-home-ink);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 15px;
	line-height: 1.52;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

.ki-home *,
.ki-home *::before,
.ki-home *::after {
	box-sizing: border-box;
}

.ki-home p::before,
.ki-home ul::before,
.ki-home ol::before {
	display: none;
	content: none;
}

.ki-home img {
	display: block;
	width: 100%;
	max-width: 100%;
	margin: 0;
}

.ki-home a,
.ki-home a:visited,
.ki-home a:hover,
.ki-home a:focus,
.ki-home a:active {
	color: inherit;
	text-decoration: none;
}

.ki-home h1,
.ki-home h2,
.ki-home h3,
.ki-home p {
	margin: 0;
}

body.ki-homepage-v01 .ki-home h1,
body.ki-homepage-v01 .ki-home h2,
body.ki-homepage-v01 .ki-home h3 {
	font-family: Georgia, "Times New Roman", serif !important;
	font-weight: 400 !important;
	font-style: normal;
	text-transform: none;
	line-height: 1.08;
}

.ki-home h1 {
	font-size: clamp(40px, 4.15vw, 62px);
	letter-spacing: -.025em;
}

.ki-home h2 {
	font-size: clamp(28px, 2.35vw, 38px);
	letter-spacing: -.018em;
}

.ki-home h3 {
	font-size: 24px;
}

.ki-home-container {
	width: min(var(--ki-home-container), calc(100% - 56px));
	margin: 0 auto;
}

.ki-home a.ki-home-button,
.ki-home a.ki-home-button:visited {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0 24px;
	border: 1px solid var(--ki-home-button);
	background: var(--ki-home-button);
	color: #fff;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .01em;
	transition: background-color .18s ease, border-color .18s ease, color .18s ease;
}

.ki-home a.ki-home-button:hover,
.ki-home a.ki-home-button:focus-visible {
	border-color: var(--ki-home-button-hover);
	background: var(--ki-home-button-hover);
	color: #fff;
}

.ki-home-button:focus-visible,
.ki-home a:focus-visible {
	outline: 2px solid #8e6f51;
	outline-offset: 3px;
}

.ki-home a.ki-home-button--ghost,
.ki-home a.ki-home-button--ghost:visited {
	border-color: #b8aca0;
	background: transparent;
	color: var(--ki-home-ink);
	font-size: 12px;
	font-weight: 300;
}

.ki-home a.ki-home-button--ghost:hover,
.ki-home a.ki-home-button--ghost:focus-visible {
	border-color: #9f8f81;
	background: #f2ece4;
	color: var(--ki-home-ink);
}

.ki-home-section-title {
	margin-bottom: 22px !important;
	text-align: center;
}

.ki-home-hero {
	background: var(--ki-home-surface);
}

.ki-home-hero-grid {
	display: grid;
	grid-template-columns: 44% 56%;
	min-height: 430px;
}

.ki-home-hero-copy {
	display: flex;
	min-width: 0;
	padding: 54px 58px 52px max(28px, calc((100vw - var(--ki-home-container)) / 2));
	flex-direction: column;
	justify-content: center;
}

.ki-home-hero-copy h1 {
	max-width: 520px;
}

.ki-home-hero-copy p {
	max-width: 465px;
	margin-top: 22px;
	color: #514940;
	font-size: 16px;
	line-height: 1.5;
}

.ki-home-hero-actions {
	display: flex;
	gap: 14px;
	margin-top: 28px;
}

.ki-home-hero-image {
	min-height: 430px;
	overflow: hidden;
}

.ki-home-hero-image img {
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.ki-home-products {
	padding: 36px 0 26px;
}

.ki-home-product-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.ki-home-product-card {
	min-width: 0;
}

.ki-home-product-media {
	position: relative;
	display: block;
	aspect-ratio: 1 / 1.06;
	overflow: hidden;
	background: #eee8e1;
}

.ki-home-product-media img {
	height: 100%;
	object-fit: cover;
}

.ki-home-stock-badge {
	position: absolute;
	top: 13px;
	left: 13px;
	padding: 8px 11px;
	background: rgba(255, 253, 249, .93);
	font-size: 10px;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.ki-home-product-copy {
	display: grid;
	padding: 13px 0 14px;
	border-bottom: 1px solid var(--ki-home-line);
	grid-template-rows: auto auto;
	row-gap: 8px;
}

.ki-home-product-row {
	display: grid;
	min-height: 22px;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 14px;
	align-items: start;
}

.ki-home-product-name {
	font-family: Arial, Helvetica, sans-serif !important;
	font-size: 15px !important;
	font-weight: 400 !important;
	line-height: 1.35 !important;
}

.ki-home-product-price {
	font-size: 15px;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.ki-home-product-price del {
	margin-right: 5px;
	color: var(--ki-home-muted);
	font-size: 12px;
}

.ki-home-product-price ins {
	background: transparent;
	text-decoration: none;
}

.ki-home-product-meta {
	color: var(--ki-home-muted);
	font-size: 12px;
	line-height: 1.4;
}

.ki-home-product-more {
	color: #8a7d72 !important;
	font-size: 12px;
	white-space: nowrap;
}

.ki-home-product-more:hover,
.ki-home-product-more:focus-visible {
	color: var(--ki-home-ink) !important;
}

.ki-home-empty {
	padding: 42px 20px;
	border: 1px solid var(--ki-home-line);
	background: var(--ki-home-surface);
	color: var(--ki-home-muted);
	text-align: center;
}

.ki-home-categories {
	padding: 16px 0 30px;
	border-bottom: 1px solid var(--ki-home-line);
}

.ki-home-categories .ki-home-section-title {
	margin-bottom: 20px !important;
}

.ki-home-category-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 12px;
}

.ki-home-category-card {
	display: block;
	min-width: 0;
}

.ki-home-category-image {
	display: block;
	aspect-ratio: 1.02 / 1;
	overflow: hidden;
	background: #eee8e1;
}

.ki-home-category-image img {
	height: 100%;
	object-fit: cover;
	transition: transform .28s ease;
}

.ki-home-category-card:hover .ki-home-category-image img {
	transform: scale(1.025);
}

.ki-home-category-name {
	display: block;
	min-height: 48px;
	padding-top: 11px;
	font-size: 14px;
	line-height: 1.35;
	text-align: center;
}

.ki-home-benefits {
	padding: 28px 0;
}

.ki-home-benefits-heading {
	max-width: 760px;
	margin: 0 auto;
	text-align: center;
}

.ki-home-benefits-heading h2 {
	font-size: clamp(27px, 2.25vw, 37px);
}

.ki-home-benefits-heading p {
	margin-top: 14px;
	color: #5f554c;
	font-size: 14px;
	line-height: 1.48;
}

.ki-home-benefit-grid {
	display: grid;
	margin-top: 28px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.ki-home-benefit {
	padding: 0 24px;
	border-left: 1px solid var(--ki-home-line);
	text-align: center;
}

.ki-home-benefit:first-child {
	border-left: 0;
}

.ki-home-benefit-icon {
	display: block;
	width: 43px;
	height: 43px;
	margin: 0 auto 13px;
	color: var(--ki-home-accent);
}

.ki-home-benefit-icon svg {
	display: block;
	width: 100%;
	height: 100%;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.5;
}

.ki-home-benefit strong {
	display: block;
	margin-bottom: 7px;
	font-size: 14px;
	font-weight: 500;
}

.ki-home-benefit > span:last-child {
	display: block;
	max-width: 200px;
	margin: 0 auto;
	color: var(--ki-home-muted);
	font-size: 11px;
	line-height: 1.45;
}

.ki-home-author {
	padding: 0 0 64px;
}

.ki-home-author-card {
	display: grid;
	min-height: 410px;
	background: var(--ki-home-soft);
	grid-template-columns: 54% 46%;
}

.ki-home-author-photo {
	overflow: hidden;
}

.ki-home-author-photo img {
	height: 100%;
	object-fit: cover;
	object-position: center 44%;
}

.ki-home-author-copy {
	display: flex;
	padding: 36px 42px;
	flex-direction: column;
	justify-content: center;
}

.ki-home-author-copy p {
	max-width: 470px;
	margin-top: 15px;
	color: #4f4740;
	font-size: 14px;
	line-height: 1.62;
}

.ki-home-author-copy p + p {
	margin-top: 9px;
}

.ki-home-author-stats {
	display: grid;
	margin-top: 22px;
	border-top: 1px solid #d7ccc0;
	border-bottom: 1px solid #d7ccc0;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ki-home-author-stat {
	min-width: 0;
	padding: 13px 12px 14px;
	border-left: 1px solid #d7ccc0;
}

.ki-home-author-stat:first-child {
	padding-left: 0;
	border-left: 0;
}

.ki-home-author-stat strong {
	display: block;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 25px;
	font-weight: 400;
	line-height: 1.08;
	white-space: nowrap;
}

.ki-home-author-stat span {
	display: block;
	margin-top: 5px;
	color: var(--ki-home-muted);
	font-size: 10px;
	line-height: 1.35;
}

.ki-home-author-copy .ki-home-button {
	align-self: flex-start;
	margin-top: 22px;
}

.ki-home-archive {
	padding: 0 0 64px;
}

.ki-home-archive-grid {
	display: grid;
	grid-template-columns: 31% repeat(3, minmax(0, 1fr));
	gap: 16px;
	align-items: start;
}

.ki-home-archive-copy {
	padding: 8px 20px 0 0;
}

.ki-home-archive-copy p {
	max-width: 280px;
	margin-top: 14px;
	color: #554b43;
	font-size: 14px;
	line-height: 1.58;
}

.ki-home-archive-copy .ki-home-button {
	margin-top: 21px;
}

.ki-home-archive-item {
	position: relative;
	aspect-ratio: 1 / 1.02;
	overflow: hidden;
	background: #e9e2da;
}

.ki-home-archive-item img {
	height: 100%;
	object-fit: cover;
}

.ki-home-sold-badge {
	position: absolute;
	top: 11px;
	left: 11px;
	padding: 7px 10px;
	background: rgba(255, 253, 249, .92);
	font-size: 10px;
	letter-spacing: .03em;
	text-transform: uppercase;
}

.ki-home-reviews {
	padding: 54px 0 58px;
	background: var(--ki-home-soft);
}

.ki-home-reviews-heading {
	max-width: 720px;
	margin: 0 auto 28px;
	text-align: center;
}

.ki-home-reviews-summary {
	display: flex;
	margin-top: 12px;
	align-items: center;
	justify-content: center;
	gap: 10px;
	color: #5f554c;
	font-size: 13px;
}

.ki-home-reviews-score {
	color: var(--ki-home-ink);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 22px;
}

.ki-home-reviews-stars {
	color: var(--ki-home-accent);
	font-size: 14px;
	letter-spacing: .12em;
}

.ki-home-reviews-source {
	color: var(--ki-home-muted);
}

.ki-home-reviews-widget {
	width: 100%;
	height: 0;
	overflow: hidden;
}

.ki-home-reviews.is-live .ki-home-reviews-widget {
	height: auto;
	overflow: visible;
}

.ki-home-reviews.is-live .ki-home-reviews-fallback {
	display: none;
}

.ki-home-reviews-widget iframe {
	display: block;
	width: 100% !important;
	height: 100%;
	max-width: 1170px;
	margin: 0 auto;
	border: 0;
	outline: 0;
}

.ki-home-reviews-grid {
	display: grid;
	min-height: 252px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}

.ki-home-reviews-grid:focus-visible {
	outline: 2px solid #8e6f51;
	outline-offset: 5px;
}

.ki-home-review-card {
	display: flex;
	min-width: 0;
	min-height: 252px;
	padding: 24px 24px 21px;
	border: 1px solid #d9d0c7;
	background: var(--ki-home-surface);
	flex-direction: column;
}

.ki-home-review-card-top {
	display: flex;
	align-items: center;
	gap: 11px;
}

.ki-home-review-avatar {
	display: flex;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: #ded5cb;
	color: #544a42;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 17px;
	align-items: center;
	justify-content: center;
	flex: 0 0 38px;
}

.ki-home-review-name,
.ki-home-review-date {
	display: block;
}

.ki-home-review-name {
	font-size: 13px;
	font-weight: 500;
}

.ki-home-review-date {
	margin-top: 2px;
	color: var(--ki-home-muted);
	font-size: 10px;
}

.ki-home-review-rating {
	margin-top: 17px;
	color: var(--ki-home-accent);
	font-size: 13px;
	letter-spacing: .1em;
}

.ki-home-review-product {
	margin-top: 7px;
	color: var(--ki-home-muted);
	font-size: 11px;
	line-height: 1.35;
}

.ki-home-review-text {
	margin-top: 16px;
	color: #453e38;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 16px;
	line-height: 1.55;
}

.ki-home-review-origin {
	margin-top: auto;
	padding-top: 18px;
	color: #877a6f;
	font-size: 10px;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.ki-home-reviews-link {
	display: flex;
	margin-top: 27px;
	justify-content: center;
}

.ki-home-reviews-link a {
	display: inline-flex;
	min-height: 44px;
	border-bottom: 1px solid #a58e77;
	font-size: 12px;
	align-items: center;
}

.ki-home-reviews-link a:hover,
.ki-home-reviews-link a:focus-visible {
	border-color: #806449;
	color: #806449;
}

.ki-home-delivery {
	padding: 48px 0 36px;
}

.ki-home-delivery .ki-home-section-title {
	margin-bottom: 20px !important;
}

.ki-home-delivery-grid {
	display: grid;
	max-width: 900px;
	margin: 0 auto;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 22px;
}

.ki-home-delivery-item {
	text-align: center;
}

.ki-home-delivery-icon {
	display: flex;
	height: 62px;
	margin-bottom: 7px;
	align-items: center;
	justify-content: center;
}

.ki-home-delivery-icon img {
	width: auto;
	height: 56px;
	object-fit: contain;
}

.ki-home-delivery-item strong {
	display: block;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.35;
}

.ki-home-delivery-copy {
	width: min(100%, 820px);
	max-width: none;
	margin: 22px auto 0 !important;
	padding: 0 20px;
	color: var(--ki-home-muted);
	font-size: 14px;
	line-height: 1.55;
	text-align: center;
}

.ki-home-cta {
	padding: 40px 0 38px;
	border-top: 1px solid var(--ki-home-line);
	border-bottom: 1px solid var(--ki-home-line);
	background: #f0ebe4;
	text-align: center;
}

.ki-home-cta h2 {
	font-size: clamp(27px, 2.25vw, 36px);
}

.ki-home-cta p {
	margin-top: 7px;
	color: var(--ki-home-muted);
	font-size: 12px;
}

.ki-home-cta .ki-home-button {
	margin-top: 15px;
}

@media (max-width: 1040px) {
	.ki-home-hero-grid {
		grid-template-columns: 1fr 1fr;
	}

	.ki-home-hero-copy {
		padding-right: 32px;
		padding-left: 32px;
	}

	.ki-home-category-grid {
		grid-template-columns: repeat(3, 1fr);
	}

	.ki-home-benefit-grid {
		grid-template-columns: repeat(2, 1fr);
		row-gap: 28px;
	}

	.ki-home-benefit:nth-child(3) {
		border-left: 0;
	}

	.ki-home-author-copy {
		padding-right: 32px;
		padding-left: 32px;
	}

	.ki-home-author-stat {
		padding-right: 6px;
		padding-left: 6px;
	}

	.ki-home-author-stat strong {
		font-size: 18px;
	}

	.ki-home-archive-grid {
		grid-template-columns: 1fr repeat(3, 1fr);
	}

	.ki-home-reviews-grid {
		overflow-x: auto;
		grid-template-columns: none;
		grid-auto-columns: calc((100% - 18px) / 2);
		grid-auto-flow: column;
		overscroll-behavior-inline: contain;
		scroll-snap-type: x proximity;
		scrollbar-width: none;
	}

	.ki-home-reviews-grid::-webkit-scrollbar {
		display: none;
	}

	.ki-home-review-card {
		scroll-snap-align: start;
	}
}

@media (max-width: 760px) {
	.ki-home {
		font-size: 14px;
	}

	.ki-home-container {
		width: min(calc(100% - 28px), var(--ki-home-container));
	}

	.ki-home-hero-grid {
		grid-template-columns: 1fr;
	}

	.ki-home-hero-copy {
		padding: 26px 14px 34px;
	}

	.ki-home-hero-copy h1 {
		max-width: 100%;
	}

	.ki-home-hero-copy p {
		font-size: 15px;
	}

	.ki-home-hero-image {
		min-height: 300px;
	}

	.ki-home-hero-actions {
		align-items: stretch;
		flex-direction: column;
	}

	.ki-home-hero-actions .ki-home-button {
		width: 100%;
	}

	.ki-home-products {
		padding-top: 30px;
	}

	.ki-home-product-grid {
		grid-template-columns: 1fr;
		gap: 28px;
	}

	.ki-home-product-media {
		aspect-ratio: 4 / 4.35;
	}

	.ki-home-categories {
		padding-top: 8px;
	}

	.ki-home-category-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 13px;
	}

	.ki-home-category-card:last-child {
		grid-column: 1 / -1;
	}

	.ki-home-category-card:last-child .ki-home-category-image {
		aspect-ratio: 2 / 1;
	}

	.ki-home-category-name {
		min-height: 42px;
		font-size: 13px;
	}

	.ki-home-benefit-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.ki-home-benefit {
		padding: 0 14px;
	}

	.ki-home-author-card {
		grid-template-columns: 1fr;
	}

	.ki-home-author-photo {
		min-height: 330px;
	}

	.ki-home-author-copy {
		padding: 30px 24px 34px;
	}

	.ki-home-author {
		padding-bottom: 52px;
	}

	.ki-home-author-stat {
		padding-right: 9px;
		padding-left: 9px;
	}

	.ki-home-author-stat strong {
		font-size: 21px;
	}

	.ki-home-archive-grid {
		grid-template-columns: 1fr 1fr;
	}

	.ki-home-archive-copy {
		padding: 0 0 5px;
		grid-column: 1 / -1;
	}

	.ki-home-archive-copy p {
		max-width: 100%;
	}

	.ki-home-archive-item:last-child {
		aspect-ratio: 2 / 1;
		grid-column: 1 / -1;
	}

	.ki-home-archive {
		padding-bottom: 52px;
	}

	.ki-home-reviews {
		padding: 44px 0 47px;
	}

	.ki-home-reviews-heading {
		margin-bottom: 23px;
	}

	.ki-home-reviews-summary {
		gap: 7px;
		flex-wrap: wrap;
	}

	.ki-home-reviews-grid {
		grid-auto-columns: 88%;
		gap: 13px;
	}

	.ki-home-review-card {
		min-height: 265px;
		padding: 22px 20px 20px;
	}

	.ki-home-delivery {
		padding-top: 44px;
	}

	.ki-home-delivery-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 24px 14px;
	}

	.ki-home-delivery-copy {
		width: 100%;
		margin-top: 20px !important;
		padding: 0;
		font-size: 13px;
	}

	.ki-home-cta {
		padding-top: 25px;
		padding-bottom: 23px;
	}
}

@media (max-width: 390px) {
	.ki-home-benefit-grid {
		grid-template-columns: 1fr;
	}

	.ki-home-benefit {
		padding: 18px 0 0;
		border-top: 1px solid var(--ki-home-line);
		border-left: 0;
	}

	.ki-home-benefit:first-child {
		padding-top: 0;
		border-top: 0;
	}

	.ki-home-archive-grid {
		grid-template-columns: 1fr;
	}

	.ki-home-archive-item:last-child {
		aspect-ratio: 1 / 1.02;
		grid-column: auto;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ki-home *,
	.ki-home *::before,
	.ki-home *::after {
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
	}
}
