/* =========================================================================
   EXPLORE4MORE - Design System
   ---------------------------------------------------------------------
   Palette grounded in the brand's own forest green (#467266, taken from
   the live site) paired with a warm parchment background and a clay/rust
   accent - an expedition-map feel rather than a generic template look.
   Display type is a bold condensed face (stamped, expedition-signage
   energy); body copy is a clean, credible sans since this is also a
   safety/training business.
   Signature element: rotated "passport stamp" badges on event dates.
   ========================================================================= */

/* -------------------------------------------------------------------
   1. Tokens
   ------------------------------------------------------------------- */
:root {
	--e4m-ink:            #23281f;
	--e4m-pine-900:       #1e2f28;
	--e4m-pine-800:       #2b4038;
	--e4m-pine-700:       #467266;
	--e4m-pine-600:       #558779;
	--e4m-sage-500:       #7a9c8e;
	--e4m-sage-200:       #d7e2dc;
	--e4m-clay-600:       #c1652f;
	--e4m-clay-700:       #a4531f;
	--e4m-parchment:      #f6f1e6;
	--e4m-parchment-dim:  #ece4d0;
	--e4m-white:          #ffffff;

	--e4m-font-display:   'Big Shoulders Display', 'Arial Narrow', sans-serif;
	--e4m-font-body:      'Work Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

	--e4m-container:      1180px;
	--e4m-radius:         6px;
	--e4m-radius-lg:      14px;
	--e4m-shadow:         0 6px 24px rgba(30, 47, 40, 0.10);
	--e4m-shadow-lg:      0 16px 40px rgba(30, 47, 40, 0.18);

	--e4m-space-section:  6rem;
	--e4m-space-section-sm: 3.25rem;
}

/* -------------------------------------------------------------------
   2. Reset & base
   ------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
	margin: 0;
	font-family: var(--e4m-font-body);
	color: var(--e4m-ink);
	background: var(--e4m-white);
	line-height: 1.6;
	font-size: 17px;
	-webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }
a { color: var(--e4m-pine-700); text-decoration: none; }
a:hover { color: var(--e4m-clay-600); }

h1, h2, h3, h4 {
	font-family: var(--e4m-font-display);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.01em;
	line-height: 1.05;
	color: var(--e4m-pine-900);
	margin: 0 0 0.5em;
}

p { margin: 0 0 1em; }

ul { margin: 0; padding: 0; list-style: none; }

button { font-family: inherit; cursor: pointer; }

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

.e4m-skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	background: var(--e4m-pine-900);
	color: var(--e4m-white);
	padding: 10px 18px;
	z-index: 10000;
}
.e4m-skip-link:focus {
	left: 12px;
	top: 12px;
}

:focus-visible {
	outline: 3px solid var(--e4m-clay-600);
	outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
		scroll-behavior: auto !important;
	}
}

.e4m-container {
	max-width: var(--e4m-container);
	margin: 0 auto;
	padding: 0 24px;
}

.e4m-section { padding: var(--e4m-space-section) 0; }

.e4m-eyebrow {
	font-family: var(--e4m-font-body);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	font-size: 0.8rem;
	color: var(--e4m-clay-600);
	margin-bottom: 0.6em;
}

.e4m-section-heading {
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	margin-bottom: 0.6em;
}

/* Trail-dash divider: a dashed route line between major sections,
   evoking a path marked on a map rather than a plain rule. */
.e4m-trail-divider {
	height: 2px;
	background-image: repeating-linear-gradient(90deg, var(--e4m-clay-600) 0, var(--e4m-clay-600) 10px, transparent 10px, transparent 20px);
	opacity: 0.55;
	max-width: var(--e4m-container);
	margin: 0 auto;
}

