/*
 * Primal Archery theme stylesheet.
 *
 * Built from the approved mock-up (PrimalArchery/design/mockup-2026-09-28) on
 * the Solkarra block theme's metrics: a 1200px column, a 72px sticky header,
 * 16px card and 20px band radii, clamp(64px, 6.7vw, 96px) section padding and
 * 13px eyebrows at 0.18em. Every class a page uses is listed in PAGES-GUIDE.md.
 *
 * Colour comes from the scheme tokens below, never from literals in a
 * component, so the dark scheme is the same rules with other tokens. Buttons
 * are red with WHITE text: black on #CC1B1B measured 3.74:1 on the old site
 * and failed AA; white is 5.6:1.
 */

/* ---------------------------------------------------------------- scheme */

html,
.editor-styles-wrapper {
	--bg: #F5F4F1;
	--fg: #161514;
	--muted: #5D5952;
	--line: #E3E0D9;
	--card: #FFFFFF;
	--band: #0A0A0A;
	--band-card: #191918;
	--band-line: #34322F;
	--band-fg: #F3F1EC;
	--band-muted: #AEA99F;
	--red: #CC1B1B;
	--red-deep: #A61414;
	--red-text: #C21A1A;
	--red-hot: #FF5A52;
	--on-red: #FFFFFF;
	--plains: #A5502D;
	--woods: #4D6E34;
	--both: #72509A;
	--hunting: #4B7884;
	--golf: #F77FBE;
	--plains-text: #A5502D;
	--woods-text: #4D6E34;
	--both-text: #72509A;
	--hunting-text: #4B7884;
	--mk-blue: #2F74D0;
	--mk-red: #CC1B1B;
	--mk-yellow: #F2C230;
	--ok: #2F8F4E;
	--shadow: 0 12px 32px rgba(10, 10, 10, 0.10);
	--sans: var(--wp--preset--font-family--quicksand, Quicksand, "Trebuchet MS", "Segoe UI", system-ui, sans-serif);
	--display: var(--wp--preset--font-family--bebas, "Bebas Neue", Oswald, Impact, "Arial Narrow", sans-serif);
	--radius-card: 16px;
	--radius-band: 20px;
	--radius-small: 8px;
	--pad-section: clamp(64px, 6.7vw, 96px);
	--pad-tight: clamp(48px, 5vw, 72px);
	--gutter: 24px;
	--header-h: 73px;
	--torn-h: min(150px, calc(100vw * 267 / 1920));
	color-scheme: light;
}

html[data-scheme="dark"],
.editor-styles-wrapper[data-scheme="dark"] {
	--bg: #181715;
	--fg: #EFECE6;
	--muted: #AAA59B;
	--line: #35322E;
	--card: #22201E;
	--band-card: #1C1B1A;
	--red-text: #FF6A62;
	--plains-text: #E08A64;
	--woods-text: #8DB56A;
	--both-text: #B895E6;
	--hunting-text: #7FB7C6;
	--shadow: 0 12px 32px rgba(0, 0, 0, 0.45);
	color-scheme: dark;
}

body {
	background-color: var(--bg);
	color: var(--fg);
	-webkit-text-size-adjust: 100%;
}

.editor-styles-wrapper {
	background-color: var(--bg);
	color: var(--fg);
}

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

/* ------------------------------------------------------- base and access */

html {
	scroll-padding-top: calc(var(--header-h) + 24px);
	scroll-padding-bottom: 88px;
}

h1, h2, h3, h4 {
	text-wrap: balance;
}

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

a:where(:not(.wp-element-button):not(.pa-btn)) {
	text-decoration-thickness: 2px;
	text-underline-offset: 5px;
}

