@font-face {
	font-family: "Metropolis";
	font-weight: 200;
	src: url("/fonts/metropolis.thin.otf") format("opentype");
}

@font-face {
	font-family: "Metropolis";
	font-weight: 300;
	src: url("/fonts/metropolis.light.otf") format("opentype");
}

@font-face {
	font-family: "Metropolis";
	font-weight: 400;
	src: url("/fonts/metropolis.regular.otf") format("opentype");
}

@font-face {
	font-family: "Metropolis";
	font-weight: 600;
	src: url("/fonts/metropolis.semi-bold.otf") format("opentype");
}

/* Defaults */
:root {
	--font-family:
		Metropolis, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
		"Helvetica Neue", Arial, sans-serif;
	--font-family-heading:
		"Playfair Display", Georgia, Cambria, "Times New Roman", Times, serif;
	--font-size-h1: 50px;
	--font-size-h2: 50px;

	@media screen and (max-width: 768px) {
		--font-size-h1: 28px;
		--font-size-h2: 28px;
	}
}

/* Add semantic color variables */
:root {
	--color-dark-teal: #1e3f40;
	--color-deep-burgundy: #47192f;
	--color-dark-gray: #3a3a3a;
	--color-white: #ffffff;
	--color-off-white: #f5f4ed;
	--color-terracotta: #b9644c;
	--color-deep-brown: #3f3631;

	/* Semantic mappings */
	--background-color: var(--color-white);
	--text-color: var(--color-dark-gray);
	--text-color-link: var(--color-terracotta);
	--text-color-link-visited: var(--color-deep-burgundy);
	--text-color-link-active: var(--color-dark-teal);
	--color-border: var(--color-terracotta);

	/* sizes and spacings */

	--font-size-small: 14px;
	--font-size-base: 16px;
	--font-size-medium: 18px;
	--font-size-large: 24px;
	--font-size-xlarge: 30px;
	--font-size: var(--font-size-medium);

	--inner-padding: 50px;
	--max-width: 1300px;
	--input-height: 60px;

	@media screen and (max-width: 768px) {
		--font-size-small: 12px;
		--font-size-base: 14px;
		--font-size-medium: 14px;
		--inner-padding: 2rem;
		--input-height: 50px;
	}
}

/* Global stylesheet */
* {
	box-sizing: border-box;
}

@view-transition {
	navigation: auto;
}

html,
body {
	padding: 0;
	margin: 0 auto;
	font-family: var(--font-family);
	color: var(--text-color);
	font-size: var(--font-size);
}

h1,
h2 {
	font-family: var(--font-family-heading);
	font-weight: 500;
}

/* Layout */

.section {
	.section__inner {
		max-width: var(--max-width);
		margin: 0 auto;
		padding-inline: var(--inner-padding);
	}
	.section__header {
		margin-bottom: 50px;
		max-width: 700px;
		margin-inline: auto;
		text-align: center;
		h2 {
			font-size: var(--font-size-h2);
			margin: 0;
			font-weight: 500;
			line-height: 1.3;
			margin-bottom: 24px;
		}
		p {
			font-size: 24;
			margin: 0;
			font-weight: 200;
			padding-inline: 24px;
			line-height: 1.5;
		}
	}
	&.is-tale {
		background-color: var(--color-dark-teal);
	}
	&.is-deep-burgundy {
		background-color: var(--color-deep-burgundy);
	}
	&.is-off-white {
		background-color: var(--color-off-white);
	}
	&.is-padding-block {
		padding-block: 5%;
		&.is-compact {
			padding-block: 50px;
			@media screen and (max-width: 768px) {
				padding-block: 32px;
			}
		}
	}
	&.no-max-width {
		.section__inner {
			max-width: none;
		}
	}
	&.no-right-padding {
		.section__inner {
			padding-right: 0;
			overflow: clip;
		}
	}
	&.is-top-border {
		border-top: 1px solid #b8b8b8;
	}
	&.no-bottom-padding {
		padding-bottom: 0;
	}
	&.is-sticky-header {
		header {
			transition: all 0.3s ease;
		}
		&.is-sticky {
			position: sticky;
			top: 0;
			z-index: 1000;
			background: var(--color-white);
			box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
			left: 0;
			header {
				height: 50px;
			}
		}
	}
}

