/* Эксклюзив Карнизоff — styles on top of Kadence.
   Red and black, as on the old site: brand red fields, black type, white and light-grey grounds; Prata headings (set in the Customizer), Manrope text.
   Square corners and 1px hairlines everywhere; photographs are never framed. */

:root {
	--km-ink: #141414;
	--km-text: #2e2e2e;
	--km-muted: #6b6b6b;
	--km-stone: #f4f4f4;
	--km-stone-2: #e9e9e9;
	--km-line: #e3e3e3;
	--km-bronze: #d23a26; /* deep red: links, buttons, small accents on white (4.7:1) */
	--km-brass: #f14833; /* brand red from the old site: hairlines, underlines */
	--km-brass-light: #f47363;
	--km-red: #f14833; /* accents only: rules, underlines, accent words on black — never a page-sized field */
	--km-red-deep: #d23a26;
	--km-pad: var(--global-content-edge-padding, 1.5rem);
	--km-width: var(--global-content-width, 1240px);
	--km-ease: cubic-bezier(.16, 1, .3, 1);
	--km-track: .12em;
	--km-phone-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.1.4 2.3.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1A17 17 0 0 1 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.3 0 .7-.2 1L6.6 10.8z'/%3E%3C/svg%3E");
	--km-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='square'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6'/%3E%3C/svg%3E");
}

/* ---------- browser surfaces ---------- */
::selection { background: #fbd3cd; color: var(--km-ink); }
html { accent-color: var(--km-bronze); scrollbar-color: #bdbdbd var(--km-stone); }
:focus-visible { outline: 2px solid var(--km-bronze); outline-offset: 3px; }
.entry-content a:not([class]) { color: var(--km-red-deep); text-underline-offset: .2em; text-decoration-thickness: 1px; }
.entry-content a:not([class]):hover { color: var(--km-ink); }
h1, h2, h3, .entry-title, .page-title { text-wrap: balance; }

/* ---------- header: one row, sticky; condenses and gains a hairline once the page scrolls ---------- */
#masthead {
	position: sticky;
	top: 0;
	z-index: 100;
	background: #fff;
	transition: box-shadow .3s;
}
#masthead .site-main-header-wrap .site-header-row-container-inner { border-bottom: 1px solid transparent; transition: border-color .3s; }
#masthead .site-main-header-inner-wrap { transition: min-height .3s var(--km-ease); }
.km-scrolled #masthead .site-main-header-wrap .site-header-row-container-inner { border-bottom-color: var(--km-line); }
@media (min-width: 1025px) {
	.km-scrolled #masthead .site-main-header-inner-wrap { min-height: 68px; }
}
.site-branding .custom-logo { transition: max-width .3s var(--km-ease); }
.admin-bar #masthead { top: 32px; }
@media (max-width: 782px) {
	.admin-bar #masthead { top: 0; }
}

/* ---------- header ---------- */
.site-branding a.brand { gap: 14px; text-decoration: none; }
.site-branding .site-title {
	font-family: var(--global-heading-font-family);
	font-size: 21px;
	font-weight: 400;
	line-height: 1.1;
	color: var(--km-ink);
}
/* menu: airy tracked caps; the underline is the text's own, 10px below the letters and exactly word-wide */
.header-navigation .menu > li > a,
.main-navigation .primary-menu-container > ul > li.menu-item > a {
	padding: 12px 16px;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--km-text);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-decoration-color: transparent;
	text-underline-offset: 10px;
	transition: color .25s, text-decoration-color .25s;
}
.main-navigation .primary-menu-container > ul > li.menu-item:last-child > a { padding-right: 0; }
.main-navigation .primary-menu-container > ul > li.menu-item > a:hover { color: var(--km-ink); text-decoration-color: currentColor; }
.main-navigation .primary-menu-container > ul > li.menu-item.current-menu-item > a,
.main-navigation .primary-menu-container > ul > li.menu-item.current_page_parent > a { color: var(--km-ink); text-decoration-color: var(--km-brass); }

