/* ==========================================================================
   Reese — base: reset, typography, links, buttons, lists, focus, utilities.
   Tokens come from theme.json (--wp--preset--*, --wp--custom--*).
   ========================================================================== */

:root {
	--rm-ink: var(--wp--preset--color--ink);
	--rm-graphite: var(--wp--preset--color--graphite);
	--rm-steel: var(--wp--preset--color--steel);
	--rm-muted: var(--wp--preset--color--muted);
	--rm-line: var(--wp--preset--color--line);
	--rm-paper: var(--wp--preset--color--paper);
	--rm-orange: var(--wp--preset--color--orange);
	--rm-orange-deep: var(--wp--preset--color--orange-deep);
	--rm-orange-text: var(--wp--preset--color--orange-text);
	--rm-display: var(--wp--preset--font-family--display);
	--rm-body: var(--wp--preset--font-family--body);
	--rm-gutter: var(--wp--custom--gutter);
	--rm-wide: 1240px;
	--rm-max: 1440px;
	--rm-section: clamp(4rem, 9vw, 8rem);
	--rm-r-card: var(--wp--custom--radius--card);
	--rm-r-media: var(--wp--custom--radius--media);
	--rm-r-hero: var(--wp--custom--radius--hero);
	--rm-ease: cubic-bezier(.2, .7, .2, 1);
	--rm-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
	--rm-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.2 4.2L19 7'/%3E%3C/svg%3E");
	--rm-star: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 2.8 2.8 5.9 6.4.8-4.7 4.4 1.2 6.3L12 17.1l-5.7 3.1 1.2-6.3L2.8 9.5l6.4-.8z'/%3E%3C/svg%3E");
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 110px; -webkit-text-size-adjust: 100%; }
body { margin: 0; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
img, video, iframe { max-width: 100%; height: auto; }
img { display: block; }
figure { margin: 0; }
.wp-block-image { line-height: 0; }
.wp-block-image img { height: auto; }

h1, h2, h3, h4, h5, h6 { text-wrap: balance; overflow-wrap: break-word; margin-block: 0; }
p, li { overflow-wrap: break-word; text-wrap: pretty; }
p { margin-block: 0; }
strong { font-weight: 600; color: var(--rm-ink); }

a { text-underline-offset: .2em; text-decoration-thickness: 1px; transition: color .2s, background-color .2s, border-color .2s; }
p a, li a, td a { color: var(--rm-ink); text-decoration-color: var(--rm-orange); }
p a:hover, li a:hover, td a:hover { color: var(--rm-orange-text); }

:where(a, button, summary, input, select, textarea, [tabindex]):focus-visible {
	outline: 3px solid var(--rm-orange-deep);
	outline-offset: 3px;
	border-radius: 4px;
}

/* Label style (dates, hours, small meta). */
.rm-label {
	font-family: var(--rm-body);
	font-size: .75rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--rm-orange-text);
}

/* Section titles that are H4 on the old site still read as section titles. */
.rm-h-display { font-size: var(--wp--preset--font-size--xx-large) !important; line-height: 1.05; letter-spacing: -.035em; }
.rm-h-section { font-size: clamp(1.75rem, 3vw, 2.6rem) !important; line-height: 1.08; letter-spacing: -.03em; }

.rm-lead { font-size: var(--wp--preset--font-size--lead); line-height: 1.6; color: var(--rm-steel); }

/* --------------------------------------------------------------------------
   Buttons: pill with a round arrow chip (all core buttons get .rm-btn in PHP)
   -------------------------------------------------------------------------- */
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; }
.wp-block-button__link.rm-btn {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	min-height: 52px;
	padding: 6px 6px 6px 24px;
	border-radius: 999px;
	text-decoration: none;
	font-weight: 600;
	letter-spacing: -.005em;
	transition: background-color .25s var(--rm-ease), color .25s, box-shadow .25s;
}
.wp-block-button__link.rm-btn::after {
	/* the round chip; the arrow (::before) sits on top of it */
	content: "";
	flex: 0 0 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--rm-ink);
	transition: transform .3s var(--rm-ease), background-color .25s;
}
.wp-block-button__link.rm-btn { position: relative; }
.wp-block-button__link.rm-btn::before {
	content: "";
	position: absolute;
	right: 18px;
	top: 50%;
	width: 16px;
	height: 16px;
	margin-top: -8px;
	background: var(--rm-orange);
	-webkit-mask: var(--rm-arrow) center / contain no-repeat;
	mask: var(--rm-arrow) center / contain no-repeat;
	z-index: 1;
	transition: transform .3s var(--rm-ease);
}
.wp-block-button__link.rm-btn:hover::before { transform: translateX(3px); }
.wp-block-button__link.rm-btn:hover::after { transform: scale(1.06); }

/* Dark variant: ink pill, orange chip. */
.is-style-rm-dark .wp-block-button__link.rm-btn { background: var(--rm-ink); color: #fff; }
.is-style-rm-dark .wp-block-button__link.rm-btn::after { background: var(--rm-orange); }
.is-style-rm-dark .wp-block-button__link.rm-btn::before { background: var(--rm-ink); }
.is-style-rm-dark .wp-block-button__link.rm-btn:hover { background: #2b2b2b; color: #fff; }

/* Ghost variant (on dark backgrounds). */
.is-style-rm-ghost .wp-block-button__link.rm-btn { background: transparent; color: currentColor; box-shadow: inset 0 0 0 1px currentColor; }
.is-style-rm-ghost .wp-block-button__link.rm-btn:hover { background: rgb(255 255 255 / .08); }

/* --------------------------------------------------------------------------
   Lists
   -------------------------------------------------------------------------- */
.wp-block-list { padding-left: 1.2em; }
.wp-block-list li + li { margin-top: .45em; }
.wp-block-list li::marker { color: var(--rm-orange-deep); }
.is-style-rm-check { list-style: none; padding-left: 0; }
.is-style-rm-check li { position: relative; padding-left: 34px; }
.is-style-rm-check li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .2em;
	width: 22px;
	height: 22px;
	border-radius: 7px;
	background: var(--rm-orange);
}
.is-style-rm-check li::after {
	content: "";
	position: absolute;
	left: 4px;
	top: calc(.2em + 4px);
	width: 14px;
	height: 14px;
	background: var(--rm-ink);
	-webkit-mask: var(--rm-check) center / contain no-repeat;
	mask: var(--rm-check) center / contain no-repeat;
}

/* --------------------------------------------------------------------------
   Reveal on scroll (JS adds .rm-reveal to below-the-fold blocks only)
   -------------------------------------------------------------------------- */
.rm-reveal { opacity: 0; transform: translateY(16px); transition: opacity .6s var(--rm-ease), transform .6s var(--rm-ease); }
.rm-reveal.is-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition: none !important; animation: none !important; }
	.rm-reveal { opacity: 1; transform: none; }
}

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