:root {
	--color-brand: #7b1c1c;
	--color-gold-hover: #b89a68;
	--color-text: #1b1b1b;
	--color-muted-text: #6c625e;
	--color-background: #fff;
	--color-muted-background: #f8f6f4;
	--color-border: #ddd8d3;
	--color-on-brand: #fff8f4;
	--color-on-brand-muted: #f1d7d3;
	--font-heading: 'Cormorant Garamond', Georgia, serif;
	--font-body: Montserrat, Arial, sans-serif;
	--container-max: 1840px;
	--container-gutter: 16px;
	--space-xs: 8px;
	--space-sm: 16px;
	--space-md: 24px;
	--space-lg: 40px;
	--space-xl: 64px;
}

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

[hidden] {
	display: none !important;
}

body {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	margin: 0;
	background: var(--color-background);
	color: var(--color-text);
	font: 400 0.9375rem/1.6 var(--font-body);
}

main {
	flex: 1 0 auto;
}

img {
	max-width: 100%;
	height: auto;
}

h1, h2, h3 {
	margin: 0 0 var(--space-sm);
	font-family: var(--font-heading);
	font-weight: 500;
	line-height: 1.05;
}

h1 {
	font-size: clamp(2.25rem, 4.25vw, 3.5rem);
}

h2 {
	font-size: clamp(1.875rem, 3vw, 2.875rem);
}

h3 {
	font-size: 1.5rem;
}

a {
	color: inherit;
}

a:any-link {
	text-decoration: none;
}

a:any-link:is(:hover, :focus-visible, :active, :where([aria-current]:not([aria-current="false"]))) {
	color: var(--color-gold-hover);
}

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	a:any-link {
		transition: color 0.25s ease;
	}

	.site-menu a,
	.home-heading .home-text-link {
		transition: color 0.25s ease, transform 0.25s ease;
	}

	.site-menu a:hover,
	.home-heading .home-text-link:hover {
		transform: scale(1.02);
	}
}

:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 4px;
}

a:focus-visible {
	outline-color: var(--link-focus-outline, var(--color-brand));
}

.site-header__inner,
.site-footer__inner {
	--link-focus-outline: var(--color-on-brand);
}

.container {
	width: min(var(--container-max), calc(100% - 2 * var(--container-gutter)));
	margin-inline: auto;
}

.screen-reader-text,
.skip-link:not(:focus) {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.skip-link:focus {
	position: fixed;
	z-index: 10;
	inset: var(--space-xs) auto auto var(--space-xs);
	padding: var(--space-xs) var(--space-sm);
	background: var(--color-background);
	color: var(--color-brand);
}

.site-header,
.site-footer {
	background: var(--color-brand);
	color: var(--color-on-brand);
}

.site-header__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	grid-template-rows: minmax(56px, auto) auto;
	align-items: center;
}

.site-header__brand {
	grid-area: 1 / 2;
	z-index: 1;
}

.wordmark {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	font-family: var(--font-body);
	font-size: 0.5rem;
	line-height: 1;
	letter-spacing: 0.46em;
	text-indent: 0.46em;
	text-decoration: none;
}

.wordmark__mark {
	width: 28px;
	height: 35px;
}

.site-header .wordmark__mark {
	width: 25px;
	height: 32px;
}

.site-header__brand,
.site-footer__brand {
	position: relative;
}

/* Keep the wordmark's grid dimensions when a custom logo is set. */
.wordmark--sizing {
	visibility: hidden;
}

.site-header__brand > .custom-logo-link,
.site-footer__brand > .custom-logo-link {
	display: block;
	position: absolute;
	top: 50%;
	left: 50%;
	width: max-content;
	transform: translate(-50%, -50%);
}

.custom-logo {
	display: block;
	width: auto;
	max-width: 110px;
	max-height: 48px;
	object-fit: contain;
}

.menu-toggle {
	grid-area: 1 / 1;
	justify-self: start;
	margin-inline-start: -3px;
	padding: 0;
	border: 0;
	background: transparent;
	color: inherit;
	cursor: pointer;
}

.menu-toggle,
.site-header__quick-call .site-phone {
	display: grid;
	min-width: 44px;
	min-height: 44px;
	place-items: center;
}

.site-header__quick-call {
	grid-area: 1 / 3;
	justify-self: end;
	margin-inline-end: -8px;
}

.site-header__tablet-links {
	display: none;
}