.header-html p, .mobile-html p { margin: 0; }
.header-html { margin-left: 36px; padding-left: 32px; border-left: 1px solid var(--km-brass); }
.km-hcontact { display: flex; align-items: center; gap: 28px; }
.km-hwa,
.header-html.inner-link-style-normal a.km-hwa {
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--km-text);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-decoration-color: var(--km-line);
	text-underline-offset: 10px;
	transition: color .25s, text-decoration-color .25s;
}
.km-hwa:hover { color: var(--km-ink); text-decoration-color: currentColor; }
/* logo + five menu items + phone fill the 1240px row; WhatsApp lives in the drawer, product call box and contacts */
.header-html .km-hwa { display: none; }
.mobile-html .km-hcontact { flex-direction: column-reverse; align-items: stretch; gap: 12px; }
#mobile-drawer .mobile-html a.km-hwa {
	display: block;
	padding: 14px 18px;
	border: 1px solid rgba(255, 255, 255, .2);
	color: #f2f2f2;
	text-decoration: none;
	text-align: center;
}

.km-hphone,
.header-html.inner-link-style-normal a.km-hphone,
.mobile-html a.km-hphone {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	color: var(--km-ink);
	text-decoration: none !important;
	white-space: nowrap;
}
.km-hphone__icon {
	flex: none;
	width: 18px;
	height: 18px;
	background: var(--km-bronze);
	-webkit-mask: var(--km-phone-ico) center / contain no-repeat;
	mask: var(--km-phone-ico) center / contain no-repeat;
}
.km-hphone__text { display: flex; flex-direction: column; line-height: 1.25; }
.km-hphone__label {
	font-size: 11px;
	letter-spacing: var(--km-track);
	text-transform: uppercase;
	color: var(--km-muted);
}
.km-hphone__num { font-size: 17px; font-weight: 600; letter-spacing: .01em; font-variant-numeric: tabular-nums; }
.km-hphone:hover .km-hphone__num { color: var(--km-bronze); }

/* mobile drawer */
#mobile-drawer .drawer-inner { background: var(--km-ink); }
#mobile-drawer .mobile-navigation ul li > a,
#mobile-drawer .mobile-navigation ul li .drawer-nav-drop-wrap {
	font-family: var(--global-heading-font-family);
	font-size: 24px;
	letter-spacing: 0;
	color: #f2f2f2;
	border-color: rgba(255, 255, 255, .1);
}
#mobile-drawer .mobile-navigation ul li.current-menu-item > a { color: #fff; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .25em; }
#mobile-drawer .mobile-html { margin-top: 32px; color: #9a9a9a; font-size: 14px; line-height: 1.6; }
#mobile-drawer .mobile-html a.km-hphone {
	display: flex;
	width: 100%;
	margin-bottom: 16px;
	padding: 16px 18px;
	border: 1px solid var(--km-brass);
	color: #f2f2f2;
}
#mobile-drawer .km-hphone__icon { background: #f2f2f2; }
#mobile-drawer .km-hphone__label { color: #9a9a9a; }

/* ---------- buttons ---------- */
/* square, 52px tall; filled ink is the primary action, a 1px outline the secondary */
.entry-content .wp-block-button__link,
.km-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	min-height: 54px;
	padding: 10px 28px;
	border: 1px solid var(--km-ink);
	border-radius: 0;
	background: var(--km-ink);
	color: #fff;
	font-size: 13px !important;
	font-weight: 600;
	letter-spacing: var(--km-track);
	line-height: 1.2;
	text-transform: uppercase;
	text-decoration: none;
	box-shadow: none;
	transition: background .25s, color .25s, border-color .25s;
}
.entry-content .wp-block-button__link:hover,
.km-btn:hover {
	background: #2a2a2a;
	border-color: #2a2a2a;
	color: #fff;
}
.entry-content .wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent;
	color: var(--km-ink);
	border-color: var(--km-ink);
}
.entry-content .wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--km-ink);
	color: #fff;
}
.wp-block-buttons { gap: 12px; }

