/* OtterMove supporting pages (Privacy, Data & accuracy, FAQs, Support, Terms) and the 404.
   "The quiet rooms behind" the homepage: same cream, brown, mustard and Figtree, but calm and
   readable. Loaded on every page EXCEPT the front page, and every rule is also scoped to
   body:not(.home), so the homepage cannot change. Colours come from theme.json and from the
   values already defined in site.css; the only derived colours are the color-mix() lines marked
   "derived" below. No images, no animation, no JavaScript. */

body:not(.home) {
	--om-pad: clamp(1.25rem, 5.5vw, 7rem);               /* same side gutter as the homepage */
	--om-ink: var(--wp--preset--color--otter-brown);
	--om-ink-soft: #7A4A2B;                               /* existing soft brown (site.css), 6.9:1 on cream */
	--om-mustard: var(--wp--preset--color--mustard);
	--om-card: var(--wp--preset--color--capsule-commute); /* existing token #FCF1D8 */
	--om-card-alt: var(--wp--preset--color--capsule-explore); /* existing token #EEEDD7 */
	--om-footer-band: #F4EBDD;                            /* existing footer band (site.css) */
	--om-line: color-mix(in srgb, var(--om-ink) 18%, transparent); /* derived: hairline borders */
	--om-reading: 40rem;
}

/* ---- Header (in the page flow here; on the homepage it floats over the art) ---- */
body:not(.home) .wp-site-blocks > header > .wp-block-group {
	padding-left: 0;
	padding-right: 0;
	max-width: none;
}

body:not(.home) .om-header {
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	margin-left: 0 !important;
	margin-right: 0 !important;
	padding: clamp(0.9rem, 1.9vw, 1.6rem) var(--om-pad);
	flex-wrap: nowrap;
}

body:not(.home) .om-logo img {
	width: clamp(8.5rem, 42.9vw, 14rem);
}

body:not(.home) .om-header .wp-block-navigation {
	gap: 0;
}

body:not(.home) .om-header .wp-block-navigation__container {
	gap: clamp(1rem, 4.5vw, 1.75rem);
	flex-wrap: nowrap;
}

body:not(.home) .om-header .wp-block-navigation-item__content {
	font-size: 0.9375rem;
	font-weight: 600;
	text-decoration: none;
	color: var(--om-ink);
}

/* ---- Footer: the same band as the homepage. This also fixes the 404's giant logo:
   the logo's size rule lived only under body.home, so elsewhere it filled the page. ---- */
body:not(.home) .wp-site-blocks > footer {
	margin-block-start: 0;
}

body:not(.home) .om-footer {
	box-sizing: border-box;
	background: var(--om-footer-band);
	color: var(--om-ink-soft);
	padding: clamp(1.5rem, 2.2vw, 2.25rem) var(--om-pad) clamp(1.25rem, 1.6vw, 1.75rem);
}

body:not(.home) .om-footer-logo {
	display: block;
	margin: 0 0 0.9rem;
}

body:not(.home) .om-footer-logo img {
	display: block;
	width: clamp(8.5rem, 12.8vw, 12rem);
	height: auto;
}

/* Phones: a tighter footer signature (the links' own 44px target supplies most of the space). */
@media (max-width: 767.98px) {
	body:not(.home) .om-footer-logo {
		margin-bottom: 0;
	}
}

body:not(.home) .om-footer__line {
	margin: 0;
	color: var(--om-ink-soft);
	line-height: 1.5;
}

body:not(.home) .om-footer__line + .om-footer__line {
	margin-top: 0.15rem;
}

/* ---- The reading frame ---- */
body:not(.home) .wp-site-blocks > main {
	margin-block-start: 0;
}

body:not(.home) .om-page {
	box-sizing: border-box;
	padding: 0 var(--om-pad) clamp(3rem, 8vw, 5.5rem);
}

body:not(.home) .om-page__intro,
body:not(.home) .om-page__body {
	max-width: var(--om-reading);
	margin-left: auto;
	margin-right: auto;
}

body:not(.home) .om-page__intro {
	padding-top: clamp(2.25rem, 6vw, 4rem);
	margin-bottom: clamp(1.5rem, 4vw, 2.25rem);
}

body:not(.home) .om-page__intro h1 {
	margin: 0;
	font-size: clamp(2rem, 1.5rem + 2.2vw, 3rem);
	line-height: 1.1;
	text-wrap: balance;
}

/* The short mustard rule under the title. */
body:not(.home) .om-page__intro::after {
	content: "";
	display: block;
	width: 3.5rem;
	height: 0.3rem;
	margin-top: 1.1rem;
	border-radius: 999px;
	background: var(--om-mustard);
}

body:not(.home) .om-page__body {
	font-size: max(1.0625rem, 17px);                      /* never below 17px */
	line-height: 1.65;
	overflow-wrap: break-word;
}

body:not(.home) .om-page__body > * {
	margin-block: 0;
}

body:not(.home) .om-page__body > * + * {
	margin-block-start: 1.25rem;
}