/* Buttons */
.e4m-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--e4m-font-body);
	font-weight: 600;
	font-size: 0.95rem;
	padding: 13px 26px;
	border-radius: var(--e4m-radius);
	border: 2px solid transparent;
	transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease, color 0.15s ease;
	cursor: pointer;
}
.e4m-btn--primary {
	background: var(--e4m-clay-600);
	color: var(--e4m-white);
	border-color: var(--e4m-clay-600);
}
.e4m-btn--primary:hover {
	background: var(--e4m-clay-700);
	border-color: var(--e4m-clay-700);
	color: var(--e4m-white);
	transform: translateY(-2px);
	box-shadow: var(--e4m-shadow);
}
.e4m-btn--large { padding: 16px 34px; font-size: 1.05rem; }
.e4m-btn--outline-light {
	background: transparent;
	color: var(--e4m-white);
	border-color: rgba(255,255,255,0.6);
}
.e4m-btn--outline-light:hover {
	background: var(--e4m-white);
	color: var(--e4m-pine-900);
	border-color: var(--e4m-white);
}

/* -------------------------------------------------------------------
   3. Header
   ------------------------------------------------------------------- */
.e4m-site-header { position: relative; z-index: 100; }

.e4m-top-bar {
	background: var(--e4m-pine-900);
	color: var(--e4m-sage-200);
	font-size: 0.85rem;
}
.e4m-top-bar-inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 8px 24px;
	gap: 16px;
	flex-wrap: wrap;
}
.e4m-top-bar-contact a { color: var(--e4m-sage-200); }
.e4m-top-bar-contact a:hover { color: var(--e4m-white); }
.e4m-top-bar-sep { margin: 0 8px; opacity: 0.5; }

.e4m-social-links { display: flex; gap: 14px; align-items: center; }
.e4m-social-links a {
	color: var(--e4m-sage-200);
	display: inline-flex;
}
.e4m-social-links a:hover { color: var(--e4m-white); }

.e4m-main-nav {
	background: var(--e4m-white);
	border-bottom: 1px solid var(--e4m-parchment-dim);
}
.e4m-main-nav-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 24px;
	gap: 24px;
}

.e4m-branding img { max-height: 64px; width: auto; }
.e4m-site-title {
	font-family: var(--e4m-font-display);
	font-size: 1.6rem;
	color: var(--e4m-pine-900);
	text-transform: uppercase;
}

.e4m-nav-toggle {
	display: none;
	flex-direction: column;
	gap: 5px;
	background: none;
	border: none;
	padding: 8px;
}
.e4m-nav-toggle-bar {
	width: 26px;
	height: 3px;
	background: var(--e4m-pine-900);
	border-radius: 2px;
	transition: transform 0.2s ease, opacity 0.2s ease;
}

.e4m-primary-nav {
	display: flex;
	align-items: center;
	gap: 28px;
}
.e4m-menu {
	display: flex;
	align-items: center;
	gap: 26px;
	flex-wrap: wrap;
}
.e4m-menu a {
	color: var(--e4m-ink);
	font-weight: 600;
	font-size: 0.95rem;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	padding: 6px 0;
	border-bottom: 2px solid transparent;
}
.e4m-menu a:hover,
.e4m-menu .current-menu-item > a {
	color: var(--e4m-pine-700);
	border-bottom-color: var(--e4m-clay-600);
}
.e4m-nav-cta { white-space: nowrap; }

@media (max-width: 900px) {
	.e4m-nav-toggle { display: inline-flex; }
	.e4m-primary-nav {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		background: var(--e4m-white);
		flex-direction: column;
		align-items: stretch;
		padding: 20px 24px 28px;
		box-shadow: var(--e4m-shadow-lg);
		display: none;
		gap: 18px;
	}
	.e4m-primary-nav.is-open { display: flex; }
	.e4m-menu { flex-direction: column; align-items: flex-start; gap: 14px; }
	.e4m-nav-toggle[aria-expanded="true"] .e4m-nav-toggle-bar:nth-child(2) { transform: translateY(8px) rotate(45deg); }
	.e4m-nav-toggle[aria-expanded="true"] .e4m-nav-toggle-bar:nth-child(3) { opacity: 0; }
	.e4m-nav-toggle[aria-expanded="true"] .e4m-nav-toggle-bar:nth-child(4) { transform: translateY(-8px) rotate(-45deg); }
}