a,
a:visited {
	color: var(--text-color);
}

/* annoucement bar */
.announcement-bar {
	font-size: var(--font-size-small);
	color: var(--color-white);
	display: flex;
	justify-content: center;
	align-items: center;
	height: 40px;
	a {
		font-weight: bold;
		color: var(--color-white);
		text-decoration: underline;
		&:hover {
			text-decoration: none;
		}
	}
	@media screen and (max-width: 768px) {
		height: 30px;
	}
}

/* header , menu */

.header {
	height: 100px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	@media screen and (max-width: 768px) {
		height: 80px;
	}
	.header__menu {
		margin-left: auto;
		white-space: nowrap;
		.is-mobile-account,
		.is-mobile-search {
			display: none;
			@media screen and (max-width: 768px) {
				display: block;
			}
		}
	}
	.header__mobile-menu,
	.header__mobile-close {
		display: none;
		@media screen and (max-width: 1024px) {
			display: block;
		}
	}
}

.header__mobile-close {
	position: absolute;
	top: 8px;
	right: 8px;
	background: none;
	font-size: 50px;
	color: var(--color-terracotta);
	width: 40px;
	height: 40px;
	border-radius: 50%;
	display: flex;
	padding: 0;
}

.header__menu {
	@media screen and (max-width: 1024px) {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100svh;
		background: rgba(255, 255, 255, 0.8);
		-webkit-backdrop-filter: blur(10px);
		backdrop-filter: blur(10px);
		z-index: 1000;
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		opactiy: 0;
		visibility: hidden;
		.menu {
			flex-direction: column;
			gap: 1rem;
			margin-bottom: 8px;
			a {
				font-size: 18px;
			}
		}
		.actions {
			border-top: 1px solid var(--color-dark-gray);
			gap: 1rem;
			padding-top: 8px;
			a {
				font-size: 24px;
			}
		}
	}
}

body.menu-open {
	.header__menu {
		opacity: 1;
		visibility: visible;
	}
}

.menu {
	font-size: var(--font-size-small);
	display: flex;
	gap: 2em;
	align-items: center;
	justify-content: center;
	text-transform: uppercase;
	a {
		text-decoration: none;
		color: var(--color-dark-gray);
		&:hover {
			color: var(--color-terracotta);
		}
	}
}

.actions {
	display: flex;
	gap: 1rem;
	align-items: center;
	a {
		text-decoration: none;
		color: var(--color-dark-gray);
		&:hover {
			color: var(--color-terracotta);
		}
		&.is-cart {
			position: relative;
			display: inline-flex;
			&::before {
				content: "";
				position: absolute;
				top: -3px;
				right: -3px;
				background: var(--color-terracotta);
				color: var(--color-white);
				border-radius: 50%;
				width: 13px;
				height: 13px;
				display: flex;
				justify-content: center;
				align-items: center;
				font-size: 12px;
			}
		}
	}
	@media screen and (max-width: 768px) {
		a.is-search,
		a.is-account {
			display: none;
		}
	}
}

/* usps */

.usps {
	display: flex;
	gap: 1rem;
	height: 60px;
	justify-content: space-between;
	align-items: center;
	color: var(--color-off-white);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	.usps__item {
		display: flex;
		gap: 14px;
		align-items: center;
		font-weight: 400;
		font-size: var(--font-size-small);
		scroll-snap-align: start;
		.usps__icon {
			width: 24px;
			height: 24px;
		}
	}
	@media screen and (max-width: 768px) {
		height: 40px;
		.usps__item {
			flex: 1;
			width: 100%;
			min-width: 100%;
			justify-content: center;
		}
	}
}

