/* ============================================================
   COURSE REDESIGN LAYER — Black Sheep Creative
   Approved from the lr-course-redesign mock, 24/08/2026.
   Loads after tokens/base/site/sections and wins the cascade.
   Header dark band per prod, shared 1140px rail, uniform
   rhythm, redesigned hero/details/splits, numbers trust band,
   session-card booking table, prod-style footer.
   ============================================================ */

:root { --rd-rail: min(92vw, var(--lr-container, 1140px)); }

body { background: #fff; }

/* every section sits flush: no stray block margins, no white gaps */
#lr-main .lr-course-section.lr-course-section { margin: 0; }

/* ---------- header: prod-style dark band ---------- */
@media (min-width: 1025px) {
	.lr-header__bar { background: #2b2827; position: relative; }
	.lr-header__item { color: #fff; }
	.lr-header__item:hover { color: #fff; }
	.lr-header__search { color: #fff; }
	/* mega menu at production's proportions: wide, but not wall to wall */
	.lr-header__courses { position: static; }
	.lr-header__panel {
		left: 50%;
		transform: translateX(-50%);
		top: 100%;
		width: min(80vw, 1220px);
	}
}

.lr-header__bar { background: rgba(0, 0, 0, 0.85); }

.lr-header__search, .lr-header__burger{
color:var(--lr-white);
}

/* wide state: phone + CTA live inside the dark bar, stacked in the corner
   like the current prod header; no white notch */
@media (min-width: 1367px) {
	.lr-header__bar { padding-block: 12px; }
	/* the bar's content holds a 1680px rail on big screens instead of
	   running logo and CTA to the glass edges */
	.lr-header__bar { padding-inline: max(29px, calc((100vw - 1680px) / 2)); }
	.lr-header__aside {
		background: transparent;
		display: flex;
		flex-direction: column;
		align-items: flex-end;
		justify-content: center;
		gap: 8px;
		padding: 0;
	}
	.lr-header__aside .lr-header__phone { color: #fff; }
	.lr-header__aside .lr-header__phone svg { color: var(--lr-red, #bf2428); }
	/* the CTA pill sits at the phone number's scale, not billboard size */
	.lr-header__aside .lr-header__cta {
		font-size: 15px;
		font-weight: 600;
		min-height: 0;
		padding: 9px 18px;
	}
}

/* the search icon sits small and quiet, like prod */
@media (min-width: 1025px) {
	.lr-header__search { color: var(--lr-red, #bf2428); }
	.lr-header__search svg { width: 18px; height: 18px; }
}

/* 1025-1366: the strip rows already carry phone + CTA, so the notch goes */
@media (min-width: 1025px) and (max-width: 1366px) {
	.lr-header__aside { display: none; }
	.lr-header__item { font-size: 15px; }
}

/* the strip CTA is a clean cut, no rounded edge, at every width */
.lr-header__cta--strip.lr-header__cta--strip { 
	border-radius: 0; 
	margin:0;
}

/* ---------- mobile header: phone + CTA share one row, smaller logo ---------- */
@media (max-width: 767px) {
	.lr-header { display: flex; flex-wrap: wrap; }
	.lr-header__strip {
		flex: 1 1 50%;
		order: 1;
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: 52px;
		padding: 0 8px;
	}
	.lr-header__strip .lr-header__phone { font-size: 16px; }
	.lr-header__cta--strip {
		flex: 1 1 50%;
		order: 2;
		width: auto;
		min-height: 52px;
		height: auto;
		display: flex;
		align-items: center;
		justify-content: center;
		font-size: 15px;
		padding: 0 10px;
	}
	.lr-header__bar { order: 3; width: 100%; }
	.lr-header__drawer { order: 4; }
	.lr-header__brand img { height: 44px; width: auto; }
}

@media (max-width: 1024px) {
    .lr-header__brand {
        margin-inline: unset;
        margin-right: auto;
    }
}

.lrc-band__fact_text{
	margin: 0 auto;
	max-width: fit-content;
	text-align:center;
}
@media (max-width: 767px) {
	.rd-trust-inner h2{
		font-size:24px;
	}
}

@media (max-width: 389px) {
	.rd-trust-inner h2{
		font-size:22px;
	}
}

.lrc-summary{
	grid-template-columns: auto;
}

/* 66/33 split is desktop-only; below 1025 the ≤1024 block stacks both columns to 100% */
@media (min-width: 1025px) {
	#lr-main .lr-course-section.is-details .wp-block-columns .wp-block-column:first-child {
		flex: 0 0 calc(66.66% - 25px);
		max-width: calc(66.66% - 25px);
	}

	#lr-main .lr-course-section.is-details .wp-block-columns .wp-block-column:last-child {
		flex: 0 0 calc(33.33% - 25px);
		max-width: calc(33.33% - 25px);
	}
}

@media (min-width: 1025px) {
.lr-hero__media.small{
	display:none;
	}
}

@media (max-width: 1024px) {
.lr-hero__media.big{
	display:none;
	}
	.lr-hero__media.small{
	max-width:auto;
	padding-top:20px;
	}
}
/* ---------- one rail, one left edge ---------- */
#lr-main .lr-course-section { padding-inline: 0; }
#lr-main .lr-course-section > .wp-block-group__inner-container,
#lr-main .lr-course-section > .lr-container {
	width: var(--rd-rail);
	max-width: none;
	margin-inline: auto;
	padding-inline: 0;
}
#lr-main .is-details .wp-block-group__inner-container { width: var(--rd-rail); }
#lr-main .lr-details .wp-block-column {
	flex: 0 0 calc(50% - 25px);
	max-width: calc(50% - 25px);
}

/* ---------- uniform rhythm ---------- */
#lr-main .lr-course-section { padding-block: clamp(64px, 7vw, 96px); }
.lr-band-wrap + .lr-main .lr-course-section.is-book { padding-top: 64px; padding-bottom: 40px; }

/* ---------- heading scale ---------- */
#lr-main h3 { font-size: 27px; line-height: 1.26; letter-spacing: 0; }
#lr-main h4 { font-size: 22px; line-height: 1.3; }
#lr-main h5 { font-size: 18px; line-height: 1.3; }
@media (max-width: 767px) {
	#lr-main h3 { font-size: 23px; }
}

/* ---------- readable measure: CTA only; red/dark bands run full width ---------- */
#lr-main .is-cta p { max-width: 58ch; margin-inline: auto; }

/* ---------- hero ---------- */
.rd-hero { overflow: hidden; }
.rd-hero .lr-hero__inner {
	width: var(--rd-rail);
	margin-inline: auto;
	padding: 224px 0 84px;
	display: grid;
	grid-template-columns: minmax(0, 1.16fr) minmax(0, 0.84fr);
	gap: clamp(36px, 4vw, 64px);
	align-items: stretch;
}
.rd-hero .lr-hero__text { padding: 0; max-width: none; align-self: center; }
/* The kicker sits after the h1 in the DOM (h1 first for SEO, tester
   feedback 19/09/2026) and is lifted above it visually. */
.rd-hero .lr-hero__text { display: flex; flex-direction: column; align-items: stretch; }
.rd-hero .lr-hero__text > .rd-hero-kicker { order: -1; }
.rd-hero-kicker {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1.6px;
	text-transform: uppercase;
	color: var(--lr-red, #bf2428);
	margin: 0 0 14px;
}
.rd-hero h1 {
	margin: 0;
	/* 44px, not the mock's 46: the mock also forced nowrap, which let long
	   headings overflow invisibly. 44 keeps "Confined Spaces Training" on
	   one line inside the real column; longer titles wrap balanced. */
	font-size: clamp(34px, 3.6vw, 44px);
	line-height: 1.08;
	text-wrap: balance;
}
/* No nowrap here, unlike the mock: real seo_h1 values run long
   ("Confined Spaces Training | All Locations") and a forced single line
   clips under the hero image. text-wrap: balance keeps wraps tidy. */
.rd-hero-promise {
	font-size: 19px;
	line-height: 1.5;
	color: #3a3a3a;
	max-width: 54ch;
	margin: 18px 0 26px;
}
/* One unit per line at full width, with more air under the heading (tester
   feedback 19/09/2026: two narrow columns looked wrong with long unit names). */
.rd-hero-units {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 8px;
}
/* Straight after the heading (no promise line, no stacked image): give it air. */
.rd-hero .rd-hero-kicker + .rd-hero-units,
.rd-hero .lr-hero__media.small + .rd-hero-units { margin-top: 22px; }
.rd-hero-units li {
	display: flex;
	align-items: baseline;
	gap: 9px;
	border: 1px solid var(--lr-border, #d5d5d5);
	border-radius: 8px;
	background: #fff;
	padding: 9px 13px;
	font-size: 13.5px;
	line-height: 1.35;
	color: #333;
}
.rd-hero-units li strong {
	color: var(--lr-red, #bf2428);
	font-weight: 700;
	letter-spacing: 0.2px;
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}
/* image fills the hero's height as a rounded block */
.rd-hero .lr-hero__media { margin: 0; width: auto; line-height: 0; }
.rd-hero .lr-hero__media img {
	width: 100%;
	height: 100%;
	min-height: 400px;
	max-width: none;
	object-fit: cover;
	border-radius: 20px;
	display: block;
	box-shadow: 0 18px 44px rgba(12, 11, 11, 0.18);
}

/* below 1367 the header is in normal flow: hero padding drops right back */
@media (max-width: 1366px) {
	.rd-hero .lr-hero__inner { padding-top: 44px; padding-bottom: 84px; }
}
@media (max-width: 1024px) {
	.rd-hero .lr-hero__inner { grid-template-columns: 1fr; padding-top: 48px; }
	.rd-hero .lr-hero__media img { min-height: 0; height: auto; }
}
@media (max-width: 767px) {
	.rd-hero .lr-hero__inner { padding-top: 36px; padding-bottom: 72px; }
	.rd-hero h1 { text-align: left; }
	.rd-hero-units { grid-template-columns: 1fr; }
}

/* ---------- booking table refinements ---------- */
/* footnote under the table breathes instead of hugging the border */
#lr-main .lrc-avail__fallback { margin: 18px 0 0; padding: 0 2px; }
/* The way back to the main course page sits clear of the table, not on it
   (the theme's paragraph reset was zeroing the plugin's 24px). */
#lr-main .lrc-avail__hub { margin: 28px 0 0; padding: 0 2px; }
#lr-main .lrc-avail__hub + .lrc-avail__fallback { margin-top: 14px; }

/* narrow desktop: Book Now becomes a compact square button and its column
   can never crush it; below 841 the whole table stacks into session cards */
@media (min-width: 841px) and (max-width: 1200px) {
	#lr-main .lrc-avail__row {
		grid-template-columns: 1.8fr 0.85fr 0.85fr 3.6fr minmax(116px, 0.9fr);
	}
	#lr-main .lrc-avail__head {
		grid-template-columns: 1.8fr 0.85fr 0.85fr 3.6fr minmax(116px, 0.9fr);
	}
	#lr-main .lrc-avail__row .lrc-btn {
		border-radius: 10px;
		font-size: 14px;
		letter-spacing: 0;
		padding: 10px 12px;
	}
	#lr-main .lrc-avail__cell { padding-inline: 8px; }
	#lr-main .lrc-avail__cell--action { padding-inline: 4px; }
}

/* tablet and phone: the table becomes a stack of session cards. Each card
   leads with the facility as a black header bar, cost and duration share a
   row under small quiet labels, the dates get their own "Choose a date"
   header, and Book Now runs full width */
@media (max-width: 840px) {
	#lr-main .lrc-avail__table { border-top: 0; overflow: visible; }
	#lr-main .lrc-avail__head { display: none; }

	#lr-main .lrc-avail__row {
		display: grid;
		grid-template-columns: 1fr 1fr;
		align-items: stretch;
		background: #fff;
		border: 1px solid #d9d9d9;
		border-radius: 10px;
		overflow: hidden;
		margin-bottom: 18px;
		padding-bottom: 0;
	}
	#lr-main .lrc-avail__row:last-child { margin-bottom: 0; }

	/* facility is the card's header bar */
	#lr-main .lrc-avail__cell--facility {
		grid-column: 1 / -1;
		background: var(--lr-ink-deep, #0c0b0b);
		padding: 12px 16px;
	}
	#lr-main .lrc-avail__cell--facility .lrc-avail__label { display: none; }
	#lr-main .lrc-avail__cell--facility .lrc-avail__location {
		color: #fff;
		font-size: 15px;
		font-weight: 600;
	}
	#lr-main .lrc-avail__cell--facility .lrc-avail__pin { color: #fff; }

	/* cost + duration side by side, label and value sharing one line */
	#lr-main .lrc-avail__cell--cost,
	#lr-main .lrc-avail__cell--duration {
		padding: 14px 16px 0;
		text-align: left;
	}
	#lr-main .lrc-avail__cell--cost { grid-column: 1; }
	#lr-main .lrc-avail__cell--duration { grid-column: 2; border-left: 1px solid #ececec; }
	#lr-main .lrc-avail__cell--cost .lrc-avail__label,
	#lr-main .lrc-avail__cell--duration .lrc-avail__label {
		background: none;
		color: #69727d;
		display: inline-block;
		font-size: 12px;
		font-weight: 700;
		letter-spacing: 0.8px;
		line-height: 1.2;
		margin: 0 6px 0 0;
		padding: 0;
		text-align: left;
		text-transform: uppercase;
	}

	/* the dates get the header the desktop table gave them, as a black bar
	   running edge to edge (the markup carries no label span here) */
	#lr-main .lrc-avail__cell--dates {
		grid-column: 1 / -1;
		padding: 12px 16px 0;
	}
	#lr-main .lrc-avail__cell--dates::before {
		content: "Choose a date";
		display: block;
		background: var(--lr-ink-deep, #0c0b0b);
		color: #fff;
		font-size: 12px;
		font-weight: 700;
		letter-spacing: 0.8px;
		line-height: 1.2;
		margin: 0 -16px 18px;
		padding: 10px 16px;
		text-align: left;
		text-transform: uppercase;
	}
	#lr-main .lrc-avail__dates { padding: 0 28px; }

	#lr-main .lrc-avail__cell--action {
		grid-column: 1 / -1;
		padding: 12px 16px 16px;
	}
	#lr-main .lrc-avail__cell--action .lrc-btn { width: 100%; }
}

