.tmse-shop .tmse-hero,
.tmse-shop .tmse-content {
	--tmse-ink: #2d3134;
	--tmse-muted: #66706e;
	--tmse-sage: #e6eee8;
	--tmse-sage-dark: #587262;
	--tmse-nude: #f8ebe3;
	--tmse-line: rgba(45, 49, 52, .12);
	color: var(--tmse-ink);
	font-family: "Jost", sans-serif;
}

.tmse-shop .tmse-hero *,
.tmse-shop .tmse-content * {
	box-sizing: border-box;
}

.tmse-shop .tmse-wrap {
	margin: 0 auto;
	max-width: 1200px;
	padding-left: 32px;
	padding-right: 32px;
	width: 100%;
}

.tmse-shop .tmse-wrap--narrow {
	max-width: 1120px;
}

.tmse-shop .tmse-hero {
	background:
		radial-gradient(circle at 88% 15%, rgba(216, 195, 181, .35), transparent 28%),
		linear-gradient(135deg, #fbf4ef 0%, #f7f8f4 58%, #e7efe9 100%);
	padding: 64px 0 0;
}

.tmse-shop .tmse-eyebrow {
	color: var(--tmse-sage-dark);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 1.7px;
	margin: 0 0 15px;
	text-transform: uppercase;
}

.tmse-shop .tmse-hero h1 {
	color: var(--tmse-ink);
	font-family: "Playfair Display", serif;
	font-size: clamp(36px, 5vw, 62px);
	font-weight: 500;
	letter-spacing: -.035em;
	line-height: 1.06;
	margin: 0;
	max-width: 900px;
}

.tmse-shop .tmse-lead {
	color: #4f5957;
	font-size: 17px;
	line-height: 1.75;
	margin: 24px 0 0;
	max-width: 850px;
}

.tmse-shop .tmse-category-grid {
	display: grid;
	gap: 14px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin-top: 38px;
}

.tmse-shop .tmse-category-card {
	background: rgba(255, 255, 255, .82);
	border: 1px solid rgba(45, 49, 52, .09);
	border-radius: 15px;
	color: var(--tmse-ink);
	display: flex;
	flex-direction: column;
	min-height: 165px;
	padding: 23px;
	position: relative;
	text-decoration: none;
	transition: border-color .22s ease, box-shadow .22s ease, transform .22s ease;
}

.tmse-shop .tmse-category-card:hover,
.tmse-shop .tmse-category-card:focus-visible {
	border-color: rgba(88, 114, 98, .45);
	box-shadow: 0 14px 30px rgba(45, 49, 52, .07);
	color: var(--tmse-ink);
	transform: translateY(-3px);
}

.tmse-shop .tmse-category-card__title {
	font-family: "Playfair Display", serif;
	font-size: 22px;
	font-weight: 500;
	line-height: 1.2;
	padding-right: 22px;
}

.tmse-shop .tmse-category-card__text {
	color: var(--tmse-muted);
	font-size: 14px;
	line-height: 1.5;
	margin-top: 12px;
}

.tmse-shop .tmse-category-card__arrow {
	bottom: 18px;
	color: var(--tmse-sage-dark);
	font-size: 19px;
	position: absolute;
	right: 20px;
}

.tmse-shop .tmse-trust {
	border-top: 1px solid var(--tmse-line);
	display: grid;
	gap: 16px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	list-style: none;
	margin: 36px 0 0;
	padding: 20px 0 22px;
}

.tmse-shop .tmse-trust li {
	align-items: center;
	color: #4b5653;
	display: flex;
	font-size: 13px;
	gap: 9px;
	line-height: 1.35;
}

.tmse-shop .tmse-trust li span {
	align-items: center;
	background: rgba(88, 114, 98, .12);
	border-radius: 50%;
	color: var(--tmse-sage-dark);
	display: inline-flex;
	flex: 0 0 22px;
	font-size: 12px;
	height: 22px;
	justify-content: center;
	width: 22px;
}

.tmse-shop .tmse-content {
	background: #f7f8f5;
	margin-top: 72px;
	padding: 82px 0 88px;
}

.tmse-shop .tmse-content h2,
.tmse-shop .tmse-content h3 {
	color: var(--tmse-ink);
	font-family: "Playfair Display", serif;
	font-weight: 500;
}

.tmse-shop .tmse-content h2 {
	font-size: clamp(30px, 4vw, 44px);
	letter-spacing: -.025em;
	line-height: 1.12;
	margin: 0 0 24px;
}

.tmse-shop .tmse-content__intro {
	max-width: 900px;
}

.tmse-shop .tmse-content__intro p {
	color: var(--tmse-muted);
	font-size: 16px;
	line-height: 1.8;
	margin: 0 0 16px;
}

.tmse-shop .tmse-choice,
.tmse-shop .tmse-guides,
.tmse-shop .tmse-faq {
	border-top: 1px solid var(--tmse-line);
	margin-top: 56px;
	padding-top: 48px;
}

.tmse-shop .tmse-choice__grid,
.tmse-shop .tmse-guides__grid {
	display: grid;
	gap: 16px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.tmse-shop .tmse-choice__card,
.tmse-shop .tmse-guide {
	background: #fff;
	border: 1px solid var(--tmse-line);
	border-radius: 14px;
	padding: 25px;
}

.tmse-shop .tmse-choice__card h3 {
	font-size: 22px;
	line-height: 1.25;
	margin: 0 0 12px;
}

.tmse-shop .tmse-choice__card p {
	color: var(--tmse-muted);
	font-size: 14px;
	line-height: 1.65;
	margin: 0;
}

.tmse-shop .tmse-guide {
	color: var(--tmse-ink);
	display: flex;
	flex-direction: column;
	min-height: 145px;
	text-decoration: none;
	transition: border-color .2s ease, transform .2s ease;
}

.tmse-shop .tmse-guide:hover,
.tmse-shop .tmse-guide:focus-visible {
	border-color: rgba(88, 114, 98, .5);
	color: var(--tmse-ink);
	transform: translateY(-2px);
}

.tmse-shop .tmse-guide__title {
	font-family: "Playfair Display", serif;
	font-size: 20px;
	line-height: 1.3;
}

.tmse-shop .tmse-guide__more {
	color: var(--tmse-sage-dark);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 1.1px;
	margin-top: auto;
	padding-top: 20px;
	text-transform: uppercase;
}

.tmse-shop .tmse-faq__list {
	border-top: 1px solid var(--tmse-line);
}

.tmse-shop .tmse-faq details {
	border-bottom: 1px solid var(--tmse-line);
}

.tmse-shop .tmse-faq summary {
	color: var(--tmse-ink);
	cursor: pointer;
	font-size: 17px;
	font-weight: 500;
	list-style-position: outside;
	padding: 20px 28px 20px 2px;
}

.tmse-shop .tmse-faq details p {
	color: var(--tmse-muted);
	font-size: 15px;
	line-height: 1.7;
	margin: -4px 0 0;
	max-width: 850px;
	padding: 0 0 22px 2px;
}

.tmse-shop .tmse-disclaimer {
	background: var(--tmse-nude);
	border-radius: 10px;
	color: #5f5c59;
	font-size: 13px;
	line-height: 1.6;
	margin: 42px 0 0;
	padding: 17px 20px;
}

@media (max-width: 1024px) {
	.tmse-shop .tmse-category-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.tmse-shop .tmse-trust {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.tmse-shop .tmse-wrap {
		padding-left: 18px;
		padding-right: 18px;
	}

	.tmse-shop .tmse-hero {
		padding-top: 42px;
	}

	.tmse-shop .tmse-hero h1 {
		font-size: 39px;
	}

	.tmse-shop .tmse-lead {
		font-size: 16px;
		line-height: 1.65;
	}

	.tmse-shop .tmse-category-grid,
	.tmse-shop .tmse-choice__grid,
	.tmse-shop .tmse-guides__grid {
		grid-template-columns: 1fr;
	}

	.tmse-shop .tmse-category-card {
		min-height: 145px;
	}

	.tmse-shop .tmse-trust {
		gap: 13px;
		grid-template-columns: 1fr;
	}

	.tmse-shop .tmse-content {
		margin-top: 50px;
		padding: 58px 0 62px;
	}

	.tmse-shop .tmse-choice,
	.tmse-shop .tmse-guides,
	.tmse-shop .tmse-faq {
		margin-top: 42px;
		padding-top: 38px;
	}
}