.tabs {
	details {
		border-top: 1px solid #ccc;
		&:last-child {
			border-bottom: 1px solid #ccc;
		}
		summary {
			&::-webkit-details-marker,
			&::marker {
				display: none;
			}
			list-style: none;
			&:after {
				content: "+";
				margin-left: auto;
				font-weight: 200;
			}
			cursor: pointer;
			position: relative;
			display: flex;
			height: 50px;
			align-items: center;
			h2 {
				font-size: 22px;
				font-weight: 500;
				margin: 0;
				display: inline-flex;
			}
		}
		p {
			font-size: var(--font-size-base);
			font-weight: 200;
			line-height: 1.5;
			margin: 0;
			padding-bottom: 12px;
		}
		&[open] summary:after {
			content: "-";
		}
	}
}

.tabs.is-features {
	--left-padding: 110px;
	details {
		border-top: none;
		border-bottom: none;
		border-left: 3px solid #b9644c;
		padding: 0 20px;
		border-radius: 3px;
		overflow: clip;
		background: var(--color-off-white);
		margin-bottom: 12px;
		summary {
			font-size: var(--font-size-base);
			font-weight: 600;
			gap: 24px;
			padding-left: var(--left-padding);
			&:after {
				font-size: 25px;
				color: #b9644c;
			}
			img {
				position: absolute;
				left: 0;
				top: 10px;
				bottom: 10px;
				margin: auto;
			}
		}
		p {
			padding-left: var(--left-padding);
			font-weight: 200;
			margin: 0;
			padding-bottom: 12px;
			font-size: var(--font-size-medium);
			max-width: 500px;
			line-height: 1.5;
		}
		&[open] {
			summary {
				img {
					transform: translateY(20px);
					width: 80px;
				}
			}
		}
	}
}

.tabs.is-faq {
	details {
		border-top-color: #1e3f40;
		border-top-width: 2px;
		border-bottom-color: #1e3f40;
		border-bottom-width: 2px;
		summary {
			height: 60px;
			&:after {
				font-size: 24px;
			}
		}
		p {
			padding-bottom: 20px;
		}
	}
}

.product {
	@media screen and (min-width: 767px) {
		display: grid;
		grid-template-columns: minmax(300px, 2fr) minmax(310px, 1fr);
		gap: 80px;
	}
	.product__rating {
		margin-bottom: 5px;
		a {
			display: inline-flex;
			align-items: center;
			gap: 0.5em;
			color: var(--color-terracotta);
			text-decoration: none;
			font-size: var(--font-size-base);
			&:hover {
				text-decoration: underline;
			}
		}
	}
	.product__content {
		color: var(--color-dark-gray);
		font-weight: 200;
	}
	.product__buy__actions {
		display: flex;
		gap: 16px;
		justify-content: space-between;
		.button {
			width: 100%;
		}
	}
	h1 {
		font-size: var(--font-size-xlarge);
		margin: 0;
		margin-bottom: 16px;
	}
	.product__prices {
		font-size: var(--font-size-base);
		margin-bottom: 16px;
	}
	.product__buy {
		margin-bottom: 20px;
	}
	.product__payments {
		margin-bottom: 40px;
	}
	.product__prices__price {
		font-weight: 600;
		margin-bottom: 16px;
	}
	.product__prices__installments {
		font-size: var(--font-size-base);
		line-height: 1.5;
		a {
			display: inline-flex;
			transform: translateY(-2px);
			&:hover {
				text-decoration: none;
			}
		}
		img {
			height: 15px !important;
		}
	}
	.product__description {
		border-bottom: 1px solid var(--color-off-white);
		padding-bottom: 20px;
		margin-bottom: 20px;
		line-height: 1.5;

		p {
			margin: 0;
			padding: 0;
			margin-bottom: 16px;
		}
		font-size: var(--font-size-medium);
		strong {
			font-weight: 600;
		}
	}
	@media screen and (max-width: 768px) {
		display: flex;
		flex-direction: column;
		.product__content,
		.product__media {
			display: contents;
		}
		.review-item {
			order: 6;
			margin-bottom: 16px;
		}
		.product__tabs {
			order: 7;
		}
	}
}

