/* Design tokens, typography and layout helpers shared by every page. */

:root {
	--color-primary: #e35205; /* Figma: E35205 */
	--color-primary-light: #fceae1; /* E35205 at ~12% over white */
	--color-text: #111111;
	--color-text-muted: #6b6b6b;
	--color-bg: #f0f0f0;
	--color-input: #efefef;
	--color-surface: #ffffff;
	--color-dark: #0b0b0b;
	--color-border: #e2e2e2;
	--color-success: #25d366;

	--font-base: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

	--container-width: 1280px;
	--container-gutter: 16px;

	--radius: 2px;
	--transition: 0.2s ease;
}

body {
	margin: 0 !important;
	font-family: var(--font-base);
	color: var(--color-text);
	background: var(--color-bg);
}

.container {
	width: 100%;
	max-width: calc(var(--container-width) + var(--container-gutter) * 2);
	margin: 0 auto;
	padding: 0 var(--container-gutter);
	box-sizing: border-box;
}

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 10px 24px;
	border: 0;
	border-radius: var(--radius);
	background: var(--color-primary);
	color: #fff;
	text-decoration: none;
	cursor: pointer;
	transition: opacity var(--transition);
}

.btn:hover {
	opacity: 0.9;
}

/* Section heading: orange label with a slanted right edge, line and link. */

.section-heading {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	border-bottom: 1px solid var(--color-primary);
}

.section-heading__title {
	margin: 0;
	padding: 0 76px 0 16px;
	background: var(--color-primary);
	clip-path: polygon(0 0, calc(100% - 56px) 0, 100% 100%, 0 100%);
	font-size: 28px;
	font-weight: 400;
	line-height: 66px;
	color: #fff;
	white-space: nowrap;
}

.section-heading__text {
	max-width: 500px;
	margin: 0 0 8px;
	font-size: 16px;
	line-height: 1.6;
	text-align: right;
	color: var(--color-text);
}

.section-heading__aside {
	margin-bottom: 8px;
}

.section-heading__link,
.section-heading__link:visited {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 16px;
	color: var(--color-text);
	text-decoration: none;
	white-space: nowrap;
	transition: color var(--transition);
}

.section-heading__link::before {
	content: "";
	width: 8px;
	height: 8px;
	background: var(--color-primary);
}

.section-heading__link:hover {
	color: var(--color-primary);
}

@media (max-width: 768px) {
	.section-heading__title {
		padding: 0 48px 0 12px;
		clip-path: polygon(0 0, calc(100% - 34px) 0, 100% 100%, 0 100%);
		font-size: 20px;
		line-height: 44px;
	}

	.section-heading__link {
		font-size: 14px;
	}

	/*
	 * Text / aside (rating, "Can't find the answer? · Message us") goes on its own row
	 * under the label: the orange line runs right under the label, the content below it.
	 */
	.section-heading:has(.section-heading__text, .section-heading__aside) {
		flex-wrap: wrap;
		row-gap: 0;
		border-bottom: 0;
	}

	.section-heading__text,
	.section-heading__aside {
		flex-basis: 100%;
		min-width: 0;
		max-width: none;
		margin: 0;
		padding-top: 12px;
		border-top: 1px solid var(--color-primary);
	}

	.section-heading__text {
		font-size: 14px;
		text-align: left;
	}

	/* A long label never pushes the page wider than the screen. */
	.section-heading__title {
		max-width: 100%;
		white-space: normal;
	}
}

/* Wishlist / compare toast (assets/js/product-lists.js). */

.list-toast {
	position: fixed;
	bottom: 24px;
	left: 50%;
	z-index: 1100;
	display: flex;
	align-items: center;
	gap: 16px;
	max-width: calc(100vw - 32px);
	padding: 12px 18px;
	background: var(--color-dark);
	font-size: 15px;
	color: #fff;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
	opacity: 0;
	visibility: hidden;
	transform: translate(-50%, 12px);
	transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
	box-sizing: border-box;
}

.list-toast.is-visible {
	opacity: 1;
	visibility: visible;
	transform: translate(-50%, 0);
}

.list-toast a,
.list-toast a:visited {
	font-weight: 600;
	color: var(--color-primary);
	white-space: nowrap;
}

/* Star rating (mistyrose_swan_stars()). */

.stars {
	display: inline-flex;
	gap: 2px;
}

.stars__star {
	fill: #f8e3a3;
}

.stars__star.is-filled {
	fill: #f5bf32;
}
