/* =========================================================
   ГЕКАТА — ПОЛНЫЙ STYLE.CSS
========================================================= */

:root {
	--cream: #f7f3e9;
	--paper: #fffdf8;
	--olive: #30372c;
	--olive-light: #454c3d;
	--gold: #aa8750;
	--gold-light: #c8a66b;
	--text: #35372f;
	--muted: #858177;
	--line: rgba(48, 55, 44, 0.12);
}


/* =========================================================
   БАЗА
========================================================= */

* {
	box-sizing: border-box;
}


html {
	scroll-behavior: smooth;
}


body {
	margin: 0;

	background: var(--cream);

	color: var(--text);

	font-family:
		Arial,
		Helvetica,
		sans-serif;

	-webkit-font-smoothing: antialiased;
}


a {
	color: inherit;

	text-decoration: none;
}


button,
input,
textarea {
	font: inherit;
}


button {
	cursor: pointer;
}


img {
	max-width: 100%;
}


h1,
h2,
h3 {
	font-family:
		Georgia,
		"Times New Roman",
		serif;

	font-weight: 400;
}


.eyebrow {
	color: var(--gold);

	font-size: 9px;

	font-weight: 600;

	letter-spacing: 0.24em;

	text-transform: uppercase;
}


/* =========================================================
   ШАПКА
========================================================= */

.site-header {
	position: sticky;

	top: 0;

	z-index: 1000;

	width: 100%;

	background:
		rgba(248, 244, 234, 0.97);

	border-bottom:
		1px solid rgba(48, 55, 44, 0.08);

	backdrop-filter: blur(14px);
}


.header-inner {
	position: relative;

	width: 100%;

	max-width: 1680px;

	min-height: 92px;

	margin: 0 auto;

	padding:
		0 48px;

	display: flex;

	align-items: center;
}


/* =========================================================
   ЛОГОТИП
========================================================= */

.brand-logo {
	flex: 0 0 auto;

	display: inline-flex;

	flex-direction: column;

	align-items: center;

	justify-content: center;

	color: #3b372f;
}


.brand-name {
	font-family:
		Georgia,
		"Times New Roman",
		serif;

	font-size: 24px;

	line-height: 1;

	letter-spacing: 0.18em;
}


.brand-mark {
	width: 86px;

	height: 22px;

	margin-top: 6px;

	display: block;

	color: var(--gold);
}


.brand-mark svg {
	width: 100%;

	height: 100%;

	display: block;

	fill: currentColor;

	stroke: currentColor;

	stroke-width: 1.3;

	stroke-linecap: round;
}


/* =========================================================
   МЕНЮ
========================================================= */

.main-nav {
	position: absolute;

	left: 50%;

	top: 50%;

	transform:
		translate(-50%, -50%);

	display: flex;

	align-items: center;

	justify-content: center;

	gap: 23px;
}


.main-nav button,
.main-nav a {
	padding:
		9px 0;

	border: 0;

	background: transparent;

	color: #68675f;

	font-size: 10px;

	font-weight: 400;

	line-height: 1;

	white-space: nowrap;

	cursor: pointer;

	transition:
		color 0.2s ease;
}


.main-nav button:hover,
.main-nav a:hover {
	color: var(--gold);
}


/* =========================================================
   КОРЗИНА
========================================================= */

.header-cart {
	margin-left: auto;

	flex: 0 0 auto;

	min-width: 122px;

	height: 44px;

	padding:
		5px 6px 5px 17px;

	display: inline-flex;

	align-items: center;

	justify-content: space-between;

	gap: 12px;

	border:
		1px solid var(--olive);

	border-radius: 999px;

	background: transparent;

	color: var(--olive);

	font-size: 10px;

	text-decoration: none;

	appearance: none;

	-webkit-appearance: none;

	transition:
		background 0.25s ease,
		color 0.25s ease;
}


.header-cart:hover {
	background: var(--olive);

	color: white;
}


.header-cart-count {
	width: 32px;

	min-width: 32px;

	height: 32px;

	padding: 0;

	display: inline-flex;

	align-items: center;

	justify-content: center;

	border-radius: 50%;

	background: var(--olive);

	color: white;

	font-size: 9px;
}


.header-cart:hover
.header-cart-count {
	background: var(--gold);
}


/* =========================================================
   HERO
========================================================= */

.main-hero {
	position: relative;

	width: 100%;

	min-height: 690px;

	overflow: hidden;

	background: #302f27;
}


.hero-image {
	position: absolute;

	inset: 0;

	width: 100%;

	height: 100%;

	display: block;

	object-fit: cover;

	object-position: center;
}


.hero-overlay {
	position: absolute;

	inset: 0;

	background:
		linear-gradient(
			90deg,
			rgba(21, 24, 18, 0.80) 0%,
			rgba(21, 24, 18, 0.59) 31%,
			rgba(21, 24, 18, 0.25) 55%,
			rgba(21, 24, 18, 0.04) 100%
		);
}


.hero-content {
	position: relative;

	z-index: 2;

	max-width: 1500px;

	min-height: 690px;

	margin: 0 auto;

	padding:
		80px 5vw;

	display: flex;

	flex-direction: column;

	align-items: flex-start;

	justify-content: center;

	color: white;
}


.hero-eyebrow {
	color: #d7b878;
}


.hero-content h1 {
	margin:
		18px 0 22px;

	font-size:
		clamp(66px, 7vw, 106px);

	line-height: 0.90;

	letter-spacing: -0.045em;
}


.hero-content p {
	max-width: 470px;

	margin:
		0 0 31px;

	color:
		rgba(255, 255, 255, 0.82);

	font-size: 13px;

	line-height: 1.7;
}


.hero-button {
	padding:
		14px 23px;

	border:
		1px solid rgba(255, 255, 255, 0.64);

	border-radius: 999px;

	background:
		rgba(255, 255, 255, 0.06);

	color: white;

	font-size: 10px;

	transition:
		background 0.25s ease,
		color 0.25s ease;
}