body:not(.home) .om-page__body p {
	max-width: none;                                      /* the column sets the line length */
}

body:not(.home) .om-page__body h2 {
	margin-block-start: clamp(2.25rem, 5vw, 3rem);
	margin-block-end: 0;
	font-size: clamp(1.5rem, 1.25rem + 1vw, 1.75rem);
	line-height: 1.2;
	scroll-margin-top: 1.5rem;
}

body:not(.home) .om-page__body h2 + * {
	margin-block-start: 0.85rem;
}

body:not(.home) .om-page__body h3 {
	margin: 0;
	font-size: 1.125rem;
	line-height: 1.3;
}

/* Lead paragraph (block style "Lead"). */
body:not(.home) .om-page__body .is-style-om-lead {
	font-size: clamp(1.1875rem, 1.1rem + 0.4vw, 1.3125rem);
	line-height: 1.55;
}

/* Links: dark brown with a thick mustard underline. Buttons keep their own look. */
body:not(.home) .om-page a:not(.wp-element-button) {
	color: var(--om-ink);
	text-decoration-line: underline;
	text-decoration-color: var(--om-mustard);
	text-decoration-thickness: 3px;
	text-underline-offset: 0.2em;
	text-decoration-skip-ink: none;
}

body:not(.home) .om-page a:not(.wp-element-button):hover {
	text-decoration-thickness: 5px;
}

/* Keyboard focus: brown ring (contrast) with a mustard inner ring (accent). */
body:not(.home) :where(a, button, summary, [tabindex]):focus-visible,
body:not(.home) .wp-element-button:focus-visible {
	outline: 3px solid var(--om-ink);
	outline-offset: 2px;
	box-shadow: 0 0 0 2px var(--om-mustard);
}

/* Lists */
body:not(.home) .om-page__body ul,
body:not(.home) .om-page__body ol {
	padding-left: 1.35rem;
}

body:not(.home) .om-page__body li + li {
	margin-top: 0.45rem;
}

/* ---- Cards and callouts (block styles on the Group block) ---- */
body:not(.home) .is-style-om-card,
body:not(.home) .is-style-om-callout {
	box-sizing: border-box;
	padding: clamp(1.1rem, 4vw, 1.5rem);
	border-radius: 1.1rem;
}

body:not(.home) .is-style-om-card {
	background: var(--om-card);
	border: 1px solid var(--om-line);
}

body:not(.home) .is-style-om-callout {
	background: var(--om-card-alt);
	border-left: 0.35rem solid var(--om-mustard);
	border-radius: 0.5rem 1.1rem 1.1rem 0.5rem;
}

body:not(.home) .is-style-om-card > *,
body:not(.home) .is-style-om-callout > * {
	margin-block: 0;
}

body:not(.home) .is-style-om-card > * + *,
body:not(.home) .is-style-om-callout > * + * {
	margin-block-start: 0.75rem;
}

/* Cards in a run (for example one per row of a table) sit close together. */
body:not(.home) .is-style-om-card + .is-style-om-card {
	margin-block-start: 0.85rem;
}

/* Labelled lines inside a card: a small label above its value. */
body:not(.home) .om-field strong,
body:not(.home) .om-label {
	display: block;
	font-size: 0.8125rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--om-ink-soft);
}

body:not(.home) .om-label {
	margin: 0;
}

/* ---- Two-up: two cards side by side, one column on narrow screens ---- */
body:not(.home) .om-two-up {
	gap: 1rem;
}

body:not(.home) .om-two-up > .wp-block-column {
	display: flex;
}

body:not(.home) .om-two-up > .wp-block-column > * {
	flex: 1 1 auto;
	min-width: 0;
}

/* ---- Accordions (native Details block) ---- */
body:not(.home) .wp-block-details {
	box-sizing: border-box;
	background: var(--om-card);
	border: 1px solid var(--om-line);
	border-radius: 0.9rem;
	padding: 0;
}

body:not(.home) .wp-block-details + .wp-block-details {
	margin-block-start: 0.6rem;
}

body:not(.home) .wp-block-details > summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	box-sizing: border-box;
	min-height: 44px;
	padding: 0.7rem 1.1rem;
	font-weight: 700;
	line-height: 1.35;
	cursor: pointer;
	list-style: none;
}

body:not(.home) .wp-block-details > summary::-webkit-details-marker {
	display: none;
}

/* The plus and minus are drawn with two gradients: no image. */
body:not(.home) .wp-block-details > summary::after {
	content: "";
	flex: none;
	width: 1rem;
	height: 1rem;
	background:
		linear-gradient(currentColor, currentColor) center / 100% 2px no-repeat,
		linear-gradient(currentColor, currentColor) center / 2px 100% no-repeat;
}

body:not(.home) .wp-block-details[open] > summary::after {
	background:
		linear-gradient(currentColor, currentColor) center / 100% 2px no-repeat;
}

body:not(.home) .wp-block-details > :not(summary) {
	margin: 0;
	padding: 0 1.1rem 1rem;
}