/* -------------------------------------------------------------------
   4. Hero
   ------------------------------------------------------------------- */
.e4m-hero {
	position: relative;
	overflow: hidden;
	min-height: 560px;
	display: flex;
	align-items: stretch;
}
.e4m-hero-slide {
	position: absolute;
	inset: 0;
	background-color: var(--e4m-pine-900);
	background-size: cover;
	background-position: center;
	display: flex;
	align-items: center;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.8s ease;
}
.e4m-hero-overlay {
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(135deg, rgba(30,47,40,0.94) 0%, rgba(70,114,102,0.85) 60%, rgba(193,101,47,0.35) 100%),
		repeating-linear-gradient(45deg, rgba(255,255,255,0.035) 0px, rgba(255,255,255,0.035) 2px, transparent 2px, transparent 26px);
}
.e4m-hero-slide.is-active { opacity: 1; visibility: visible; position: relative; }
.e4m-hero--slider .e4m-hero-slide:not(.is-active) { position: absolute; }

.e4m-hero-content {
	position: relative;
	z-index: 2;
	color: var(--e4m-white);
	max-width: 640px;
	padding: 80px 24px;
}
.e4m-hero-heading {
	color: var(--e4m-white);
	font-size: clamp(2.4rem, 5vw, 4rem);
	margin-bottom: 0.35em;
}
.e4m-hero-text {
	font-size: 1.15rem;
	color: var(--e4m-sage-200);
	max-width: 46ch;
	margin-bottom: 1.6em;
}

.e4m-hero-dots {
	position: absolute;
	bottom: 26px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 3;
	display: flex;
	gap: 10px;
}
.e4m-hero-dot {
	width: 10px; height: 10px;
	border-radius: 50%;
	border: 2px solid rgba(255,255,255,0.7);
	background: transparent;
	padding: 0;
}
.e4m-hero-dot.is-active { background: var(--e4m-clay-600); border-color: var(--e4m-clay-600); }

.e4m-hero--static { min-height: 420px; }

/* -------------------------------------------------------------------
   5. Experience / category grid ("waypoint tiles")
   ------------------------------------------------------------------- */
.e4m-experience-grid-section { background: var(--e4m-parchment); text-align: center; }
.e4m-experience-grid-section .e4m-section-heading { max-width: 720px; margin-left: auto; margin-right: auto; }

.e4m-experience-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 22px;
	margin-top: 2.5rem;
	text-align: left;
}
.e4m-experience-tile {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: 220px;
	border-radius: var(--e4m-radius-lg);
	background-color: var(--e4m-pine-700);
	background-size: cover;
	background-position: center;
	overflow: hidden;
	box-shadow: var(--e4m-shadow);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.e4m-experience-tile:hover { transform: translateY(-4px); box-shadow: var(--e4m-shadow-lg); }
.e4m-experience-tile-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(30,47,40,0.15) 0%, rgba(30,47,40,0.85) 100%);
}
.e4m-experience-tile-label {
	position: relative;
	z-index: 1;
	color: var(--e4m-white);
	font-family: var(--e4m-font-display);
	text-transform: uppercase;
	font-size: 1.3rem;
	padding: 22px;
}

@media (max-width: 900px) {
	.e4m-experience-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
	.e4m-experience-grid { grid-template-columns: 1fr; }
}

/* -------------------------------------------------------------------
   6. Quick enquiry / newsletter CTA bands
   ------------------------------------------------------------------- */