.hero-button:hover {
	background: white;

	color: var(--olive);
}


/* =========================================================
   КАТЕГОРИИ
========================================================= */

.categories-section {
	max-width: 1500px;

	margin: 0 auto;

	padding:
		105px 4vw 115px;
}


.categories-heading {
	margin-bottom: 43px;

	display: flex;

	align-items: flex-end;

	justify-content: space-between;

	gap: 30px;
}


.categories-heading h2 {
	margin:
		10px 0 0;

	color: var(--olive);

	font-size:
		clamp(46px, 5vw, 66px);

	line-height: 1;
}


.categories-heading > p {
	margin: 0;

	color: var(--muted);

	font-size: 11px;

	line-height: 1.6;

	text-align: right;
}


.category-gallery {
	display: grid;

	grid-template-columns:
		repeat(3, minmax(0, 1fr));

	gap: 22px;
}


.category-card {
	position: relative;

	aspect-ratio: 3 / 4;

	overflow: hidden;

	background: #ddd6c9;

	border-radius: 3px;

	cursor: pointer;
}


.category-card > img {
	width: 100%;

	height: 100%;

	display: block;

	object-fit: cover;

	transition:
		transform 0.7s ease;
}


.category-card:hover > img {
	transform:
		scale(1.04);
}


.category-shade {
	position: absolute;

	inset: 0;

	background:
		linear-gradient(
			to bottom,
			rgba(19, 22, 16, 0) 43%,
			rgba(19, 22, 16, 0.18) 66%,
			rgba(19, 22, 16, 0.76) 100%
		);
}


.category-content {
	position: absolute;

	z-index: 2;

	left: 0;

	right: 0;

	bottom: 0;

	padding: 27px;

	display: grid;

	grid-template-columns:
		auto 1fr auto;

	align-items: end;

	gap: 15px;

	color: white;
}


.category-number {
	padding-bottom: 27px;

	color:
		rgba(255, 255, 255, 0.58);

	font-size: 9px;
}


.category-content h3 {
	margin:
		0 0 6px;

	font-size: 31px;
}


.category-content p {
	margin: 0;

	color:
		rgba(255, 255, 255, 0.73);

	font-size: 9px;

	line-height: 1.5;
}


.category-arrow {
	width: 42px;

	height: 42px;

	display: flex;

	align-items: center;

	justify-content: center;

	border:
		1px solid rgba(255, 255, 255, 0.60);

	border-radius: 50%;

	font-size: 18px;
}


.category-card:hover
.category-arrow {
	background: white;

	color: var(--olive);
}


/* =========================================================
   ДОСТАВКА И ОПЛАТА
========================================================= */

.delivery-section {
	max-width: 1500px;

	margin: 0 auto;

	padding:
		110px 4vw 120px;

	border-top:
		1px solid var(--line);
}


.delivery-heading {
	margin-bottom: 48px;

	display: flex;

	align-items: flex-end;

	justify-content: space-between;

	gap: 40px;
}


.delivery-heading h2 {
	margin:
		12px 0 0;

	color: var(--olive);

	font-size:
		clamp(48px, 5vw, 72px);

	line-height: 0.96;
}


.delivery-heading > p {
	max-width: 330px;

	margin: 0;

	color: var(--muted);

	font-size: 11px;

	line-height: 1.7;

	text-align: right;
}


.delivery-grid {
	display: grid;

	grid-template-columns:
		repeat(3, minmax(0, 1fr));

	gap: 18px;
}


.delivery-card {
	min-height: 380px;

	padding: 30px;

	display: flex;

	flex-direction: column;

	border:
		1px solid var(--line);

	border-radius: 20px;

	background: var(--paper);

	transition:
		transform 0.3s ease,
		box-shadow 0.3s ease;
}


.delivery-card:hover {
	transform:
		translateY(-5px);

	box-shadow:
		0 22px 55px
		rgba(45, 40, 31, 0.08);
}


.delivery-card-top {
	margin-bottom: 60px;

	display: flex;

	align-items: center;

	justify-content: space-between;
}


.delivery-number {
	color: var(--gold);

	font-family:
		Georgia,
		serif;

	font-size: 17px;
}


.delivery-symbol {
	width: 52px;

	height: 52px;

	display: flex;

	align-items: center;

	justify-content: center;

	border:
		1px solid rgba(170, 135, 80, 0.35);

	border-radius: 50%;

	color: var(--gold);

	font-family:
		Georgia,
		serif;

	font-size: 16px;
}


.delivery-card h3 {
	margin:
		0 0 16px;

	color: var(--olive);

	font-size: 35px;
}


.delivery-card > p {
	max-width: 330px;

	margin:
		0 0 35px;

	color: var(--muted);

	font-size: 12px;

	line-height: 1.7;
}


.delivery-instruction {
	margin-top: auto;

	padding-top: 21px;

	border-top:
		1px solid var(--line);
}


.delivery-instruction span {
	display: block;

	margin-bottom: 8px;

	color: var(--gold);

	font-size: 8px;

	letter-spacing: 0.16em;

	text-transform: uppercase;
}


.delivery-instruction strong {
	display: block;

	color: #5f6258;

	font-size: 11px;

	font-weight: 400;

	line-height: 1.6;
}


/* =========================================================
   ОПЛАТА
========================================================= */

.payment-panel {
	margin-top: 22px;

	padding: 38px;

	display: grid;

	grid-template-columns:
		70px 1fr minmax(250px, 360px);

	gap: 30px;

	align-items: center;

	border-radius: 20px;

	background: var(--olive);

	color: white;
}


.payment-number {
	color: var(--gold-light);

	font-family:
		Georgia,
		serif;

	font-size: 36px;
}


.payment-main .eyebrow {
	color: var(--gold-light);
}