/* ---- Short pages: the footer stays at the foot of the screen (the 404 is shorter than a screen) ---- */
body:not(.home) .wp-site-blocks {
	display: flex;
	flex-direction: column;
	min-height: calc(100vh - var(--wp-admin--admin-bar--height, 0px));
	min-height: calc(100dvh - var(--wp-admin--admin-bar--height, 0px));
}

body:not(.home) .wp-site-blocks > main {
	flex: 1 0 auto;
}

/* ---- Phones (under 768px): a compact, editorial reading scale. Tablet and desktop are untouched. ----
   Body 18px / 1.5; title 1.9375rem; section headings 1.375rem; lead 1.1875rem; 0.75rem paragraph gaps; tighter cards,
   lists and contents menu. Placed before the very-narrow-phone rule below so that rule still wins under 360px. */
@media (max-width: 767.98px) {
	body:not(.home) .om-page__intro {
		padding-top: 1.5rem;
		margin-bottom: 1rem;
	}

	body:not(.home) .om-page__intro h1 {
		font-size: 1.9375rem;
		line-height: 1.1;
	}

	body:not(.home) .om-page__intro::after {
		margin-top: 0.75rem;
	}

	body:not(.home) .om-page {
		padding-bottom: 2.25rem;
	}

	body:not(.home) .om-page__body {
		font-size: max(1.125rem, 18px);
		line-height: 1.5;
	}

	body:not(.home) .om-page__body > * + * {
		margin-block-start: 0.75rem;
	}

	body:not(.home) .om-page__body h2 {
		margin-block-start: 1.625rem;
		font-size: 1.375rem;
		line-height: 1.2;
	}

	body:not(.home) .om-page__body h2 + * {
		margin-block-start: 0.5rem;
	}

	body:not(.home) .om-page__body h3 {
		font-size: 1.0625rem;
		line-height: 1.3;
	}

	body:not(.home) .om-page__body .is-style-om-lead {
		font-size: 1.1875rem;
		line-height: 1.5;
	}

	body:not(.home) .om-page__body ul,
	body:not(.home) .om-page__body ol {
		padding-left: 1.15rem;
	}

	body:not(.home) .om-page__body li + li {
		margin-top: 0.25rem;
	}

	/* Contents menu: one column, 18px links (the body size), each a full-width row at least 36px high. */
	body:not(.home) .is-style-om-callout li + li {
		margin-top: 0;
	}

	body:not(.home) .is-style-om-callout li a {
		display: block;
		box-sizing: border-box;
		min-height: 36px;
		padding-block: 6px;
		line-height: 1.5;
	}

	body:not(.home) .is-style-om-card,
	body:not(.home) .is-style-om-callout {
		padding: 0.8rem;
	}

	body:not(.home) .is-style-om-card > * + *,
	body:not(.home) .is-style-om-callout > * + * {
		margin-block-start: 0.5rem;
	}

	body:not(.home) .is-style-om-card + .is-style-om-card {
		margin-block-start: 0.625rem;
	}

	body:not(.home) .om-field strong,
	body:not(.home) .om-label {
		font-size: 0.875rem;
	}

	body:not(.home) .om-two-up {
		gap: 0.625rem;
	}

	body:not(.home) .wp-block-details + .wp-block-details {
		margin-block-start: 0.5rem;
	}

	body:not(.home) .wp-block-details > summary {
		min-height: 46px;
		padding: 0.6rem 1rem;
	}

	body:not(.home) .wp-block-details > :not(summary) {
		padding: 0 1rem 0.875rem;
	}

	body:not(.home) .om-page__body .wp-element-button {
		font-size: 1.125rem;
		padding: 0.7em 1.4em;
	}

	/* Header navigation and footer links: 17px and 16px on phones. */
	body:not(.home) .om-header .wp-block-navigation-item__content {
		font-size: 1.0625rem;
	}

	body:not(.home) .om-footer .om-footer-nav a {
		font-size: 1rem;
	}
}

/* ---- Very narrow phones: keep the Support email button on one line ---- */
@media (max-width: 359.98px) {
	body:not(.home) .om-page__body .wp-element-button {
		padding-left: 1em;
		padding-right: 1em;
		font-size: 0.9375rem;
	}
}

/* ---- iPad landscape only (touch, primary input is a finger): supporting copy about 9% larger, navigation 17px. ----
   Not matched by phones, iPad portrait, or a desktop with a mouse. */
@media (min-width: 1024px) and (max-width: 1400px) and (orientation: landscape) and (hover: none) and (pointer: coarse) {
	body:not(.home) .om-page__body {
		font-size: 1.15625rem;                                /* 18.5px */
	}

	body:not(.home) .om-field strong,
	body:not(.home) .om-label {
		font-size: 0.875rem;
	}

	body:not(.home) .om-header .wp-block-navigation-item__content {
		font-size: 1.0625rem;
	}
}

/* ---- The 404 ---- */
body:not(.home) .om-page--404 .om-page__body .wp-block-buttons {
	margin-block-start: 1.75rem;
}
