/* ==========================================================================
   Design tokens (from the Megz mockup) + reset + base typography
   ========================================================================== */

:root {
	--megz-bg: #F5F1E6;
	--megz-surface: #EFE9DA;
	--megz-page-bg: #E4DBC7;
	--megz-ink: #2E2A25;
	--megz-ink-70: rgba(46, 42, 37, 0.75);
	--megz-ink-65: rgba(46, 42, 37, 0.65);
	--megz-ink-55: rgba(46, 42, 37, 0.55);
	--megz-ink-25: rgba(46, 42, 37, 0.25);
	--megz-ink-12: rgba(46, 42, 37, 0.12);
	--megz-terracota: #C05F49;
	--megz-teal: #4B8096;
	--megz-mustard: #D9A33E;
	--megz-footer-bg: #2E2A25;
	--megz-footer-ink: #F5F1E6;

	--megz-font-serif: 'Lora', Georgia, serif;
	--megz-font-sans: 'Work Sans', -apple-system, BlinkMacSystemFont, sans-serif;

	--megz-radius: 2px;
	--megz-container-w: 1240px;
}

html {
	background: var(--megz-bg);
}

body {
	background: var(--megz-bg);
	color: var(--megz-ink);
	font-family: var(--megz-font-sans);
	font-size: 15px;
	line-height: 1.5;
}

h1, h2, h3, h4 {
	font-family: var(--megz-font-serif);
	font-weight: 600;
	margin: 0 0 0.5em;
}

a {
	color: var(--megz-teal);
	text-decoration: none;
}
a:hover {
	color: var(--megz-terracota);
}

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

input, select, button, textarea {
	font-family: var(--megz-font-sans);
	font-size: 13px;
}

button {
	cursor: pointer;
}

::placeholder {
	color: rgba(46, 42, 37, 0.42);
}

.skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	background: var(--megz-ink);
	color: #fff;
	padding: 10px 16px;
	z-index: 100;
}
.skip-link:focus {
	left: 10px;
}

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	height: 1px;
	overflow: hidden;
	position: absolute !important;
	width: 1px;
}

.megz-container {
	max-width: var(--megz-container-w);
	margin: 0 auto;
	padding: 0 40px;
}
.megz-container--narrow {
	max-width: 720px;
}
.megz-container--center {
	max-width: 460px;
	text-align: center;
}

.megz-btn {
	display: inline-block;
	border: none;
	border-radius: var(--megz-radius);
	padding: 14px 26px;
	font-size: 13.5px;
	letter-spacing: 0.3px;
	cursor: pointer;
	text-align: center;
}
.megz-btn--primary {
	background: var(--megz-terracota);
	color: var(--megz-bg);
}
.megz-btn--primary:hover {
	background: #a94f3b;
	color: var(--megz-bg);
}
.megz-btn--dark {
	background: var(--megz-ink);
	color: #fff;
}
.megz-btn--teal {
	background: var(--megz-teal);
	color: #fff;
}

.megz-media-placeholder {
	position: relative;
	background:
		repeating-linear-gradient(45deg, rgba(75, 128, 150, 0.13) 0px, rgba(75, 128, 150, 0.13) 2px, transparent 2px, transparent 16px),
		var(--megz-surface);
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--megz-radius);
	overflow: hidden;
}
.megz-media-placeholder[style*="--stripe"] {
	background:
		repeating-linear-gradient(45deg, color-mix(in srgb, var(--stripe) 16%, transparent) 0px, color-mix(in srgb, var(--stripe) 16%, transparent) 2px, transparent 2px, transparent 16px),
		var(--megz-surface);
}
.megz-media-placeholder span {
	font-family: monospace;
	font-size: 10px;
	letter-spacing: 1px;
	color: rgba(46, 42, 37, 0.45);
	text-transform: uppercase;
	text-align: center;
	padding: 0 10px;
}
.megz-media-placeholder img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.megz-media-placeholder--round {
	border-radius: 50%;
	aspect-ratio: 1/1;
}

@media (max-width: 780px) {
	.megz-container {
		padding: 0 18px;
	}
}
