:root {
	--crochetia-bg: #fffdf9;
	--crochetia-bg-soft: #f5ece5;
	--crochetia-surface: #ffffff;
	--crochetia-text: #252a24;
	--crochetia-text-muted: #62645e;
	--crochetia-accent: #a65340;
	--crochetia-accent-hover: #8f4636;
	--crochetia-accent-soft: #f1ddd5;
	--crochetia-border: #e5d8ce;
	--crochetia-sage: #7c8b72;
	--crochetia-sage-soft: #e9eee5;
	--crochetia-footer: #f7f3ee;
	--color-text: var(--crochetia-text);
	--color-heading: var(--crochetia-text);
	--color-muted: var(--crochetia-text-muted);
	--color-background: var(--crochetia-bg);
	--color-surface: var(--crochetia-bg-soft);
	--color-surface-strong: var(--crochetia-sage-soft);
	--color-card: var(--crochetia-surface);
	--color-border: var(--crochetia-border);
	--color-accent: var(--crochetia-accent);
	--color-accent-dark: var(--crochetia-accent-hover);
	--color-accent-strong: var(--crochetia-accent-hover);
	--color-secondary: var(--crochetia-accent);
	--color-secondary-soft: var(--crochetia-accent-soft);
	--font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--font-serif: Georgia, "Times New Roman", serif;
	--container: 78rem;
	--content: 47rem;
	--wide-content: 60rem;
	--radius-sm: 0.4rem;
	--radius-md: 0.7rem;
	--radius-lg: 0.9rem;
	--shadow-md: 0 0.75rem 2rem rgb(71 47 37 / 10%);
	--space-1: 0.5rem;
	--space-2: 1rem;
	--space-3: 1.5rem;
	--space-4: 2rem;
	--space-5: 3rem;
	--space-6: 4.5rem;
}

*,
*::before,
*::after { box-sizing: border-box; }

html { overflow-x: hidden; scroll-behavior: smooth; }

body {
	margin: 0;
	color: var(--color-text);
	background: var(--color-background);
	font-family: var(--font-sans);
	font-size: 1rem;
	line-height: 1.7;
	overflow-wrap: break-word;
}

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

iframe { max-width: 100%; }

button,
input,
select,
textarea { max-width: 100%; font: inherit; }

a { color: var(--color-accent-dark); text-decoration-thickness: 0.075em; text-underline-offset: 0.17em; }
a:hover { text-decoration-thickness: 0.12em; }

:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }

h1,
h2,
h3,
h4,
h5,
h6 {
	margin-block: 0 0.65em;
	color: var(--color-heading);
	font-family: var(--font-serif);
	font-weight: 700;
	letter-spacing: -0.018em;
	line-height: 1.16;
}

p { margin-block: 0 1.25em; }

.container { width: min(100% - 2rem, var(--container)); margin-inline: auto; }
.content-narrow { max-width: var(--content); }
.site-main { padding-block: var(--space-4); }

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.screen-reader-text:focus {
	top: var(--space-2);
	left: var(--space-2);
	z-index: 100000;
	width: auto;
	height: auto;
	padding: var(--space-1) var(--space-2);
	clip: auto;
	background: var(--color-card);
	white-space: normal;
}

.page-header { margin-bottom: var(--space-4); }
.entry-card { padding-block: var(--space-3); border-bottom: 1px solid var(--color-border); }
.entry-card__image { display: block; margin-bottom: var(--space-2); }
.entry-title { font-size: clamp(2rem, 6vw, 3.35rem); }
.entry-card .entry-title { font-size: clamp(1.35rem, 4vw, 2rem); }
.entry-title a { color: inherit; text-decoration: none; }
.entry-meta { margin-bottom: var(--space-2); color: var(--color-muted); font-size: 0.88rem; }
.entry-featured-image { margin-bottom: var(--space-4); }
.entry-featured-image img { border-radius: var(--radius-md); }
.entry-content { font-size: 1.05rem; }
.entry-content > * { max-width: 100%; }
.entry-content .alignwide { width: min(100vw - 2rem, var(--container)); max-width: none; margin-left: 50%; transform: translateX(-50%); }
.entry-content .alignfull { width: 100vw; max-width: none; margin-left: 50%; transform: translateX(-50%); }

.widget-area { padding-block: var(--space-4); }
.widget { padding: var(--space-3); background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-md); }
.widget + .widget { margin-top: var(--space-3); }
.widget-title { font-size: 1.25rem; }

.navigation.pagination .page-numbers {
	display: inline-flex;
	min-width: 2.75rem;
	min-height: 2.75rem;
	align-items: center;
	justify-content: center;
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
}

@media (min-width: 48rem) {
	body { font-size: 1.0625rem; }
	.container { width: min(100% - 3.5rem, var(--container)); }
	.content-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(15rem, 19rem); gap: var(--space-5); }
}

@media (min-width: 80rem) {
	.container { width: min(100% - 5rem, var(--container)); }
}