/* below 460 "COST $375.00 p/p" can't hold one line in a half-width cell,
   so the label rides above the value again */
@media (max-width: 459px) {
	#lr-main .lrc-avail__cell--cost .lrc-avail__label,
	#lr-main .lrc-avail__cell--duration .lrc-avail__label {
		display: block;
		margin: 0 0 4px;
	}
}

/* ---------- trust band: the numbers, tight ---------- */
#lr-main .is-trust {
	background: #f7f7f7;
	padding-block: 64px;
}
#lr-main .is-trust .rd-trust-inner { width: var(--rd-rail); margin-inline: auto; text-align: center; }
#lr-main .is-trust h2 { margin: 0; }
.rd-stars-sm { color: #fbbc04; font-size: 14px; letter-spacing: 2px; }
.rd-nm-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 8px;
	margin-top: 34px;
}
.rd-nm-fact { padding: 0 22px; }
.rd-nm-fact + .rd-nm-fact { border-left: 1px solid #d5d5d5; }
.rd-nm-fact strong {
	display: block;
	font-size: 42px;
	font-weight: 800;
	letter-spacing: 0;
	color: var(--lr-red, #bf2428);
	font-variant-numeric: tabular-nums;
	line-height: 1.05;
}
.rd-nm-star { font-size: 22px; }
.rd-nm-fact > span { display: block; font-size: 14.5px; color: #69727d; margin-top: 8px; line-height: 1.35; }
@media (max-width: 900px) {
	.rd-nm-grid { grid-template-columns: 1fr 1fr; gap: 26px 0; }
	.rd-nm-fact:nth-child(odd) { border-left: 0; }
}
/* the numbers can't hold 42px in a half-width column on small phones */
@media (max-width: 440px) {
	.rd-nm-fact { padding: 0 12px; }
	.rd-nm-fact strong { font-size: 33px; letter-spacing: 0; }
}

/* ---------- course details: summary panel as a proper card ---------- */
#lr-main .lrc-summary {
	background: #f7f7f7;
	border-radius: 14px;
	padding: 30px 28px;
	gap: 8px 28px;
}
#lr-main .lrc-summary__fact { align-items: flex-start; }
#lr-main .lrc-summary__icon { color: var(--lr-red, #bf2428); margin-top: 2px; }
#lr-main .lrc-summary__label {
	font-size: 18px;
	font-weight: 700;
	letter-spacing: 0.8px;
	text-transform: uppercase;
	color: #69727d;
	font-weight:bold;
	margin-bottom:0;
	line-height: 1.1;
}
#lr-main .lrc-summary__value { font-size: 16px; line-height: 1.1;margin:6px 0 0; }
#lr-main .lrc-summary .lrc-summary__note-sm { font-size: 12.5px; line-height: 1.1; color: #69727d; margin: 0 0 6px; }

/* the course-code value only (first fact of the second column): its four
   br-separated lines get air via line-height; every other value stays tight */
#lr-main .lrc-summary__col:last-child .lrc-summary__fact:first-child .lrc-summary__value {
	line-height: 1.45;
}

/* below 1025 the details column stack goes full-rail, panel becomes 2-up */
@media (max-width: 1024px) {
	#lr-main .lr-course-section.is-details { padding-bottom: 20px; }
	#lr-main .lr-details { flex-wrap: wrap; }
	#lr-main .lr-details .wp-block-column {
		flex: 1 1 100%;
		max-width: 100%;
	}
	#lr-main .lr-details__summary { margin-top: 34px; }
	#lr-main .lrc-summary {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 4px 32px;
	}
}
@media (max-width: 640px) {
	#lr-main .lrc-summary { grid-template-columns: 1fr; padding: 24px 20px; }
}

/* ---------- splits: image behaves at every width ---------- */
#lr-main .lr-course-section.is-split { background: #f7f7f7; }
#lr-main .is-split .lr-split { gap: 50px; align-items: start; }

/* the text column carried its own chunky padding (72px top/bottom, ~65px sides)
   on top of the section's, squeezing the content and inflating the section;
   the section padding and column gap do the job alone */
#lr-main .lr-course-section.is-split .lr-split__text { padding: 0; }

@media (min-width: 1025px) {
	#lr-main .is-split .lr-split .wp-block-column {
		flex: 0 0 calc(50% - 25px);
		max-width: calc(50% - 25px);
	}
}
#lr-main .lr-split__media img,
#lr-main .is-split img {
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 12px;
	display: block;
	position: sticky;
	top: 110px;
}
@media (max-width: 1024px) {
	/* tighter block padding; two stacked grey splits read as one surface,
	   so their combined seam stays modest */
	#lr-main .lr-course-section.is-split { padding-block: 32px 40px; }
	/* site.css flips the row to display:block down here, which kills `order`;
	   a flex column brings it back so the image can lead */
	#lr-main .is-split .lr-split { display: flex; flex-direction: column; gap: 24px; }
	#lr-main .is-split .lr-split .wp-block-column { flex: 1 1 auto; max-width: 100%; }
	/* image first when stacked, in both media-right and media-left sections */
	#lr-main .lr-course-section.is-split .lr-split__media { order: -1; }
	#lr-main .lr-course-section.is-split .lr-split__text { order: 2; }
	#lr-main .lr-split__media img,
	#lr-main .is-split img {
		position: static;
		aspect-ratio: 16 / 9;
		width: 100%;
		max-height: 400px;
	}
}

/* ---------- closing CTA ---------- */
#lr-main .is-cta .rd-cta-alt { margin: 32px 0 0; font-size: 14.5px; }
#lr-main .is-cta .rd-cta-alt a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }

/* ---------- footer: production layout ---------- */
.rd-footer { background: #fff; color: #333; }
.rd-footer-top {
	display: flex;
	justify-content: space-between;
	gap: 40px;
	padding: 46px 28px 30px;
}
.rd-footer h4 { font-size: 15px; font-weight: 700; color: #0c0b0b; margin: 0 0 18px; }
.rd-footer-cols {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px 40px;
}
.rd-footer-cols ul { list-style: none; margin: 0; padding: 0; }
.rd-footer-cols li { margin: 0 0 12px; }
.rd-footer-cols a { color: #333; font-size: 13px; text-decoration: none; }
.rd-footer-cols a:hover { color: var(--lr-red, #bf2428); }
.rd-footer-links { flex: 1 1 auto; min-width: 0; }
.rd-footer-brand { flex: 0 0 auto; text-align: right; }
.rd-footer-brand img { width: 250px; height: auto; }
.rd-socials { display: flex; gap: 8px; justify-content: flex-end; margin-top: 26px; }
.rd-socials a {
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: #0c0b0b;
	color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.rd-socials svg { width: 11px; height: 11px; fill: currentColor; }
.rd-footer-bottom {
	border-top: 1px solid #e6e6e6;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 24px;
	padding: 14px 28px 18px;
}
.rd-cities { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; }
.rd-cities li { display: flex; align-items: center; }
.rd-cities li + li::before { content: ""; width: 1px; height: 12px; background: #c9c9c9; margin: 0 12px; }
.rd-cities a { color: var(--lr-red, #bf2428); font-size: 13px; text-decoration: none; }
.rd-cities a:hover { text-decoration: underline; }
.rd-copy { font-size: 12px; color: #8a8a8a; margin: 6px 0 0; }
.rd-policies { text-align: right; font-size: 12.5px; }
.rd-policies p { margin: 0 0 4px; color: #c9c9c9; }
.rd-policies a { color: var(--lr-red, #bf2428); text-decoration: none; }
.rd-policies a:hover { text-decoration: underline; }
@media (max-width: 1024px) {
	.rd-footer-top { flex-wrap: wrap; }
	.rd-footer-cols { grid-template-columns: 1fr 1fr; }
	.rd-footer-brand { text-align: left; }
	.rd-socials { justify-content: flex-start; }
	.rd-footer-bottom { flex-direction: column; }
	.rd-policies { text-align: left; }
}

/* ============================================================
   ROUND 4: delivery pins, req+pay split band, advanced courses,
   why-choose, locations grid ladder
   ============================================================ */

/* course delivery reads as a white tab between the grey splits */
#lr-main .lr-course-section.is-split.media-left { background: #fff; }

/* delivery locations: production marks each city with a pin, which is what
   that mystery 30px indent was reserving space for */
#lr-main .lr-delivery-locations > * { padding-left: 0; }
#lr-main .lr-delivery-location h5,
#lr-main .lr-delivery-location p { padding-left: 32px; }
#lr-main .lr-delivery-location h5 { position: relative; }
#lr-main .lr-delivery-location h5::before {
	content: "";
	position: absolute;
	left: 2px;
	top: 2px;
	width: 17px;
	height: 21px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath fill='%230C0B0B' d='M0 188.6C0 84.4 86 0 192 0S384 84.4 384 188.6c0 119.3-120.2 262.3-170.4 316.8-11.8 12.8-31.5 12.8-43.3 0-50.2-54.5-170.4-197.5-170.4-316.8zM192 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* entry requirements + payment options stay their own stacked sections at
   every width: entry copy runs long on some courses, so a 50/50 never holds */

/* advanced-courses band: left aligned, properly set */
#lr-main .lr-course-section.is-red.is-centred { text-align: left; }
#lr-main .lr-course-section.is-red.is-centred p { margin-inline: 0; }

/* why choose: white */
#lr-main .lr-course-section.is-grey.is-why { background: #fff; }

/* locations grid ladder: 4 / 3 / 2 / 1 */
@media (max-width: 1200px) and (min-width: 1025px) {
	#lr-main .lr-locations { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1024px) and (min-width: 561px) {
	#lr-main .lr-locations { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; padding: 30px; }
}
@media (max-width: 560px) {
	#lr-main .lr-locations { grid-template-columns: 1fr; }
}
/* tighter section rhythm once locations stack */
@media (max-width: 1024px) {
	#lr-main .lr-course-section.is-locations { padding-block: 44px 56px; }
}

/* ============================================================
   ROUND 5: sticky summary, why-card tightening, one-line H2s,
   production FAQ, note pills
   ============================================================ */

/* the summary card rides along beside long course-details prose, like the
   split images do; the column must stretch to the row height or sticky has
   no room to travel (WP's layout style top-aligns the columns) */
@media (min-width: 1025px) {
	#lr-main .lr-details { align-items: stretch; }
	#lr-main .lr-details__summary { align-self: stretch; }
	#lr-main .lr-details__summary .lrc-summary {
		position: sticky;
		top: 110px;
	}
}

/* section H2s hold one line on large screens (the CTA banner keeps its
   own display size) */
@media (min-width: 1025px) {
	#lr-main .lr-course-section:not(.is-cta) h2 {
		font-size: 34px;
		letter-spacing: 0;
	}
}

/* why-choose cards: tighter internals once the grid stacks */
@media (max-width: 1024px) {
	#lr-main .lr-course-section.is-why .lr-why { gap: 18px; }
	#lr-main .lr-course-section.is-why .lr-why__card { padding: 24px 24px 24px 88px; }
	#lr-main .lr-course-section.is-why .lr-why__card figure { left: 24px; top: 24px; }
	#lr-main .lr-course-section.is-why h2 { margin-bottom: 24px; }
}

/* FAQ styled to production: full-rail bordered rows, bold questions,
   +/− marker on the left */
#lr-main .is-faq .wp-block-blacksheep-faq-accordion { max-width: none; width: 100%; }
#lr-main .wp-block-blacksheep-faq-accordion .faq { display: block; }
#lr-main .wp-block-blacksheep-faq-accordion .faq__item {
	background: #fff;
	border: 1px solid #d9d9d9;
	border-radius: 0;
}
#lr-main .wp-block-blacksheep-faq-accordion .faq__item + .faq__item { margin-top: -1px; }
#lr-main .wp-block-blacksheep-faq-accordion .faq__q {
	font-family: inherit;
	font-size: 19px;
	font-weight: 600;
	line-height: 1.3;
	color: #202020;
	gap: 12px;
	padding: 17px 20px;
	justify-content: flex-start;
	text-align: left;
	width: 100%;
}
#lr-main .wp-block-blacksheep-faq-accordion .faq__icon { display: none; }
#lr-main .wp-block-blacksheep-faq-accordion .faq__q::before {
	content: "+";
	color: #1f2124;
	font-size: 21px;
	font-weight: 700;
	flex: 0 0 18px;
	line-height: 24px;
	text-align: center;
}
#lr-main .wp-block-blacksheep-faq-accordion .faq__item.is-open .faq__q::before { content: "\2212"; }
/* vertical padding lives on the paragraph, not the collapsing wrapper,
   or closed items leak a sliver of answer text */
#lr-main .wp-block-blacksheep-faq-accordion .faq__a-inner { padding: 0 20px 0 50px; }
#lr-main .wp-block-blacksheep-faq-accordion .faq__a-inner p {
	font-size: 15.5px;
	line-height: 1.55;
	margin: 0;
	padding: 2px 0 14px;
}

/* RTO note: the policy links become outlined pills, like production */
#lr-main .is-note .lr-note__links {
	display: flex;
	flex-wrap: wrap;
	gap: 22px;
	justify-content: center;
	margin-top: 36px;
}
#lr-main .is-note .lr-note__links a {
	border: 1.6px solid #a81f23;
	border-radius: 999px;
	color: #1f2124;
	display: inline-block;
	font-weight: 500;
	padding: 15px 30px;
	text-decoration: none;
}
#lr-main .is-note .lr-note__links a:hover {
	background: #a81f23;
	color: #fff;
}

/* ============================================================
   ROUND 6: mobile why-card fix, floating contact bar experiment
   ============================================================ */

/* phone why-card: the icon sits beside the title with the text under the
   title, like production, instead of stacking above it */
@media (max-width: 767px) {
	#lr-main .lr-course-section.is-why .lr-why__card {
		padding: 24px;
		display: grid;
		grid-template-columns: auto 1fr;
		column-gap: 16px;
		align-items: center;
	}
	#lr-main .lr-course-section.is-why .lr-why__card figure {
		position: static;
		left: auto;
		top: auto;
		margin: 0;
		grid-column: 1;
		grid-row: 1;
	}
	#lr-main .lr-course-section.is-why .lr-why__card h3 {
		grid-column: 2;
		grid-row: 1;
		margin: 0;
	}
	#lr-main .lr-course-section.is-why .lr-why__card p {
		grid-column: 2;
		margin-bottom: 0;
	}
}

/* the why section's closing line: click-to-call in red, like production */
#lr-main .is-why p a {
	color: var(--lr-red, #bf2428);
	font-weight: 600;
	text-decoration: none;
}
#lr-main .is-why p a:hover { text-decoration: underline; }

/* the why section's buttons carry their small person icons, like production;
   a mask painted with currentColor so the outline button's hover flip keeps
   the icon legible */
#lr-main .is-why .wp-block-button .wp-block-button__link::before {
	content: "";
	display: inline-block;
	width: 16px;
	height: 16px;
	margin-right: 9px;
	vertical-align: -2px;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3 0 498.7 13.3 512 29.7 512l388.6 0c16.4 0 29.7-13.3 29.7-29.7 0-98.5-79.8-178.3-178.3-178.3l-91.4 0z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3 0 498.7 13.3 512 29.7 512l388.6 0c16.4 0 29.7-13.3 29.7-29.7 0-98.5-79.8-178.3-178.3-178.3l-91.4 0z'/%3E%3C/svg%3E") center / contain no-repeat;
}
#lr-main .is-why .wp-block-button.is-style-outline .wp-block-button__link::before {
	width: 20px;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M144 0a80 80 0 1 1 0 160A80 80 0 1 1 144 0zM512 0a80 80 0 1 1 0 160A80 80 0 1 1 512 0zM0 298.7C0 239.8 47.8 192 106.7 192h42.7c15.9 0 31 3.5 44.6 9.7-1.3 7.2-1.9 14.7-1.9 22.3 0 38.2 16.8 72.5 43.3 96-.2 0-.4 0-.7 0H21.3C9.6 320 0 310.4 0 298.7zM405.3 320c-.2 0-.4 0-.7 0 26.6-23.5 43.3-57.8 43.3-96 0-7.6-.7-15-1.9-22.3 13.6-6.3 28.7-9.7 44.6-9.7h42.7C592.2 192 640 239.8 640 298.7c0 11.8-9.6 21.3-21.3 21.3H405.3zM224 224a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zM128 485.3C128 411.7 187.7 352 261.3 352H378.7C452.3 352 512 411.7 512 485.3c0 14.7-11.9 26.7-26.7 26.7H154.7c-14.7 0-26.7-11.9-26.7-26.7z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M144 0a80 80 0 1 1 0 160A80 80 0 1 1 144 0zM512 0a80 80 0 1 1 0 160A80 80 0 1 1 512 0zM0 298.7C0 239.8 47.8 192 106.7 192h42.7c15.9 0 31 3.5 44.6 9.7-1.3 7.2-1.9 14.7-1.9 22.3 0 38.2 16.8 72.5 43.3 96-.2 0-.4 0-.7 0H21.3C9.6 320 0 310.4 0 298.7zM405.3 320c-.2 0-.4 0-.7 0 26.6-23.5 43.3-57.8 43.3-96 0-7.6-.7-15-1.9-22.3 13.6-6.3 28.7-9.7 44.6-9.7h42.7C592.2 192 640 239.8 640 298.7c0 11.8-9.6 21.3-21.3 21.3H405.3zM224 224a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zM128 485.3C128 411.7 187.7 352 261.3 352H378.7C452.3 352 512 411.7 512 485.3c0 14.7-11.9 26.7-26.7 26.7H154.7c-14.7 0-26.7-11.9-26.7-26.7z'/%3E%3C/svg%3E");
}