.site-header__quick-call .site-phone__number {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.site-phone {
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
}

.site-header__contact-bar {
	display: flex;
	min-height: 43px;
	align-items: center;
	padding-block: 8px;
	background: var(--color-muted-background);
	color: var(--color-brand);
}

.site-header__contact-bar .container {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0 6px;
	font-size: 0.875rem;
}

.site-header__contact-bar span:not(.site-phone__number) {
	color: var(--color-muted-text);
	font-size: 0.75rem;
}

.site-navigation {
	grid-column: 1 / -1;
	padding-block: var(--space-sm);
	border-top: 1px solid rgb(255 255 255 / 20%);
}

.site-navigation__utility {
	margin-top: var(--space-xs);
}

.site-menu,
.site-menu .sub-menu {
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-menu {
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.site-menu .sub-menu {
	padding-inline-start: var(--space-sm);
}

.site-menu a {
	display: inline-block;
	padding-block: 6px;
	text-decoration: none;
}

.site-footer__inner {
	display: grid;
	grid-template-areas: 'brand' 'contacts' 'links';
	gap: 20px;
	justify-items: center;
	padding-block: 36px 28px;
}

.site-footer__brand {
	grid-area: brand;
}

.site-footer__contacts {
	grid-area: contacts;
	display: grid;
	gap: 4px;
	font-style: normal;
	text-align: center;
}

.site-footer__email,
.site-footer__address {
	color: var(--color-on-brand-muted);
	font-size: 0.75rem;
	text-decoration: none;
	overflow-wrap: anywhere;
}

.site-footer__navigation {
	grid-area: links;
	color: var(--color-on-brand-muted);
}

.site-footer .site-menu {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	column-gap: var(--space-sm);
	text-align: center;
}

.site-footer .wordmark {
	margin-bottom: 4px;
}

.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	padding: 10px var(--space-sm);
	border: 1px solid var(--color-brand);
	background: var(--color-brand);
	color: var(--color-on-brand);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
}

.button:focus-visible {
	outline-color: var(--color-brand);
}

.button--outline {
	border-color: rgb(255 248 244 / 65%);
	background: transparent;
}

.site-content {
	padding-block: var(--space-lg);
	max-width: 860px;
}

.entry + .entry {
	margin-top: var(--space-md);
	padding-top: var(--space-md);
	border-top: 1px solid var(--color-border);
}

.entry__thumbnail {
	display: block;
	margin-bottom: var(--space-md);
}

.entry__content {
	display: flow-root;
	overflow-wrap: anywhere;
}

.entry__content .aligncenter {
	display: block;
	margin-inline: auto;
}

@media (max-width: 767px) {
	.site-header__contact-bar,
	.site-navigation__utility > .site-phone {
		display: none;
	}
}

@media (min-width: 768px) {
	:root {
		--container-gutter: 28px;
	}

	.site-header__inner {
		grid-template-columns: minmax(0, 1fr) auto minmax(0, 2.08fr);
		grid-template-rows: minmax(64px, auto) auto;
	}

	.site-header__contact-bar,
	.site-header__quick-call svg {
		display: none;
	}

	.site-header__quick-call {
		display: flex;
		align-items: center;
		gap: var(--space-sm);
		margin-inline-end: 0;
		font-size: 0.8125rem;
	}

	.site-header__tablet-links {
		display: flex;
		gap: 12px;
		font-size: 0.6875rem;
		letter-spacing: 0.14em;
		text-transform: uppercase;
	}

	.site-header__tablet-links a {
		text-decoration: none;
	}

	.site-header__quick-call .site-phone__number {
		position: static;
		width: auto;
		height: auto;
		clip-path: none;
	}

	.wordmark {
		font-size: 0.5625rem;
	}

	.wordmark__mark {
		width: 33px;
		height: 43px;
	}

	.site-header .wordmark__mark {
		width: 30px;
		height: 38px;
	}

	.site-footer__inner {
		grid-template-areas: 'brand brand' 'links contacts';
		grid-template-columns: repeat(2, minmax(0, 1fr));
		align-items: start;
		padding-block: 46px;
	}

	.site-footer__navigation {
		justify-self: start;
	}

	.site-footer__contacts {
		justify-self: end;
		text-align: end;
	}

	.site-footer .site-menu {
		display: block;
		text-align: start;
	}

	.site-content {
		padding-block: var(--space-xl);
	}
}

@media (min-width: 1280px) {
	:root {
		--container-gutter: 40px;
	}

	.site-header__inner {
		grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
		grid-template-rows: minmax(82px, auto);
	}

	.site-header .wordmark__mark {
		width: 38px;
		height: 54px;
	}

	.menu-toggle,
	.site-header__quick-call {
		display: none;
	}

	.site-navigation {
		display: grid;
		grid-area: 1 / 1 / 2 / -1;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		align-items: center;
		column-gap: 132px;
		padding-block: var(--space-sm);
		border: 0;
	}

	.site-navigation__utility {
		display: flex;
		flex-wrap: wrap;
		justify-content: end;
		align-items: center;
		gap: 0 var(--space-sm);
		margin: 0;
	}

	.site-navigation__utility .site-phone {
		font-size: 0.8125rem;
	}

	.site-navigation .site-menu,
	.site-footer .site-menu {
		display: flex;
		flex-wrap: wrap;
		column-gap: var(--space-sm);
	}

	.site-footer .site-menu {
		justify-content: start;
	}

	.site-menu li {
		position: relative;
	}

	.site-menu .sub-menu {
		display: none;
		position: absolute;
		z-index: 2;
		inset: 100% auto auto 0;
		width: max-content;
		max-width: 240px;
		padding: var(--space-xs) var(--space-sm);
		background: var(--color-brand);
	}

	.site-footer .site-menu .sub-menu {
		inset: auto auto 100% 0;
	}

	.site-menu li:hover > .sub-menu,
	.site-menu li:focus-within > .sub-menu {
		display: block;
	}

	.site-menu .sub-menu .sub-menu {
		display: block;
		position: static;
		width: auto;
		padding: 0 0 0 var(--space-xs);
	}

	.site-footer__inner {
		grid-template-areas: 'links brand contacts';
		grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
		align-items: center;
		min-height: 150px;
		padding-block: var(--space-md);
	}

	.site-footer .site-menu__catalog {
		order: -2;
	}

	.site-footer .site-menu__contacts {
		order: -1;
	}

	.site-footer .site-menu__delivery,
	.site-footer .site-menu__about {
		display: none;
	}

	.site-footer .site-phone {
		font-size: 0.8125rem;
	}

	.site-footer__email {
		text-transform: uppercase;
	}
}