.payment-main h3 {
	margin:
		9px 0 12px;

	font-size: 33px;

	color: white;
}


.payment-main p {
	max-width: 650px;

	margin: 0;

	color:
		rgba(255, 255, 255, 0.68);

	font-size: 11px;

	line-height: 1.7;
}


.payment-note {
	padding: 20px;

	border:
		1px solid rgba(255,255,255,0.14);

	border-radius: 14px;

	background:
		rgba(255,255,255,0.04);
}


.payment-note span {
	display: block;

	margin-bottom: 8px;

	color: var(--gold-light);

	font-size: 8px;

	letter-spacing: 0.16em;

	text-transform: uppercase;
}


.payment-note p {
	margin: 0;

	color:
		rgba(255,255,255,0.72);

	font-size: 10px;

	line-height: 1.6;
}


/* =========================================================
   О БРЕНДЕ
========================================================= */

.brand-section {
	max-width: 1500px;

	margin: 0 auto;

	padding:
		100px 4vw 120px;

	display: grid;

	grid-template-columns:
		120px 1fr;

	gap: 50px;

	border-top:
		1px solid var(--line);
}


.brand-section-number {
	color: var(--gold);

	font-family:
		Georgia,
		serif;

	font-size: 60px;

	line-height: 1;
}


.brand-section-content {
	max-width: 820px;
}


.brand-section-content h2 {
	margin:
		15px 0 25px;

	color: var(--olive);

	font-size:
		clamp(42px, 5vw, 66px);

	line-height: 1;
}


.brand-section-content p {
	max-width: 640px;

	margin: 0;

	color: var(--muted);

	font-size: 13px;

	line-height: 1.8;
}


/* =========================================================
   КАТАЛОГ
========================================================= */

.catalog-page {
	min-height: 75vh;

	padding:
		60px 4vw 110px;
}


.catalog-head {
	max-width: 1500px;

	margin:
		0 auto 50px;
}


.back-button {
	margin-bottom: 40px;

	padding: 0;

	border: 0;

	background: transparent;

	color: var(--muted);

	font-size: 11px;
}


.back-button:hover {
	color: var(--gold);
}


.catalog-head h1 {
	margin:
		13px 0 15px;

	color: var(--olive);

	font-size:
		clamp(55px, 6vw, 85px);

	line-height: 1;
}


.catalog-head p {
	max-width: 560px;

	color: var(--muted);

	font-size: 13px;

	line-height: 1.7;
}


.products {
	max-width: 1500px;

	margin: 0 auto;

	display: grid;

	grid-template-columns:
		repeat(4, minmax(0, 1fr));

	gap:
		32px 20px;
}


.catalog-product-card {
	overflow: hidden;

	display: flex;

	flex-direction: column;

	background: var(--paper);

	border:
		1px solid rgba(48, 55, 44, 0.08);

	border-radius: 20px;

	cursor: pointer;

	transition:
		transform 0.3s ease,
		box-shadow 0.3s ease;
}


.catalog-product-card:hover {
	transform:
		translateY(-5px);

	box-shadow:
		0 20px 55px
		rgba(48, 42, 33, 0.10);
}


.catalog-product-image {
	position: relative;

	width: 100%;

	aspect-ratio: 3 / 4;

	overflow: hidden;

	background: #e8e2d7;
}


.catalog-product-image img {
	width: 100%;

	height: 100%;

	display: block;

	object-fit: cover;

	transition:
		transform 0.6s ease;
}


.catalog-product-card:hover
.catalog-product-image img {
	transform:
		scale(1.035);
}


.catalog-image-shade {
	position: absolute;

	inset: 0;

	background:
		linear-gradient(
			to bottom,
			transparent 60%,
			rgba(25, 28, 21, 0.18)
		);
}


.catalog-stock-badge {
	position: absolute;

	top: 14px;

	left: 14px;

	padding:
		7px 10px;

	border-radius: 999px;

	background:
		rgba(255, 253, 248, 0.92);

	color: #55584c;

	font-size: 9px;
}


.catalog-open-icon {
	position: absolute;

	right: 14px;

	bottom: 14px;

	width: 40px;

	height: 40px;

	display: flex;

	align-items: center;

	justify-content: center;

	border-radius: 50%;

	background:
		rgba(255, 253, 248, 0.93);

	color: var(--olive);
}


.catalog-product-image.no-image {
	display: flex;

	align-items: center;

	justify-content: center;

	color: var(--gold);

	font-family:
		Georgia,
		serif;

	letter-spacing: 0.20em;
}


.catalog-product-body {
	flex: 1;

	padding: 20px;

	display: flex;

	flex-direction: column;
}


.catalog-product-meta {
	margin-bottom: 12px;

	display: flex;

	justify-content: space-between;

	gap: 10px;
}


.catalog-category {
	color: var(--gold);

	font-size: 8px;

	letter-spacing: 0.16em;

	text-transform: uppercase;
}


.catalog-handmade {
	color: #aaa69d;

	font-size: 8px;
}


.catalog-product-body h3 {
	margin:
		0 0 11px;

	color: var(--olive);

	font-size: 22px;

	line-height: 1.18;
}


.catalog-description {
	min-height: 42px;

	margin:
		0 0 18px;

	overflow: hidden;

	display: -webkit-box;

	-webkit-box-orient: vertical;

	-webkit-line-clamp: 2;

	line-clamp: 2;

	color: var(--muted);

	font-size: 11px;

	line-height: 1.55;
}


.catalog-product-footer {
	margin-top: auto;
}


.catalog-price {
	margin-bottom: 15px;

	color: #85663b;

	font-family:
		Georgia,
		serif;

	font-size: 26px;
}


.catalog-price span {
	font-size: 15px;
}


.catalog-buy-button {
	width: 100%;

	height: 46px;

	padding:
		0 8px 0 16px;

	display: flex;

	align-items: center;

	justify-content: space-between;

	border:
		1px solid var(--olive);

	border-radius: 999px;

	background: transparent;

	color: var(--olive);

	font-size: 10px;
}