.variants {
	display: flex;
	flex-direction: column;
	gap: 16px;
	margin-bottom: 20px;
	.variants__item {
		border-radius: 5px;
		background: var(--color-off-white);
		padding: 20px;
		border: 1px solid transparent;
		cursor: pointer;
		&:has(input:checked) {
			border-color: var(--color-terracotta);
			.variants__label__text:before {
				background: var(--color-terracotta);
			}
		}
		input {
			display: none;
		}
	}
	.variants__label {
		display: flex;
		justify-content: space-between;
	}
	.variants__label__text {
		font-weight: 600;
		font-size: var(--font-size-base);
		display: inline-flex;
		align-items: center;
		&:before {
			content: "";
			width: 13px;
			height: 13px;
			display: inline-block;
			border-radius: 50%;
			margin-right: 10px;
			outline: 1px solid var(--color-terracotta);
			border: 2px solid var(--color-off-white);
		}
	}
	.variants__label__prices {
		del {
			font-weight: 200;
			font-size: 12px;
		}
		strong {
			font-weight: 600;
			color: var(--color-terracotta);
			margin-left: 4px;
			display: inline-block;
			transform: translateY(2px);
		}
	}
	.variants__label__desc {
		padding-top: 16px;
	}
}

ul.checkmark {
	list-style-type: none;
	padding: 0;
	margin: 0;
	li {
		display: flex;
		gap: 8px;
		font-size: var(--font-size-base);
		font-weight: 200;
		&:not(:last-child) {
			margin-bottom: 8px;
		}
		&:before {
			content: "";
			width: 18px;
			height: 18px;
			background: url("../img/checkmark.svg") no-repeat;
		}
	}
	&.is-full {
		li {
			&:not(:last-child) {
				margin-bottom: 14px;
			}
			&:before {
				background: url("../img/checkmark-full.svg") no-repeat;
			}
		}
	}
}

.quantity {
	width: 110px;
	position: relative;
	min-width: 110px;
	button {
		position: absolute;
		cursor: pointer;
		top: 0;
		bottom: 0;
		width: 50px;
		background: none;
		border: none;
		cursor: pointer;
		padding: 0;
		text-align: center;
		justify-content: center;
		font-size: 24px;
	}
	button:last-child {
		right: 0;
	}
	input {
		width: 100%;
		text-align: center;
		padding-inline: 30px;
	}
}

.gallery {
	margin-bottom: 30px;
	position: relative;
	@media screen and (min-width: 767px) {
		padding-left: 80px;
		margin-bottom: 50px;
	}
	.gallery__main {
		display: flex;
		overflow-x: auto;
		overflow-y: hidden;
		scroll-snap-type: x mandatory;
		webkit-touch-callout: none;
		-webkit-overflow-scrolling: touch;
		margin-bottom: 20px;
		.gallery__main__image {
			flex: 1 0 auto;
			position: relative;
			scroll-snap-align: start;
			width: 100%;
			> img {
				display: block;
				height: 100%;
				object-fit: cover;
			}
			&:not(:last-child) {
				margin-right: 1rem;
			}
		}

		-ms-overflow-style: none;
		scrollbar-width: none;

		&::-webkit-scrollbar {
			display: none;
		}
	}
	.gallery__badges {
		position: absolute;
		top: 0;
		left: 0;
		display: flex;
		gap: 1rem;
		width: 100%;
	}

	.gallery__thumbs {
		display: flex;
		justify-content: space-between;
		gap: 0.5rem;
		img {
			cursor: pointer;
			opacity: 0.8;
			transition: opacity 0.3s ease;
			border: 1px solid transparent;
			width: auto;
			&:hover {
				opacity: 1;
			}

			&.active {
				border-color: var(--color-terracotta);
				opacity: 1;
			}
		}
	}
}

.badges {
	display: flex;
	gap: 20px;
	width: 100%;
	align-items: center;
	img {
		width: 20%;
		max-width: 110px;
	}
}