/* on tablet and phone the header's phone + Talk to an Expert rows become a
   full-width bar pinned to the bottom of the screen, mirroring the top strip:
   white phone half on the left, red CTA half on the right */
@media (max-width: 1024px) {
	body { padding-bottom: 56px; }
	.lr-header__strip {
		position: fixed;
		bottom: 0;
		left: 0;
		z-index: 95;
		width: 50%;
		min-height: 56px;
		margin: 0;
		padding: 0 12px;
		display: flex;
		align-items: center;
		justify-content: center;
		background: #fff;
		border-top: 1px solid #e2e2e2;
		border-radius: 0;
		box-shadow: 0 -6px 18px rgba(0, 0, 0, 0.12);
	}
	.lr-header__strip .lr-header__phone { font-size: 16px; }
	.lr-header__cta--strip.lr-header__cta--strip {
		position: fixed;
		bottom: 0;
		right: 0;
		z-index: 95;
		width: 50%;
		min-height: 56px;
		height: auto;
		margin: 0;
		padding: 0 12px;
		display: flex;
		align-items: center;
		justify-content: center;
		font-size: 15.5px;
		border-radius: 0;
		box-shadow: 0 -6px 18px rgba(0, 0, 0, 0.12);
	}
}

/* ============================================================
   HOMEPAGE — pixel-faithful rebuild of production's home.
   Values measured from link-resources.com.au on 25/08/2026 at
   BOTH 1440 (same-origin iframe) and 3008 (native window), so
   fluid gaps use linear calc() fits that hit both widths.
   Type (rem-based on production, fixed px here): h1 64/800,
   section h2 38.4/700 centred, band h2 57.6/800, counters
   60.8/700, card titles 17.6/700 + 12px red fa arrow, why h3
   22.4/700, news titles 25.6/700 red, buttons 17.6/500 in a
   40px pill with 18x28 padding and 2px border.
   ============================================================ */

/* The plugin stylesheet (course.css) only loads where course blocks
   render, so the homepage carries its own visually-hidden utility. */
.lrc-sr {
	border: 0;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	white-space: nowrap;
	width: 1px;
}

/* ---------- header over the photo ----------
   Production's home header is the same transparent bar, but every
   item is white so it reads over the dark hero photograph. */