.catalog-buy-button:hover {
	background: var(--olive);

	color: white;
}


.catalog-buy-arrow {
	width: 30px;

	height: 30px;

	display: flex;

	align-items: center;

	justify-content: center;

	border-radius: 50%;

	background: var(--olive);

	color: white;

	font-size: 17px;
}


/* =========================================================
   КОРЗИНА
========================================================= */

.cart-overlay {
	position: fixed;

	z-index: 1998;

	inset: 0;

	visibility: hidden;

	opacity: 0;

	background:
		rgba(22, 25, 18, 0.55);

	backdrop-filter: blur(3px);

	transition:
		opacity 0.3s ease,
		visibility 0.3s ease;
}


.cart-overlay.open {
	visibility: visible;

	opacity: 1;
}


.cart-panel {
	position: fixed;

	z-index: 1999;

	top: 0;

	right: -500px;

	width: min(460px, 100%);

	height: 100vh;

	padding: 28px;

	display: flex;

	flex-direction: column;

	background: var(--paper);

	box-shadow:
		-20px 0 60px
		rgba(24, 25, 20, 0.16);

	transition:
		right 0.35s ease;
}


.cart-panel.open {
	right: 0;
}


.cart-panel-header {
	padding-bottom: 22px;

	display: flex;

	align-items: flex-start;

	justify-content: space-between;

	border-bottom:
		1px solid var(--line);
}


.cart-panel-header h2 {
	margin:
		7px 0 0;

	color: var(--olive);

	font-size: 37px;
}


.cart-close {
	width: 38px;

	height: 38px;

	display: flex;

	align-items: center;

	justify-content: center;

	border:
		1px solid var(--line);

	border-radius: 50%;

	background: transparent;

	color: var(--olive);

	font-size: 22px;
}


.cart-items {
	flex: 1;

	overflow-y: auto;

	padding: 20px 0;
}


.cart-empty {
	padding: 50px 10px;

	text-align: center;

	color: var(--muted);
}


.cart-item {
	padding: 15px 0;

	display: flex;

	align-items: center;

	justify-content: space-between;

	gap: 15px;

	border-bottom:
		1px solid var(--line);
}


.cart-item-info {
	display: flex;

	flex-direction: column;

	gap: 7px;
}


.cart-item-info strong {
	color: var(--olive);

	font-family:
		Georgia,
		serif;

	font-size: 15px;

	font-weight: 400;
}


.cart-item-info span {
	color: var(--gold);

	font-size: 12px;
}


.remove-button {
	border: 0;

	background: transparent;

	color: #9a9186;

	font-size: 9px;
}


.cart-footer {
	padding-top: 20px;

	border-top:
		1px solid var(--line);
}


.cart-total-row {
	margin-bottom: 17px;

	display: flex;

	align-items: center;

	justify-content: space-between;
}


.cart-total-row span {
	font-size: 11px;
}


.cart-total-row strong {
	color: var(--olive);

	font-family:
		Georgia,
		serif;

	font-size: 23px;

	font-weight: 400;
}


.checkout-button {
	width: 100%;

	height: 52px;

	border: 0;

	border-radius: 999px;

	background: var(--olive);

	color: white;
}


/* =========================================================
   СТРАНИЦА ТОВАРА
========================================================= */

.pd-page {
	max-width: 1500px;

	margin: 0 auto;

	padding:
		45px 4vw 110px;
}


.pd-topbar {
	margin-bottom: 35px;

	display: flex;

	align-items: center;

	justify-content: space-between;

	color: var(--muted);

	font-size: 9px;

	letter-spacing: 0.12em;
}


.pd-back {
	color: var(--muted);

	font-size: 11px;

	letter-spacing: 0;
}


.pd-product {
	display: grid;

	grid-template-columns:
		minmax(0, 1.05fr)
		minmax(380px, 0.95fr);

	gap: 70px;

	align-items: start;
}


.pd-main-image {
	position: relative;

	overflow: hidden;

	border-radius: 20px;

	background: #e8e2d7;

	box-shadow:
		0 20px 60px
		rgba(45, 40, 31, 0.09);
}


.pd-main-image img {
	width: 100%;

	aspect-ratio: 3 / 4;

	display: block;

	object-fit: cover;
}


.pd-stock-badge {
	position: absolute;

	top: 18px;

	left: 18px;

	padding:
		9px 13px;

	border-radius: 999px;

	background:
		rgba(255, 253, 248, 0.93);

	font-size: 9px;
}


.pd-info {
	padding-top: 35px;
}


.pd-category {
	margin-bottom: 17px;

	color: var(--gold);

	font-size: 9px;

	font-weight: 600;

	letter-spacing: 0.22em;

	text-transform: uppercase;
}


.pd-info h1 {
	margin:
		0 0 23px;

	color: var(--olive);

	font-size:
		clamp(48px, 5vw, 78px);

	line-height: 0.98;
}


.pd-price {
	margin:
		25px 0;

	color: #8a693b;

	font-family:
		Georgia,
		serif;

	font-size: 36px;
}


.pd-description {
	max-width: 560px;

	color: var(--muted);

	font-size: 13px;

	line-height: 1.75;
}


.pd-divider {
	height: 1px;

	margin:
		32px 0;

	background: var(--line);
}


.pd-features {
	display: grid;

	gap: 21px;
}


.pd-feature {
	display: grid;

	grid-template-columns:
		35px 1fr;

	gap: 13px;
}


.pd-feature > span {
	color: var(--gold);

	font-family:
		Georgia,
		serif;

	font-size: 13px;
}


.pd-feature strong {
	display: block;

	margin-bottom: 5px;

	color: var(--olive);

	font-family:
		Georgia,
		serif;

	font-size: 16px;

	font-weight: 400;
}