/* call button: phone glyph, label and the number itself; the one red block on a screen */
.km-btn { padding: 10px 28px 10px 22px; text-align: left; background: var(--km-red-deep); border-color: var(--km-red-deep); }
.km-btn:hover { background: #b8301e; border-color: #b8301e; }
.km-btn__icon {
	flex: none;
	width: 20px;
	height: 20px;
	background: #f2f2f2;
	-webkit-mask: var(--km-phone-ico) center / contain no-repeat;
	mask: var(--km-phone-ico) center / contain no-repeat;
}
.km-btn__text { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.km-btn__phone {
	font-size: 16px;
	font-weight: 500;
	letter-spacing: .01em;
	text-transform: none;
	color: #f2f2f2;
	font-variant-numeric: tabular-nums;
}

/* text link with a drawn arrow */
.km-more {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: var(--km-track);
	text-transform: uppercase;
	text-decoration: none !important;
	color: var(--km-ink) !important;
	border-bottom: 2px solid var(--km-red);
	padding-bottom: 4px;
}
.km-more::after {
	content: "";
	width: 18px;
	height: 18px;
	background: currentColor;
	-webkit-mask: var(--km-arrow) center / contain no-repeat;
	mask: var(--km-arrow) center / contain no-repeat;
}
.km-more { transition: color .25s, border-color .25s; }
.km-more:hover { color: var(--km-red-deep) !important; border-color: var(--km-red-deep); }

/* accent words in headings, as on the old site («Идеи для Вас») */
.km-accent { color: var(--km-red-deep); }

/* ---------- typography helpers ---------- */
.km-eyebrow { display: none; } /* legacy label class; headings carry their own weight now */
.km-lead { font-size: 1.15rem; line-height: 1.7; color: var(--km-text); max-width: 36em; }
.km-note { font-size: 14px; color: var(--km-muted); }

/* ---------- page sections ---------- */
.km-section {
	padding-block: clamp(72px, 9vw, 136px);
	padding-inline: var(--km-pad);
}
.km-section--tint { background: var(--km-stone); }
.km-section > * { max-width: var(--km-width); margin-inline: auto; }
.entry-content > .km-section,
.entry-content > .km-hero { margin-block: 0; }

.km-head {
	display: flex;
	flex-wrap: wrap;
	align-items: end;
	justify-content: space-between;
	gap: 16px 48px;
	margin-bottom: clamp(36px, 4vw, 56px);
}
.km-head > .wp-block-group__inner-container { display: contents; }
.km-head h2 { margin: 0; max-width: 16em; }
.km-head .km-lead { margin: 0; flex-basis: 100%; }
.km-head p:has(.km-more) { margin: 0; }

.entry-content h2 { font-size: clamp(32px, 3.6vw, 48px); line-height: 1.15; font-weight: 400; }

/* ---------- hero: a poster-scale title, copy and actions on one line, three rooms beneath ---------- */
.km-hero { background: var(--km-stone); color: var(--km-ink); padding: clamp(40px, 5vw, 80px) var(--km-pad) clamp(56px, 6vw, 96px); }
.km-hero > .wp-block-group__inner-container { max-width: var(--km-width); margin-inline: auto; }
.km-hero h1 {
	margin: 0;
	font-size: clamp(44px, 7.2vw, 104px);
	font-weight: 400;
	line-height: .98;
	letter-spacing: -.02em;
}
.km-hero__row > .wp-block-group__inner-container,
.km-hero__row:not(:has(> .wp-block-group__inner-container)) {
	display: grid;
	grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
	gap: 28px clamp(40px, 6vw, 96px);
	align-items: end;
	margin-top: clamp(28px, 3vw, 44px);
}
.km-hero .km-lead { margin: 0; font-size: clamp(17px, 1.3vw, 19px); max-width: 34em; }
.km-hero .km-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; }
.km-actions > .wp-block-group__inner-container { display: contents; }
.km-actions > * > *, .km-actions p { margin: 0 !important; }
.km-hero .km-note { flex-basis: 100%; }
.km-hero__strip > .wp-block-group__inner-container,
.km-hero__strip:not(:has(> .wp-block-group__inner-container)) {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	margin-top: clamp(40px, 5vw, 72px);
}
.entry-content .km-hero__strip figure.wp-block-image { margin: 0; }
.km-hero__strip img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }

/* desktop: the whole hero fits the window under the 88px header — title and actions take what they need,
   the photo strip takes the rest (capped so tall screens don't blow the 795px photos up) */