:focus-visible {
	outline: 3px solid var(--fg, #161514);
	outline-offset: 3px;
	border-radius: 4px;
}

.pa-band :focus-visible,
.pa-hero :focus-visible,
.pa-pagehero :focus-visible,
.pa-header :focus-visible,
.pa-footer :focus-visible {
	outline-color: var(--red-hot, #FF5A52);
}

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

.skip-link:focus {
	background-color: var(--red, #CC1B1B);
	color: var(--on-red, #FFFFFF);
	font-weight: 700;
	border-radius: var(--radius-small, 8px);
	padding: 12px 20px;
	z-index: 100000;
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		transition: none !important;
		animation: none !important;
		scroll-behavior: auto !important;
	}
}

/* Nothing scrolls sideways. clip rather than hidden, so sticky still works. */
.wp-site-blocks {
	overflow-x: clip;
	padding-top: 0;
	padding-bottom: 0;
}

/* ------------------------------------------------------------- layout */

/*
 * Every section is a full width group. Core's constrained layout gives each
 * child of the post content a 24px block gap, which would show a stripe of
 * ground between two black bands, so the sections carry no margins.
 */
.wp-block-post-content > .alignfull,
.wp-block-post-content > .pa-sec,
.wp-block-post-content > .pa-hero,
.wp-block-post-content > .pa-pagehero {
	margin-block: 0;
}

main.wp-block-group {
	margin-block: 0;
}

.wp-site-blocks > * + * {
	margin-block-start: 0;
}

.pa-wrap {
	max-width: 1200px;
	margin-inline: auto;
	padding-inline: var(--gutter, 24px);
	display: grid;
	gap: clamp(28px, 3.5vw, 48px);
}

/* Inside the full width sections the root padding is the wrap's job. */
.pa-sec.alignfull,
.pa-hero.alignfull,
.pa-pagehero.alignfull {
	padding-left: 0;
	padding-right: 0;
}

.pa-sec {
	padding-block: var(--pad-section, 96px);
}

.pa-sec--tight {
	padding-block: var(--pad-tight, 72px);
}

.pa-sec--flush {
	padding-top: 0;
}

/*
 * The block gap margins switched off inside every pa- container: each one is
 * a grid or a flex row and spaces its children with gap, so a flow margin on
 * top would be a second helping of the same space.
 */
body :is(
	.pa-wrap, .pa-hero__grid, .pa-hero__copy, .pa-hero__media, .pa-hero__meta,
	.pa-pagehero__grid, .pa-pagehero__title, .pa-pagehero__aside, .pa-doors, .pa-door,
	.pa-headsplit, .pa-headsplit > div, .pa-facts, .pa-fact, .pa-cards, .pa-card,
	.pa-courses, .pa-course, .pa-course__media, .pa-course__body, .pa-prices, .pa-price,
	.pa-extras, .pa-extra, .pa-extra__media, .pa-extra__body, .pa-steps, .pa-step,
	.pa-stats, .pa-stat, .pa-reviews, .pa-review, .pa-split, .pa-half, .pa-half__body,
	.pa-media, .pa-media__copy, .pa-ms, .pa-ms__cols, .pa-returning, .pa-returning__copy,
	.pa-visit, .pa-details, .pa-detail, .pa-faq, .pa-faq > div, .pa-qa, .pa-quest,
	.pa-quest__photos, .pa-quest__copy, .pa-closing, .pa-closing__text, .pa-formcard,
	.pa-prose, .pa-footer, .pa-footer__cols, .pa-footer__col, .pa-footer__brand,
	.pa-footer__row, .pa-header__bar
) > * {
	margin-block: 0;
}

body :is(.pa-wrap, .pa-card, .pa-half__body, .pa-media__copy, .pa-course__body, .pa-extra__body, .pa-prose, .pa-formcard) > .wp-block-image,
body :is(.pa-hero__media, .pa-course__media, .pa-extra__media, .pa-half, .pa-media, .pa-quest__photos, .pa-ms) > .wp-block-image {
	margin: 0;
}

/* ------------------------------------------------------------- type */

.is-style-primal-eyebrow {
	font-weight: 700;
	font-size: 13px;
	letter-spacing: 0.18em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--red-text, #C21A1A);
	margin-bottom: 14px;
}

.pa-lede {
	font-size: clamp(17px, 1.4vw, 20px);
	line-height: 1.55;
	max-width: 58ch;
}

.pa-muted {
	color: var(--muted, #5D5952);
}

.pa-more a {
	font-weight: 700;
	text-decoration: none;
	border-bottom: 2px solid var(--red-hot, #FF5A52);
	padding-bottom: 2px;
	display: inline-flex;
	min-height: 32px;
	align-items: center;
}

.pa-more a:hover {
	border-bottom-color: currentColor;
}

.pa-kicker {
	font-weight: 700;
	font-size: 13px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--muted, #5D5952);
}

.pa-pill {
	justify-self: start;
	align-self: flex-start;
	display: inline-flex;
	align-items: center;
	min-height: 32px;
	padding: 0 12px;
	border-radius: 999px;
	background: var(--golf, #F77FBE);
	color: #161514;
	font-weight: 700;
	font-size: 13px;
}

.pa-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.pa-chips span {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 36px;
	padding: 0 14px;
	border-radius: 999px;
	border: 1px solid var(--line, #E3E0D9);
	background: var(--card, #FFFFFF);
	font-weight: 600;
	font-size: 14px;
}

.pa-chips span::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--red, #CC1B1B);
}

.pa-warn {
	border: 2px solid var(--red-hot, #FF5A52);
	border-radius: var(--radius-card, 16px);
	padding: 20px 24px;
	font-weight: 600;
	font-size: 17px;
}

/* Block, not grid: in a grid every link in the sentence became its own row. */
.pa-warn strong:first-child {
	display: block;
	margin-bottom: 6px;
	color: var(--red-hot, #FF5A52);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	font-size: 13px;
}

.pa-headsplit {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
	gap: 16px 48px;
	align-items: end;
}

.pa-headsplit > div {
	display: grid;
}

.pa-headsplit > div > .is-style-primal-eyebrow {
	margin-bottom: 14px;
}

.pa-headsplit h2 {
	max-width: 20ch;
}

.pa-headsplit__note {
	color: var(--muted, #5D5952);
	max-width: 46ch;
}

/* ----------------------------------------------------------- lists */

.pa-dots,
.pa-ticks,
.pa-course__facts,
.pa-markers,
.pa-questlist,
.pa-docs,
.pa-prize {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 10px;
}

/*
 * The marker is placed absolutely rather than as a flex item: in a flex row a
 * bold word or a link inside the item became its own flex item and split away
 * from the rest of its sentence.
 */
.pa-dots li,
.pa-ticks li,
.pa-course__facts li,
.pa-markers li {
	position: relative;
	padding-left: 24px;
}

.pa-dots li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.55em;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--red, #CC1B1B);
}

.pa-ticks li::before {
	content: "";
	position: absolute;
	left: 1px;
	top: 0.45em;
	width: 12px;
	height: 7px;
	border-left: 2px solid var(--red-text, #C21A1A);
	border-bottom: 2px solid var(--red-text, #C21A1A);
	transform: rotate(-45deg);
}

.pa-docs a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	min-height: 48px;
	padding: 0 16px;
	border: 1px solid var(--line, #E3E0D9);
	border-radius: 12px;
	text-decoration: none;
	font-weight: 600;
	background: var(--card, #FFFFFF);
}

.pa-docs a::after {
	content: "PDF";
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.1em;
	color: var(--muted, #5D5952);
	border: 1px solid var(--line, #E3E0D9);
	border-radius: 6px;
	padding: 2px 6px;
}

.pa-docs a:hover {
	border-color: var(--red, #CC1B1B);
}

/* --------------------------------------------------------------- buttons */

.wp-block-buttons {
	gap: 12px;
}

.wp-block-button .wp-block-button__link,
.pa-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 48px;
	padding: 0 22px;
	border-radius: 999px;
	font-family: var(--sans);
	font-weight: 700;
	font-size: 15px;
	line-height: 1.2;
	text-decoration: none;
	border: 2px solid transparent;
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
	white-space: nowrap;
}

.wp-block-button.is-style-primal-red .wp-block-button__link,
.pa-btn--red {
	background-color: var(--red, #CC1B1B);
	color: var(--on-red, #FFFFFF);
}

.wp-block-button.is-style-primal-red .wp-block-button__link:hover,
.wp-block-button.is-style-primal-red .wp-block-button__link:focus-visible,
.pa-btn--red:hover {
	background-color: var(--red-deep, #A61414);
	color: var(--on-red, #FFFFFF);
}

.wp-block-button.is-style-primal-outline .wp-block-button__link,
.pa-btn--outline {
	background-color: transparent;
	color: inherit;
	border-color: var(--red-hot, #FF5A52);
}

.wp-block-button.is-style-primal-outline .wp-block-button__link:hover,
.pa-btn--outline:hover {
	background-color: transparent;
	border-color: currentColor;
	color: inherit;
}

.wp-block-button.is-style-primal-course .wp-block-button__link {
	background-color: var(--c, #CC1B1B);
	color: #FFFFFF;
	width: 100%;
}

.wp-block-button.is-style-primal-course .wp-block-button__link:hover {
	background-color: color-mix(in srgb, var(--c, #CC1B1B) 82%, #000);
	color: #FFFFFF;
}

.pa-btn--sm {
	min-height: 44px;
	padding: 0 18px;
	font-size: 14px;
}

/* ---------------------------------------------------- dark surfaces */

.pa-band,
.pa-hero,
.pa-pagehero,
.pa-footer,
.pa-header {
	--card: var(--band-card, #191918);
	--line: var(--band-line, #34322F);
	--muted: var(--band-muted, #AEA99F);
	--fg: var(--band-fg, #F3F1EC);
	--red-text: var(--red-hot, #FF5A52);
	background-color: var(--band, #0A0A0A);
	color: var(--band-fg, #F3F1EC);
}

/* ----------------------------------------------------- hero, page hero */

/*
 * The leather band from the old header art, cut so the torn edge is
 * transparent. The black ground stops short of the bottom by the torn edge's
 * height, and the torn strip is drawn into that gap, so the page ground shows
 * through the tears in either scheme.
 */
.pa-hero,
.pa-pagehero {
	background:
		url("../img/ui/leather-tex.webp") center top / 100% auto no-repeat,
		linear-gradient(var(--band, #0A0A0A), var(--band, #0A0A0A)) center top / 100% calc(100% - var(--torn-h)) no-repeat;
	padding-bottom: 0;
}

.pa-hero {
	padding-top: clamp(40px, 5vw, 72px);
}

.pa-pagehero {
	padding-top: clamp(48px, 5.5vw, 80px);
}

.pa-hero::after,
.pa-pagehero::after {
	content: "";
	display: block;
	height: var(--torn-h);
	margin-top: clamp(8px, 1.5vw, 16px);
	background: url("../img/ui/torn-edge.webp") center top / 100% 100% no-repeat;
}

.pa-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
	gap: clamp(32px, 4vw, 64px);
	align-items: center;
}

.pa-hero__copy {
	display: grid;
	gap: 22px;
	align-content: start;
}

.pa-hero__copy .is-style-primal-eyebrow {
	margin: 0;
}

.pa-hero__copy h1 {
	max-width: 13ch;
}

.pa-hero__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 18px;
	align-items: center;
}

.pa-hero__facts {
	font-size: 14px;
	color: var(--band-muted, #AEA99F);
}

.pa-hero__media {
	position: relative;
	margin-left: clamp(40px, 6vw, 96px);
}

.pa-hero__photo img {
	width: 100%;
	aspect-ratio: 5 / 4;
	object-fit: cover;
	border-radius: var(--radius-card, 16px);
	display: block;
}

/* The red T-rex from the logo, a still cut from the old 886 KB hero GIF. */
.pa-hero__media .pa-hero__rex {
	position: absolute;
	left: clamp(-120px, -8vw, -56px);
	bottom: -6px;
	width: clamp(112px, 12vw, 176px);
	pointer-events: none;
}

.pa-hero__rex img {
	border-radius: 0;
	filter: drop-shadow(0 8px 18px rgba(0, 0, 0, 0.45));
	display: block;
}

.pa-pagehero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
	gap: 24px clamp(32px, 4vw, 64px);
	align-items: end;
}

.pa-pagehero__title,
.pa-pagehero__aside {
	display: grid;
	gap: 18px;
	align-content: end;
}

.pa-pagehero .is-style-primal-eyebrow {
	margin: 0;
}

.pa-pagehero .pa-lede {
	max-width: none;
}

.pa-pagehero__aside .wp-block-buttons {
	align-items: center;
}

/* The doors, from solkarra/hero-doors. */
.pa-doors {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
	gap: 16px;
}

.pa-door {
	position: relative;
	display: grid;
	gap: 8px;
	align-content: start;
	padding: 24px 28px;
	border-radius: var(--radius-card, 16px);
	background: var(--band-card, #191918);
	border: 1px solid var(--band-line, #34322F);
	transition: transform 0.2s ease, border-color 0.2s ease;
}

.pa-door:hover,
.pa-door:focus-within {
	border-color: var(--red-hot, #FF5A52);
}

.pa-door:hover {
	transform: translateY(-3px);
}

.pa-door .is-style-primal-eyebrow {
	font-size: 12px;
	margin: 0;
}

.pa-door h3 {
	font-size: 22px;
}

.pa-door h3 a {
	text-decoration: none;
}

.pa-door h3 a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.pa-door p:not(.is-style-primal-eyebrow) {
	font-size: 15px;
	color: var(--band-muted, #AEA99F);
}

.pa-door::after {
	content: "\2192";
	font: 700 20px/1 var(--sans);
	color: var(--red-hot, #FF5A52);
}

/* The open-now pill, from [primal_status]. */
.pa-status {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 36px;
	padding: 0 14px 0 12px;
	border-radius: 999px;
	border: 1px solid var(--line, #E3E0D9);
	background: var(--card, #FFFFFF);
	color: var(--fg, #161514);
	font-weight: 600;
	font-size: 14px;
	line-height: 1.2;
}

.pa-status__dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	border: 2px solid var(--muted, #5D5952);
	flex: 0 0 10px;
}

.pa-status[data-state="open"] .pa-status__dot {
	background: var(--ok, #2F8F4E);
	border-color: var(--ok, #2F8F4E);
	box-shadow: 0 0 0 4px color-mix(in srgb, var(--ok, #2F8F4E) 25%, transparent);
}

/* ----------------------------------------------------- icon facts */

.pa-facts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr));
	gap: 32px;
}

.pa-fact {
	display: grid;
	gap: 10px;
	align-content: start;
}

.pa-fact::before {
	content: "";
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background:
		var(--icon, none) center / 26px 26px no-repeat,
		var(--red, #CC1B1B);
}

.pa-fact h3 {
	font-size: 20px;
}

.pa-fact p {
	font-size: 15px;
	color: var(--muted, #5D5952);
}

.pa-facts--rows {
	grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
	gap: 0 40px;
}

.pa-facts--rows .pa-fact {
	grid-template-columns: 40px minmax(0, 1fr);
	gap: 4px 16px;
	padding: 18px 0;
	border-top: 1px solid var(--line, #E3E0D9);
}

.pa-facts--rows .pa-fact::before {
	width: 32px;
	height: 32px;
	grid-row: span 2;
	background-size: 17px 17px, auto;
}

.pa-facts--rows .pa-fact > * {
	grid-column: 2;
}

.pa-facts--rows .pa-fact h3 {
	font-size: 17px;
}

/* --------------------------------------------------------------- cards */

.pa-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
	gap: 16px;
}

.pa-cards--2 {
	grid-template-columns: repeat(auto-fit, minmax(min(340px, 100%), 1fr));
}

@media (min-width: 700px) {
	.pa-cards.pa-cards--2 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.pa-card,
.pa-formcard {
	background: var(--card, #FFFFFF);
	border: 1px solid var(--line, #E3E0D9);
	border-radius: var(--radius-card, 16px);
	padding: 24px;
	display: grid;
	gap: 12px;
	align-content: start;
}

.pa-card .is-style-primal-eyebrow {
	margin: 0;
}

.pa-card h3 {
	font-size: 19px;
}

.pa-card p,
.pa-card li {
	font-size: 15px;
}

.pa-card ul:not([class*="pa-"]) {
	margin: 0;
	padding-left: 18px;
	display: grid;
	gap: 6px;
}

.pa-formcard {
	padding: clamp(20px, 3vw, 40px);
}

/* ------------------------------------------------------------ courses */

.pa-courses {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
	gap: 16px;
	align-items: stretch;
}

.pa-course {
	--c: var(--red, #CC1B1B);
	--ct: var(--red-text, #C21A1A);
	display: flex;
	flex-direction: column;
	background: var(--card, #FFFFFF);
	border: 1px solid var(--line, #E3E0D9);
	border-radius: var(--radius-card, 16px);
	overflow: hidden;
}

.pa-course--plains { --c: var(--plains, #A5502D); --ct: var(--plains-text, #A5502D); }
.pa-course--woods { --c: var(--woods, #4D6E34); --ct: var(--woods-text, #4D6E34); }
.pa-course--both { --c: var(--both, #72509A); --ct: var(--both-text, #72509A); }
.pa-course--hunting { --c: var(--hunting, #4B7884); --ct: var(--hunting-text, #4B7884); }
.pa-course--golf { --c: var(--golf, #F77FBE); --ct: var(--fg, #161514); }

.pa-course__media {
	position: relative;
	border-bottom: 5px solid var(--c);
}

.pa-course__photo img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	border-radius: 0;
	display: block;
}

.pa-course__icon {
	position: absolute;
	left: 20px;
	bottom: -30px;
	width: 64px;
	height: 64px;
	z-index: 1;
}

.pa-course__icon img {
	width: 64px;
	height: 64px;
	border-radius: 50%;
	box-shadow: 0 0 0 4px var(--card, #FFFFFF);
	display: block;
}

.pa-badge {
	position: absolute;
	right: 12px;
	top: 12px;
	background: var(--c);
	color: #FFFFFF;
	font: 400 18px/1 var(--display);
	letter-spacing: 0.06em;
	padding: 7px 12px 5px;
	border-radius: 6px;
}

.pa-course--golf .pa-badge {
	color: #161514;
}

.pa-course__body {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 44px 24px 24px;
}

.pa-course__body > .pa-kicker {
	margin-bottom: -10px;
}

.pa-course__name {
	font: 400 40px/1 var(--display);
	letter-spacing: 0.02em;
	color: var(--ct, var(--fg));
	text-transform: uppercase;
}

.pa-course__facts {
	padding-top: 16px;
	border-top: 1px solid var(--line, #E3E0D9);
	gap: 8px;
	font-size: 15px;
}

.pa-course__facts li {
	padding-left: 20px;
}

.pa-course__facts li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.6em;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--ct, var(--fg));
}

.pa-prices {
	margin-top: auto;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
	gap: 8px;
}

.pa-price {
	background: var(--bg, #F5F4F1);
	border-radius: 12px;
	padding: 12px 14px;
	display: grid;
	gap: 2px;
}

.pa-price__label {
	font-size: 13px;
	color: var(--muted, #5D5952);
}

.pa-price__amount {
	font: 400 38px/1 var(--display);
	letter-spacing: 0.02em;
	font-variant-numeric: tabular-nums;
}

.pa-course__per {
	font-size: 13px;
	color: var(--muted, #5D5952);
	margin-top: -8px;
}

.pa-course__body .wp-block-buttons {
	display: block;
}

.pa-course__body .wp-block-button {
	width: 100%;
}

/* The wide pair: Hunting Grounds and mini golf. */
.pa-extras {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(460px, 100%), 1fr));
	gap: 16px;
	margin-top: -24px;
}

.pa-extra {
	--c: var(--hunting, #4B7884);
	--ct: var(--hunting-text, #4B7884);
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	background: var(--card, #FFFFFF);
	border: 1px solid var(--line, #E3E0D9);
	border-radius: var(--radius-card, 16px);
	overflow: hidden;
}

.pa-extra__media {
	position: relative;
	border-right: 5px solid var(--c);
}

/* The photo fills its column; the copy beside it sets the row's height. */
.pa-extra__media {
	min-height: 240px;
}

.pa-extra__media .pa-course__photo {
	position: absolute;
	inset: 0;
}

.pa-extra__media .pa-course__photo img {
	height: 100%;
	aspect-ratio: auto;
}

.pa-extra__media .pa-course__icon {
	bottom: 16px;
	left: 16px;
}

.pa-extra__media .pa-course__icon img {
	box-shadow: none;
}

.pa-extra__body {
	padding: 24px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.pa-extra__body .pa-course__name {
	font-size: 36px;
}

.pa-extra__price {
	margin-top: auto;
	font-size: 14px;
	color: var(--muted, #5D5952);
}

.pa-extra__price strong {
	font: 400 34px/1 var(--display);
	letter-spacing: 0.02em;
	color: var(--fg, #161514);
	margin-right: 4px;
}

.pa-extra__price strong:not(:first-child) {
	margin-left: 14px;
}

.pa-extra__body .wp-block-buttons {
	display: block;
}

/* ---------------------------------------------------------------- steps */

.pa-steps {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr));
	gap: 32px 24px;
}

.pa-step {
	display: grid;
	gap: 12px;
	align-content: start;
	border-top: 2px solid var(--line, #E3E0D9);
	padding-top: 20px;
}

.pa-step__num {
	font-weight: 700;
	font-size: 13px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--muted, #5D5952);
}

.pa-step h3 {
	font-size: 19px;
}

.pa-step p:not(.pa-step__num) {
	font-size: 15px;
	color: var(--muted, #5D5952);
}

.pa-markers {
	gap: 8px;
	font-size: 14px;
}

.pa-markers li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.25em;
	width: 14px;
	height: 14px;
	border-radius: 50%;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.2);
	background: var(--muted, #5D5952);
}

.pa-markers .pa-mk-blue::before { background: var(--mk-blue, #2F74D0); }
.pa-markers .pa-mk-red::before { background: var(--mk-red, #CC1B1B); }
.pa-markers .pa-mk-yellow::before { background: var(--mk-yellow, #F2C230); }

/* ---------------------------------------------------- numbers, reviews */

.pa-stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(230px, 100%), 1fr));
	gap: 40px 32px;
}

.pa-stat {
	display: grid;
	gap: 8px;
	align-content: start;
	border-top: 1px solid var(--band-line, #34322F);
	padding-top: 20px;
}

.pa-stat__n {
	font: 400 clamp(56px, 5.4vw, 84px)/0.9 var(--display);
	letter-spacing: 0.01em;
	color: var(--red-hot, #FF5A52);
	font-variant-numeric: tabular-nums;
}

.pa-stat__l {
	font-size: 15px;
	color: var(--muted, #AEA99F);
}

.pa-reviews {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
	gap: 16px;
}

.pa-review.wp-block-quote {
	margin: 0;
	background: var(--card, #191918);
	border: 1px solid var(--line, #34322F);
	border-radius: var(--radius-card, 16px);
	padding: 24px 28px;
	display: grid;
	gap: 14px;
	align-content: start;
}

.pa-review::before {
	content: "\2605\2605\2605\2605\2605";
	color: var(--mk-yellow, #F2C230);
	letter-spacing: 3px;
	font-size: 16px;
}

.pa-review p {
	font-size: 18px;
	line-height: 1.45;
	font-weight: 600;
	margin: 0;
}

.pa-review cite {
	font-style: normal;
	font-size: 14px;
	color: var(--muted, #AEA99F);
}

/* ---------------------------------------------------------- two halves */

.pa-split {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr));
	gap: 1px;
	background: var(--line, #E3E0D9);
	border: 1px solid var(--line, #E3E0D9);
	border-radius: var(--radius-band, 20px);
	overflow: hidden;
}

.pa-half {
	background: var(--card, #FFFFFF);
	display: grid;
	align-content: start;
}

.pa-half__media img {
	width: 100%;
	aspect-ratio: 16 / 7;
	object-fit: cover;
	border-radius: 0;
	display: block;
}

.pa-half__body {
	padding: clamp(28px, 3.3vw, 44px);
	display: grid;
	gap: 18px;
	align-content: start;
}

.pa-half__body .is-style-primal-eyebrow {
	margin: 0;
}

.pa-half h2 {
	font-size: clamp(26px, 2.4vw, 34px);
}

/* The discounts use a big figure as the first line of a half. */
.pa-half__body .pa-price__amount,
.pa-deal {
	font: 400 64px/0.9 var(--display);
	color: var(--red-text, #C21A1A);
}

/* ------------------------------------------------------ media and text */

.pa-media {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(24px, 4vw, 64px);
	align-items: center;
}

.pa-media--flip > .wp-block-image {
	order: 2;
}

.pa-media__copy {
	display: grid;
	gap: 16px;
	align-content: start;
}

.pa-media__copy .is-style-primal-eyebrow {
	margin: 0;
}

.pa-media__copy p:not([class]) {
	max-width: 62ch;
}

.pa-photo img {
	width: 100%;
	object-fit: cover;
	border-radius: var(--radius-card, 16px);
	display: block;
}

.pa-r-43 img { aspect-ratio: 4 / 3; }
.pa-r-169 img { aspect-ratio: 16 / 9; }
.pa-r-34 img { aspect-ratio: 3 / 4; }
.pa-r-11 img { aspect-ratio: 1 / 1; }

/* --------------------------------------------------------------- prose */

.pa-prose {
	max-width: 760px;
	display: grid;
	gap: 16px;
}

.pa-prose h2 {
	font-size: clamp(24px, 2.2vw, 30px);
	margin-top: 20px;
}

.pa-prose h3 {
	font-size: 19px;
	margin-top: 8px;
}

.pa-prose ul,
.pa-prose ol {
	margin: 0;
	padding-left: 22px;
	display: grid;
	gap: 6px;
}

.pa-prose > :first-child {
	margin-top: 0;
}

/* ---------------------------------------------------------- money shoot */

.pa-ms {
	display: grid;
	grid-template-columns: minmax(0, 0.7fr) minmax(0, 1.3fr);
	gap: clamp(24px, 3vw, 40px);
	align-items: start;
}

.pa-ms__photo img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: var(--radius-card, 16px);
	display: block;
}

.pa-ms__cols {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr));
	gap: 16px;
}

/* Three cards in two columns would leave the third alone beside a hole. */
.pa-ms__cols > :last-child:nth-child(odd) {
	grid-column: 1 / -1;
}

.pa-prize li {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	border-bottom: 1px solid var(--line, #E3E0D9);
	padding-bottom: 6px;
}

.pa-quarters {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 6px;
	margin: 0;
}

.pa-quarters span {
	text-align: center;
	font-size: 11.5px;
	line-height: 1.25;
	font-weight: 700;
	border: 1px solid var(--line, #E3E0D9);
	border-radius: 6px;
	padding: 6px 2px;
}

.pa-quarters .is-now {
	background: var(--fg, #161514);
	color: var(--bg, #F5F4F1);
	border-color: var(--fg, #161514);
}

/* --------------------------------------------------------- returning */

.pa-returning {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	gap: 24px clamp(24px, 4vw, 48px);
	align-items: center;
	background: var(--card, #FFFFFF);
	border: 1px solid var(--line, #E3E0D9);
	border-radius: var(--radius-band, 20px);
	padding: clamp(24px, 3vw, 40px);
}

.pa-returning__big {
	font: 400 clamp(72px, 8vw, 112px)/0.85 var(--display);
	color: var(--red-text, #C21A1A);
	letter-spacing: 0.01em;
	text-transform: uppercase;
}

.pa-returning__copy {
	display: grid;
	gap: 8px;
}

.pa-returning__copy h2 {
	font-size: clamp(24px, 2.2vw, 30px);
}

.pa-returning__copy p {
	color: var(--muted, #5D5952);
	max-width: 62ch;
}

/* ---------------------------------------------------- visit, details */

.pa-visit {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 16px;
	align-items: stretch;
}

.pa-map {
	position: relative;
	min-height: 360px;
	border-radius: var(--radius-card, 16px);
	overflow: hidden;
	border: 1px solid var(--line, #E3E0D9);
	background: var(--card, #FFFFFF);
	display: grid;
}

.pa-map iframe {
	width: 100%;
	height: 100%;
	min-height: 360px;
	border: 0;
	display: block;
	grid-area: 1 / 1;
}

.pa-map__open {
	grid-area: 1 / 1;
	align-self: end;
	justify-self: start;
	margin: 16px;
	z-index: 1;
}

.pa-details {
	display: grid;
	background: var(--card, #FFFFFF);
	border: 1px solid var(--line, #E3E0D9);
	border-radius: var(--radius-card, 16px);
	padding: 8px 24px;
	align-content: start;
}

.pa-detail {
	display: grid;
	grid-template-columns: 110px minmax(0, 1fr);
	gap: 16px;
	padding: 14px 0;
	border-bottom: 1px solid var(--line, #E3E0D9);
}

.pa-detail:last-child {
	border-bottom: 0;
}

.pa-detail__k {
	font-weight: 700;
	font-size: 13px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--muted, #5D5952);
	padding-top: 2px;
}

.pa-hours table {
	width: 100%;
	border-collapse: collapse;
	font-size: 15px;
	font-variant-numeric: tabular-nums;
}

.pa-hours th,
.pa-hours td {
	padding: 3px 0;
	text-align: left;
	font-weight: 500;
	border: 0;
}

.pa-hours td {
	text-align: right;
}

.pa-hours tr.is-today th,
.pa-hours tr.is-today td {
	font-weight: 700;
	color: var(--red-text, #C21A1A);
}

.pa-hours tr.is-today th::after {
	content: " (today)";
	font-weight: 600;
}

.pa-hours__note {
	font-size: 14px;
	color: var(--muted, #5D5952);
	margin: 6px 0 0;
}

/* ------------------------------------------------------------- closing */

.pa-closing {
	background: var(--card, #FFFFFF);
	border: 1px solid var(--line, #E3E0D9);
	border-radius: var(--radius-band, 20px);
	padding: clamp(32px, 4vw, 56px);
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) auto;
	gap: 24px 48px;
	align-items: center;
}

.pa-closing__text {
	display: grid;
	gap: 14px;
}

.pa-closing__text p {
	font-size: 17px;
	color: var(--muted, #5D5952);
	max-width: 50ch;
}

/* ----------------------------------------------------------------- faq */

.pa-faq {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
	gap: 32px clamp(32px, 5vw, 80px);
	align-items: start;
}

.pa-faq > div:first-child {
	display: grid;
	gap: 14px;
}

.pa-faq > div:first-child .is-style-primal-eyebrow {
	margin: 0;
}

.pa-qa {
	border-top: 1px solid var(--line, #E3E0D9);
	display: grid;
}

.pa-qa .wp-block-details {
	border-bottom: 1px solid var(--line, #E3E0D9);
	margin: 0;
}

.pa-qa summary {
	cursor: pointer;
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	min-height: 56px;
	padding: 12px 0;
	font-weight: 700;
	font-size: 17px;
}

.pa-qa summary::-webkit-details-marker {
	display: none;
}

.pa-qa summary::after {
	content: "";
	flex: 0 0 auto;
	width: 10px;
	height: 10px;
	margin-right: 4px;
	border-right: 2px solid var(--red-text, #C21A1A);
	border-bottom: 2px solid var(--red-text, #C21A1A);
	transform: rotate(45deg);
	transition: transform 0.2s ease;
}

.pa-qa details[open] summary::after {
	transform: rotate(225deg);
}

.pa-qa details > :not(summary) {
	margin: 0 0 16px;
	font-size: 15px;
	color: var(--muted, #5D5952);
	max-width: 62ch;
}

.pa-qa details > ul {
	padding-left: 20px;
}

/* -------------------------------------------------------------- quest */

.pa-quest {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	gap: clamp(24px, 4vw, 56px);
	align-items: center;
}

.pa-quest__photos {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
}

.pa-quest__photos .wp-block-image:last-child {
	margin-top: 40px;
}

.pa-quest__copy {
	display: grid;
	gap: 18px;
}

.pa-quest__copy .is-style-primal-eyebrow {
	margin: 0;
}

.pa-questlist {
	grid-template-columns: repeat(auto-fit, minmax(min(210px, 100%), 1fr));
}

.pa-questlist li {
	background: var(--card, #FFFFFF);
	border: 1px solid var(--line, #E3E0D9);
	border-radius: 12px;
	padding: 12px 14px;
	font-size: 13px;
	color: var(--muted, #5D5952);
}

.pa-questlist strong {
	display: block;
	font-size: 15px;
	color: var(--fg, #161514);
}

/* ------------------------------------------------------ group chooser */

.pa-chooser {
	display: grid;
	grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
	background: var(--card, #FFFFFF);
	border: 1px solid var(--line, #E3E0D9);
	border-radius: var(--radius-band, 20px);
	overflow: hidden;
}

.pa-chooser__q {
	padding: clamp(24px, 3vw, 40px);
	display: grid;
	gap: 18px;
	align-content: start;
	border-right: 1px solid var(--line, #E3E0D9);
}

.pa-chooser__q label {
	font-weight: 700;
	font-size: 20px;
}

.pa-stepper {
	display: grid;
	grid-template-columns: 56px minmax(0, 120px) 56px;
	gap: 8px;
	align-items: center;
}

.pa-stepper button {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	border: 2px solid var(--line, #E3E0D9);
	background: var(--bg, #F5F4F1);
	color: var(--fg, #161514);
	display: grid;
	place-items: center;
	cursor: pointer;
	padding: 0;
}

.pa-stepper button:hover {
	border-color: var(--red, #CC1B1B);
}

.pa-stepper svg {
	width: 20px;
	height: 20px;
}

.pa-stepper input {
	width: 100%;
	height: 64px;
	text-align: center;
	font: 400 48px/1 var(--display);
	color: var(--fg, #161514);
	background: transparent;
	border: 0;
	border-bottom: 2px solid var(--line, #E3E0D9);
	-moz-appearance: textfield;
	appearance: textfield;
}

.pa-stepper input::-webkit-outer-spin-button,
.pa-stepper input::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.pa-chooser input[type="range"] {
	width: 100%;
	accent-color: var(--red, #CC1B1B);
}

/* Each label sits at its own value on the 1 to 60 track, so the scale is true. */
.pa-chooser__scale {
	position: relative;
	height: 18px;
	margin: -10px 8px 0;
	font-size: 12px;
	color: var(--muted, #5D5952);
	font-variant-numeric: tabular-nums;
}

.pa-chooser__scale span {
	position: absolute;
	top: 0;
	transform: translateX(-50%);
}

.pa-chooser__rule {
	list-style: none;
	margin: 8px 0 0;
	padding: 0;
	display: grid;
	gap: 6px;
	font-size: 14px;
}

.pa-chooser__rule li {
	display: grid;
	grid-template-columns: 76px minmax(0, 1fr);
	gap: 12px;
	padding: 8px 10px;
	border-radius: var(--radius-small, 8px);
	color: var(--muted, #5D5952);
}

.pa-chooser__rule li.is-on {
	background: var(--bg, #F5F4F1);
	color: var(--fg, #161514);
	font-weight: 700;
	box-shadow: inset 0 0 0 1px var(--line, #E3E0D9);
}

.pa-chooser__a {
	padding: clamp(24px, 3vw, 40px);
	display: grid;
	gap: 16px;
	align-content: start;
}

.pa-chooser__a > * {
	margin: 0;
}

.pa-chooser__kind {
	display: inline-flex;
	justify-self: start;
	align-items: center;
	min-height: 32px;
	padding: 0 12px;
	border-radius: 999px;
	font-weight: 700;
	font-size: 13px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	background: var(--bg, #F5F4F1);
	border: 1px solid var(--line, #E3E0D9);
}

.pa-chooser__a h3 {
	font-size: clamp(22px, 2vw, 28px);
}

.pa-chooser__a p {
	color: var(--muted, #5D5952);
}

.pa-chooser__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

/* ---------------------------------------------------- package table */

.pa-tiers-wrap {
	border: 1px solid var(--line, #E3E0D9);
	border-radius: var(--radius-card, 16px);
	overflow-x: auto;
	background: var(--card, #FFFFFF);
}

.pa-tiers {
	width: 100%;
	min-width: 640px;
	border-collapse: collapse;
	font-variant-numeric: tabular-nums;
}

.pa-tiers th,
.pa-tiers td {
	text-align: left;
	padding: 14px 20px;
	border: 0;
	border-bottom: 1px solid var(--line, #E3E0D9);
	vertical-align: middle;
	font-weight: 500;
}

.pa-tiers thead th {
	font-size: 12px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--muted, #5D5952);
	font-weight: 700;
}

.pa-tiers tbody tr:last-child > * {
	border-bottom: 0;
}

.pa-tiers .pa-num {
	text-align: right;
}

.pa-tiers__name {
	font: 400 28px/1 var(--display);
	letter-spacing: 0.03em;
	text-transform: uppercase;
}

.pa-tiers__price {
	font: 400 30px/1 var(--display);
	letter-spacing: 0.02em;
}

.pa-tiers__rotate {
	font-size: 12px;
	color: var(--muted, #5D5952);
	display: block;
	margin-top: 4px;
}

.pa-tiers tr.is-match {
	background: color-mix(in srgb, var(--red, #CC1B1B) 8%, var(--card, #FFFFFF));
}

.pa-tiers tr.is-match .pa-tiers__name::after {
	content: "your group";
	font: 700 11px/1 var(--sans);
	letter-spacing: 0.1em;
	margin-left: 10px;
	padding: 4px 8px;
	border-radius: 999px;
	background: var(--red, #CC1B1B);
	color: var(--on-red, #FFFFFF);
	vertical-align: 6px;
}

/* --------------------------------------------------------------- forms */

/* Contact Form 7 and any plain form: labelled fields on the card. */
.pa-formcard :is(input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select, textarea),
.wpcf7 :is(input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select, textarea) {
	width: 100%;
	min-height: 48px;
	padding: 10px 14px;
	border: 1px solid var(--line, #E3E0D9);
	border-radius: 10px;
	background: var(--bg, #F5F4F1);
	color: var(--fg, #161514);
	font: 500 16px/1.4 var(--sans);
}

.wpcf7 textarea {
	min-height: 140px;
}

.wpcf7 :is(input, select, textarea):focus-visible {
	outline: 3px solid var(--red, #CC1B1B);
	outline-offset: 2px;
	border-color: var(--red, #CC1B1B);
}

.wpcf7 label {
	display: grid;
	gap: 6px;
	font-weight: 700;
}

.wpcf7 p {
	margin: 0 0 16px;
}

.wpcf7 input[type="checkbox"],
.wpcf7 input[type="radio"] {
	width: 20px;
	height: 20px;
	accent-color: var(--red, #CC1B1B);
	vertical-align: -4px;
	margin-right: 8px;
}

.wpcf7 .wpcf7-list-item {
	margin: 0 16px 8px 0;
	display: inline-flex;
	align-items: center;
}

.wpcf7 input[type="submit"],
.wpcf7 button[type="submit"] {
	min-height: 48px;
	padding: 0 26px;
	border-radius: 999px;
	border: 0;
	background: var(--red, #CC1B1B);
	color: var(--on-red, #FFFFFF);
	font: 700 15px/1 var(--sans);
	cursor: pointer;
}

.wpcf7 input[type="submit"]:hover {
	background: var(--red-deep, #A61414);
}

.wpcf7 .wpcf7-not-valid-tip {
	color: var(--red-text, #C21A1A);
	font-size: 14px;
	font-weight: 600;
}

.wpcf7 form .wpcf7-response-output {
	margin: 16px 0 0;
	border-radius: 10px;
	padding: 12px 16px;
}

.pa-formcard iframe {
	width: 100%;
	border: 0;
}

/* -------------------------------------------------------------- header */

.wp-site-blocks > header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: 50;
}

.admin-bar .wp-site-blocks > header.wp-block-template-part {
	top: 32px;
}

@media (max-width: 782px) {
	.admin-bar .wp-site-blocks > header.wp-block-template-part {
		top: 0;
	}
}

.pa-header {
	border-bottom: 1px solid var(--band-line, #34322F);
}

.pa-header__bar {
	max-width: 1248px;
	margin-inline: auto;
	min-height: 72px;
	padding-inline: 24px;
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}

.pa-brand {
	display: flex;
	align-items: center;
	min-height: 44px;
	flex: 0 0 auto;
}

.pa-brand img {
	width: 150px;
	height: auto;
	display: block;
}

.pa-header__right {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-left: auto;
}

.pa-header .wp-block-navigation {
	--fg: var(--band-fg, #F3F1EC);
	font-weight: 600;
	font-size: 15px;
}

.pa-header .wp-block-navigation .wp-block-navigation-item__content {
	color: var(--band-fg, #F3F1EC);
	text-decoration: none;
	display: flex;
	align-items: center;
	min-height: 44px;
	padding: 0 12px;
	border-radius: var(--radius-small, 8px);
}

.pa-header .wp-block-navigation:not(.has-modal-open) .wp-block-navigation-item__content:hover {
	background-color: var(--band-line, #34322F);
}

.pa-header .wp-block-navigation .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content,
.pa-header .wp-block-navigation .wp-block-navigation-item__content[aria-current="page"] {
	box-shadow: inset 0 -3px 0 var(--red-hot, #FF5A52);
	border-radius: 0;
}

.pa-header .wp-block-navigation__submenu-icon {
	padding-right: 12px;
	margin-left: -8px;
	color: var(--band-fg, #F3F1EC);
}

/* The dropdown on the bar, closed overlay only. */
.pa-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container {
	background-color: #FFFFFF;
	color: #161514;
	border: 1px solid #E3E0D9;
	border-radius: 12px;
	padding: 8px;
	box-shadow: 0 12px 32px rgba(10, 10, 10, 0.18);
	min-width: 240px;
}

html[data-scheme="dark"] .pa-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container {
	background-color: #22201E;
	color: #EFECE6;
	border-color: #35322E;
}

.pa-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	color: inherit;
	padding: 10px 12px;
	width: 100%;
}

.pa-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
	background-color: color-mix(in srgb, currentColor 8%, transparent);
}

/*
 * Core switches the Navigation block to its overlay at 600px. The bar here
 * holds seven things, so the switch comes at 1140px, as on solkarra.com.au.
 */
@media (min-width: 600px) and (max-width: 1139.98px) {
	.pa-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none;
	}

	.pa-header .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}

	.pa-header .wp-block-navigation__responsive-container.is-menu-open {
		display: flex;
	}
}

@media (max-width: 1139.98px) {
	.pa-header .pa-desktop-only {
		display: none;
	}

	/* Brand, toggle, book, hamburger: the hamburger lives inside the nav. */
	.pa-header__right .pa-scheme {
		order: 1;
	}

	.pa-header__right .pa-header__book {
		order: 2;
	}

	.pa-header__right .wp-block-navigation {
		order: 3;
	}
}

@media (min-width: 1140px) {
	.pa-header .pa-mobile-only {
		display: none;
	}
}

.pa-header .wp-block-navigation__responsive-container-open {
	min-width: 44px;
	min-height: 44px;
	border-radius: 50%;
	border: 1px solid var(--band-line, #34322F);
	justify-content: center;
	align-items: center;
	color: var(--band-fg, #F3F1EC);
}

.pa-header .wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open {
	background-color: var(--band, #0A0A0A);
	color: var(--band-fg, #F3F1EC);
	padding: 24px var(--gutter, 24px) 40px;
}

.pa-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	align-items: stretch;
	width: 100%;
}

.pa-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-weight: 700;
	font-size: 22px;
	padding: 12px 0;
	width: 100%;
	border-radius: 0;
	border-bottom: 1px solid var(--band-line, #34322F);
}

.pa-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu > .wp-block-navigation-item__content {
	font-size: 13px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--red-hot, #FF5A52);
	border-bottom: 0;
	padding-top: 20px;
}

.pa-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon {
	display: none;
}

.pa-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-container {
	width: 100%;
	padding: 0 0 12px;
	gap: 2px;
	background: transparent;
	border: 0;
	box-shadow: none;
}

.pa-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	font-size: 18px;
	font-weight: 600;
	padding: 10px 0;
}

.pa-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
	color: var(--band-fg, #F3F1EC);
	min-width: 44px;
	min-height: 44px;
}

.pa-header__waiver {
	font-weight: 600;
	font-size: 15px;
	color: var(--band-fg, #F3F1EC);
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 8px;
}

.pa-header__book .wp-block-button__link {
	min-height: 44px;
	padding: 0 18px;
	font-size: 14px;
}

/* The scheme toggle: a fixed label, aria-pressed carries the state, and the
   mark changes shape, so colour is never the only signal. */
.pa-scheme {
	width: 44px;
	height: 44px;
	flex: 0 0 44px;
	display: inline-grid;
	place-items: center;
	border-radius: 50%;
	border: 1px solid var(--band-line, #34322F);
	background: transparent;
	color: var(--band-fg, #F3F1EC);
	cursor: pointer;
	padding: 0;
}

.pa-scheme:hover {
	border-color: var(--red-hot, #FF5A52);
}

.pa-scheme svg {
	width: 20px;
	height: 20px;
	display: block;
}

html[data-scheme="dark"] .pa-scheme__sun,
html:not([data-scheme="dark"]) .pa-scheme__moon {
	display: none;
}

/* -------------------------------------------------------------- footer */

.pa-footer {
	padding-top: clamp(56px, 5.5vw, 80px);
	padding-bottom: 32px;
}

.pa-footer__in {
	max-width: 1248px;
	margin-inline: auto;
	padding-inline: 24px;
	display: grid;
	gap: 48px;
}

.pa-footer__in > * {
	margin-block: 0;
}

.pa-footer__cols {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(190px, 100%), 1fr));
	gap: 40px;
}

.pa-footer__brand,
.pa-footer__col {
	display: grid;
	gap: 12px;
	align-content: start;
}

.pa-footer__brand img {
	width: 170px;
	height: auto;
	display: block;
}

.pa-footer__desc {
	font-size: 14px;
	color: var(--band-muted, #AEA99F);
	max-width: 30ch;
}

.pa-footer__col .is-style-primal-eyebrow {
	margin: 0;
}

.pa-footer__links {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 2px;
}

.pa-footer__links a {
	font-size: 15px;
	text-decoration: none;
	min-height: 32px;
	display: inline-flex;
	align-items: center;
	color: var(--band-fg, #F3F1EC);
}

.pa-footer__links a:hover {
	color: var(--red-hot, #FF5A52);
	text-decoration: underline;
}

.pa-footer__contact {
	font-size: 15px;
	line-height: 1.7;
}

.pa-footer__contact a {
	color: var(--band-fg, #F3F1EC);
}

.pa-footer__row {
	border-top: 1px solid var(--band-line, #34322F);
	padding-top: 28px;
	display: flex;
	flex-wrap: wrap;
	gap: 16px 32px;
	align-items: center;
}

.pa-footer__row .is-style-primal-eyebrow {
	margin: 0;
}

.pa-footer__legal {
	justify-content: space-between;
	font-size: 14px;
	color: var(--band-muted, #AEA99F);
}

.pa-footer__legal a {
	color: var(--band-fg, #F3F1EC);
}

.pa-partners,
.pa-social {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px 12px;
}

.pa-partners a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	min-width: 140px;
	padding: 0 16px;
	border: 1px solid var(--band-line, #34322F);
	border-radius: var(--radius-small, 8px);
	text-decoration: none;
	font-weight: 600;
	font-size: 13px;
	color: var(--band-muted, #AEA99F);
}

.pa-partners a:hover {
	border-color: var(--red-hot, #FF5A52);
	color: var(--band-fg, #F3F1EC);
}

.pa-social a {
	border: 1px solid var(--band-line, #34322F);
	border-radius: 999px;
	padding: 0 14px;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	text-decoration: none;
	font-weight: 600;
	font-size: 13px;
	color: var(--band-fg, #F3F1EC);
}

.pa-social a:hover {
	border-color: var(--red-hot, #FF5A52);
}

/* The phone's sticky bar: call and book, always in reach. */
.pa-mbar {
	display: none;
}

@media (max-width: 781.98px) {
	.pa-mbar {
		display: grid;
		grid-template-columns: 1fr 1.4fr;
		gap: 10px;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 40;
		background: var(--band, #0A0A0A);
		border-top: 1px solid var(--band-line, #34322F);
		padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px));
	}

	.pa-mbar .pa-btn {
		width: 100%;
	}

	.pa-mbar .pa-btn--outline {
		color: var(--band-fg, #F3F1EC);
	}

	.pa-footer {
		padding-bottom: calc(96px + env(safe-area-inset-bottom, 0px));
	}
}

/* --------------------------------------------------- posts and search */

.pa-postlist {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
	gap: 16px;
	list-style: none;
	padding: 0;
	margin: 0;
}

.pa-postcard {
	height: 100%;
}

.pa-postcard .wp-block-post-featured-image img {
	aspect-ratio: 16 / 10;
	object-fit: cover;
	border-radius: 12px;
}

.pa-postcard .wp-block-post-title {
	font-size: 20px;
}

.pa-postcard .wp-block-post-title a {
	text-decoration: none;
}

.pa-article {
	max-width: 760px;
	margin-inline: auto;
}

.pa-article > * + * {
	margin-block-start: 1.1em;
}

.pa-article img {
	border-radius: var(--radius-card, 16px);
}

/* ---------------------------------------------------------- responsive */

@media (max-width: 1023.98px) {
	.pa-ms,
	.pa-faq {
		grid-template-columns: 1fr;
	}

	.pa-ms__photo img {
		aspect-ratio: 16 / 9;
	}

	.pa-returning {
		grid-template-columns: auto minmax(0, 1fr);
	}

	.pa-returning .wp-block-buttons {
		grid-column: 1 / -1;
	}

	.pa-extra {
		grid-template-columns: 1fr;
	}

	.pa-extra__media {
		border-right: 0;
		border-bottom: 5px solid var(--c);
	}

	.pa-extra__media {
		min-height: 0;
	}

	.pa-extra__media .pa-course__photo {
		position: static;
	}

	.pa-extra__media .pa-course__photo img {
		aspect-ratio: 16 / 9;
	}
}

@media (max-width: 899.98px) {
	.pa-hero__grid,
	.pa-pagehero__grid,
	.pa-headsplit,
	.pa-visit,
	.pa-chooser,
	.pa-quest,
	.pa-media,
	.pa-closing {
		grid-template-columns: 1fr;
	}

	.pa-media--flip > .wp-block-image {
		order: 0;
	}

	.pa-hero__media {
		margin-left: clamp(48px, 14vw, 96px);
		max-width: 560px;
	}

	.pa-chooser__q {
		border-right: 0;
		border-bottom: 1px solid var(--line, #E3E0D9);
	}
}

@media (max-width: 781.98px) {
	:root {
		--gutter: 16px;
	}

	.pa-header__bar {
		padding-inline: 16px;
		gap: 10px;
	}

	.pa-brand img {
		width: 120px;
	}

	.pa-header .pa-header__book {
		display: none;
	}

	.pa-footer__in {
		padding-inline: 16px;
	}

	.pa-returning {
		grid-template-columns: 1fr;
	}

	.pa-detail {
		grid-template-columns: 1fr;
		gap: 4px;
	}

	.pa-quest__photos .wp-block-image:last-child {
		margin-top: 24px;
	}

	.pa-hero__media .pa-hero__rex {
		left: -52px;
		width: 104px;
	}

	.pa-hero__media {
		margin-left: 44px;
	}

	.pa-course__name {
		font-size: 36px;
	}

	/* Three doors stacked at full height push the courses two screens down,
	   so on a phone each door is one line with the arrow at its side. */
	.pa-doors {
		gap: 10px;
	}

	.pa-door {
		padding: 16px 52px 16px 20px;
		gap: 4px;
	}

	.pa-door .is-style-primal-eyebrow {
		display: none;
	}

	.pa-door h3 {
		font-size: 19px;
	}

	.pa-door p:not(.is-style-primal-eyebrow) {
		font-size: 14px;
	}

	.pa-door::after {
		position: absolute;
		right: 20px;
		top: 50%;
		transform: translateY(-50%);
	}
}

/* ---------------------------------------------------------------- icons */

/* White line icons drawn on the red circle of a .pa-fact. Generated as data
   URIs so the icon set costs no requests. */

.pa-i-gear {
	--icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23fff%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%229%22/%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%225%22/%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%221.4%22 fill=%22%23fff%22/%3E%3C/g%3E%3C/svg%3E");
}

.pa-i-dog {
	--icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cpath d=%22M7.5 8.3h9a2.3 2.3 0 1 1 1.8 3.7 2.3 2.3 0 1 1-1.8 3.7h-9a2.3 2.3 0 1 1-1.8-3.7A2.3 2.3 0 1 1 7.5 8.3Z%22 fill=%22%23fff%22/%3E%3C/svg%3E");
}

.pa-i-waiver {
	--icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23fff%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M4 16c2.5-5 4.5-8 6-8 2 0-1 8 1 8s3-5 4.5-5c1.3 0 .3 4 1.8 4 .8 0 1.7-.8 2.7-2%22/%3E%3Cpath d=%22M4 20h16%22/%3E%3C/g%3E%3C/svg%3E");
}

.pa-i-book {
	--icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23fff%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%224%22 y=%225%22 width=%2216%22 height=%2215%22 rx=%222%22/%3E%3Cpath d=%22M8 3v4M16 3v4M4 10h16M9 15l2 2 4-4%22/%3E%3C/g%3E%3C/svg%3E");
}

.pa-i-clock {
	--icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23fff%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%229%22/%3E%3Cpath d=%22M12 7v5l3 2%22/%3E%3C/g%3E%3C/svg%3E");
}

.pa-i-pin {
	--icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23fff%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 21s-7-6.2-7-11.5a7 7 0 0 1 14 0C19 14.8 12 21 12 21Z%22/%3E%3Ccircle cx=%2212%22 cy=%229.5%22 r=%222.5%22/%3E%3C/g%3E%3C/svg%3E");
}

.pa-i-phone {
	--icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23fff%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2Z%22/%3E%3C/g%3E%3C/svg%3E");
}

.pa-i-mail {
	--icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23fff%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%223%22 y=%225%22 width=%2218%22 height=%2214%22 rx=%222%22/%3E%3Cpath d=%22m3 7 9 6 9-6%22/%3E%3C/g%3E%3C/svg%3E");
}

.pa-i-shield {
	--icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23fff%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 3 5 6v5c0 4.5 3 8.3 7 10 4-1.7 7-5.5 7-10V6Z%22/%3E%3Cpath d=%22m9 12 2 2 4-4%22/%3E%3C/g%3E%3C/svg%3E");
}

.pa-i-wind {
	--icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23fff%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M3 8h11a3 3 0 1 0-3-3M3 12h15a3 3 0 1 1-3 3M3 16h7%22/%3E%3C/g%3E%3C/svg%3E");
}

.pa-i-nodrink {
	--icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23fff%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M8 4h8l-1 6a3 3 0 0 1-6 0Z M12 13v6M9 20h6%22/%3E%3Cpath d=%22M4 4l16 16%22/%3E%3C/g%3E%3C/svg%3E");
}

.pa-i-boot {
	--icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23fff%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M7 3h5v8l6 3a3 3 0 0 1 2 3v2H4v-4l3-2Z%22/%3E%3Cpath d=%22M4 21h16%22/%3E%3C/g%3E%3C/svg%3E");
}

.pa-i-bug {
	--icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23fff%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cellipse cx=%2212%22 cy=%2213%22 rx=%224%22 ry=%226%22/%3E%3Cpath d=%22M12 7V4M8 9 5 7M16 9l3-2M8 14H4M16 14h4M8 18l-3 2M16 18l3 2%22/%3E%3C/g%3E%3C/svg%3E");
}

.pa-i-people {
	--icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23fff%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%229%22 cy=%228%22 r=%223%22/%3E%3Ccircle cx=%2217%22 cy=%229%22 r=%222.4%22/%3E%3Cpath d=%22M3 20c0-3.3 2.7-6 6-6s6 2.7 6 6M15 14.5c3 0 6 1.8 6 5%22/%3E%3C/g%3E%3C/svg%3E");
}

.pa-i-gift {
	--icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23fff%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%223%22 y=%229%22 width=%2218%22 height=%2212%22 rx=%221.5%22/%3E%3Cpath d=%22M3 13h18M12 9v12M12 9S10 4 7.5 4.5 7 9 12 9Zm0 0s2-5 4.5-4.5S17 9 12 9Z%22/%3E%3C/g%3E%3C/svg%3E");
}

.pa-i-trophy {
	--icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23fff%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M7 4h10v5a5 5 0 0 1-10 0Z%22/%3E%3Cpath d=%22M7 6H4v1a3 3 0 0 0 3 3M17 6h3v1a3 3 0 0 1-3 3M12 14v3M8 20h8M9 17h6%22/%3E%3C/g%3E%3C/svg%3E");
}

.pa-i-star {
	--icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cpath d=%22m12 3 2.7 5.6 6.1.8-4.5 4.2 1.1 6-5.4-2.9-5.4 2.9 1.1-6-4.5-4.2 6.1-.8Z%22 fill=%22%23fff%22/%3E%3C/svg%3E");
}

.pa-i-bow {
	--icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23fff%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M6 3c7 3 7 15 0 18%22/%3E%3Cpath d=%22M6 3v18%22/%3E%3Cpath d=%22M3 12h16M16 9l3 3-3 3%22/%3E%3C/g%3E%3C/svg%3E");
}

.pa-i-card {
	--icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23fff%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%223%22 y=%226%22 width=%2218%22 height=%2213%22 rx=%222%22/%3E%3Cpath d=%22M3 10h18M7 15h4%22/%3E%3C/g%3E%3C/svg%3E");
}

.pa-i-cake {
	--icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23fff%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M4 21h16v-8a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2Z%22/%3E%3Cpath d=%22M4 16c2 1 4 1 6 0s4-1 6 0 3 1 4 0M12 11V7M12 7c-1-1-1-2.5 0-4 1 1.5 1 3 0 4Z%22/%3E%3C/g%3E%3C/svg%3E");
}

/* ------------------------------------------------ rows that fill evenly */

/*
 * auto-fit gives four columns at full width, so six cards land four and two,
 * and six steps five and one. A count divisible by three takes three columns
 * instead, and seven or eight steps take four, so no card sits alone beside a
 * hole in the last row.
 */
@media (min-width: 900px) {
	.pa-cards:has(> :nth-child(3n):last-child),
	.pa-facts:not(.pa-facts--rows):has(> :nth-child(3n):last-child),
	.pa-steps:has(> :nth-child(6):last-child) {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.pa-courses:has(> :nth-child(4):last-child) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.pa-steps:has(> :nth-child(7):last-child),
	.pa-steps:has(> :nth-child(8):last-child) {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

/* The open-now pill keeps its own width inside a stretched grid column. */
.pa-status {
	justify-self: start;
	width: max-content;
	max-width: 100%;
}

@media (min-width: 1140px) {
	.pa-courses:has(> :nth-child(4):last-child) {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}