.pd-feature p {
	margin: 0;

	color: #969388;

	font-size: 10px;
}


.pd-buy-area {
	display: grid;

	grid-template-columns:
		1fr 1.7fr;

	gap: 18px;

	align-items: center;
}


.pd-availability {
	display: flex;

	align-items: center;

	gap: 8px;

	color: var(--muted);

	font-size: 10px;
}


.pd-dot {
	width: 7px;

	height: 7px;

	border-radius: 50%;

	background: #78865c;
}


.pd-add-button {
	width: 100%;

	min-height: 57px;

	padding:
		7px 8px 7px 21px;

	display: flex;

	align-items: center;

	justify-content: space-between;

	border: 0;

	border-radius: 999px;

	background: var(--olive);

	color: white;
}


.pd-add-button.added {
	background: #78865c;
}


.pd-add-icon {
	width: 42px;

	height: 42px;

	display: flex;

	align-items: center;

	justify-content: center;

	border-radius: 50%;

	background:
		rgba(255,255,255,0.15);

	font-size: 20px;
}


.pd-delivery-link {
	display: inline-block;

	margin-top: 25px;

	color: var(--gold);

	font-size: 10px;
}


.pd-delivery-link:hover {
	color: var(--olive);
}


.pd-about {
	margin-top: 110px;

	padding:
		85px 0;

	display: grid;

	grid-template-columns:
		120px minmax(0, 850px);

	gap: 50px;

	border-top:
		1px solid var(--line);

	border-bottom:
		1px solid var(--line);
}


.pd-about-number {
	color: var(--gold);

	font-family:
		Georgia,
		serif;

	font-size: 57px;
}


.pd-about h2 {
	margin:
		13px 0 23px;

	color: var(--olive);

	font-size:
		clamp(40px, 4vw, 60px);
}


.pd-about p {
	max-width: 650px;

	color: var(--muted);

	font-size: 13px;

	line-height: 1.8;
}


.pd-related-section {
	padding:
		95px 0 10px;
}


.pd-related-heading {
	margin-bottom: 38px;

	display: flex;

	align-items: flex-end;

	justify-content: space-between;

	gap: 25px;
}


.pd-related-heading h2 {
	margin:
		10px 0 0;

	color: var(--olive);

	font-size:
		clamp(38px, 4vw, 58px);
}


.pd-related-heading > a {
	color: var(--muted);

	font-size: 10px;
}


.pd-related-grid {
	display: grid;

	grid-template-columns:
		repeat(4, minmax(0, 1fr));

	gap: 18px;
}


.pd-related-card {
	overflow: hidden;

	border:
		1px solid var(--line);

	border-radius: 18px;

	background: var(--paper);

	cursor: pointer;
}


.pd-related-image {
	aspect-ratio: 3 / 4;

	overflow: hidden;

	background: #e8e2d7;
}


.pd-related-image img {
	width: 100%;

	height: 100%;

	display: block;

	object-fit: cover;
}


.pd-related-body {
	padding: 17px;
}


.pd-related-category {
	margin-bottom: 8px;

	color: var(--gold);

	font-size: 8px;

	text-transform: uppercase;
}


.pd-related-body h3 {
	min-height: 46px;

	margin:
		0 0 17px;

	color: var(--olive);

	font-size: 19px;
}


.pd-related-bottom {
	display: flex;

	justify-content: space-between;

	align-items: center;
}


.pd-related-bottom strong {
	color: #86663b;

	font-family:
		Georgia,
		serif;

	font-size: 19px;

	font-weight: 400;
}


/* =========================================================
   CHECKOUT
========================================================= */

.co-page {
	max-width: 1450px;

	margin: 0 auto;

	padding:
		60px 4vw 110px;
}


.co-top {
	margin-bottom: 50px;
}


.co-back {
	display: inline-block;

	margin-bottom: 38px;

	color: var(--muted);

	font-size: 10px;
}


.co-top h1 {
	margin:
		13px 0 15px;

	color: var(--olive);

	font-size:
		clamp(54px, 6vw, 82px);
}


.co-top > p {
	max-width: 500px;

	color: var(--muted);

	font-size: 12px;

	line-height: 1.7;
}


.co-layout {
	display: grid;

	grid-template-columns:
		minmax(0, 1.15fr)
		minmax(350px, 0.85fr);

	gap: 50px;

	align-items: start;
}


.co-section {
	padding:
		35px 0;

	display: grid;

	grid-template-columns:
		50px 1fr;

	gap: 20px;

	border-top:
		1px solid var(--line);
}


.co-section:last-child {
	border-bottom:
		1px solid var(--line);
}


.co-section-number {
	color: var(--gold);

	font-family:
		Georgia,
		serif;

	font-size: 17px;
}


.co-section-content h2 {
	margin:
		0 0 25px;

	color: var(--olive);

	font-size: 28px;
}


.co-section label {
	display: block;

	margin:
		18px 0 7px;

	color: var(--muted);

	font-size: 9px;

	letter-spacing: 0.06em;

	text-transform: uppercase;
}


.co-section input[type="text"],
.co-section input[type="tel"],
.co-section textarea {
	width: 100%;

	padding:
		14px 0;

	border: 0;

	border-bottom:
		1px solid rgba(48,55,44,0.20);

	border-radius: 0;

	outline: none;

	background: transparent;

	color: var(--olive);

	font-family:
		Georgia,
		serif;

	font-size: 17px;
}


.co-section input:focus,
.co-section textarea:focus {
	border-bottom-color: var(--gold);
}


.co-section textarea {
	min-height: 95px;

	resize: vertical;
}


.co-delivery-options {
	display: grid;

	gap: 11px;
}


.co-delivery-card {
	position: relative;

	padding: 17px;

	display: grid;

	grid-template-columns:
		22px 1fr;

	align-items: center;

	gap: 13px;

	border:
		1px solid var(--line);

	border-radius: 14px;

	background:
		rgba(255,253,248,0.65);

	cursor: pointer;
}