.review-item {
	display: flex;
	gap: 20px;
	align-items: start;
	.review-item__media {
		width: 76px;
		min-width: 76px;
	}
	.review-item__content {
		font-weight: 200;
		font-size: var(--font-size-medium);
		line-height: 1.5;
	}
	.review-item__content__text {
		margin-bottom: 8px;
	}
	.review-item__content__meta {
		font-size: var(--font-size-base);
		display: inline-flex;
		align-items: center;
		gap: 8px;
	}
}

.gallery__dots {
	display: flex;
	justify-content: center;
	gap: 8px;
	margin: 16px 0;
	display: none;
}

.dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #ccc;
	cursor: pointer;

	&.active {
		background: var(--color-terracotta);
	}
}

.brands {
	display: grid;
	grid-template-columns: min-content 1fr;
	gap: 100px;
	align-items: center;
	@media screen and (max-width: 768px) {
		display: flex;
		flex-direction: column;
		gap: 20px;
		justify-content: center;
	}
	h3 {
		font-size: var(--font-size-medium);
		font-weight: 200;
		white-space: nowrap;
		margin: 0;
	}
	.brands__logos {
		display: flex;
		padding-bottom: 16px;
		margin-bottom: -16px;
		gap: 75px;
		display: flex;
		overflow-x: auto;
		overflow-y: hidden;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		scroll-behavior: smooth;
		-ms-overflow-style: none;
		scrollbar-width: none;
		padding-right: 75px;
		&::-webkit-scrollbar {
			display: none;
		}
		@media screen and (max-width: 768px) {
			padding-right: 50px;
			gap: 50px;
		}

		img {
			max-height: 30px;
		}
	}
}

.features {
	@media screen and (min-width: 767px) {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		.features__content {
			padding-right: 100px;
			order: -1;
		}
	}
	.features__title {
		font-size: var(--font-size-h1);
		margin: 0;
		margin-bottom: 20px;
	}
	.features__desc {
		margin: 0;
		font-size: 24px;
		font-weight: 200;
		line-height: 1.5;
		margin-bottom: 24px;
	}
	@media screen and (max-width: 768px) {
		.features__media {
			margin-bottom: 24px;
		}
	}
}

.info-blocks {
	.info-blocks__item {
		p {
			font-weight: 200;
			line-height: 1.5;
			font-size: var(--font-size-base);
		}
		h3 {
			font-weight: 400;
			line-height: 1.2;
		}
	}
	@media screen and (min-width: 767px) {
		.info-blocks__item {
			display: grid;
			grid-template-columns: repeat(2, 1fr);
			gap: 100px;

			&:not(:last-child) {
				margin-bottom: 50px;
			}
			h3 {
				font-size: 35px;
				padding-top: 2%;
				margin: 0;

				margin-bottom: 20px;
			}
			p {
				font-size: var(--font-size-medium);
			}

			&:nth-child(odd) {
				.info-blocks__media {
					order: 2;
				}
				.info-blocks__content {
					order: 1;
				}
			}
		}
	}
}

.faq-section {
	display: flex;
	flex-direction: column;
	gap: 24px;
	padding-right: var(--inner-padding);
	@media screen and (min-width: 767px) {
		flex-direction: row;
		gap: 0;
		padding-right: 0;
		.faq-section__content {
			width: 55%;
			min-width: 400px;
		}
		.faq-section__media {
			transform: translateX(10%);
			margin-left: -5%;
			z-index: -1;
		}
	}
	.faq-section__title {
		font-size: var(--font-size-h1);
		margin: 0;
		margin-bottom: 40px;
		text-align: center;
	}
}

/* https://www.a11yproject.com/posts/how-to-hide-content/ */
.visually-hidden {
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	height: 1px;
	overflow: hidden;
	position: absolute;
	white-space: nowrap;
	width: 1px;
}

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

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="password"],
input[type="search"],
input[type="url"] {
	border: 1px solid var(--color-terracotta);
	border-radius: 100px;
	display: inline-flex;
	align-items: center;
	padding: 0 1rem;
	font-size: var(--font-size-base);
	width: 100%;
	height: var(--input-height);
	font-weight: 200;
	font-family: var(--font-family);
	&:focus,
	&:focus-visible {
		outline: none;
		border-color: var(--color-dark-teal);
	}
}