@media (min-width: 1025px) {
	.km-hero {
		display: flex;
		flex-direction: column;
		/* min-height beats max-height in CSS, so the cap lives inside min() */
		min-height: min(calc(100svh - 88px), 1000px);
		padding-block: clamp(24px, 5vh, 64px) clamp(24px, 4vh, 48px);
	}
	.admin-bar .km-hero { min-height: min(calc(100svh - 88px - 32px), 1000px); }
	.km-hero > .wp-block-group__inner-container { display: flex; flex-direction: column; flex: 1; min-height: 0; width: 100%; }
	.km-hero h1 { font-size: clamp(44px, min(7.2vw, 10.5vh), 104px); }
	.km-hero__row > .wp-block-group__inner-container,
	.km-hero__row:not(:has(> .wp-block-group__inner-container)) { margin-top: clamp(16px, 3vh, 44px); }
	.km-hero__strip { flex: 1; min-height: 0; display: flex; flex-direction: column; }
	.km-hero__strip > .wp-block-group__inner-container,
	.km-hero__strip:not(:has(> .wp-block-group__inner-container)) {
		flex: 1;
		min-height: 170px;
		max-height: 440px;
		margin-top: clamp(20px, 4vh, 56px);
		grid-template-rows: minmax(0, 1fr);
	}
	.entry-content .km-hero__strip figure.wp-block-image { display: flex; flex-direction: column; min-height: 0; height: 100%; }
	.km-hero__strip img { flex: 1; min-height: 0; height: 100%; aspect-ratio: auto; }
	.km-hero__strip figcaption { flex: none; padding-top: 10px; font-size: clamp(17px, 2.2vh, 20px); }
}
/* short laptop screens: the address line (also in the header and contacts) gives its room to the photos */
@media (min-width: 1025px) and (max-height: 780px) {
	.km-hero .km-note { display: none; }
}
.km-hero__strip figcaption {
	margin: 0;
	padding-top: 12px;
	font-family: var(--global-heading-font-family);
	font-size: 20px;
	line-height: 1.25;
	color: var(--km-ink);
	text-align: left;
}

/* ---------- reasons to come: four quiet columns on white ---------- */
.km-features { padding-block: clamp(56px, 6vw, 88px); border-bottom: 1px solid var(--km-line); }
.km-features .wp-block-columns { gap: clamp(28px, 4vw, 64px); margin: 0; }
.km-feature { padding-top: 24px; border-top: 2px solid var(--km-red); }
.km-feature h3 { margin: 0 0 10px; font-size: 22px; font-weight: 400; line-height: 1.25; }
.km-feature p { margin: 0; font-size: 15.5px; line-height: 1.65; color: var(--km-text); }

/* ---------- about: typographic, no photo ---------- */
.km-about2 h2 { margin: 0 0 24px; }
.km-about2__lead {
	max-width: 24em;
	margin: 0 0 clamp(36px, 4vw, 56px);
	font-family: var(--global-heading-font-family);
	font-size: clamp(26px, 2.8vw, 38px);
	line-height: 1.3;
	color: var(--km-ink);
}
.wp-block-columns.km-about2__cols { gap: clamp(32px, 5vw, 80px); margin: 0; padding-top: 32px; border-top: 1px solid var(--km-ink); }
.km-about2__cols p { color: var(--km-text); }

/* ---------- interiors: editorial mosaic, the first frame large ---------- */
.km-ideas > .wp-block-group__inner-container,
.km-ideas:not(:has(> .wp-block-group__inner-container)) {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	grid-auto-rows: clamp(180px, 19vw, 270px);
	gap: 12px;
}
.km-ideas > .wp-block-group__inner-container,
.km-ideas:not(:has(> .wp-block-group__inner-container)) { grid-auto-flow: dense; }
/* nine frames on three columns, the first 2x2: four closed rows (two columns on phones: five) */
.entry-content .km-ideas figure.wp-block-image {
	display: flex;
	flex-direction: column;
	min-height: 0;
	margin: 0;
}
.entry-content .km-ideas figure.wp-block-image:first-child { grid-column: span 2; grid-row: span 2; }
.entry-content .km-ideas figure.wp-block-image { overflow: hidden; }
.km-ideas figure > img { flex: 1; min-height: 0; background: var(--km-stone-2); }
.km-ideas img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transform: scale(1.04);
	transition: transform .6s var(--km-ease);
}
.km-ideas figure:hover img { transform: scale(1); }
.km-ideas figcaption {
	/* sits on the band colour above the image so the settling photo slides under it */
	position: relative;
	z-index: 1;
	flex: none;
	background: var(--km-stone);
	margin: 0;
	padding: 10px 0 0;
	color: var(--km-ink);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.3;
	text-align: left;
}
.km-ideas figure:first-child figcaption { font-family: var(--global-heading-font-family); font-weight: 400; font-size: 20px; padding-top: 12px; }

