/* Reset + базовая типографика + общие элементы */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	font-family: var(--f-sans);
	font-weight: 300;
	font-size: 14px;
	line-height: 1.4;
	color: var(--c-charcoal-500);
	background: #fff;
	-webkit-font-smoothing: antialiased;
	overflow-x: clip;
}
body.is-locked { overflow: hidden; }
h1, h2, h3, h4, h5, h6, p, ul, ol, figure, blockquote { margin: 0; }
ul, ol { padding: 0; list-style: none; }
img, svg, video { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; text-decoration: none; transition: color var(--t) var(--ease), opacity var(--t) var(--ease); }
button, input, select, textarea { font: inherit; color: inherit; }
button { background: none; border: 0; padding: 0; cursor: pointer; }
:focus-visible { outline: 1px solid var(--c-accent); outline-offset: 2px; }

[hidden] { display: none !important; }

.visually-hidden {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* Контейнер: 1440 макет, поля 20px */
.container {
	width: 100%;
	max-width: var(--page-max);
	margin-inline: auto;
	padding-inline: var(--gutter);
}

/* Типографика из макета */
.t-display {            /* Display/44 Regular */
	font-family: var(--f-head);
	font-weight: 400;
	font-size: 44px;
	line-height: 1;
	letter-spacing: -.03em;
	color: var(--c-charcoal-800);
}
.t-h-upper {            /* Heading/16 Medium Uppercase */
	font-family: var(--f-head);
	font-weight: 500;
	font-size: 16px;
	line-height: 1.2;
	text-transform: uppercase;
}
.t-body { font-size: 14px; line-height: 1.4; font-weight: 300; }
.t-body-tight { font-size: 14px; line-height: 1.4; font-weight: 300; letter-spacing: -.02em; }
.t-medium { font-weight: 500; font-size: 16px; line-height: 1.2; }
.t-meta { font-weight: 400; font-size: 12px; line-height: 1.2; letter-spacing: -.01em; }

@media (max-width: 1023px) {
	.t-display { font-size: 34px; }
}

/* Разделители */
.divider { height: 1px; background: var(--c-line); border: 0; margin: 0; }
.vsep { width: 1px; height: 20px; background: var(--c-line-light); flex: none; }

/* Кнопки */
.btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	padding: 12px 20px;
	border: 1px solid var(--c-line);
	border-radius: 2px;
	font-weight: 300; font-size: 14px; line-height: 1.4; letter-spacing: -.02em;
	color: var(--c-charcoal-500);
	background: transparent;
	transition: background var(--t) var(--ease), color var(--t) var(--ease), border-color var(--t) var(--ease);
}
.btn:hover { border-color: var(--c-charcoal-500); }
.btn--dark { background: var(--c-black); color: var(--c-white); }
.btn--dark:hover { background: var(--c-charcoal-800); }
.btn--accent { background: var(--c-accent); border-color: var(--c-accent); color: var(--c-white); }
.btn--accent:hover { background: #c2621f; }
.btn--block { width: 100%; }
.btn[disabled] { opacity: .4; pointer-events: none; }

.link-accent {
	color: var(--c-accent);
	text-decoration: underline;
	text-underline-position: from-font;
	letter-spacing: -.02em;
}
.link-accent:hover { opacity: .8; }

.link-more {
	font-family: var(--f-head); font-weight: 500; font-size: 16px; line-height: 1.2;
	text-transform: uppercase; color: var(--c-charcoal-500);
}
.link-more:hover { color: var(--c-accent); }

/* Хлебные крошки */
.breadcrumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.breadcrumbs li { display: flex; align-items: center; gap: 8px; font-size: 14px; line-height: 1.4; }
.breadcrumbs li + li::before {
	content: ''; width: 5px; height: 5px; flex: none;
	border-right: 1px solid var(--c-charcoal-800); border-bottom: 1px solid var(--c-charcoal-800);
	transform: rotate(-45deg);
}
.breadcrumbs a:hover { color: var(--c-accent); }
.breadcrumbs [aria-current] { color: var(--c-accent); }

/* Иконка «плюс» → «крестик» */
.plus { position: relative; width: 24px; height: 24px; flex: none; }
.plus::before, .plus::after {
	content: ''; position: absolute; left: 5px; right: 5px; top: 50%; height: 1px;
	background: currentColor; transition: transform var(--t) var(--ease);
}
.plus::after { transform: rotate(90deg); }
.is-open > * > .plus::before, .is-open > .plus::before { transform: rotate(45deg); }
.is-open > * > .plus::after, .is-open > .plus::after { transform: rotate(135deg); }

.site-main { min-height: 40vh; }

/* Заголовки секций */
.t-h44 { font-family: var(--f-head); font-weight: 300; font-size: 44px; line-height: 1; color: var(--c-charcoal-500); }
.t-h34 { font-family: var(--f-head); font-weight: 300; font-size: 34px; line-height: 1.2; color: var(--c-charcoal-500); }
.t-h24 { font-family: var(--f-head); font-weight: 500; font-size: 24px; line-height: 1.2; letter-spacing: -.03em; }
.t-h24u { font-family: var(--f-head); font-weight: 500; font-size: 24px; line-height: 1.2; text-transform: uppercase; color: var(--c-charcoal-500); }
@media (max-width: 1023px) {
	.t-h44 { font-size: 34px; }
	.t-h34 { font-size: 26px; }
}

/* Надпись с оранжевым квадратиком */
.eyebrow { display: inline-flex; align-items: center; gap: 8px; font-weight: 500; font-size: 14px; line-height: normal; letter-spacing: -.01em; color: var(--c-charcoal-500); }
.eyebrow__dot { width: 6px; height: 6px; background: #f3914e; flex: none; }

/* Ссылка «Перейти» с подчёркиванием */
.link-under {
	display: inline-block; align-self: flex-start;
	font-size: 14px; line-height: 1.4; letter-spacing: -.02em; color: var(--c-charcoal-500);
	text-decoration: underline; text-underline-position: from-font; text-decoration-thickness: .5px;
}
.link-under:hover { color: var(--c-accent); }

/* Кнопка-капсула «листать вниз» */
.scroll-pill {
	display: flex; align-items: center; justify-content: center;
	width: 24px; height: 40px; border-radius: 100px;
	background: var(--c-white); color: var(--c-charcoal-500);
}
.scroll-pill svg { transform: rotate(90deg); }
.scroll-pill:hover { color: var(--c-accent); }

body.bg-warm { background: var(--c-warm-50); }

/* Уголки карточек (коллекции, статьи) */
.corner { position: absolute; width: 7px; height: 7px; border: 0 solid var(--c-gray-300); transition: border-color var(--t) var(--ease); pointer-events: none; }
.corner--tl { left: 0; top: 0; border-left-width: 1px; border-top-width: 1px; }
.corner--tr { right: 0; top: 0; border-right-width: 1px; border-top-width: 1px; }
.corner--bl { left: 0; bottom: 0; border-left-width: 1px; border-bottom-width: 1px; }
.corner--br { right: 0; bottom: 0; border-right-width: 1px; border-bottom-width: 1px; }
:hover > .corner { border-color: var(--c-accent); }
@media (max-width: 1023px) { .corner { display: none; } }

/* Плашка-категория с точкой */
.tag-chip {
	display: inline-flex; align-items: center; gap: 4px;
	padding: 4px 8px; background: var(--c-white);
	font-weight: 500; font-size: 14px; line-height: normal; letter-spacing: -.01em; color: var(--c-charcoal-500);
}
.tag-chip::before { content: ''; width: 4px; height: 4px; border-radius: 50%; background: currentColor; }
.tag-chip--muted { background: rgba(217, 217, 217, .2); }
a.tag-chip:hover { color: var(--c-accent); }

/* Общие элементы каталогов и блога */
.catalog__more { text-align: center; padding-top: 40px; }
.catalog__more .link-more.is-loading { opacity: .4; pointer-events: none; }
/* Сортировка */
.sort { position: relative; display: flex; align-items: center; gap: 8px; cursor: pointer; }
.sort select {
	appearance: none; -webkit-appearance: none;
	border: 0; background: none; padding: 0 22px 0 0; cursor: pointer;
	font-size: 14px; line-height: 1.4; letter-spacing: -.02em; font-weight: 300; color: var(--c-charcoal-500);
	text-align: right;
}
.sort svg { position: absolute; right: 0; width: 14px; height: 14px; pointer-events: none; }
.filters__toggle {
	display: flex; align-items: center; gap: 8px;
	font-weight: 500; font-size: 16px; line-height: 1.2; color: var(--c-charcoal-500);
	pointer-events: none;
}
.filters__toggle svg { width: 18px; height: 16px; margin-right: 5px; }

/* 404 */
.page-404__crumbs { padding-block: 20px; }
.page-404 { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 24px; padding: 120px var(--gutter); text-align: center; }
.page-404__code { font-family: var(--f-head); font-weight: 300; font-size: 274px; line-height: 1; color: var(--c-charcoal-500); }
.page-404__btn { padding: 12px 30px; font-weight: 500; letter-spacing: -.01em; }
@media (max-width: 1023px) {
	.page-404 { padding: 80px var(--gutter) 100px; }
	.page-404__code { font-size: 160px; }
}
.woocommerce-notices-wrapper:empty { display: none; } .woocommerce-notices-wrapper { max-width: var(--page-max); margin: 0 auto; padding: 0 var(--gutter); font-size: 14px; }

/* Оранжевая ссылка с тонким подчёркиванием */
.pp-link { color: var(--c-accent); font-size: 14px; text-decoration: underline; text-decoration-thickness: .5px; text-underline-position: from-font; white-space: nowrap; }
.pp-link:hover { opacity: .8; }

/* Горизонтальные ленты: перетаскивание мышью (sliders.js) */
@media (pointer: fine) {
	[data-scroller-track], [data-slider-track] { cursor: grab; }
}
[data-scroller-track].is-dragging, [data-slider-track].is-dragging {
	cursor: grabbing; scroll-snap-type: none !important; scroll-behavior: auto !important; user-select: none;
}
[data-scroller-track].is-dragging *, [data-slider-track].is-dragging * { pointer-events: none; }