.button,
button {
	border: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	text-align: center;
	text-decoration: none;
	height: var(--input-height);
	gap: 1rem;
	justify-content: center;
	font-size: var(--font-size-base);
	font-weight: 200;
	border-radius: 100px;
	font-family: var(--font-family);
	padding-inline: 50px;
	white-space: nowrap;
	@media screen and (max-width: 768px) {
		padding-inline: 30px;
	}
	&.is-primary {
		background-color: var(--color-terracotta);
		color: var(--color-white);
		&:hover {
			background-color: #a44e3f;
		}
	}
}

.newsletter-section {
	display: grid;
	grid-template-columns: 1fr 3fr 1fr;
	align-items: start;
	gap: 1rem;
	.newsletter-section__form {
		text-align: center;
	}

	@media screen and (max-width: 768px) {
		grid-template-columns: 1fr;
		.newsletter-section__left-side {
			display: none;
		}
		.newsletter-section__form {
			order: -1;
		}
	}
}

.newsletter-form {
	@media screen and (min-width: 769px) {
		margin-bottom: -100px;
	}
	.newsletter-form__inputs {
		display: grid;
		gap: 32px;
		@media screen and (max-width: 768px) {
			display: grid;
			grid-template-columns: 1fr;
			gap: 16px;
		}
		@media screen and (min-width: 769px) {
			display: grid;
			grid-template-columns: 2fr 1fr;
		}
	}
	.newsletter-form__disclaimer {
		font-size: var(--font-size-small);
		font-weight: 200;
		text-align: center;
		padding-top: 1rem;
	}
}

.footer {
	display: grid;
	grid-template-columns: 1fr 3fr;
	gap: 50px;
	.footer__links {
		margin-left: auto;
	}
	@media screen and (max-width: 768px) {
		grid-template-columns: 1fr;
		gap: 24px;
		.footer__links {
			margin-left: 0;
			order: -1;
		}
	}
}

.linklists {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 100px;
	font-size: var(--font-size-small);
	@media screen and (max-width: 768px) {
		font-size: 10px;
		gap: 50px;
	}
	h3 {
		font-weight: 400;
		margin: 0;
		margin-bottom: 24px;
	}
	ul {
		list-style: none;
		padding: 0;
		margin: 0;
		li {
			&:not(:last-child) {
				margin-bottom: 16px;
			}
			a {
				text-decoration: none;
				font-weight: 200;
				text-transform: uppercase;
				color: var(--color-dark-gray);
				&:hover {
					color: var(--color-terracotta);
				}
			}
		}
	}
}

.footer-logo {
	display: flex;
	flex-direction: column;
	font-size: var(--font-size-small);
	font-weight: 200;
	gap: 16px;
	img {
		display: block;
	}
	.social {
		order: 3;
	}
	@media screen and (max-width: 768px) {
		display: initial;
		.social {
			float: right;
			padding-top: 8px;
		}
	}
}

.social {
	display: flex;
	gap: 16px;
	a {
		width: 40px;
		height: 40px;
		display: inline-flex;
		justify-content: center;
		align-items: center;
		border-radius: 50%;
		border: 1px solid var(--color-terracotta);
	}
}

.footer-bar {
	font-size: var(--font-size-base);
	display: flex;
	@media screen and (max-width: 768px) {
		flex-direction: column;
		align-items: center;
	}
	h4,
	p {
		margin: 0;
		font-weight: 300;
		max-width: 400px;
	}
	p {
		font-size: var(--font-size-small);
		font-weight: 200;
		line-height: 1.5;
	}
	.footer-bar__disclaimer {
		display: flex;
		gap: 8px;
		flex-direction: column;
		font-weight: 200;
	}

	@media screen and (max-width: 768px) {
		text-align: center;
		align-items: center;
	}
}