body.home .lr-header__item,
body.home .lr-header__bar .lr-header__phone,
body.home .lr-header__search,
body.home .lr-header__burger { color: #fff; }
body.home .lr-header__brand--text,
body.home .lr-header__rto { color: #fff; }

/* On home the header floats over the photo (production does the same),
   so the hero starts at the top of the document instead of borrowing the
   course pages' -200px pull. */
body.home .lr-header { left: 0; position: absolute; right: 0; top: 0; }

/* The course pages paint the bar dark (rgba .85 above); on home the bar
   itself stays glass and the scrolled tint lives on .is-stuck instead. */
body.home .lr-header__bar { background: transparent; }

/* ---------- logo: reversed on dark, ink on white ----------
   header-lr.php prints both files; only one shows. The bar is dark on every
   page (rgba .85) except home, where it is glass over the photo on wide
   screens and plain white below 1366, so only home below 1366 swaps to the
   ink version. The footer prints the ink version only. */
.lr-header__brand .lr-logo--dark { display: none; }

@media (max-width: 1366px) {
	body.home .lr-header__brand .lr-logo--rev { display: none; }
	body.home .lr-header__brand .lr-logo--dark { display: block; }

	body.home .lr-header.is-stuck .lr-header__brand .lr-logo--rev { display: block; }
	body.home .lr-header.is-stuck .lr-header__brand .lr-logo--dark { display: none; }
}

/* Below 1366 site.css paints the header white (grid layout), and on home
   the bar has no dark tint of its own, so the white-on-photo colours above
   would be white on white: the burger vanished on the testers' phones
   (17/09/2026). Back to ink wherever the header is white. */
@media (max-width: 1366px) {
	body.home .lr-header__item,
	body.home .lr-header__bar .lr-header__phone,
	body.home .lr-header__search,
	body.home .lr-header__burger,
	body.home .lr-header__brand--text,
	body.home .lr-header__rto { color: var(--lr-ink, #0c0b0b); }

	/* ...and white again once the scrolled dark tint is on (laptops). */
	body.home .lr-header.is-stuck .lr-header__item,
	body.home .lr-header.is-stuck .lr-header__bar .lr-header__phone,
	body.home .lr-header.is-stuck .lr-header__search,
	body.home .lr-header.is-stuck .lr-header__burger,
	body.home .lr-header.is-stuck .lr-header__brand--text,
	body.home .lr-header.is-stuck .lr-header__rto { color: #fff; }
}

@media (min-width: 1025px) {
	body.home .lr-header {
		position: fixed;
		transition: background-color 0.3s ease;
	}

	body.home .lr-header.is-stuck { background: rgba(0, 0, 0, 0.8); }
}

/* ---------- hero ---------- */

/* Production layers its band photos over a near-black base:
   hero at 25% opacity, landscape band at 70%, closing CTA at 30%. */
.rd-hh {
	background: #0c0b0b;
	margin-top: 0;
	position: relative;
}

.rd-hh::before {
	background-image: var(--rd-bg);
	background-position: 50% 50%;
	background-size: cover;
	content: "";
	inset: 0;
	opacity: 0.25;
	position: absolute;
}

/* Production's hero content column: 795px at 1440, 1570px at 3008,
   i.e. ~55vw capped. Kicker sits 243px from the top at 1440 and
   390px at 3008 (linear fit below). */
.rd-hh__inner {
	margin-inline: auto;
	max-width: min(55.2vw, 1570px);
	padding: clamp(140px, calc(108px + 9.4vw), 400px) 0 clamp(100px, calc(96px + 1.5vw), 160px);
	position: relative;
	text-align: center;
	width: 100%;
}

/* h1 first in the DOM, kicker shown above it (tester feedback 19/09/2026). */
.rd-hh__inner { display: flex; flex-direction: column; align-items: center; }
.rd-hh__inner > * { width: 100%; }
.rd-hh__inner > .rd-hh__kicker { order: -1; }

.rd-hh__kicker {
	color: #fff;
	font-size: 14.4px;
	font-weight: 500;
	letter-spacing: 1.5px;
	margin: 0 0 25px;
	text-transform: uppercase;
}

.rd-hh h1 {
	color: #fff;
	font-size: clamp(34px, 4.45vw, 64px);
	font-weight: 800;
	line-height: 1.1;
	margin: 0;
}

.rd-hh h1 .rd-hl { color: var(--lr-red, #bf2428); }

.rd-hh__intro {
	color: #fff;
	font-size: 16px;
	line-height: 1.5;
	margin: 30px 0;
}

.rd-hh__finder {
	align-items: center;
	display: flex;
	gap: 10px;
}

.rd-finder { flex: 1; min-width: 0; position: relative; }

.rd-finder__input {
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath fill='%23bf2428' d='M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z'/%3E%3C/svg%3E") right 16px center / 14px no-repeat;
	border: 1px solid #666;
	border-radius: 3px;
	color: #000;
	font-family: inherit;
	font-size: 16px;
	height: 41px;
	padding: 8px 40px 8px 16px;
	width: 100%;
}

.rd-finder__input::placeholder { color: #000; opacity: 1; }

.rd-finder__list {
	background: #fff;
	border: 1px solid #ccc;
	border-radius: 3px;
	box-shadow: 0 14px 34px rgba(0, 0, 0, 0.28);
	left: 0;
	list-style: none;
	margin: 6px 0 0;
	max-height: 342px;
	overflow: auto;
	padding: 4px 0;
	position: absolute;
	right: 0;
	text-align: left;
	top: 100%;
	z-index: 60;
}

.rd-finder__list li {
	color: #222;
	cursor: pointer;
	font-size: 15px;
	line-height: 1.4;
	padding: 9px 16px;
}

.rd-finder__list li:hover,
.rd-finder__list li.is-active {
	background: var(--lr-red, #bf2428);
	color: #fff;
}

.rd-hh__finder button {
	background: var(--lr-red, #bf2428);
	border: 0;
	border-radius: 10px;
	color: #fff;
	cursor: pointer;
	font-family: inherit;
	font-size: 16px;
	font-weight: 500;
	height: 56px;
	padding: 0;
	width: 185px;
}

.rd-hh__finder button:hover { background: var(--lr-red-dark, #a3191d); }

.rd-hh__links {
	column-gap: 40px;
	columns: 3;
	list-style: none;
	margin: 55px 0 0;
	padding: 0;
	text-align: left;
}

.rd-hh__links li {
	break-inside: avoid;
	margin: 0 0 14px;
}

.rd-hh__links a {
	color: #fff;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
	text-decoration: none;
}

.rd-hh__links a:hover { text-decoration: underline; }

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

/* Production: 100px section gap at 1440 growing to 210 at 3008. */
#lr-main .lr-course-section.rd-hcourses {
	padding: calc(7vw - 0px) 0 calc(4.7vw);
}

/* The heading and intro sit centred on their own narrower measure:
   two lines at 1440, one line on very wide screens — like production. */
#lr-main .lr-course-section.rd-hcourses > .lr-container { max-width: 1768px; }

#lr-main .lr-course-section.rd-hcourses h2 {
	color: var(--lr-ink, #333);
	font-size: 38.4px;
	font-weight: 700;
	line-height: 1.1;
	margin: 0 0 calc(44px + 1.1vw);
	text-align: left;
}

.rd-hcourses__intro {
	align-items: flex-start;
	display: flex;
	gap: 30px;
	justify-content: flex-start;
	margin: 0 0 calc(33px + 1.15vw);
}

.rd-hcourses__intro .rd-hcourses__mark {
	flex: 0 0 auto;
	height: auto;
	width: 34px;
}

.rd-hcourses__intro p {
	color: var(--lr-ink, #333);
	font-size: 16px;
	line-height: 1.5;
	margin: 4px 0 0;
	max-width: 975px;
	text-align: left;
}

.rd-hcards {
	display: grid;
	gap: 36px 20px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin-inline: auto;
	max-width: 1140px;
}

/* Card: photo, then title with production's red fa-arrow at the right,
   then the unit codes. */
.rd-hcard {
	color: var(--lr-ink-deep, #0c0b0b);
	display: grid;
	grid-template-columns: minmax(0, 1fr) 24px;
	grid-template-rows: auto auto 1fr;
	text-decoration: none;
}

.rd-hcard img {
	aspect-ratio: 270 / 171;
	border-radius: 15px;
	display: block;
	grid-column: 1 / -1;
	height: auto;
	object-fit: cover;
	width: 100%;
}

#lr-main .lr-course-section .rd-hcard h3 {
	color: var(--lr-ink-deep, #0c0b0b);
	font-size: 17.6px;
	font-weight: 700;
	grid-column: 1;
	letter-spacing: 0;
	line-height: 1.1;
	margin: 24px 0 9px;
}

.rd-hcard::after {
	align-self: start;
	background-color: var(--lr-red, #bf2428);
	content: "";
	grid-column: 2;
	grid-row: 2;
	height: 12px;
	justify-self: end;
	margin-top: 28px;
	width: 12px;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.rd-hcard:hover h3 { color: var(--lr-red, #bf2428); }

.rd-hcard__code {
	display: block;
	font-size: 16px;
	grid-column: 1;
	line-height: 1.3;
}

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

#lr-main .lr-course-section.rd-hwhy { padding: calc(4.7vw) 0 60px; }

#lr-main .lr-course-section.rd-hwhy h2 {
	color: var(--lr-ink, #333);
	font-size: 38.4px;
	font-weight: 700;
	line-height: 1.1;
	margin: 0 auto 67px;
	max-width: 1020px;
	text-align: center;
}

.rd-hwhy__grid {
	display: grid;
	gap: 38px 30px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.rd-hwhy__card {
	background: #fff;
	border-radius: 10px;
	display: flex;
	gap: 22px;
	padding: 35px;
}

.rd-hwhy__icon {
	flex: 0 0 50px;
	height: 50px;
	width: 50px;
}

.rd-hwhy__icon svg,
.rd-hwhy__icon img {
	display: block;
	height: 50px;
	width: 50px;
}

#lr-main .rd-hwhy__card h3 {
	color: var(--lr-red, #bf2428);
	font-size: 22.4px;
	font-weight: 700;
	line-height: 1.1;
	margin: 0 0 12px;
}

.rd-hwhy__card p {
	color: var(--lr-ink, #333);
	font-size: 16px;
	line-height: 1.5;
	margin: 0;
}

.rd-hwhy__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	justify-content: center;
	margin: 65px 0 0;
}

/* The course-section base type (20px, -1px tracking, 16px bottom margin)
   outranks bare class selectors, so the homepage copy pins itself with the
   #lr-main id. */
#lr-main .rd-hwhy__call {
	color: var(--lr-ink, #333);
	font-size: 16px;
	letter-spacing: 0;
	line-height: 1.5;
	margin: 35px 0 0;
	text-align: center;
}

#lr-main .rd-hcourses p,
#lr-main .rd-hwhy p,
#lr-main .rd-hnews p { letter-spacing: 0; }

.rd-hwhy__call a { color: var(--lr-red, #bf2428); font-weight: 500; text-decoration: none; }
.rd-hwhy__call a:hover { text-decoration: underline; }

/* ---------- buttons ----------
   Production's pill: 17.6px/500, 40px radius, 18x28 padding, 2px border. */

.rd-btn {
	align-items: center;
	border: 2px solid transparent;
	border-radius: 40px;
	display: inline-flex;
	font-size: 17.6px;
	font-weight: 500;
	gap: 10px;
	line-height: 1.2;
	padding: 17px 28px;
	text-decoration: none;
}

.rd-btn--solid {
	background: var(--lr-red, #bf2428);
	border-color: var(--lr-red, #bf2428);
	color: #fff;
}

.rd-btn--solid:hover {
	background: var(--lr-red-dark, #a3191d);
	border-color: var(--lr-red-dark, #a3191d);
}

/* Button system (tester feedback 19/09/2026): solid red, or red outline
   with ink text that fills red with white text on hover. The white
   "ghost" below is only for dark photo bands. */
.rd-btn--outline {
	background: transparent;
	border-color: var(--lr-red, #bf2428);
	color: var(--lr-ink-deep, #0c0b0b);
}

.rd-btn--outline:hover {
	background: var(--lr-red, #bf2428);
	border-color: var(--lr-red, #bf2428);
	color: #fff;
}

.rd-btn--ghost {
	background: transparent;
	border-color: #fff;
	color: #fff;
}

.rd-btn--ghost:hover {
	background: #fff;
	color: var(--lr-ink-deep, #0c0b0b);
}

/* the theme's generic a:hover otherwise outranks the variants and turns
   the labels dark red on red */
a.rd-btn--solid:hover { color: #fff; }
a.rd-btn--outline:hover { color: #fff; }
a.rd-btn--ghost:hover { color: var(--lr-ink-deep, #0c0b0b); }

.rd-btn--person::before,
.rd-btn--people::before {
	background-color: currentColor;
	content: "";
	display: inline-block;
	height: 16px;
	width: 16px;
}

.rd-btn--person::before {
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3 0 498.7 13.3 512 29.7 512l388.6 0c16.4 0 29.7-13.3 29.7-29.7 0-98.5-79.8-178.3-178.3-178.3l-91.4 0z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3 0 498.7 13.3 512 29.7 512l388.6 0c16.4 0 29.7-13.3 29.7-29.7 0-98.5-79.8-178.3-178.3-178.3l-91.4 0z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.rd-btn--people::before {
	width: 20px;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M144 0a80 80 0 1 1 0 160A80 80 0 1 1 144 0zM512 0a80 80 0 1 1 0 160A80 80 0 1 1 512 0zM0 298.7C0 239.8 47.8 192 106.7 192h42.7c15.9 0 31 3.5 44.6 9.7-1.3 7.2-1.9 14.7-1.9 22.3 0 38.2 16.8 72.5 43.3 96-.2 0-.4 0-.7 0H21.3C9.6 320 0 310.4 0 298.7zM405.3 320c-.2 0-.4 0-.7 0 26.6-23.5 43.3-57.8 43.3-96 0-7.6-.7-15-1.9-22.3 13.6-6.3 28.7-9.7 44.6-9.7h42.7C592.2 192 640 239.8 640 298.7c0 11.8-9.6 21.3-21.3 21.3H405.3zM224 224a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zM128 485.3C128 411.7 187.7 352 261.3 352H378.7C452.3 352 512 411.7 512 485.3c0 14.7-11.9 26.7-26.7 26.7H154.7c-14.7 0-26.7-11.9-26.7-26.7z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M144 0a80 80 0 1 1 0 160A80 80 0 1 1 144 0zM512 0a80 80 0 1 1 0 160A80 80 0 1 1 512 0zM0 298.7C0 239.8 47.8 192 106.7 192h42.7c15.9 0 31 3.5 44.6 9.7-1.3 7.2-1.9 14.7-1.9 22.3 0 38.2 16.8 72.5 43.3 96-.2 0-.4 0-.7 0H21.3C9.6 320 0 310.4 0 298.7zM405.3 320c-.2 0-.4 0-.7 0 26.6-23.5 43.3-57.8 43.3-96 0-7.6-.7-15-1.9-22.3 13.6-6.3 28.7-9.7 44.6-9.7h42.7C592.2 192 640 239.8 640 298.7c0 11.8-9.6 21.3-21.3 21.3H405.3zM224 224a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zM128 485.3C128 411.7 187.7 352 261.3 352H378.7C452.3 352 512 411.7 512 485.3c0 14.7-11.9 26.7-26.7 26.7H154.7c-14.7 0-26.7-11.9-26.7-26.7z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---------- companies band ----------
   544px tall at 1440, 655 at 3008; content block is ~280 so the
   padding runs 132 -> 187 (linear fit). */

.rd-hband {
	background: #0c0b0b;
	padding: clamp(110px, calc(81px + 3.5vw), 200px) 0;
	position: relative;
}

.rd-hband::before {
	background-image: var(--rd-bg);
	background-position: 50% 50%;
	background-size: cover;
	content: "";
	inset: 0;
	opacity: 0.7;
	position: absolute;
}

.rd-hband > .lr-container { max-width: min(1440px, 91vw); position: relative; }

.rd-hband__cols {
	align-items: center;
	display: grid;
	gap: 60px;
	grid-template-columns: minmax(0, 6fr) minmax(0, 7fr);
}

.rd-hband__logos {
	display: grid;
	gap: 30px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
}

.rd-hband__logos li {
	opacity: 0;
	transform: translateY(16px);
	transition: opacity 0.6s ease, transform 0.6s ease;
}

.rd-hband__logos li.is-in {
	opacity: 1;
	transform: none;
}

.rd-hband__logos img {
	display: block;
	height: auto;
	width: 100%;
}

#lr-main .rd-hband h2 {
	color: #fff;
	font-size: clamp(36px, 4vw, 57.6px);
	font-weight: 800;
	line-height: 1.1;
	margin: 0 0 28px;
}

/* ---------- counters ---------- */

/* Band -> counters: 103px at 1440, 204 at 3008. */
#lr-main .lr-course-section.rd-hnumbers { padding: calc(10px + 6.44vw) 0 0; }

.rd-hnumbers__row {
	display: grid;
	gap: 24px;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	text-align: center;
}

.rd-hnumbers__fact strong {
	color: var(--lr-red, #bf2428);
	display: block;
	font-size: 60.8px;
	font-weight: 700;
	line-height: 1.5;
}

.rd-hnumbers__fact > span {
	color: var(--lr-ink, #333);
	font-size: 17.6px;
	line-height: 1.3;
}

.rd-hnumbers__fact strong .rd-hnumbers__n { font-size: inherit; }

/* ---------- photo collage ----------
   Production: three fixed-size montages (238/324/238 wide), 40px
   apart, middle one 37px lower; 126px below the counters at 1440. */

.rd-hgallery {
	align-items: flex-start;
	display: flex;
	gap: 40px;
	justify-content: center;
	margin: calc(4vw + 68px) auto 0;
	padding-inline: 16px;
}

.rd-hgallery img { border-radius: 0; display: block; height: auto; }
.rd-hgallery img:nth-child(1),
.rd-hgallery img:nth-child(3) { width: 238px; }
.rd-hgallery img:nth-child(2) { margin-top: 37px; width: 324px; }

/* ---------- testimonials ----------
   Grey band with production's white tilt wedge across the top
   (thin at the left, 50px deep at the right) and a two-up carousel. */

.rd-hsay {
	background: #f7f7f7;
	margin-top: clamp(80px, calc(20.4vw - 201px), 420px);
	padding: 130px 0 clamp(120px, calc(9.6vw - 4px), 300px);
	position: relative;
}

.rd-hsay::before {
	background: #fff;
	clip-path: polygon(0 0, 100% 0, 100% 100%, 0 6%);
	content: "";
	height: 50px;
	left: 0;
	position: absolute;
	right: 0;
	top: -1px;
}

#lr-main .rd-hsay h2 {
	color: var(--lr-ink, #333);
	font-size: 38.4px;
	font-weight: 700;
	line-height: 1.1;
	margin: 0 0 44px;
	text-align: center;
}

.rd-hsay__carousel {
	margin-inline: auto;
	max-width: 1140px;
	position: relative;
}

.rd-hsay__viewport {
	margin-inline: auto;
	max-width: 1083px;
	overflow: hidden;
}

.rd-hsay__track {
	display: flex;
	gap: 10px;
	min-height: 220px;
	transition: transform 0.55s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.rd-hsay__slide { flex: 0 0 calc(50% - 5px); margin: 0; }

.rd-hsay__stars {
	color: #f0a439;
	display: block;
	font-size: 18px;
	letter-spacing: 4px;
	margin: 0 0 22px;
}

.rd-hsay__slide blockquote { margin: 0; }

.rd-hsay__lead {
	color: var(--lr-ink, #333);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
	margin: 0 0 16px;
}

.rd-hsay__slide blockquote p:not(.rd-hsay__lead) {
	color: var(--lr-ink, #333);
	font-size: 16px;
	line-height: 1.5;
	margin: 0;
}

.rd-hsay__slide figcaption {
	color: var(--lr-ink, #333);
	font-size: 14px;
	font-weight: 700;
	margin-top: 20px;
}

.rd-hsay__nav {
	background: none;
	border: 0;
	color: #7a7a7a;
	cursor: pointer;
	font-size: 40px;
	line-height: 1;
	padding: 2px 10px;
	position: absolute;
	top: 70px;
}

.rd-hsay__nav:hover { color: var(--lr-ink, #333); }
.rd-hsay__nav--prev { left: -20px; }
.rd-hsay__nav--next { right: -20px; }

/* ---------- news ---------- */

#lr-main .lr-course-section.rd-hnews { padding: 93px 0 80px; }

#lr-main .lr-course-section.rd-hnews h2 {
	color: var(--lr-ink, #333);
	font-size: 38.4px;
	font-weight: 700;
	margin: 0 0 44px;
	text-align: center;
}

.rd-hnews__grid {
	display: grid;
	gap: 30px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.rd-hnews__card {
	color: var(--lr-ink, #333);
	display: block;
	text-decoration: none;
}

/* Production: square-cornered 360x300 thumbnails. */
.rd-hnews__card img {
	aspect-ratio: 6 / 5;
	border-radius: 0;
	display: block;
	height: auto;
	margin: 0 0 16px;
	object-fit: cover;
	width: 100%;
}

.rd-hnews__date {
	display: block;
	font-size: 14px;
	margin: 0 0 10px;
}

#lr-main .rd-hnews__card h3 {
	color: var(--lr-red, #bf2428);
	font-size: 25.6px;
	font-weight: 700;
	line-height: 1.15;
	margin: 0 0 12px;
}

.rd-hnews__more { font-size: 14px; }
.rd-hnews__card:hover .rd-hnews__more { text-decoration: underline; }

.rd-hnews__all { margin: 44px 0 0; text-align: center; }

/* ---------- closing call to action ----------
   629px tall at 1440, 889 at 3008; content ~426 -> padding 101 -> 231. */

.rd-hcta {
	background: #0c0b0b;
	position: relative;
	text-align: center;
}

.rd-hcta::before {
	background-image: var(--rd-bg);
	background-position: 0 0;
	background-size: cover;
	content: "";
	inset: 0;
	opacity: 0.3;
	position: absolute;
}

.rd-hcta > .lr-container {
	padding-bottom: clamp(90px, calc(8.29vw - 18px), 240px);
	padding-top: clamp(90px, calc(8.29vw - 18px), 240px);
	position: relative;
}

.rd-hcta__mark {
	height: auto;
	margin: 0 0 18px;
	width: 44px;
}

#lr-main .rd-hcta h2 {
	color: #fff;
	font-size: clamp(36px, 4vw, 57.6px);
	font-weight: 800;
	line-height: 1.1;
	margin: 0 0 22px;
}

.rd-hcta p {
	color: #fff;
	font-size: 16px;
	line-height: 1.5;
	margin: 0 auto 30px;
	max-width: 640px;
}

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

@media (max-width: 1100px) {
	.rd-hcards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 1024px) {
	.rd-hh__inner { max-width: none; padding: 165px 4vw 88px; width: 92vw; }
	#lr-main .lr-course-section.rd-hcourses h2,
	#lr-main .lr-course-section.rd-hwhy h2,
	#lr-main .rd-hsay h2,
	#lr-main .lr-course-section.rd-hnews h2 { font-size: 32px; max-width: none; }
	#lr-main .lr-course-section.rd-hcourses { padding: 70px 0 50px; }
	#lr-main .lr-course-section.rd-hwhy { padding: 50px 0 60px; }
	.rd-hcourses__intro p { max-width: 62ch; }
	#lr-main .lr-course-section.rd-hcourses h2 { text-align: left; }
	.rd-hband__cols { gap: 40px; grid-template-columns: minmax(0, 1fr); }
	.rd-hband__logos { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.rd-hnumbers__row { gap: 34px 24px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.rd-hgallery { margin-top: 60px; }
	.rd-hsay { margin-top: 70px; }
	.rd-hsay__carousel { padding-inline: 34px; }
	.rd-hsay__nav--prev { left: -6px; }
	.rd-hsay__nav--next { right: -6px; }
}

@media (max-width: 900px) {
	.rd-hh__links { columns: 2; }
	.rd-hnews__grid { grid-template-columns: minmax(0, 1fr); }
	.rd-hband { padding: 88px 0; }
}

@media (max-width: 880px) {
	.rd-hwhy__grid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 820px) {
	.rd-hcards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
	/* One testimonial at a time on phones, like production. */
	.rd-hsay__slide { flex-basis: 100%; }
	.rd-hgallery { flex-wrap: wrap; }
	.rd-hgallery img:nth-child(2) { margin-top: 0; }
	.rd-hband__logos { gap: 20px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
	.rd-hh__inner { padding-top: 130px; }
	.rd-hh__finder { flex-direction: column; }
	.rd-finder,
	.rd-hh__finder button { width: 100%; }
	.rd-hh__finder button { height: 50px; }
	.rd-hh__links { columns: 1; }
	.rd-hwhy__card { flex-direction: row; padding: 26px 22px; }
	.rd-hwhy__actions { flex-direction: column; align-items: stretch; }
	.rd-hwhy__actions .rd-btn { justify-content: center; }
	.rd-hnumbers__fact strong { font-size: 44px; }
	#lr-main .rd-hband h2, #lr-main .rd-hcta h2 { font-size: 32px; }
	.rd-hsay__nav { top: auto; bottom: -52px; }
	.rd-hsay__nav--prev { left: calc(50% - 60px); }
	.rd-hsay__nav--next { right: calc(50% - 60px); }
	.rd-hsay { padding-bottom: 130px; }
}

@media (max-width: 560px) {
	.rd-hnumbers__row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 520px) {
	.rd-hcards { grid-template-columns: minmax(0, 1fr); }
	.rd-hcard img { aspect-ratio: 335 / 210; }
}

@media (max-width: 440px) {
	.rd-hnumbers__fact strong { font-size: 33px; }
}

/* ---------------------------------------------------------------
 * LR Clean Page template (enrolment form, booking complete)
 * ------------------------------------------------------------- */

.lr-page-head {
	background: #0c0b0b;
	padding: 42px 0 46px;
}

.lr-page-head .lr-container {
	margin: 0 auto;
	max-width: var(--rd-rail);
}

.lr-page-head h1 {
	color: #fff;
	font-size: clamp(28px, 3vw, 40px);
	letter-spacing: 0;
	margin: 0;
}

.lr-main--clean {
	background: #f7f7f7;
	padding: 44px 0 20px;
}

/* ---------------------------------------------------------------
 * Blog, single post, image head, 404
 * ------------------------------------------------------------- */

.lr-page-head--image {
	overflow: hidden;
	position: relative;
}

.lr-page-head--image .lr-page-head__image {
	height: 100%;
	inset: 0;
	object-fit: cover;
	opacity: 0.3;
	position: absolute;
	width: 100%;
}

.lr-page-head--image .lr-container {
	position: relative;
}

.lr-post__meta {
	color: rgba(255, 255, 255, 0.75);
	font-size: 14px;
	letter-spacing: 0.4px;
	margin: 0 0 6px;
	text-transform: uppercase;
}

.lr-page-head--post .lr-post__meta a { color: inherit; }

.lr-main--clean .lr-post__meta {
	color: #767676;
}

.lr-post__hero {
	margin: 0 auto 34px;
	max-width: 860px;
}

.lr-post__hero img {
	border-radius: 16px;
	height: auto;
	width: 100%;
}

.lr-post__body {
	margin: 0 auto;
	max-width: 760px;
}

.lr-post__body p,
.lr-post__body li {
	font-size: 18px;
	line-height: 1.65;
}

.lr-post__body img {
	border-radius: 12px;
	height: auto;
	max-width: 100%;
}

.lr-post__back {
	margin: 44px auto 0;
	max-width: 760px;
}

.lr-post__back a {
	color: var(--lr-red, #bf2428);
	font-weight: 600;
	text-decoration: none;
}

.lr-blog {
	display: grid;
	gap: 30px;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
}

.lr-blog--list { grid-template-columns: 1fr; }

.lr-blog__card {
	background: #fff;
	border: 1px solid #e4e4e4;
	border-radius: 16px;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	transition: box-shadow 0.2s, transform 0.2s;
}

.lr-blog__card:hover {
	box-shadow: 0 14px 34px rgba(0, 0, 0, 0.1);
	transform: translateY(-3px);
}

.lr-blog__media img {
	aspect-ratio: 16 / 9;
	display: block;
	height: auto;
	object-fit: cover;
	width: 100%;
}

.lr-blog__text {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 10px;
	padding: 22px 24px 26px;
}

.lr-blog__text h2 {
	font-size: 21px;
	letter-spacing: 0;
	line-height: 1.3;
	margin: 0;
}

.lr-blog__text h2 a {
	color: inherit;
	text-decoration: none;
}

.lr-blog__text h2 a:hover { color: var(--lr-red, #bf2428); }

.lr-blog__text p { margin: 0; }

.lr-blog__more {
	color: var(--lr-red, #bf2428);
	font-weight: 600;
	margin-top: auto;
	text-decoration: none;
}

.lr-blog__pagination { margin-top: 40px; }

.lr-404__lead { font-size: 20px; max-width: 560px; }

.lr-404__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin: 26px 0;
}

.lr-404__phone a {
	color: var(--lr-red, #bf2428);
	font-weight: 700;
	text-decoration: none;
}

/* Location pages: intro text beside the map, phone line under the table. */

.lr-loc-intro {
	display: grid;
	gap: 34px;
	grid-template-columns: 7fr 5fr;
	margin: 24px 0 44px;
}

@media (max-width: 860px) {
	.lr-loc-intro { grid-template-columns: 1fr; }
}

.lr-loc-intro__text p {
	font-size: 17px;
	line-height: 1.65;
}

.lr-loc-intro__map iframe {
	aspect-ratio: 4 / 3;
	border: 0;
	border-radius: 14px;
	width: 100%;
}

.lr-loc-intro__addr {
	color: var(--lr-ink-muted, #5a5858);
	font-size: 14px;
	margin: 10px 0 0;
}

.lr-loc-phone {
	font-size: 19px;
	font-weight: 700;
	letter-spacing: 0;
	margin: 26px 0 0;
}

.lr-main--clean > .lr-container,
.lr-page-head > .lr-container {
	margin: 0 auto;
	max-width: var(--rd-rail);
	padding: 0;
	width: 100%;
}

/* ---------------------------------------------------------------
 * Location facility pages (template-lr-location)
 * ------------------------------------------------------------- */

.lr-loc { background: #fff; }

.lr-loc-top {
	padding: 96px 0 72px;
}

.lr-loc-top__grid {
	display: grid;
	gap: 56px;
	grid-template-columns: 5fr 7fr;
	margin: 0 auto;
	max-width: min(1180px, 92vw);
}

@media (max-width: 860px) {
	.lr-loc-top__grid { grid-template-columns: 1fr; }
	.lr-loc-top { padding: 56px 0 44px; }
}

.lr-loc-panel__name {
	color: var(--lr-red, #bf2428);
	font-size: clamp(32px, 3.2vw, 42px);
	letter-spacing: 0;
	margin: 0 0 30px;
}

.lr-loc-panel__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.lr-loc-panel__list li {
	align-items: center;
	border-bottom: 1px solid #e2e2e2;
	color: #1a1a1a;
	display: flex;
	font-size: 18px;
	font-weight: 500;
	gap: 16px;
	letter-spacing: 0;
	padding: 13px 2px;
}

.lr-loc-panel__list li:first-child { padding-top: 0; }
.lr-loc-panel__list li:last-child { border-bottom: 0; }

.lr-loc-panel__list svg {
	color: var(--lr-red, #bf2428);
	flex: 0 0 auto;
	height: 21px;
	width: 21px;
}

.lr-loc-panel__list a {
	color: inherit;
	text-decoration: none;
}

.lr-loc-panel__list a:hover { color: var(--lr-red, #bf2428); }

.lr-loc-copy h2 {
	font-size: clamp(26px, 2.4vw, 32px);
	letter-spacing: 0;
	line-height: 1.25;
	margin: 0 0 22px;
}

.lr-loc-copy p {
	font-size: 18px;
	line-height: 1.7;
	margin: 0 0 18px;
}

.lr-loc-map--bleed iframe {
	border: 0;
	display: block;
	height: 420px;
	width: 100%;
}

.lr-loc-schedule {
	padding: 64px 0 90px;
}

.lr-loc-schedule > .lr-container {
	margin: 0 auto;
	max-width: min(1180px, 92vw);
}

.lr-loc-schedule__title {
	font-size: clamp(30px, 3.4vw, 44px);
	letter-spacing: 0;
	margin: 0 0 10px;
}

.lr-loc-schedule__book {
	font-size: clamp(20px, 2vw, 26px);
	font-weight: 700;
	letter-spacing: 0;
	margin: 0 0 10px;
}

.lr-loc-schedule__fine {
	color: var(--lr-ink, #333);
	font-size: 15px;
	margin: 0 0 26px;
}

/* Locations index: photo card grid, same pattern as the homepage bands. */

.lr-locgrid {
	background: #fff;
	border-radius: 16px;
	box-shadow: 0 10px 34px rgba(0, 0, 0, 0.06);
	display: grid;
	gap: 34px 28px;
	grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
	padding: 40px;
}

.lr-locgrid__card { text-decoration: none; }

.lr-locgrid__card img {
	aspect-ratio: 3 / 2;
	border-radius: 8px;
	height: auto;
	object-fit: cover;
	width: 100%;
}

.lr-locgrid__name {
	align-items: center;
	color: var(--lr-red, #bf2428);
	display: flex;
	font-size: 19px;
	font-weight: 700;
	gap: 8px;
	letter-spacing: 0;
	margin: 12px 0 6px;
}

.lr-locgrid__card:hover .lr-locgrid__name { text-decoration: underline; }

.lr-locgrid__addr {
	color: #1a1a1a;
	font-size: 14px;
	line-height: 1.5;
	margin: 0 0 0 22px;
}

/* Header dropdowns (Services, Funded Courses, Equipment, Locations, About).
 * Geometry follows production's Max Mega Menu: the list hangs straight off
 * the item (no gap to cross), left-aligned, 320px wide, tall rows. Opening
 * and closing is driven by header.js with hover intent, so brushing across
 * the row does not flicker menus open and a short excursion off the list
 * does not slam it shut. :focus-within keeps it keyboard-usable. */

.lr-header__dd {
	position: relative;
}

.lr-header__dd-list {
	background: #fff;
	border-radius: 0 0 10px 10px;
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.18);
	left: 0;
	list-style: none;
	margin: 0;
	min-width: 320px;
	opacity: 0;
	overflow: hidden;
	padding: 0;
	pointer-events: none;
	position: absolute;
	top: 100%;
	transform: translateY(6px);
	transition: opacity 0.15s, transform 0.15s, visibility 0s 0.15s;
	visibility: hidden;
	z-index: 60;
}

.lr-header__dd.is-open > .lr-header__dd-list,
.lr-header__dd:focus-within > .lr-header__dd-list {
	opacity: 1;
	pointer-events: auto;
	transform: none;
	transition: opacity 0.15s, transform 0.15s, visibility 0s;
	visibility: visible;
}

.lr-header__dd.is-open > .lr-header__item,
.lr-header__dd:focus-within > .lr-header__item {
	background: var(--lr-red, #bf2428);
	color: #fff;
}

.lr-header__dd-list li + li {
	border-top: 1px solid #ebebeb;
}

.lr-header__dd-list a {
	color: #0c0b0b;
	display: block;
	font-size: 17px;
	font-weight: 500;
	line-height: 1.3;
	padding: 15px 20px;
	text-decoration: none;
	white-space: nowrap;
}

.lr-header__dd-list a:hover,
.lr-header__dd-list a:focus-visible {
	background: #fdecec;
	color: var(--lr-red, #bf2428);
}


/* ---------------------------------------------------------------
 * Mobile QA, 07/09/2026: tap targets, iOS input zoom, wrapping.
 * Measured at 375x667. Padding with a matching negative margin keeps
 * the layout where it was and only grows the hit area.
 * ------------------------------------------------------------- */
@media (max-width: 767px) {
	/* Course page: "See all dates and locations" no longer forces a 435px row. */
	#lr-main .lrc-avail__hub .lrc-btn { white-space: normal; text-align: center; }

	/* Header phone in the strip: 44px tall hit area. */
	.lr-header__strip .lr-header__phone { align-items: center; display: inline-flex; min-height: 44px; }

	/* Home hero quick links: 21px rows become 41px hit areas. */
	.rd-hh__links a { display: inline-block; margin: -10px 0; padding: 10px 0; }

	/* Breadcrumbs, "Read more", footer link columns, cities, policies. */
	.lr-page-hero__crumb a,
	.lr-blog__more,
	.rd-footer-cols a,
	.rd-cities a,
	.rd-policies a { display: inline-block; margin: -10px -4px; padding: 10px 4px; }
	.lr-blog__more { margin-left: 0; padding-left: 0; }

	/* Testimonial arrows: 44px, sitting in the carousel's side padding. */
	#lr-main .lr-testimonials.lr-testimonials { padding: 0 44px; }
	#lr-main .lr-testimonials__nav.lr-testimonials__nav { height: 44px; width: 44px; }
	#lr-main .lr-testimonials__nav--prev.lr-testimonials__nav--prev { left: 0; }
	#lr-main .lr-testimonials__nav--next.lr-testimonials__nav--next { right: 0; }

	/* iOS zooms the page when a focused field is under 16px. */
	input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
	select,
	textarea,
	.gform_wrapper.gravity-theme input:not([type="checkbox"]):not([type="radio"]),
	.gform_wrapper.gravity-theme select,
	.gform_wrapper.gravity-theme textarea { font-size: 16px !important; }

	/* Gravity Forms fields fill the column on a phone (the "medium" size is half-width). */
	.gform_wrapper.gravity-theme .gfield input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),
	.gform_wrapper.gravity-theme .gfield select,
	.gform_wrapper.gravity-theme .gfield textarea { width: 100% !important; }

	/* Gravity Forms submit: a real thumb target. */
	.gform_wrapper.gravity-theme .gform_button,
	.gform_wrapper.gravity-theme input[type="submit"] { font-size: 16px !important; min-height: 44px; padding-top: 12px; padding-bottom: 12px; }
}

/* ---------------------------------------------------------------
 * Courses archive and search results (07/09/2026): search box plus the
 * industry pills above the same course cards the landing pages use.
 * ------------------------------------------------------------- */
.lr-archive-tools { display: flex; flex-direction: column; gap: 22px; margin: 0 0 40px; }
.lr-archive-pills { display: flex; flex-wrap: wrap; gap: 10px; }
.lr-archive-pill {
	background: #fff;
	border: 1.5px solid var(--lr-border, #d9dee8);
	border-radius: 40px;
	color: var(--lr-ink-deep, #0c0b0b);
	display: inline-flex;
	align-items: center;
	font-size: 15px;
	font-weight: 600;
	min-height: 44px;
	padding: 0 18px;
	text-decoration: none;
	transition: border-color .15s, color .15s;
}
.lr-archive-pill:hover, .lr-archive-pill:focus-visible { border-color: var(--lr-red, #bf2428); color: var(--lr-red, #bf2428); }
/* Pills are buttons now (in-place filters); the pressed one is solid red. */
button.lr-archive-pill { cursor: pointer; font-family: inherit; line-height: 1; }
.lr-archive-pill.is-active, .lr-archive-pill.is-active:hover { background: var(--lr-red, #bf2428); border-color: var(--lr-red, #bf2428); color: #fff; }
.lr-archive-count { color: var(--lr-ink-muted, #5a5858); font-size: 15px; margin: -6px 0 0; }
.lr-archive-count:empty { display: none; }
.lr-archive-empty { color: var(--lr-ink-muted, #5a5858); font-size: 17px; padding: 30px 0 50px; }
#lr-main .lr-course-grid--archive { margin-bottom: 40px; }
@media (max-width: 767px) {
	.lr-archive-pills { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; padding-bottom: 6px; margin: 0 calc(-1 * var(--lr-gutter, 16px)); padding-left: var(--lr-gutter, 16px); padding-right: var(--lr-gutter, 16px); }
	.lr-archive-pill { flex: none; }
}

/* ---------------------------------------------------------------
 * Patch 7 (Jeremy's list of 22/10/2026)
 * ------------------------------------------------------------- */

/* A4: "Our locations": heading and intro inside the white panel with the
   cards, not floating above it. The panel takes over the grid's chrome. */
.lr-locations__panel {
	background: var(--lr-white, #fff);
	border-radius: 10px;
	box-shadow: 0 4px 30px rgba(0, 0, 0, 0.06);
	padding: 45px;
}
#lr-main .lr-locations__panel .lr-locations,
.lr-locations__panel .lr-locations { background: none; border-radius: 0; box-shadow: none; padding: 0; }
@media (max-width: 1024px) {
	.lr-locations__panel { padding: 30px; }
}
@media (max-width: 767px) {
	.lr-locations__panel { padding: 24px; }
}

/* A6: the crumb trail everywhere. On the course hero it sits above the
   RTO kicker; in the dark page heading bar it goes light. */
.rd-hero .lr-hero__text > .lr-page-hero__crumb { order: -2; }
.lr-page-hero__crumb [aria-current="page"] { color: var(--lr-ink-muted, #5a5858); }
.lr-page-head .lr-page-hero__crumb ol { color: #b9b7b7; margin-bottom: 12px; }
.lr-page-head .lr-page-hero__crumb li + li::before { color: #8a8888; }
.lr-page-head .lr-page-hero__crumb a { color: #fff; }
.lr-page-head .lr-page-hero__crumb [aria-current="page"] { color: #b9b7b7; }
.lr-loc-panel .lr-page-hero__crumb ol { margin-bottom: 10px; }

/* A7: the mega menu's "All ... Courses" link sits on the red panel foot:
   hover stays white (the global a:hover turned it dark red on red). */
.lr-header .lrc-menu__all:hover,
.lr-header .lrc-menu__all:focus-visible { color: #fff; }

/* A8: home course cards. EWWW wraps most images in <picture>, which was
   the grid item instead of the img, so those photos took only the title
   column and came out smaller than the rest: cards misaligned and the
   arrow sat past the photo's edge. The picture now spans the card and
   every photo keeps one ratio. On phones the arrow doubles. */
.rd-hcard picture { display: block; grid-column: 1 / -1; }
.rd-hcard picture img { width: 100%; }
@media (max-width: 767px) {
	.rd-hcard { grid-template-columns: minmax(0, 1fr) 36px; }
	.rd-hcard::after { height: 24px; margin-top: 22px; width: 24px; }
}

/* A9: phone drawer, sub-items collapsed behind a chevron per parent. */
.lr-header__drawer-row { align-items: stretch; border-bottom: 1px solid var(--lr-border); display: flex; }
.lr-header__drawer-row .lr-header__drawer-link { border-bottom: 0; flex: 1 1 auto; }
.lr-header__drawer-toggle {
	align-items: center;
	background: transparent;
	border: 0;
	border-left: 1px solid var(--lr-border);
	color: var(--lr-ink-deep, #0c0b0b);
	cursor: pointer;
	display: inline-flex;
	flex: 0 0 60px;
	justify-content: center;
	padding: 0;
}
.lr-header__drawer-toggle svg { transition: transform .2s ease; }
.lr-header__drawer-toggle[aria-expanded="true"] { color: var(--lr-red, #bf2428); }
.lr-header__drawer-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.lr-header__drawer-toggle:focus-visible { outline: 2px solid var(--lr-red, #bf2428); outline-offset: -2px; }
.lr-header__drawer-sub { background: var(--lr-surface, #f7f7f7); display: flex; flex-direction: column; }
.lr-header__drawer-sub[hidden] { display: none; }

/* A10: FAQ answers. The block's own CSS sets white-space: pre-line, so an
   answer's "<br>\n<br>\n" between paragraphs printed four line breaks
   (it read as three blank lines). And the answer sat 35px right of the
   question text (85px from the row edge); it now lines up with it. */
#lr-main .wp-block-blacksheep-faq-accordion .faq__a-inner p { white-space: normal; }
#lr-main .lr-course-section.is-faq .faq__a,
#lr-main .wp-block-blacksheep-faq-accordion .faq__a { padding-left: 0; }

/* A17: left-aligned red bands (centred sections overridden above) put the
   restored bullets back outside the text. */
#lr-main .lr-course-section.is-red.is-centred ul.wp-block-list:not(.lr-icon-list) { list-style-position: outside; padding-left: 1.3em; }
#lr-main .lr-course-section.is-red.is-centred ol.wp-block-list { list-style-position: outside; padding-left: 1.5em; }

/* A20: facility page "why train with us" cards, as live (Gippsland,
   Melbourne): grey band, heading centred, two columns of white cards with
   a line icon beside a red title. */
.lr-why-loc { background: var(--lr-surface, #f7f7f7); padding: 80px 0; }
.lr-why-loc > .lr-container { max-width: var(--lr-container, 1140px); }
#lr-main .lr-why-loc__title {
	color: var(--lr-ink, #333);
	font-size: clamp(26px, 2.6vw, 36px);
	line-height: 1.25;
	margin: 0 auto 44px;
	max-width: 30ch;
	text-align: center;
	text-wrap: balance;
}
.lr-why-loc__grid { display: grid; gap: 30px; grid-template-columns: repeat(2, minmax(0, 1fr)); list-style: none; margin: 0; padding: 0; }
.lr-why-loc__card { align-items: flex-start; background: #fff; border-radius: 10px; display: flex; gap: 22px; margin: 0; padding: 40px 36px; }
.lr-why-loc__icon { color: var(--lr-ink-deep, #0c0b0b); flex: 0 0 44px; height: 44px; width: 44px; }
#lr-main .lr-why-loc__card-title { color: var(--lr-red, #bf2428); font-size: 22px; font-weight: 700; line-height: 1.25; margin: 4px 0 12px; }
#lr-main .lr-why-loc__card p { color: var(--lr-ink, #333); font-size: 16px; line-height: 1.6; margin: 0; }
@media (max-width: 767px) {
	.lr-why-loc { padding: 56px 0; }
	.lr-why-loc__grid { gap: 18px; grid-template-columns: minmax(0, 1fr); }
	.lr-why-loc__card { padding: 26px 22px; }
}

/* A14: the Vocus pages open on a full-bleed hero whose text column runs
   to the glass (heading 10px from the edge, the logo at 29px). That
   column (the first, vertically centred one holding the h1) takes the
   header's own gutter as its left padding (it had 10px), so the heading
   starts on the logo's line at every desktop width. Heroes inside the
   content rail (mining-courses and the like, heading at 150px) do not
   match. */
@media (min-width: 1025px) {
	#lr-main.lr-pages > .lr-el-section.alignfull:first-child .lr-el-columns > .lr-el-col--middle:first-child:has(> .lr-el-lane h1) { padding-left: 29px; }
}
@media (min-width: 1367px) {
	#lr-main.lr-pages > .lr-el-section.alignfull:first-child .lr-el-columns > .lr-el-col--middle:first-child:has(> .lr-el-lane h1) { padding-left: max(29px, calc((100vw - 1680px) / 2)); }
}
