:root {
	--black: #2d2d2d;
	--merlot: #541f31;
	--umber: #574a42;
	--taupe: #574a42;
	--echo: #dacec0;
	--ivory: #e8e6d9;

	--black-50: #2d2d2d80;
	--merlot-50: #541f3180;
	--umber-50: #574a4280;
	--taupe-50: #574a4280;
	--echo-50: #dacec080;
	--ivory-50: #e8e6d980;

	--black-25: #2d2d2d40;
	--merlot-25: #541f3140;
	--umber-25: #574a4240;
	--taupe-25: #574a4240;
	--echo-25: #dacec040;
	--ivory-25: #e8e6d940;
}

/* ---------- Base ---------- */

body {
	font-family: Noto, sans-serif;
	background-color: var(--merlot);
	background-image: url('background.jpg');
	background-size: 90% auto;
	background-position: center center;
	background-attachment: fixed;
	background-repeat: no-repeat repeat;
	color: var(--ivory);
}

img {
	max-width: 100%;
	display: block;
	margin: 1rem auto;
	border-radius: 4px;
}

/* ---------- Navigation ---------- */

.button-bar { display: flex; /* Arranges the buttons in a horizontal row */ max-width: 700px; justify-content: center; margin: auto auto; border: medium solid var(--umber); background-color: var(--umber-50); border-radius: 6px; overflow: hidden; /* Ensures no content spills out */ }

a.button_bar { max-width: 700px; margin: 10px auto; width: fit-content; display: block; background: white; padding: 10px; border: medium solid var(--black); border-radius: 6px; text-align: center; font-size: 12px; background-color: var(--merlot-50); color: var(--fg-color); text-decoration: none; }

a.button_bar:hover {
	background-color: var(--merlot);
}

/* ---------- Headings ---------- */

h1, h2, h3 {
	text-align: center;
}

h1 {
	margin: 1rem auto;
	padding: 10px;
	border-radius: 6px;
	border: medium solid var(--black);
	background-color: var(--merlot-50);
}

h2 {
	margin-top: 0.5rem;
	font-size: 1.6rem;
}

h3 {
	margin: 1rem auto;
	font-weight: normal;
}

/* ---------- Sections ---------- */

section.main {
	max-width: 800px;
	margin: 50px auto;
	padding: 20px;
	border-radius: 6px;
	border: medium solid var(--black);
	background-color: var(--echo-25);
}

section {
	max-width: 700px;
	margin: 1.5rem auto;
	padding: 20px;
	border-radius: 6px;
	border: medium solid var(--black);
	background-color: var(--merlot-50);
}

/* ---------- Product Grid ---------- */

.product-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 2rem;
	max-width: 900px;
	margin: 2rem auto;
}

.product-card {
	padding: 2rem;
	border-radius: 8px;
	border: medium solid var(--black);
	background-color: var(--echo-25);
	text-align: left;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

/* ---------- Product Elements ---------- */

.product-badge {
	font-size: 0.7rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--echo);
	margin-bottom: 0.5rem;
}

.product-description {
	line-height: 1.6;
	margin: 1rem 0;
	color: var(--ivory);
}

.product-features {
	list-style-type: circle;
	padding-left: 1.2rem;
	margin: 1rem 0;
}

.product-features li {
	margin-bottom: 0.5rem;
}

.product-note {
	font-size: 0.85rem;
	color: var(--ivory-50);
	font-style: italic;
	margin-top: 1rem;
}

/* ---------- Buttons ---------- */

a.button-primary {
	display: inline-block;
	margin-top: 1.5rem;
	padding: 12px 20px;
	border-radius: 6px;
	border: medium solid var(--black);
	background-color: var(--umber-50);
	color: var(--ivory);
	font-size: 1.1rem;
	text-align: center;
	text-decoration: none;
}

a.button-primary:hover {
	background-color: var(--umber);
}

/* ---------- Forms & Misc ---------- */

div.form {
	max-width: 700px;
	margin: 1rem auto;
	padding: 10px;
	border-radius: 6px;
	border: medium solid var(--black);
	background-color: var(--umber-50);
}

input.input_text {
	width: 100%;
}

label.disclaimer {
	font-size: 12px;
}

p.disclaimer {
	font-size: 8px;
}

a {
	color: var(--echo);
	text-decoration: none;
}

.form h3 {
	margin-top: 1.5rem;
	margin-bottom: 0.5rem;
	text-align: left;
	color: var(--ivory);
}

.form label {
	display: block;
	margin-top: 1rem;
	margin-bottom: 0.25rem;
	font-weight: 500;
}

.form input[type="file"],
.form select,
.form input[type="date"] {
	margin-bottom: 0.75rem;
}

.form-disclaimer {
	margin: 1.5rem 0;
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
}

.form-disclaimer input {
	margin-top: 0.25rem;
}

input[type="submit"].button.primary {
	cursor: pointer;
}