.co-delivery-card input {
	position: absolute;

	opacity: 0;
}


.co-radio {
	position: relative;

	width: 18px;

	height: 18px;

	border:
		1px solid #99968c;

	border-radius: 50%;
}


.co-delivery-card input:checked
+
.co-radio {
	border-color: var(--gold);
}


.co-delivery-card input:checked
+
.co-radio::after {
	content: "";

	position: absolute;

	inset: 4px;

	border-radius: 50%;

	background: var(--gold);
}


.co-delivery-copy strong {
	display: block;

	color: var(--olive);

	font-family:
		Georgia,
		serif;

	font-size: 17px;

	font-weight: 400;
}


.co-delivery-copy small {
	display: block;

	margin-top: 4px;

	color: var(--muted);

	font-size: 9px;

	line-height: 1.4;
}


.co-pvz-block,
.co-pickup-info {
	margin-top: 25px;

	padding: 20px;

	border-radius: 14px;

	background:
		rgba(235,228,214,0.55);
}


.co-pvz-block p,
.co-pickup-info p {
	margin:
		9px 0 0;

	color: var(--muted);

	font-size: 9px;

	line-height: 1.5;
}


.co-pickup-info strong {
	color: var(--olive);

	font-family:
		Georgia,
		serif;

	font-size: 17px;

	font-weight: 400;
}


.co-summary {
	position: sticky;

	top: 115px;

	padding: 32px;

	border:
		1px solid var(--line);

	border-radius: 20px;

	background: var(--paper);

	box-shadow:
		0 22px 60px
		rgba(45,40,31,0.08);
}


.co-summary h2 {
	margin:
		10px 0 26px;

	color: var(--olive);

	font-size: 31px;
}


.co-order-items {
	display: grid;

	gap: 15px;
}


.co-order-item {
	display: grid;

	grid-template-columns:
		60px 1fr auto;

	gap: 12px;

	align-items: center;
}


.co-order-item-image {
	width: 60px;

	height: 75px;

	overflow: hidden;

	border-radius: 8px;

	background: #e8e2d7;
}


.co-order-item-image img {
	width: 100%;

	height: 100%;

	display: block;

	object-fit: cover;
}


.co-order-item-info span {
	display: block;

	margin-bottom: 4px;

	color: var(--gold);

	font-size: 7px;

	text-transform: uppercase;
}


.co-order-item-info strong {
	color: var(--olive);

	font-family:
		Georgia,
		serif;

	font-size: 13px;

	font-weight: 400;
}


.co-order-item-price {
	color: #86663b;

	font-family:
		Georgia,
		serif;

	font-size: 14px;

	white-space: nowrap;
}


.co-summary-divider {
	height: 1px;

	margin:
		27px 0;

	background: var(--line);
}


.co-total-line {
	margin-bottom: 23px;

	display: flex;

	align-items: flex-end;

	justify-content: space-between;
}


.co-total-line span {
	color: var(--muted);

	font-size: 11px;
}


.co-total-line strong {
	color: var(--olive);

	font-family:
		Georgia,
		serif;

	font-size: 29px;

	font-weight: 400;
}


.co-submit-button {
	width: 100%;

	height: 55px;

	border: 0;

	border-radius: 999px;

	background: var(--olive);

	color: white;
}


.co-submit-button:disabled {
	opacity: 0.55;
}


.co-payment-hint {
	margin-top: 19px;

	padding: 15px;

	border-radius: 12px;

	background:
		rgba(235,228,214,0.52);
}


.co-payment-hint span {
	display: block;

	margin-bottom: 6px;

	color: var(--gold);

	font-size: 8px;

	letter-spacing: 0.15em;

	text-transform: uppercase;
}


.co-payment-hint p {
	margin: 0;

	color: var(--muted);

	font-size: 9px;

	line-height: 1.5;
}


.co-empty-cart {
	padding: 35px 5px;

	text-align: center;
}


.co-empty-cart p {
	color: var(--muted);
}


.co-empty-cart a {
	color: var(--gold);

	font-size: 11px;
}


.co-success {
	max-width: 730px;

	margin:
		80px auto;

	padding:
		80px 35px;

	text-align: center;
}


.co-success-symbol {
	width: 72px;

	height: 72px;

	margin:
		0 auto 25px;

	display: flex;

	align-items: center;

	justify-content: center;

	border-radius: 50%;

	background: var(--olive);

	color: white;

	font-size: 28px;
}


.co-success h1 {
	margin:
		15px 0 20px;

	color: var(--olive);

	font-size:
		clamp(50px, 7vw, 80px);
}


.co-success p {
	max-width: 500px;

	margin:
		0 auto 30px;

	color: var(--muted);

	font-size: 13px;

	line-height: 1.7;
}


.co-success a {
	display: inline-block;

	padding:
		14px 24px;

	border:
		1px solid var(--olive);

	border-radius: 999px;

	color: var(--olive);

	font-size: 11px;
}


/* =========================================================
   FOOTER
========================================================= */

.site-footer {
	padding:
		65px 4vw;

	background: var(--olive);

	color:
		rgba(255,255,255,0.65);

	text-align: center;
}


.footer-logo {
	margin-bottom: 15px;

	color: white;

	font-family:
		Georgia,
		serif;

	font-size: 32px;

	letter-spacing: 0.15em;
}


.site-footer p {
	margin:
		7px 0;

	font-size: 9px;
}


.footer-links {
	margin:
		20px 0;

	display: flex;

	align-items: center;

	justify-content: center;

	gap: 25px;
}


.footer-links a {
	color:
		rgba(255,255,255,0.72);

	font-size: 9px;

	transition:
		color 0.2s ease;
}


.footer-links a:hover {
	color: var(--gold-light);
}


