/* ---------- Design tokens (from theme.json) ---------- */
:root {
	--wp--preset--color--base: #f4f1ea;
	--wp--preset--color--surface: #ffffff;
	--wp--preset--color--contrast: #1b1d22;
	--wp--preset--color--muted: #5c6170;
	--wp--preset--color--line: #d9d3c5;
	--wp--preset--color--accent: #0f6e5c;
	--wp--preset--color--signal: #e8a33d;

	--wp--preset--font-family--system: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--wp--preset--font-family--mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;

	--wp--preset--font-size--small: 0.875rem;
	--wp--preset--font-size--medium: 1.0625rem;
	--wp--preset--font-size--large: 1.5rem;
	--wp--preset--font-size--x-large: clamp(1.75rem, 3vw, 2.25rem);
	--wp--preset--font-size--huge: clamp(2.25rem, 5vw, 3.5rem);

	--wp--style--global--content-size: 760px;
	--wp--style--global--wide-size: 1200px;
}

/* ---------- Reset / base ---------- */
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	font-family: var(--wp--preset--font-family--system);
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}
img, svg { max-width: 100%; height: auto; display: block; }
a { color: var(--wp--preset--color--accent); }
a:hover { text-decoration: none; }
h1, h2, h3, h4, h5, h6, .wp-block-heading {
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -0.01em;
	margin: 0 0 0.5em;
}
p { margin: 0 0 1em; }
ul, ol { margin: 0 0 1em; }
code { font-family: var(--wp--preset--font-family--mono); }
:focus-visible { outline: 2px solid var(--wp--preset--color--accent); outline-offset: 2px; }

/* ---------- Layout / alignment ---------- */
.wp-block-group { display: block; }
.wp-block-group.has-background { padding: 1.25rem; }
.alignwide { max-width: var(--wp--style--global--wide-size); margin-left: auto; margin-right: auto; }
.alignfull { max-width: none; }
:where(body > *:not(.alignwide):not(.alignfull)),
.wp-block-group > :where(:not(.alignwide):not(.alignfull)) {
	max-width: var(--wp--style--global--content-size);
	margin-left: auto;
	margin-right: auto;
}
.wp-block-group[style*="padding"] > * { max-width: var(--wp--style--global--content-size); margin-left: auto; margin-right: auto; }
.wp-block-group[style*="padding"] > .alignwide { max-width: var(--wp--style--global--wide-size); }
main.wp-block-group { max-width: none; padding-left: 0; padding-right: 0; }

/* ---------- Columns ---------- */
.wp-block-columns {
	display: flex;
	flex-wrap: wrap;
	gap: 2rem;
	margin: 0 0 1.75rem;
}
.wp-block-column { flex: 1 1 0; min-width: 0; }
.wp-block-columns.are-vertically-aligned-center .wp-block-column.is-vertically-aligned-center { align-self: center; }
@media (max-width: 680px) {
	.wp-block-columns { flex-direction: column; }
	.wp-block-column { flex-basis: 100% !important; }
}

/* ---------- Buttons ---------- */
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 0.75rem; margin: 1.5rem 0; }
.wp-block-button__link, .wp-element-button {
	display: inline-flex;
	align-items: center;
	font: inherit;
	font-weight: 600;
	text-decoration: none;
	padding: 0.75rem 1.5rem;
	border-radius: 4px;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--surface);
	border: 1px solid transparent;
	transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.wp-block-button__link:hover { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--surface); }
.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--contrast);
	border-color: var(--wp--preset--color--contrast);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--surface);
}
.wp-block-button.has-background .wp-block-button__link { background: inherit; color: inherit; }

/* ---------- Lists / details / separator ---------- */
.wp-block-list { padding-left: 1.25rem; }
.wp-block-list.is-style-default { list-style: none; }
.wp-block-details {
	border-bottom: 1px solid var(--wp--preset--color--line);
	padding: 0.75rem 0;
}
.wp-block-details summary { cursor: pointer; font-weight: 600; }
.wp-block-separator {
	border: none;
	border-top: 1px solid var(--wp--preset--color--muted);
	margin: 1.5rem 0;
}
.wp-block-separator.is-style-wide { opacity: 0.4; }