.e4m-quick-enquiry { background: var(--e4m-white); }
.e4m-quick-enquiry-inner {
	display: grid;
	grid-template-columns: 1fr 1.2fr;
	gap: 48px;
	align-items: start;
}
.e4m-quick-enquiry-copy p { color: #55604f; max-width: 40ch; }

.e4m-newsletter-cta {
	background: var(--e4m-pine-900);
	color: var(--e4m-white);
	text-align: center;
}
.e4m-newsletter-cta .e4m-section-heading { color: var(--e4m-white); }
.e4m-newsletter-cta p { color: var(--e4m-sage-200); }
.e4m-newsletter-cta .e4m-newsletter-form { max-width: 520px; margin: 1.5rem auto 0; }

@media (max-width: 800px) {
	.e4m-quick-enquiry-inner { grid-template-columns: 1fr; }
}

/* -------------------------------------------------------------------
   7. Forms (shared by booking form, contact form, newsletter form)
   ------------------------------------------------------------------- */
.e4m-form-honeypot { position: absolute; left: -9999px; top: -9999px; }

.e4m-form { max-width: 640px; }
.e4m-booking-form-wrap .e4m-form,
.e4m-contact-form-wrap .e4m-form { max-width: 100%; }

.e4m-form-row { margin-bottom: 16px; display: flex; flex-direction: column; gap: 6px; }
.e4m-quick-enquiry-form .e4m-form,
.e4m-booking-form { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
.e4m-form-row--full { grid-column: 1 / -1; }

.e4m-form-row label {
	font-weight: 600;
	font-size: 0.88rem;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--e4m-pine-900);
}
.e4m-form-row .required { color: var(--e4m-clay-600); }

.e4m-form input[type="text"],
.e4m-form input[type="email"],
.e4m-form input[type="tel"],
.e4m-form input[type="number"],
.e4m-form textarea {
	font-family: var(--e4m-font-body);
	font-size: 1rem;
	padding: 12px 14px;
	border: 1.5px solid var(--e4m-parchment-dim);
	border-radius: var(--e4m-radius);
	background: var(--e4m-white);
	color: var(--e4m-ink);
	width: 100%;
}
.e4m-form input:focus, .e4m-form textarea:focus {
	border-color: var(--e4m-pine-700);
	outline: none;
}

.e4m-form-fineprint { font-size: 0.82rem; color: #6d776a; margin-top: 10px; }

.e4m-form-notice {
	padding: 14px 18px;
	border-radius: var(--e4m-radius);
	margin-bottom: 20px;
	font-weight: 500;
}
.e4m-form-notice--success { background: #e4f2ea; color: #1f5c3d; }
.e4m-form-notice--error { background: #fbe7e2; color: #9a3412; }

/* Newsletter form: compact horizontal layout */
.e4m-newsletter-fields {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}
.e4m-newsletter-fields input {
	flex: 1 1 160px;
	padding: 12px 14px;
	border-radius: var(--e4m-radius);
	border: 1.5px solid rgba(255,255,255,0.3);
	background: rgba(255,255,255,0.08);
	color: var(--e4m-white);
}
.e4m-newsletter-fields input::placeholder { color: rgba(255,255,255,0.6); }
.e4m-footer-newsletter .e4m-newsletter-fields input {
	background: rgba(255,255,255,0.06);
}

/* -------------------------------------------------------------------
   8. Cards (events & articles) + signature "passport stamp" badge
   ------------------------------------------------------------------- */
.e4m-card-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 26px;
	margin-top: 2.5rem;
}
@media (max-width: 900px) { .e4m-card-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .e4m-card-grid { grid-template-columns: 1fr; } }

.e4m-card {
	background: var(--e4m-white);
	border-radius: var(--e4m-radius-lg);
	overflow: hidden;
	box-shadow: var(--e4m-shadow);
	display: flex;
	flex-direction: column;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.e4m-card:hover { transform: translateY(-4px); box-shadow: var(--e4m-shadow-lg); }

.e4m-card-image-link { position: relative; display: block; aspect-ratio: 3/2; background: var(--e4m-parchment-dim); }
.e4m-card-image-link img { width: 100%; height: 100%; object-fit: cover; }
.e4m-card-image-placeholder { display: block; width: 100%; height: 100%; background: linear-gradient(135deg, var(--e4m-pine-700), var(--e4m-pine-900)); }

/* Signature element: a rotated, dashed "passport stamp" date badge. */
.e4m-card-date-badge {
	position: absolute;
	top: 14px;
	right: 14px;
	background: var(--e4m-parchment);
	color: var(--e4m-pine-900);
	border: 2px dashed var(--e4m-clay-600);
	border-radius: 50%;
	width: 84px;
	height: 84px;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	font-family: var(--e4m-font-display);
	font-size: 0.72rem;
	line-height: 1.15;
	text-transform: uppercase;
	transform: rotate(-8deg);
	padding: 6px;
	box-shadow: 0 4px 10px rgba(30,47,40,0.25);
}

.e4m-card-body { padding: 20px 22px 24px; display: flex; flex-direction: column; flex: 1; }
.e4m-card-meta { font-size: 0.85rem; color: var(--e4m-clay-600); font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; margin-bottom: 4px; }
.e4m-card-title { font-size: 1.15rem; margin-bottom: 8px; }
.e4m-card-title a { color: var(--e4m-pine-900); }
.e4m-card-excerpt { color: #55604f; font-size: 0.95rem; flex: 1; }
.e4m-card-link { font-weight: 700; text-transform: uppercase; font-size: 0.85rem; letter-spacing: 0.03em; margin-top: 10px; }

/* -------------------------------------------------------------------
   9. Testimonials
   ------------------------------------------------------------------- */
.e4m-testimonials { background: var(--e4m-parchment); }
.e4m-testimonial-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 24px;
	margin-top: 2rem;
}
.e4m-testimonial-card {
	background: var(--e4m-white);
	border-left: 4px solid var(--e4m-clay-600);
	border-radius: var(--e4m-radius);
	padding: 26px 30px;
	margin: 0;
	box-shadow: var(--e4m-shadow);
}
.e4m-testimonial-card p { font-size: 1.05rem; font-style: italic; color: var(--e4m-ink); }
.e4m-testimonial-card cite { font-style: normal; font-weight: 700; color: var(--e4m-pine-700); font-size: 0.9rem; }

@media (max-width: 720px) { .e4m-testimonial-grid { grid-template-columns: 1fr; } }

/* -------------------------------------------------------------------
   10. Content split (Our Story / course pages)
   ------------------------------------------------------------------- */
.e4m-content-split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 56px;
	align-items: center;
}
.e4m-content-split--reverse .e4m-content-split-image { order: 2; }
.e4m-content-split-image img { border-radius: var(--e4m-radius-lg); box-shadow: var(--e4m-shadow); }
.e4m-content-split-text p { color: #45503f; }

@media (max-width: 800px) {
	.e4m-content-split { grid-template-columns: 1fr; }
	.e4m-content-split--reverse .e4m-content-split-image { order: 0; }
}

.e4m-section--tinted { background: var(--e4m-parchment); }

.e4m-gallery-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
	margin-top: 2rem;
}
.e4m-gallery-grid img { border-radius: var(--e4m-radius); aspect-ratio: 4/3; object-fit: cover; width: 100%; }
@media (max-width: 700px) { .e4m-gallery-grid { grid-template-columns: repeat(2, 1fr); } }

.e4m-accreditation-row {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 40px;
	flex-wrap: wrap;
	margin-top: 2.5rem;
	opacity: 0.85;
}
.e4m-accreditation-row img { max-height: 70px; width: auto; }

.e4m-team-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 30px;
	margin-top: 2.5rem;
}
.e4m-team-card { text-align: center; }
.e4m-team-card img { border-radius: var(--e4m-radius-lg); margin-bottom: 14px; box-shadow: var(--e4m-shadow); }
.e4m-team-card h3 { font-size: 1.1rem; margin-bottom: 2px; }
.e4m-team-card p { color: var(--e4m-clay-600); font-weight: 600; text-transform: uppercase; font-size: 0.85rem; }

@media (max-width: 600px) { .e4m-team-grid { grid-template-columns: 1fr; } }

/* -------------------------------------------------------------------
   11. Final CTA band (about + contact form, used on Home)
   ------------------------------------------------------------------- */
.e4m-final-cta { background: var(--e4m-pine-900); color: var(--e4m-white); }
.e4m-final-cta .e4m-section-heading { color: var(--e4m-white); }
.e4m-final-cta-inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 56px;
	align-items: start;
}
.e4m-final-cta-copy p { color: var(--e4m-sage-200); }
.e4m-final-cta .e4m-form input,
.e4m-final-cta .e4m-form textarea {
	background: rgba(255,255,255,0.06);
	border-color: rgba(255,255,255,0.25);
	color: var(--e4m-white);
}
.e4m-final-cta .e4m-form label { color: var(--e4m-white); }
.e4m-final-cta .e4m-form input::placeholder,
.e4m-final-cta .e4m-form textarea::placeholder { color: rgba(255,255,255,0.5); }

@media (max-width: 800px) { .e4m-final-cta-inner { grid-template-columns: 1fr; } }

/* -------------------------------------------------------------------
   12. Event / Article single templates
   ------------------------------------------------------------------- */
.e4m-breadcrumb { font-size: 0.85rem; color: #6d776a; margin-bottom: 1.5rem; }
.e4m-breadcrumb a { color: #6d776a; text-decoration: underline; }

.e4m-event-detail { display: grid; grid-template-columns: 1.4fr 1fr; gap: 50px; align-items: start; }
.e4m-event-meta-list { list-style: none; margin: 1.5rem 0; padding: 0; }
.e4m-event-meta-list li {
	display: flex;
	gap: 10px;
	padding: 10px 0;
	border-bottom: 1px solid var(--e4m-parchment-dim);
	font-size: 0.95rem;
}
.e4m-event-meta-list strong { color: var(--e4m-pine-900); min-width: 110px; display: inline-block; }

.e4m-booking-panel {
	background: var(--e4m-parchment);
	border-radius: var(--e4m-radius-lg);
	padding: 30px;
	position: sticky;
	top: 100px;
}
.e4m-booking-panel h3 { margin-bottom: 0.3em; }
.e4m-booking-panel .e4m-booking-form { display: flex; flex-direction: column; }

@media (max-width: 860px) {
	.e4m-event-detail { grid-template-columns: 1fr; }
	.e4m-booking-panel { position: static; }
}

.e4m-article-content { max-width: 760px; margin: 0 auto; }
.e4m-article-content .e4m-article-featured-image { margin-bottom: 2rem; border-radius: var(--e4m-radius-lg); overflow: hidden; }
.e4m-article-meta { color: #6d776a; font-size: 0.9rem; margin-bottom: 2rem; }
.e4m-article-body p { color: #35402f; font-size: 1.05rem; }
.e4m-article-body img { border-radius: var(--e4m-radius); margin: 1.5rem 0; }

/* -------------------------------------------------------------------
   13. Footer
   ------------------------------------------------------------------- */
.e4m-site-footer { background: var(--e4m-pine-900); color: var(--e4m-sage-200); }
.e4m-footer-top {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 1.4fr;
	gap: 40px;
	padding: 4rem 24px 3rem;
}
.e4m-footer-brand .e4m-site-title { color: var(--e4m-white); }
.e4m-footer-tagline { margin-top: 10px; }
.e4m-footer-brand img { max-height: 56px; filter: brightness(0) invert(1); margin-bottom: 12px; }

.e4m-footer-widget-title {
	color: var(--e4m-white);
	font-size: 1rem;
	margin-bottom: 1rem;
}
.e4m-footer-menu, .e4m-footer-legal-links { display: flex; flex-direction: column; gap: 10px; }
.e4m-footer-menu a, .e4m-footer-legal-links a { color: var(--e4m-sage-200); }
.e4m-footer-menu a:hover, .e4m-footer-legal-links a:hover { color: var(--e4m-white); }

.e4m-footer-bottom {
	border-top: 1px solid rgba(255,255,255,0.1);
	padding: 20px 24px;
	font-size: 0.8rem;
	color: #8fa89c;
	text-align: center;
}

@media (max-width: 900px) {
	.e4m-footer-top { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
	.e4m-footer-top { grid-template-columns: 1fr; }
}

/* -------------------------------------------------------------------
   14. Cookie notice
   ------------------------------------------------------------------- */
.e4m-cookie-notice {
	position: fixed;
	left: 0; right: 0; bottom: 0;
	z-index: 500;
	background: var(--e4m-pine-900);
	color: var(--e4m-sage-200);
	box-shadow: 0 -4px 20px rgba(0,0,0,0.25);
}
.e4m-cookie-notice-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	flex-wrap: wrap;
	padding: 16px 24px;
}
.e4m-cookie-notice-inner p { margin: 0; font-size: 0.88rem; max-width: 60ch; }
.e4m-cookie-notice-actions { display: flex; align-items: center; gap: 18px; flex-shrink: 0; }
.e4m-cookie-link { color: var(--e4m-white); text-decoration: underline; font-size: 0.85rem; }

/* -------------------------------------------------------------------
   15. Generic page templates (Contact Us, 404, fallback page.php)
   ------------------------------------------------------------------- */
.e4m-page-header { background: var(--e4m-parchment); padding: 3.5rem 0 2.5rem; text-align: center; }
.e4m-page-header .e4m-section-heading { margin-bottom: 0.2em; }
.e4m-page-header p { color: #55604f; max-width: 60ch; margin: 0 auto; }

.e4m-contact-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; }
.e4m-contact-info h3 { font-size: 1.1rem; margin-top: 1.6em; }
.e4m-contact-info p { color: #45503f; }
.e4m-contact-info a { font-weight: 600; }

@media (max-width: 800px) { .e4m-contact-layout { grid-template-columns: 1fr; } }

.e4m-404-section { text-align: center; padding: 6rem 0; }
.e4m-404-section h1 { font-size: clamp(3rem, 8vw, 6rem); color: var(--e4m-pine-700); }

/* Generic block content fallback (page.php default content area, and
   the main body of the Course/Experience Page template) */
.e4m-content-area { max-width: 800px; margin: 0 auto; }
.e4m-content-area h2 { margin-top: 1.6em; font-size: 1.7rem; }
.e4m-content-area h3 { margin-top: 1.3em; font-size: 1.25rem; color: var(--e4m-pine-700); }
.e4m-content-area p { color: #35402f; }
.e4m-content-area ul, .e4m-content-area ol { margin: 0 0 1.4em; padding-left: 1.4em; list-style: disc; color: #35402f; }
.e4m-content-area ol { list-style: decimal; }
.e4m-content-area li { margin-bottom: 0.4em; }
.e4m-content-area img { border-radius: var(--e4m-radius); margin: 0.5em 0 1.5em; }
.e4m-content-area figure { margin: 0 0 1.5em; }
.e4m-content-area figcaption { font-size: 0.85rem; color: #6d776a; margin-top: 0.5em; }
.e4m-content-area blockquote {
	border-left: 4px solid var(--e4m-clay-600);
	margin: 1.5em 0;
	padding: 0.4em 0 0.4em 1.4em;
	font-style: italic;
	color: var(--e4m-pine-900);
}
.e4m-content-area .wp-block-columns { display: flex; gap: 32px; flex-wrap: wrap; }
.e4m-content-area .wp-block-column { flex: 1 1 260px; }
.e4m-content-area hr { border: none; border-top: 1px solid var(--e4m-parchment-dim); margin: 2.5em 0; }
.e4m-content-area.e4m-content-area--wide { max-width: 1040px; }