/* =========================================================
   ПЛАНШЕТ
========================================================= */

@media (max-width: 1100px) {

	.header-inner {
		padding:
			0 28px;
	}


	.main-nav {
		gap: 16px;
	}


	.main-nav button,
	.main-nav a {
		font-size: 9px;
	}


	.products {
		grid-template-columns:
			repeat(3, minmax(0, 1fr));
	}


	.pd-product {
		gap: 40px;
	}

}


/* =========================================================
   МАЛЕНЬКИЙ ПЛАНШЕТ
========================================================= */

@media (max-width: 900px) {

	.header-inner {
		min-height: auto;

		padding:
			14px 18px;

		flex-wrap: wrap;

		row-gap: 14px;
	}


	.brand-logo {
		order: 1;
	}


	.header-cart {
		order: 2;

		margin-left: auto;
	}


	.main-nav {
		position: static;

		order: 3;

		width: 100%;

		transform: none;

		justify-content: flex-start;

		overflow-x: auto;

		gap: 22px;
	}


	.main-nav button,
	.main-nav a {
		flex: 0 0 auto;
	}


	.main-hero,
	.hero-content {
		min-height: 610px;
	}


	.category-gallery {
		gap: 13px;
	}


	.delivery-grid {
		grid-template-columns: 1fr;
	}


	.delivery-card {
		min-height: auto;
	}


	.delivery-card-top {
		margin-bottom: 35px;
	}


	.payment-panel {
		grid-template-columns:
			60px 1fr;
	}


	.payment-note {
		grid-column:
			1 / -1;
	}


	.products {
		grid-template-columns:
			repeat(2, minmax(0, 1fr));
	}


	.pd-product {
		grid-template-columns: 1fr;

		gap: 30px;
	}


	.pd-related-grid {
		grid-template-columns:
			repeat(2, minmax(0, 1fr));
	}


	.co-layout {
		grid-template-columns: 1fr;
	}


	.co-summary {
		position: static;
	}

}


/* =========================================================
   ТЕЛЕФОН
========================================================= */

@media (max-width: 600px) {

	html,
	body {
		width: 100%;

		max-width: 100%;

		overflow-x: hidden;
	}


	.header-inner {
		padding:
			12px 14px;
	}


	.brand-name {
		font-size: 20px;
	}


	.brand-mark {
		width: 72px;

		height: 18px;

		margin-top: 4px;
	}


	.header-cart {
		min-width: 102px;

		height: 39px;

		padding:
			4px 5px 4px 13px;
	}


	.header-cart-count {
		width: 29px;

		min-width: 29px;

		height: 29px;
	}


	.main-nav {
		width:
			calc(100% + 28px);

		margin:
			0 -14px;

		padding:
			3px 14px 4px;

		gap: 19px;

		scrollbar-width: none;
	}


	.main-nav::-webkit-scrollbar {
		display: none;
	}


	.main-nav a,
	.main-nav button {
		font-size: 9px;
	}


	/* HERO */

	.main-hero,
	.hero-content {
		min-height: 600px;
	}


	.hero-image {
		object-position:
			60% center;
	}


	.hero-content {
		padding:
			55px 18px;

		justify-content:
			flex-end;
	}


	.hero-content h1 {
		font-size: 54px;
	}


	/* КАТЕГОРИИ */

	.categories-section {
		padding:
			70px 14px 80px;
	}


	.categories-heading {
		display: block;
	}


	.categories-heading h2 {
		font-size: 44px;
	}


	.categories-heading > p {
		margin-top: 15px;

		text-align: left;
	}


	.category-gallery {
		grid-template-columns: 1fr;
	}


	.category-card {
		aspect-ratio: 4 / 5;

		border-radius: 16px;
	}


	/* ДОСТАВКА */

	.delivery-section {
		padding:
			70px 14px 75px;
	}


	.delivery-heading {
		display: block;

		margin-bottom: 30px;
	}


	.delivery-heading h2 {
		font-size: 47px;
	}


	.delivery-heading > p {
		margin-top: 16px;

		text-align: left;
	}


	.delivery-grid {
		gap: 12px;
	}


	.delivery-card {
		padding: 22px;

		border-radius: 16px;
	}


	.delivery-card-top {
		margin-bottom: 30px;
	}


	.delivery-card h3 {
		font-size: 29px;
	}


	.payment-panel {
		padding: 24px;

		grid-template-columns: 1fr;

		gap: 18px;

		border-radius: 16px;
	}


	.payment-number {
		font-size: 31px;
	}


	.payment-main h3 {
		font-size: 27px;
	}


	.payment-note {
		grid-column: auto;
	}


	/* БРЕНД */

	.brand-section {
		padding:
			65px 17px;

		grid-template-columns: 1fr;

		gap: 20px;
	}


	.brand-section-number {
		font-size: 42px;
	}


	/* КАТАЛОГ */

	.catalog-page {
		padding:
			40px 10px 70px;
	}


	.products {
		gap:
			13px 8px;
	}


	.catalog-product-card {
		border-radius: 14px;
	}


	.catalog-product-body {
		padding:
			12px 10px;
	}


	.catalog-product-meta {
		display: block;
	}


	.catalog-handmade,
	.catalog-description {
		display: none;
	}


	.catalog-product-body h3 {
		font-size: 16px;
	}


	.catalog-price {
		font-size: 19px;
	}


	.catalog-buy-button {
		height: 38px;

		font-size: 9px;
	}


	.catalog-buy-arrow {
		width: 27px;

		height: 27px;
	}


	/* PRODUCT */

	.pd-page {
		padding:
			30px 13px 70px;
	}


	.pd-top-label {
		display: none;
	}


	.pd-info {
		padding-top: 5px;
	}


	.pd-info h1 {
		font-size: 45px;
	}


	.pd-buy-area {
		grid-template-columns: 1fr;
	}


	.pd-about {
		margin-top: 70px;

		padding:
			60px 0;

		grid-template-columns: 1fr;

		gap: 15px;
	}


	.pd-related-grid {
		gap: 9px;
	}


	.pd-related-body {
		padding: 12px;
	}


	.pd-related-body h3 {
		font-size: 16px;
	}


	/* CHECKOUT */

	.co-page {
		padding:
			40px 13px 75px;
	}


	.co-top h1 {
		font-size: 50px;
	}


	.co-section {
		grid-template-columns:
			31px 1fr;

		gap: 10px;
	}


	.co-section-content h2 {
		font-size: 24px;
	}


	.co-summary {
		padding:
			22px 16px;
	}


	.co-order-item {
		grid-template-columns:
			52px 1fr auto;
	}


	.co-order-item-image {
		width: 52px;

		height: 65px;
	}


	.footer-links {
		flex-direction: column;

		gap: 10px;
	}

}