/* the interiors band is black: photos read best on it, and it carries the "black" half of the red-and-black brand */
.km-section--tint:has(.km-ideas) { background: var(--km-ink); }
.km-section--tint:has(.km-ideas) h2 { color: #fff; }
.km-section--tint:has(.km-ideas) .km-accent { color: var(--km-red); }
.km-section--tint:has(.km-ideas) .km-ideas figcaption { background: var(--km-ink); color: #f2f2f2; }
.km-section--tint:has(.km-ideas) .km-ideas figure > img { background: #222; }

/* ---------- instructions ---------- */
.km-steps { gap: clamp(24px, 3vw, 40px); }
.km-steps .wp-block-column { display: flex; flex-direction: column; }
.km-steps figure { margin: 0 0 22px; background: #fff; border: 1px solid var(--km-line); }
.km-steps img { width: 100%; aspect-ratio: 16 / 9; object-fit: contain; padding: 18px; display: block; }
.km-steps h3 { margin: 0 0 16px; font-size: 22px; font-weight: 400; }
.km-steps p { margin: auto 0 0; }

/* ---------- contacts ---------- */
.km-contacts,
.entry-content ul.km-contacts { list-style: none; margin: 0 0 32px; padding: 0; }
.km-contacts li { padding: 18px 0; border-bottom: 1px solid var(--km-line); font-size: 17px; }
.km-contacts li:first-child { padding-top: 0; }
.km-contacts li span {
	display: block;
	margin-bottom: 4px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: var(--km-track);
	text-transform: uppercase;
	color: var(--km-muted);
}
.km-contacts a { color: var(--km-ink); text-decoration: none; font-variant-numeric: tabular-nums; }
.km-contacts a:hover { color: var(--km-bronze); }
.km-contacts-cols { gap: clamp(40px, 6vw, 96px); }
.km-map { min-height: 400px; background: var(--km-stone); }

/* instructions page */
.km-instruction { scroll-margin-top: 140px; padding-bottom: 48px; margin-bottom: 56px; border-bottom: 1px solid var(--km-line); }
.km-instruction:last-child { border-bottom: 0; }
.km-instruction img { max-width: 100%; height: auto; border: 1px solid var(--km-line); }
.km-instruction ol { padding-left: 1.2em; }
.km-instruction li { margin-bottom: .5em; padding-left: .3em; }
.km-instruction li::marker { color: var(--km-bronze); font-variant-numeric: tabular-nums; font-weight: 600; }

/* ---------- page ground: white; the limestone is reserved for bands ---------- */
body { background: #fff; }
.content-bg,
body.content-style-boxed .entry.single-entry,
body.content-style-boxed .content-bg.loop-entry { box-shadow: none; }

/* ---------- page title band (inner pages, catalogue) ---------- */
/* left-aligned, poster-scale title like the home hero */
.entry-hero .entry-hero-container-inner { background: var(--km-stone); }
.entry-hero h1.entry-title, .entry-hero .page-title, .entry-hero .archive-description, .entry-hero .term-description { color: var(--km-ink); }
/* a short red rule under the page title; only on the h1 — Kadence also puts .page-title on the <header> wrapper */
.entry-hero h1.entry-title::after, .entry-hero h1.page-title::after { content: ""; display: block; width: 48px; height: 2px; margin-top: 20px; background: var(--km-red); }
.entry-hero .entry-header {
	min-height: 0;
	padding-block: clamp(36px, 4vw, 56px);
	align-items: flex-start;
	justify-content: flex-end;
	text-align: left;
}
.entry-hero h1.entry-title,
.entry-hero h1.page-title {
	margin: 0;
	font-size: clamp(40px, 5.6vw, 80px);
	font-weight: 400;
	line-height: 1;
	letter-spacing: -.015em;
}
.entry-hero .kadence-breadcrumbs, .entry-hero .woocommerce-breadcrumb { margin-bottom: 20px; }
.entry-hero .archive-description, .entry-hero .term-description { margin-top: 16px; max-width: 40em; text-align: left; }
.kadence-breadcrumbs,
.woocommerce-breadcrumb {
	font-size: 12px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--km-muted);
}
.kadence-breadcrumbs a, .woocommerce-breadcrumb a { text-decoration: none; color: var(--km-text); }
.kadence-breadcrumbs a:hover, .woocommerce-breadcrumb a:hover { color: var(--km-red-deep); }
.term-description, .woocommerce-products-header__description { color: var(--km-text); }

/* ---------- catalogue ---------- */
/* card = white photo plate with a hairline, title and count under it.
   Kadence's .content-bg rules are stronger than ours, hence the !important below */
.woocommerce ul.products li.product,
.woocommerce ul.products li.product-category {
	display: flex;
	flex-direction: column;
	padding: 0 !important;
	background: transparent !important;
	border: 0;
	border-radius: 0;
	overflow: visible;
	box-shadow: none !important;
}
.woocommerce ul.products li.product .entry-content-wrap,
.woocommerce ul.products li.product-category .product-details { transform: none !important; }
.woocommerce ul.products li.product-category > a {
	display: flex;
	flex-direction: column;
	flex: 1;
	text-decoration: none;
}
.woocommerce ul.products li.product a.woocommerce-loop-image-link,
.woocommerce ul.products li.product-category > a > img,
.woocommerce ul.products li.product img { display: block; }
.woocommerce ul.products li.product img,
.woocommerce ul.products li.product-category img {
	width: 100%;
	margin: 0 !important;
	aspect-ratio: 1 / 1;
	object-fit: contain;
	padding: 18px;
	background: #fff;
	border: 1px solid var(--km-line);
	border-radius: 0;
	transition: border-color .3s;
}
.woocommerce ul.products li.product:hover img,
.woocommerce ul.products li.product-category:hover img { border-color: var(--km-ink); }
.woocommerce ul.products li.product:hover .woocommerce-loop-product__title a,
.woocommerce ul.products li.product-category:hover .woocommerce-loop-category__title { color: var(--km-red-deep); }
.woocommerce ul.products li.product .product-details,
.woocommerce ul.products li.product-category .product-details {
	flex: 1;
	margin: 0 !important;
	padding: 16px 0 6px !important;
	background: transparent !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product-category .woocommerce-loop-category__title {
	margin: 0;
	padding: 0;
	font-family: var(--global-body-font-family);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: 0;
	color: var(--km-ink);
}
.woocommerce ul.products li.product-category .count {
	display: block;
	margin-top: 6px;
	background: none;
	padding: 0;
	font-family: var(--global-body-font-family);
	font-size: 13px;
	font-weight: 500;
	color: var(--km-muted);
	font-variant-numeric: tabular-nums;
}
.woocommerce ul.products li.product .button {
	padding: 0;
	background: none;
	border: 0;
	box-shadow: none;
	color: var(--km-bronze);
	font-size: 12px !important;
	letter-spacing: var(--km-track);
}
.woocommerce ul.products li.product .button:hover { color: var(--km-ink); background: none; }
/* one arrow everywhere: Kadence's icon gives way to the drawn arrow */
.woocommerce ul.products li.product .button .kadence-svg-iconset { display: none; }
.woocommerce ul.products li.product .button::after,
.site-footer .km-footer-cats li:last-child a::after {
	content: "";
	display: inline-block;
	width: 15px;
	height: 15px;
	margin-left: 8px;
	vertical-align: -2px;
	background: currentColor;
	-webkit-mask: var(--km-arrow) center / contain no-repeat;
	mask: var(--km-arrow) center / contain no-repeat;
}
/* the whole card links; the «Подробнее» label is redundant in a catalogue without a cart */
.woocommerce ul.products li.product .product-action-wrap,
.woocommerce ul.products li.product .button { display: none !important; }
.km-finish {
	margin: 6px 0 0;
	font-size: 13px;
	line-height: 1.45;
	color: var(--km-muted);
}

/* sections row on category pages */
.km-catnav { margin: 0 0 clamp(28px, 3vw, 44px); border-bottom: 1px solid var(--km-line); }
.km-catnav ul { display: flex; flex-wrap: wrap; gap: 4px 28px; margin: 0; padding: 0 0 16px; list-style: none; }
.km-catnav a {
	display: inline-block;
	padding: 6px 0;
	font-size: 14px;
	color: var(--km-text);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-decoration-color: transparent;
	text-underline-offset: 8px;
	transition: color .25s, text-decoration-color .25s;
}
.km-catnav a:hover { color: var(--km-ink); text-decoration-color: currentColor; }
.km-catnav a[aria-current] { color: var(--km-ink); font-weight: 600; text-decoration-color: var(--km-brass); }
.woocommerce .woocommerce-result-count { color: var(--km-muted); font-size: 14px; }
.woocommerce .woocommerce-ordering select { border-radius: 0; border-color: var(--km-line); }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span { border-radius: 0; }

/* ---------- single product ---------- */
.single-product div.product .product_title {
	margin-bottom: 16px;
	font-size: clamp(36px, 4vw, 56px);
	font-weight: 400;
	line-height: 1.05;
	letter-spacing: -.01em;
}
.single-product div.product .product_meta { display: none; }
/* product shots sit on a white plate with the catalogue's hairline */
.single-product div.product .woocommerce-product-gallery { border: 1px solid var(--km-line); background: #fff; padding: clamp(16px, 3vw, 40px); }
.single-product div.product .woocommerce-product-gallery .flex-viewport,
.single-product div.product .woocommerce-product-gallery__image img { border-radius: 0; }
/* Kadence spaces thumbs with 5px white top/right borders; replace that with a gap and a hairline */
.woocommerce div.product div.images .flex-control-thumbs { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.woocommerce div.product div.images .flex-control-thumbs li { width: 72px; margin: 0; padding: 0; }
.woocommerce div.product div.images .flex-control-thumbs li img { border: 1px solid var(--km-line); opacity: .55; transition: opacity .25s, border-color .25s; }
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active,
.woocommerce div.product div.images .flex-control-thumbs li img:hover { opacity: 1; border-color: var(--km-ink); }
.single-product div.product .woocommerce-product-details__short-description { font-size: 17px; color: var(--km-text); }

/* finishes as a row of square tags */
.km-spec { display: grid; gap: 12px; margin: 20px 0 0; }
.km-spec__label {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: var(--km-track);
	text-transform: uppercase;
	color: var(--km-muted);
}
.km-spec__list { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.km-spec__list li { margin: 0; padding: 7px 14px; border: 1px solid var(--km-line); font-size: 14px; color: var(--km-ink); }

/* call box: the one dark block on the page, because the phone is the checkout */
.km-callbox {
	margin: 32px 0;
	padding: clamp(24px, 3vw, 40px);
	background: var(--km-ink);
	color: #c8c8c8;
}
.km-callbox__title { margin: 0 0 6px; font-size: 14px; letter-spacing: .02em; color: #c8c8c8; }
.km-callbox__phone,
.entry-summary .km-callbox__phone {
	display: inline-block;
	font-family: var(--global-heading-font-family);
	font-size: clamp(30px, 3vw, 40px);
	line-height: 1.15;
	color: #fff;
	text-decoration: none;
	font-variant-numeric: lining-nums tabular-nums;
}
.km-callbox__phone:hover { color: #fff; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; }
.km-callbox__text { margin: 12px 0 24px; color: #c8c8c8; }
.km-callbox__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.km-callbox .km-btn { background: var(--km-red-deep); border-color: var(--km-red-deep); color: #fff; }
.km-callbox .km-btn .km-btn__icon { background: #fff; }
.km-callbox .km-btn .km-btn__phone { display: none; }
.km-callbox .km-btn:hover { background: #b8301e; border-color: #b8301e; color: #fff; }
.km-callbox .km-btn--ghost { background: transparent; border-color: rgba(255, 255, 255, .35); color: #f2f2f2; padding-left: 24px; }
.km-callbox .km-btn--ghost:hover { background: transparent; border-color: #f2f2f2; color: #fff; }
.km-callbox__meta { margin: 24px 0 0; padding-top: 20px; border-top: 1px solid rgba(241, 72, 51, .6); font-size: 14px; line-height: 1.6; color: #9a9a9a; }

/* description tabs: plain text tabs with the menu's underline */
.woocommerce div.product .woocommerce-tabs { border: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; margin: 0 0 28px; border-bottom: 1px solid var(--km-line); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { margin: 0 28px 0 0; padding: 0; background: none; border: 0; border-radius: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	padding: 0 0 14px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: var(--km-track);
	text-transform: uppercase;
	color: var(--km-muted);
	border-bottom: 1px solid transparent;
	margin-bottom: -1px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--km-ink); border-bottom-color: var(--km-brass); }
.woocommerce div.product .woocommerce-tabs .panel { padding: 0; border: 0; box-shadow: none; }
.related.products > h2, .upsells.products > h2 { margin-bottom: 32px; font-size: clamp(28px, 3vw, 40px); font-weight: 400; }

/* ---------- footer ---------- */
.site-footer .site-middle-footer-wrap { color: #a8a8a8; font-size: 15px; }
.site-footer .site-bottom-footer-wrap {
	color: #8c8c8c;
	font-size: 13px;
	border-top: 1px solid rgba(241, 72, 51, .6);
}
.site-footer a { color: #f2f2f2; text-decoration: none; transition: color .2s; }
.site-footer a:hover { color: #fff; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .25em; }
.site-footer .km-footer-logo { display: block; width: 64px; height: auto; margin-bottom: 22px; filter: invert(1); }
.site-footer .km-footer-title {
	margin: 0 0 20px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: var(--km-track);
	text-transform: uppercase;
	color: #f2f2f2;
}
.site-footer .km-footer-cats { list-style: none; margin: 0; padding: 0; }
.site-footer ul.km-contacts { margin-left: 0; padding: 0; }
.site-footer .km-footer-cats li { padding: 5px 0; }
.site-footer .km-contacts li { padding: 10px 0; font-size: 15px; border-color: rgba(255, 255, 255, .1); }
.site-footer .km-contacts li span { color: #8c8c8c; }
.site-footer .km-contacts a { color: #f2f2f2; }

/* ---------- floating call button (phones, tablets) ---------- */
.km-fab {
	position: fixed;
	right: 16px;
	bottom: 16px;
	z-index: 999;
	display: none;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--km-red-deep);
	color: #fff;
	box-shadow: 0 6px 18px rgba(0, 0, 0, .28);
}
.km-fab:hover { color: #fff; background: var(--km-ink); }

@media (prefers-reduced-motion: reduce) {
	.km-ideas img { transition: none; transform: none; }
}

@media (max-width: 1024px) {
	.km-fab { display: flex; }
	.km-hero__row > .wp-block-group__inner-container,
	.km-hero__row:not(:has(> .wp-block-group__inner-container)) { grid-template-columns: 1fr; align-items: start; }
	.km-ideas > .wp-block-group__inner-container,
	.km-ideas:not(:has(> .wp-block-group__inner-container)) { grid-template-columns: repeat(2, 1fr); grid-auto-rows: clamp(150px, 30vw, 260px); }
	/* two columns: the first frame runs full width, the other eight pair up */
	.entry-content .km-ideas figure.wp-block-image:first-child { grid-row: span 1; }
}
@media (max-width: 767px) {
	.site-branding .site-title { font-size: 18px; }
	.km-hero h1 { font-size: clamp(38px, 11vw, 48px); line-height: 1.02; }
	/* the three rooms become a swipeable strip that bleeds to the screen edges */
	.km-hero__strip > .wp-block-group__inner-container,
	.km-hero__strip:not(:has(> .wp-block-group__inner-container)) {
		grid-template-columns: none;
		grid-auto-flow: column;
		grid-auto-columns: 78%;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scroll-padding-inline: var(--km-pad);
		margin-inline: calc(-1 * var(--km-pad));
		padding-inline: var(--km-pad);
		scrollbar-width: none;
	}
	.km-hero__strip figure { scroll-snap-align: start; }
	/* sections row scrolls sideways instead of stacking six lines */
	.km-catnav { margin-inline: calc(-1 * var(--km-pad)); }
	.km-catnav ul { flex-wrap: nowrap; overflow-x: auto; padding-inline: var(--km-pad); scrollbar-width: none; white-space: nowrap; gap: 24px; }
	.woocommerce div.product .woocommerce-tabs ul.tabs li { display: inline-block; border: 0; }
	.km-hero__strip figcaption { font-size: 18px; }
	.km-feature h3, .km-steps h3 { font-size: 20px; }
	.km-ideas > .wp-block-group__inner-container,
	.km-ideas:not(:has(> .wp-block-group__inner-container)) { gap: 8px; grid-auto-rows: 56vw; }
	.km-ideas figcaption { font-size: 13px; padding-top: 8px; }
	.km-ideas figure:first-child figcaption { font-size: 18px; padding-top: 10px; }
	.km-callbox { padding: 24px 20px; }
	.km-actions, .km-actions .wp-block-buttons, .km-actions .wp-block-button { width: 100%; }
	.wp-block-buttons .wp-block-button { width: 100%; }
	.entry-content .wp-block-buttons .wp-block-button__link { width: 100%; }
	.km-btn { width: 100%; justify-content: flex-start; }
	/* two cards per row on phones: categories, catalogue, related products */
	.woocommerce ul.products,
	.woocommerce-page ul.products {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 24px 12px !important;
	}
	.woocommerce ul.products li.product,
	.woocommerce ul.products li.product-category {
		width: auto !important;
		margin: 0 !important;
	}
	.woocommerce ul.products li.product img,
	.woocommerce ul.products li.product-category img { padding: 10px; }
	.woocommerce ul.products li.product .woocommerce-loop-product__title,
	.woocommerce ul.products li.product-category .woocommerce-loop-category__title {
		font-size: 14.5px !important;
		hyphens: auto;
		overflow-wrap: break-word;
	}
}