/* ---------- Color / font-size utility classes ---------- */
.has-base-color { color: var(--wp--preset--color--base); }
.has-surface-color { color: var(--wp--preset--color--surface); }
.has-contrast-color { color: var(--wp--preset--color--contrast); }
.has-muted-color { color: var(--wp--preset--color--muted); }
.has-line-color { color: var(--wp--preset--color--line); }
.has-accent-color { color: var(--wp--preset--color--accent); }
.has-base-background-color { background-color: var(--wp--preset--color--base); }
.has-surface-background-color { background-color: var(--wp--preset--color--surface); }
.has-contrast-background-color { background-color: var(--wp--preset--color--contrast); }
.has-muted-background-color { background-color: var(--wp--preset--color--muted); }
.has-accent-background-color { background-color: var(--wp--preset--color--accent); }
.has-link-color a { color: inherit; }
.has-small-font-size { font-size: var(--wp--preset--font-size--small); }
.has-medium-font-size { font-size: var(--wp--preset--font-size--medium); }
.has-large-font-size { font-size: var(--wp--preset--font-size--large); }
.has-x-large-font-size { font-size: var(--wp--preset--font-size--x-large); }
.has-huge-font-size { font-size: var(--wp--preset--font-size--huge); }

/* ---------- Site title / navigation ---------- */
.wp-site-title, .site-title {
	font-weight: 800;
	font-size: var(--wp--preset--font-size--large);
	letter-spacing: 0.02em;
	text-transform: lowercase;
	text-decoration: none;
	color: var(--wp--preset--color--contrast);
}
.wp-block-navigation {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 1.5rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
.wp-block-navigation a {
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
	font-weight: 500;
}
.wp-block-navigation a:hover { color: var(--wp--preset--color--accent); }
.nav-toggle {
	display: none;
	background: none;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 4px;
	padding: 0.4rem 0.6rem;
	font: inherit;
	cursor: pointer;
}
@media (max-width: 680px) {
	.nav-toggle { display: inline-flex; align-items: center; gap: 0.4rem; }
	.wp-block-navigation {
		display: none;
		flex-direction: column;
		width: 100%;
		gap: 0.75rem;
		padding-top: 1rem;
	}
	.wp-block-navigation.is-open { display: flex; }
}

/* ---------- Quote-request form submit states ---------- */
.q-form button[disabled] { opacity: 0.6; cursor: not-allowed; }
.q-notice[role="alert"] { border-left-color: var(--wp--preset--color--signal); }

/* ---------- Cookie consent ---------- */
.consent {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 40;
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	padding-bottom: env(safe-area-inset-bottom, 0px);
}
.consent__in {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
	gap: 16px; padding: 18px 1.25rem;
	max-width: var(--wp--style--global--wide-size); margin: 0 auto;
}
.consent__txt { flex: 1 1 420px; font-size: var(--wp--preset--font-size--small); color: #cfcfcf; max-width: 60ch; }
.consent__txt a { color: var(--wp--preset--color--base); }
.consent__btns { display: flex; gap: 10px; flex-wrap: wrap; }
.consent__essential {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: 44px; padding: 0 1.1em; border: 1px solid #4a4a4a; border-radius: 4px;
	background: transparent; color: var(--wp--preset--color--base); font-size: 15px; cursor: pointer;
}
.consent__essential:hover { border-color: #7a7a7a; }
.consent__accept {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: 44px; padding: 0 1.1em; border: 0; border-radius: 4px;
	background: var(--wp--preset--color--accent); color: var(--wp--preset--color--surface);
	font: inherit; font-weight: 600; cursor: pointer;
}
.consent__accept:hover { background: var(--wp--preset--color--surface); color: var(--wp--preset--color--contrast); }
@media (max-width: 640px) {
	.consent__in { flex-direction: column; align-items: stretch; }
	.consent__btns { justify-content: stretch; }
	.consent__btns > * { flex: 1; }
}

/* ---------- Ad-blocker lockout ---------- */
html.is-adblock * { pointer-events: none !important; }