/* =========================================================
   ОЧЕНЬ МАЛЕНЬКИЙ ТЕЛЕФОН
========================================================= */

@media (max-width: 380px) {

	.brand-name {
		font-size: 18px;
	}


	.header-cart {
		min-width: 94px;
	}


	.hero-content h1 {
		font-size: 49px;
	}


	.catalog-product-body h3 {
		font-size: 14px;
	}


	.catalog-price {
		font-size: 18px;
	}


	.catalog-buy-button {
		font-size: 8px;
	}


	.pd-info h1 {
		font-size: 40px;
	}

}
/* =========================================================
   КОНТАКТЫ И ЮРИДИЧЕСКИЕ СТРАНИЦЫ
========================================================= */

.info-page,
.legal-page {
	max-width: 1450px;

	margin: 0 auto;

	padding:
		75px 4vw 120px;
}


.info-hero,
.legal-heading {
	max-width: 900px;

	margin-bottom: 60px;
}


.info-hero h1,
.legal-heading h1 {
	margin:
		13px 0 20px;

	color: var(--olive);

	font-size:
		clamp(58px, 7vw, 92px);

	line-height: 0.96;
}


.info-hero p,
.legal-heading p {
	max-width: 580px;

	margin: 0;

	color: var(--muted);

	font-size: 13px;

	line-height: 1.8;
}


/* КОНТАКТЫ */

.contact-grid {
	display: grid;

	grid-template-columns:
		repeat(3, minmax(0, 1fr));

	gap: 18px;
}


.contact-card {
	min-height: 370px;

	padding: 30px;

	display: flex;

	flex-direction: column;

	justify-content: space-between;

	border:
		1px solid var(--line);

	border-radius: 20px;

	background: var(--paper);

	transition:
		transform 0.3s ease,
		box-shadow 0.3s ease;
}


.contact-card:hover {
	transform:
		translateY(-5px);

	box-shadow:
		0 20px 55px
		rgba(45, 40, 31, 0.08);
}


.contact-number {
	color: var(--gold);

	font-family: Georgia, serif;

	font-size: 18px;
}


.contact-card h2 {
	margin:
		10px 0 16px;

	color: var(--olive);

	font-size: 32px;
}


.contact-card p {
	margin: 0;

	color: var(--muted);

	font-size: 12px;

	line-height: 1.7;
}


.contact-arrow {
	width: 43px;

	height: 43px;

	display: flex;

	align-items: center;

	justify-content: center;

	border:
		1px solid var(--line);

	border-radius: 50%;

	color: var(--gold);

	font-size: 18px;
}


.contact-note {
	margin-top: 25px;

	padding: 50px;

	display: grid;

	grid-template-columns:
		90px 1fr;

	gap: 30px;

	border-radius: 20px;

	background: var(--olive);

	color: white;
}


.contact-note-number {
	color: var(--gold-light);

	font-family: Georgia, serif;

	font-size: 40px;
}


.contact-note .eyebrow {
	color: var(--gold-light);
}


.contact-note h2 {
	margin:
		10px 0 15px;

	color: white;

	font-size: 38px;
}


.contact-note p {
	max-width: 700px;

	margin: 0;

	color:
		rgba(255,255,255,0.68);

	font-size: 12px;

	line-height: 1.8;
}


/* ЮРИДИЧЕСКИЕ СТРАНИЦЫ */

.legal-content {
	max-width: 900px;

	padding:
		50px;

	border:
		1px solid var(--line);

	border-radius: 20px;

	background: var(--paper);
}


.legal-content h2 {
	margin:
		45px 0 15px;

	color: var(--olive);

	font-size: 27px;
}


.legal-content h2:first-child {
	margin-top: 0;
}


.legal-content p {
	margin:
		0 0 18px;

	color: #747269;

	font-size: 13px;

	line-height: 1.9;
}


.legal-content a {
	color: var(--gold);

	text-decoration: underline;
}


.legal-warning {
	margin-top: 45px;

	padding: 24px;

	border-radius: 14px;

	background:
		rgba(235, 228, 214, 0.65);
}


.legal-warning strong {
	display: block;

	margin-bottom: 8px;

	color: var(--olive);

	font-family: Georgia, serif;

	font-size: 18px;

	font-weight: 400;
}


.legal-warning p {
	margin: 0;
}


/* МОБИЛЬНЫЙ */

@media (max-width: 750px) {

	.info-page,
	.legal-page {
		padding:
			45px 14px 75px;
	}


	.info-hero h1,
	.legal-heading h1 {
		font-size: 48px;
	}


	.contact-grid {
		grid-template-columns: 1fr;
	}


	.contact-card {
		min-height: 300px;

		padding: 23px;
	}


	.contact-note {
		padding: 27px 22px;

		grid-template-columns: 1fr;

		gap: 15px;
	}


	.contact-note h2 {
		font-size: 31px;
	}


	.legal-content {
		padding: 25px 20px;

		border-radius: 16px;
	}


	.legal-content h2 {
		font-size: 23px;
	}

}