@font-face {
	font-family: 'intro_regular';
	src: url('../fonts/intro-webfont.woff') format('woff'),
	     url('../fonts/intro-webfont.ttf') format('truetype');
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}

/* The original site loaded Museo Slab from fonts.net, which is now defunct;
   this stack falls back to system slab/serif faces instead. */
:root {
	--font-slab: 'Museo Slab', 'Rockwell', 'Courier New', Georgia, serif;
	--font-display: 'intro_regular', serif;
	--ink: #33322c;
}

* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	padding-bottom: 20px;
	background: #fff url('../images/bg.png') top left repeat-x;
	color: var(--ink);
	font-family: Helvetica, Arial, sans-serif;
	font-size: 14px;
	line-height: 1.43;
}

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

.container {
	max-width: 730px;
	margin: 0 auto;
	padding: 0 15px;
}

/* --- Fixed nav --- */

.header {
	background: url('../images/bg-nav.png') top left repeat;
	border-bottom: 1px solid #e5e5e5;
	position: fixed;
	width: 100%;
	top: 0;
	z-index: 100;
}

.nav {
	text-align: center;
	text-transform: uppercase;
}

.nav a {
	color: var(--ink);
	font-family: var(--font-display);
	font-size: 22px;
	text-decoration: none;
	display: inline-block;
	padding: 10px 15px;
}

.nav a:hover {
	text-decoration: underline;
}

/* --- Masthead + intro --- */

main {
	margin-top: 75px;
}

.logo {
	text-align: center;
	margin-top: 25px;
}

hr.fancy-hr {
	background: url('../images/bg-hr.png') top left no-repeat;
	display: block;
	height: 17px;
	border: none;
	margin: 20px 0 50px;
}

#order {
	margin: 50px 0 20px;
	scroll-margin-top: 90px;
}

p.intro {
	font-family: var(--font-slab);
	font-size: 22px;
	line-height: 1.4;
}

/* --- Order ribbon --- */

.ribbon-big {
	height: 168px;
	background: url('../images/bg-ribbon-big.png') top center no-repeat;
	text-align: center;
	padding-top: 19px;
	margin-bottom: 50px;
}

.ribbon-big h5 {
	font-family: var(--font-display);
	color: #fff;
	font-size: 30px;
	font-weight: normal;
	margin: 0;
	line-height: 1.1;
}

.ribbon-big h5 span {
	font-size: 43px;
}

.ribbon-big p {
	color: #fff;
	font-family: var(--font-slab);
	font-size: 22px;
	margin: 4px 0 0;
}

/* --- Section headings --- */

h4 {
	background: url('../images/bg-h4.png') center center no-repeat;
	text-transform: uppercase;
	font-family: var(--font-slab);
	font-weight: 500;
	text-align: center;
	font-size: 30px;
	margin: 10px 0 30px;
	scroll-margin-top: 90px;
}

/* --- Features list --- */

ul.lightning {
	margin: 0 0 35px;
	padding-left: 10px;
	list-style: none;
}

/* The original bullet-lighting.png is gone from the server; inline SVG bolt instead. */
ul.lightning li {
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='38' height='38'%3E%3Cpath fill='%23e31b23' d='M13 2 4.5 13.5h5L9 22l8.5-11.5h-5z'/%3E%3C/svg%3E") center left no-repeat;
	padding: 10px 0 10px 70px;
	font-family: var(--font-slab);
	font-size: 22px;
}

/* --- Product grid --- */

ul.products {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, 347px);
	justify-content: center;
	gap: 20px 6px;
}

ul.products button {
	all: unset;
	cursor: pointer;
	display: block;
}

ul.products button img {
	border: 10px solid #dee9f3;
	border-bottom: none;
	display: block;
	margin-left: 17px;
}

ul.products li:nth-of-type(even) button img {
	margin-left: 0;
	margin-right: 17px;
}

ul.products button h2 {
	background: url('../images/ribbon-left.png') top left no-repeat;
	color: #fff;
	font-family: var(--font-slab);
	font-weight: 300;
	font-size: 24px;
	height: 68px;
	width: 347px;
	margin: 0;
	padding-top: 14px;
	text-align: center;
}

ul.products li:nth-of-type(even) button h2 {
	background: url('../images/ribbon-right.png') top right no-repeat;
}

/* --- Pricing lightboxes --- */

dialog.ltbx {
	border: none;
	border-radius: 4px;
	padding: 15px;
	max-width: 540px;
	box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
}

dialog.ltbx::backdrop {
	background: rgba(0, 0, 0, 0.6);
}

dialog.ltbx .close {
	position: absolute;
	top: 2px;
	right: 8px;
	border: none;
	background: none;
	font-size: 28px;
	line-height: 1;
	cursor: pointer;
	color: var(--ink);
}

dialog.ltbx img {
	display: block;
	margin: 0 auto 10px;
}

dialog.ltbx h6 {
	font-family: var(--font-slab);
	font-weight: 500;
	font-size: 20px;
	text-align: center;
	margin: 0;
	padding: 5px 0;
	color: #fff;
}

dialog.ltbx h6.red-bg {
	background: red;
}

dialog.ltbx table {
	font-family: var(--font-slab);
	width: 100%;
	border: 3px red solid;
	margin: 0;
	border-collapse: collapse;
}

dialog.ltbx th {
	text-transform: uppercase;
	padding: 6px 0;
}

dialog.ltbx tr.primary th {
	font-size: 14px;
	padding-top: 15px;
	font-weight: 500;
}

dialog.ltbx tr.red {
	color: red;
}

dialog.ltbx td {
	padding: 4px 0;
}

dialog.ltbx td,
dialog.ltbx th {
	text-align: center;
}

dialog.ltbx tr.slip-cover td {
	padding-top: 10px;
	padding-bottom: 15px;
}

dialog.ltbx h3 {
	text-align: center;
	background: #33322c;
	color: #fff;
	padding: 8px 0;
	font-size: 24px;
	font-weight: normal;
	margin: 0;
}

/* --- Footer --- */

.footer {
	margin-top: 100px;
	padding-top: 19px;
	color: #777;
	border-top: 1px solid #e5e5e5;
}

/* --- Small screens --- */

@media (max-width: 400px) {
	ul.products {
		grid-template-columns: 1fr;
	}

	ul.products button img,
	ul.products li:nth-of-type(even) button img {
		margin: 0 auto;
	}

	ul.products button h2 {
		width: 100%;
		background-color: #e31b23;
		background-image: none;
	}
}
