/*
Theme Name: ENRG Consultants
Theme URI: https://enrgconsultants.co.uk/
Author: Virtualnet Marketing
Author URI: https://www.virtualnet.co.uk/
Description: Lightweight classic theme for ENRgConsultants (Fire Engineering Solutions). No page builder, no jQuery. Homepage sections, contact details and footer text are editable in Appearance > Customize.
Version: 1.1.0
Requires at least: 6.4
Tested up to: 7.1
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: enrg-consultants
Tags: one-column, custom-logo, custom-menu, featured-images, accessibility-ready, translation-ready
*/

/* ---------- Fonts (Poppins, SIL OFL, bundled locally) ---------- */
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 400; font-display: swap; src: url("assets/fonts/poppins-400.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 500; font-display: swap; src: url("assets/fonts/poppins-500.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 600; font-display: swap; src: url("assets/fonts/poppins-600.woff2") format("woff2"); }

/* ---------- Design tokens (brand colours taken from the original theme) ---------- */
:root {
	--enrg-color-accent: #bc5351;
	--enrg-color-accent-dark: #9e3f3d;
	--enrg-color-heading: #3e6086;
	--enrg-color-text: #4f5357;
	--enrg-color-muted: #6b6e72;
	--enrg-color-bg: #ffffff;
	--enrg-color-bg-alt: #efefee;
	--enrg-color-border: #dcdcdc;
	--enrg-color-footer-bg: #182534;
	--enrg-color-footer-text: #c5ccd4;
	--enrg-color-on-dark: #ffffff;
	--enrg-font-body: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--enrg-container: 75rem;
	--enrg-gutter: clamp(1rem, 4vw, 2rem);
	--enrg-section-space: clamp(3rem, 8vw, 6rem);
	--enrg-radius: 0.25rem;
	--enrg-transition: 0.2s ease;
	color-scheme: light dark;
}

@media (prefers-color-scheme: dark) {
	:root {
		--enrg-color-heading: #9fbbdb;
		--enrg-color-text: #d4d8dd;
		--enrg-color-muted: #a9b0b8;
		--enrg-color-bg: #11181f;
		--enrg-color-bg-alt: #1a232d;
		--enrg-color-border: #2f3a46;
		--enrg-color-accent: #d46a68;
		--enrg-color-accent-dark: #e48886;
	}
}

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

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

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

body {
	margin: 0;
	font-family: var(--enrg-font-body);
	font-size: 1rem;
	line-height: 1.75;
	color: var(--enrg-color-text);
	background: var(--enrg-color-bg);
}

img, svg, video { max-inline-size: 100%; block-size: auto; display: block; }

h1, h2, h3, h4, h5, h6 {
	margin-block: 0 0.75em;
	font-weight: 500;
	line-height: 1.25;
	color: var(--enrg-color-heading);
}

h1 { font-size: clamp(2rem, 4vw, 2.75rem); }
h2 { font-size: clamp(1.75rem, 3.5vw, 2.5rem); }
h3 { font-size: clamp(1.375rem, 2.5vw, 1.75rem); }
h4 { font-size: 1.25rem; }

p { margin-block: 0 1.25em; }

a {
	color: var(--enrg-color-accent);
	text-underline-offset: 0.15em;
	transition: color var(--enrg-transition);

	&:hover { color: var(--enrg-color-heading); }
}

:focus-visible { outline: 3px solid var(--enrg-color-accent); outline-offset: 2px; }

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

	&:focus {
		position: fixed !important;
		inset-block-start: 0.5rem;
		inset-inline-start: 0.5rem;
		z-index: 1000;
		inline-size: auto;
		block-size: auto;
		padding: 0.75rem 1rem;
		margin: 0;
		clip: auto;
		background: var(--enrg-color-bg);
		color: var(--enrg-color-heading);
		box-shadow: 0 0 0 3px var(--enrg-color-accent);
	}
}

.enrg-container {
	inline-size: 100%;
	max-inline-size: var(--enrg-container);
	margin-inline: auto;
	padding-inline: var(--enrg-gutter);
}

/* ---------- Buttons and forms ---------- */
.enrg-button,
button[type="submit"],
input[type="submit"],
.wp-block-button__link {
	display: inline-block;
	padding: 0.85rem 2.25rem;
	border: 0;
	border-radius: var(--enrg-radius);
	background: var(--enrg-color-accent);
	color: #ffffff;
	font: 500 0.875rem/1.4 var(--enrg-font-body);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	transition: background-color var(--enrg-transition);

	&:is(:hover, :focus-visible) { background: var(--enrg-color-heading); color: #ffffff; }
}

input:is([type="text"], [type="email"], [type="search"], [type="tel"], [type="url"]),
textarea,
select {
	inline-size: 100%;
	padding: 0.85rem 1rem;
	border: 1px solid var(--enrg-color-border);
	border-radius: var(--enrg-radius);
	background: var(--enrg-color-bg);
	color: var(--enrg-color-text);
	font: inherit;

	&:focus { border-color: var(--enrg-color-accent); outline: 2px solid transparent; box-shadow: 0 0 0 2px var(--enrg-color-accent); }
}

textarea { min-block-size: 10rem; resize: vertical; }

/* ---------- Header ---------- */
.site-header {
	position: sticky;
	inset-block-start: 0;
	z-index: 100;
	background: var(--enrg-color-bg);
	box-shadow: 0 1px 0 var(--enrg-color-border);

	.admin-bar & { inset-block-start: 32px; }
}

@media (max-width: 782px) { .admin-bar .site-header { inset-block-start: 0; position: relative; } }

.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	min-block-size: 5.5rem;
}

.site-branding {
	flex-shrink: 0;

	img { inline-size: auto; max-block-size: 4.5rem; }
}

.site-title {
	margin: 0;
	font-size: 1.5rem;
	font-weight: 500;

	a { color: var(--enrg-color-heading); text-decoration: none; }
}

.primary-nav { display: flex; align-items: center; gap: 1.5rem; }

.primary-nav__menu {
	display: flex;
	gap: 0.25rem 2rem;
	margin: 0;
	padding: 0;
	list-style: none;

	a {
		display: block;
		padding-block: 0.5rem;
		color: var(--enrg-color-heading);
		font-weight: 500;
		text-decoration: none;
		border-block-end: 2px solid transparent;

		&:hover { color: var(--enrg-color-accent); }
	}

	:is(.current-menu-item, .current_page_item, .current-menu-ancestor, .current_page_parent) > a {
		color: var(--enrg-color-accent);
		border-block-end-color: var(--enrg-color-accent);
	}

	.sub-menu { display: none; }
}

.social-link {
	display: inline-flex;
	padding: 0.4rem;
	color: var(--enrg-color-heading);

	&:hover { color: var(--enrg-color-accent); }

	svg { inline-size: 1.25rem; block-size: 1.25rem; fill: currentColor; }
}

.menu-toggle {
	display: none;
	align-items: center;
	gap: 0.5rem;
	padding: 0.6rem 0.9rem;
	border: 1px solid var(--enrg-color-border);
	border-radius: var(--enrg-radius);
	background: transparent;
	color: var(--enrg-color-heading);
	font: 500 0.875rem/1 var(--enrg-font-body);
	cursor: pointer;
}

.menu-toggle__bars,
.menu-toggle__bars::before,
.menu-toggle__bars::after {
	display: block;
	inline-size: 1.25rem;
	block-size: 2px;
	background: currentColor;
	transition: transform var(--enrg-transition), opacity var(--enrg-transition);
}

.menu-toggle__bars { position: relative; }
.menu-toggle__bars::before, .menu-toggle__bars::after { content: ""; position: absolute; inset-inline-start: 0; }
.menu-toggle__bars::before { inset-block-start: -6px; }
.menu-toggle__bars::after { inset-block-start: 6px; }

.menu-toggle[aria-expanded="true"] .menu-toggle__bars { background: transparent; }
.menu-toggle[aria-expanded="true"] .menu-toggle__bars::before { transform: translateY(6px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] .menu-toggle__bars::after { transform: translateY(-6px) rotate(-45deg); }

@media (max-width: 56rem) {
	.js .menu-toggle { display: inline-flex; }

	.js .primary-nav {
		position: absolute;
		inset-inline: 0;
		inset-block-start: 100%;
		display: none;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		padding: 0.5rem var(--enrg-gutter) 1.25rem;
		background: var(--enrg-color-bg);
		box-shadow: 0 0.5rem 1rem rgb(0 0 0 / 0.08);

		&.is-open { display: flex; }
	}

	.primary-nav__menu {
		flex-direction: column;
		gap: 0;

		a { padding-block: 0.85rem; border-block-end: 1px solid var(--enrg-color-border); }
	}

	.primary-nav .social-link { align-self: flex-start; margin-block-start: 0.75rem; }

	.site-header__inner { flex-wrap: wrap; }
	html:not(.js) .primary-nav { inline-size: 100%; flex-wrap: wrap; }
}

/* ---------- Hero slider ---------- */
.hero {
	position: relative;
	display: grid;
	min-block-size: clamp(22rem, 58vw, 52rem);
	overflow: hidden;
	background: var(--enrg-color-footer-bg);
	isolation: isolate;
}

.hero__slide {
	grid-area: 1 / 1;
	margin: 0;
	opacity: 0;
	transition: opacity 1.2s ease;

	&.is-active { opacity: 1; }

	img { inline-size: 100%; block-size: 100%; object-fit: cover; }
}

html:not(.js) .hero__slide:first-child { opacity: 1; }

.hero__caption {
	position: relative;
	z-index: 2;
	grid-area: 1 / 1;
	place-self: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1.25rem;
	padding: var(--enrg-gutter);
	text-align: center;
}

.hero__title,
.hero__subtitle {
	margin: 0;
	padding: 0.1em 0.4em;
	background: var(--enrg-color-accent);
	color: #ffffff;
	font-weight: 400;
	line-height: 1.5;
}

.hero__title { font-size: clamp(2rem, 6vw, 4.75rem); }
.hero__subtitle { font-size: clamp(1.125rem, 3vw, 2.5rem); letter-spacing: -0.02em; }

.hero__controls {
	position: absolute;
	inset-block-end: 1.25rem;
	inset-inline: 0;
	z-index: 3;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.75rem;
}

.hero__dot,
.hero__pause {
	display: inline-grid;
	place-items: center;
	inline-size: 1.75rem;
	block-size: 1.75rem;
	padding: 0;
	border: 2px solid #ffffff;
	border-radius: 50%;
	background: rgb(0 0 0 / 0.25);
	color: #ffffff;
	cursor: pointer;

	&[aria-current="true"] { background: #ffffff; }
}

.hero__pause { border-radius: var(--enrg-radius); inline-size: 2.25rem; }
.hero__pause svg { inline-size: 0.875rem; block-size: 0.875rem; fill: currentColor; }

/* ---------- Sections ---------- */
.section { padding-block: var(--enrg-section-space); }
.section--alt { background: var(--enrg-color-bg-alt); }
.section--alt a:not(.enrg-button) { color: var(--enrg-color-accent-dark); }

.section-heading {
	margin-block-end: clamp(2rem, 5vw, 3rem);

	&.is-centered { text-align: center; }
}

.section-heading__subtitle {
	display: block;
	margin-block-end: 0.5rem;
	color: var(--enrg-color-accent-dark);
	font-size: 1rem;
	font-weight: 500;
	font-style: italic;
}

.section-heading__title { margin: 0; }

.welcome {
	max-inline-size: 52rem;
	margin-inline: auto;
	text-align: center;
}

.welcome__lead { color: var(--enrg-color-heading); font-size: 1.125rem; font-weight: 500; }

/* ---------- News ---------- */
.news-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr));
	gap: 2rem;
}

.news-grid__list { display: grid; gap: 1.5rem; align-content: start; }

.news-card {
	display: grid;
	gap: 1rem;
	align-content: start;
}

.news-card__media {
	display: block;
	overflow: hidden;
	aspect-ratio: 16 / 10;
	background: var(--enrg-color-bg-alt);

	img { inline-size: 100%; block-size: 100%; object-fit: cover; transition: transform 0.4s ease; }

	&:hover img { transform: scale(1.04); }

	/* Logos are usually PNGs: show them whole rather than cropped. */
	img[src*=".png"] { object-fit: contain; background: #ffffff; padding: 0.5rem; }
}

.news-card__placeholder {
	display: grid;
	place-items: center;
	block-size: 100%;

	img { inline-size: clamp(3rem, 25%, 6rem); block-size: auto; opacity: 0.6; }
}

.news-card__title {
	margin: 0;
	font-size: 1.125rem;

	a { color: var(--enrg-color-heading); text-decoration: none; }
	a:hover { color: var(--enrg-color-accent); }
}

.news-card__excerpt { margin: 0; font-size: 0.9375rem; }

.news-card__meta { margin: 0.25rem 0 0.5rem; color: var(--enrg-color-muted); font-size: 0.8125rem; }

.news-card--featured .news-card__title { font-size: clamp(1.25rem, 2.5vw, 1.625rem); }

.news-card--compact {
	grid-template-columns: minmax(6rem, 10rem) 1fr;
	gap: 1.25rem;

	.news-card__media { aspect-ratio: 1; }
}

@media (max-width: 30rem) {
	.news-card--compact { grid-template-columns: 1fr; }
	.news-card--compact .news-card__media { aspect-ratio: 16 / 10; }
}

.section__more { margin-block-start: 2.5rem; text-align: center; }

/* ---------- Contact ---------- */
.contact-intro { max-inline-size: 40rem; margin: 0 auto 2.5rem; text-align: center; }

.contact-form {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.25rem;
	max-inline-size: 56rem;
	margin-inline: auto;

	p { margin: 0; }

	label { color: var(--enrg-color-heading); font-size: 0.875rem; font-weight: 500; }
}

.contact-form__field { display: grid; gap: 0.35rem; }

@media (max-width: 36rem) {
	.contact-form { grid-template-columns: minmax(0, 1fr); }
}

:is(.contact-form__field--full, .contact-form__consent, .contact-form__actions, .contact-form__notice) { grid-column: 1 / -1; }

.contact-form__consent {
	display: flex;
	align-items: flex-start;
	gap: 0.6rem;

	input { margin-block-start: 0.4rem; accent-color: var(--enrg-color-accent); }
	label { font-weight: 400; color: var(--enrg-color-text); }
}

.contact-form__actions { text-align: center; }

.contact-form__honeypot { position: absolute; inset-inline-start: -9999px; }

.contact-form__notice {
	padding: 1rem 1.25rem;
	border-inline-start: 4px solid var(--enrg-color-heading);
	background: var(--enrg-color-bg);

	&.is-error { border-color: var(--enrg-color-accent); }
}

.required-mark { color: var(--enrg-color-accent); }

.contact-details {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
	gap: 2rem;
	max-inline-size: var(--enrg-container);
	margin: 0 auto 3rem;

	dt { margin-block-end: 0.35rem; color: var(--enrg-color-heading); font-weight: 600; }
	dd { margin: 0; }
	address { font-style: normal; }
}

/* ---------- Page header and content ---------- */
.page-hero {
	position: relative;
	display: grid;
	place-items: center;
	min-block-size: clamp(10rem, 22vw, 18rem);
	padding-block: 3rem;
	background-color: var(--enrg-color-footer-bg);
	background-size: cover;
	background-position: center;
	text-align: center;
	isolation: isolate;

	&::before {
		content: "";
		position: absolute;
		inset: 0;
		z-index: -1;
		background: rgb(24 37 52 / 0.65);
	}
}

.page-hero__title { margin: 0; color: #ffffff; font-size: clamp(2rem, 4vw, 2.75rem); font-weight: 500; line-height: 1.25; }

.content-area { padding-block: var(--enrg-section-space); }

.entry-content {
	> * { max-inline-size: 100%; }

	> :is(p, ul, ol, h2, h3, h4, blockquote) { max-inline-size: 52rem; margin-inline: auto; }

	> .alignwide { max-inline-size: var(--enrg-container); }
	> .alignfull { margin-inline: calc(50% - 50vw); max-inline-size: 100vw; }

	img { border-radius: var(--enrg-radius); }

	.wp-block-columns { gap: 2rem; margin-block: 2.5rem; }

	.wp-block-image figcaption { color: var(--enrg-color-muted); font-size: 0.875rem; }
}

.entry-header { margin-block-end: 2rem; }

.entry-meta { color: var(--enrg-color-muted); font-size: 0.875rem; }

.entry-thumbnail { margin-block-end: 2rem; }

.post-navigation,
.pagination {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 1rem;
	margin-block-start: 3rem;
	padding-block-start: 1.5rem;
	border-block-start: 1px solid var(--enrg-color-border);
}

.pagination .nav-links { display: flex; flex-wrap: wrap; gap: 0.5rem; }

.pagination .page-numbers {
	padding: 0.4rem 0.85rem;
	border: 1px solid var(--enrg-color-border);
	text-decoration: none;

	&.current { background: var(--enrg-color-accent); border-color: var(--enrg-color-accent); color: #ffffff; }
}

.archive-list { grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr)); gap: 2.5rem 2rem; }

.news-page__intro { margin-block-end: 3rem; }
.news-page__empty { text-align: center; }

/* Team and services block styles (used by the imported page content) */
.is-style-enrg-card {
	padding: 1.5rem;
	background: var(--enrg-color-bg-alt);
	border-radius: var(--enrg-radius);

	h3, h4 { margin-block-start: 1rem; }
}

/* ---------- Page layouts (About, Services and Contact block content) ---------- */
.site-main { overflow-x: clip; }

/* Classic themes wrap group contents in an inner container; let the children join the parent layout. */
[class*="enrg-"] > .wp-block-group__inner-container { display: contents !important; }

.entry-content > :first-child { margin-block-start: 0; }

.enrg-editor-notice {
	padding: 0.75rem 1rem;
	border-inline-start: 4px solid var(--enrg-color-accent);
	background: var(--enrg-color-bg-alt);
	font-size: 0.875rem;
}

.enrg-section-head {
	max-inline-size: 48rem;
	margin: 0 auto clamp(2rem, 5vw, 3rem);
	text-align: center;

	> *, > .wp-block-group__inner-container > * { margin-inline: auto; }
	h2 { margin-block: 0; }
	p:not(.section-heading__subtitle) { margin-block: 1.25rem 0; }
}

.section-heading__subtitle { margin-block-end: 0.5rem; }

/* Two-column split: image on one side, text panel on the other. */
.entry-content .enrg-split {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0;
	align-items: stretch;
	margin-block: 0 var(--enrg-section-space);
	overflow: hidden;
	border-radius: var(--enrg-radius);
	box-shadow: 0 1rem 2.5rem rgb(24 37 52 / 0.12);

	> .wp-block-column { margin: 0; }
}

.enrg-split__media {
	position: relative;
	min-block-size: clamp(16rem, 40vw, 28rem);

	.wp-block-image { margin: 0; }

	img {
		position: absolute;
		inset: 0;
		inline-size: 100%;
		block-size: 100%;
		object-fit: cover;
		border-radius: 0 !important;
	}
}

.enrg-split__body {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(2rem, 5vw, 4rem);
	background: var(--enrg-color-bg);

	> * { margin-inline: 0; }
	> :last-child { margin-block-end: 0; }

	&.is-dark {
		background: var(--enrg-color-footer-bg);
		color: #dfe5ec;

		h2 { color: #ffffff; }
		.section-heading__subtitle { color: #f4b4b2; }
	}

	.contact-details { margin: 0; }
}

@media (max-width: 48rem) {
	.entry-content .enrg-split { grid-template-columns: minmax(0, 1fr); }
	.enrg-split--contact .enrg-split__media { order: -1; }
}

/* Full-width tinted band. */
.entry-content > .enrg-panel {
	margin-block: 0;
	padding-block: var(--enrg-section-space);
	padding-inline: var(--enrg-gutter);
	background: var(--enrg-color-bg-alt);

	> *, > .wp-block-group__inner-container > * { max-inline-size: var(--enrg-container); margin-inline: auto; }
	> :last-child, > .wp-block-group__inner-container > :last-child { margin-block-end: 0; }
}

.entry-content > .enrg-panel:first-child { margin-block-start: calc(-1 * var(--enrg-section-space)); }
.entry-content > .enrg-panel:last-child { margin-block-end: calc(-1 * var(--enrg-section-space)); }
.entry-content > .enrg-panel:not(:last-child) { margin-block-end: var(--enrg-section-space); }
.entry-content > .enrg-split:last-child { margin-block-end: 0; }
.entry-content > .enrg-card-grid:not(:last-child) { margin-block-end: var(--enrg-section-space); }

.enrg-panel--contact-info .contact-details {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
	margin-block-end: 0;
	text-align: center;
}

.enrg-split--contact .contact-form { grid-template-columns: minmax(0, 1fr); max-inline-size: none; }
.enrg-split--contact .contact-form__actions { text-align: start; }

.entry-content > .enrg-panel + .enrg-panel { padding-block-start: 0; }

.enrg-panel--cta {
	text-align: center;

	.wp-block-buttons { justify-content: center; margin-block-start: 1.5rem; }
}

/* Even card grid; an incomplete last row is centred rather than left hanging. */
.enrg-card-grid {
	--enrg-card-gap: 1.5rem;
	--enrg-card-columns: 3;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--enrg-card-gap);
	max-inline-size: var(--enrg-container);
	margin-inline: auto;

	> *, > .wp-block-group__inner-container > * {
		display: flex;
		flex-direction: column;
		flex: 0 1 calc((100% - (var(--enrg-card-columns) - 1) * var(--enrg-card-gap)) / var(--enrg-card-columns));
		margin: 0 !important;
	}

	.wp-block-image { margin: 0; }
}

@media (min-width: 68rem) {
	.enrg-card-grid--team { --enrg-card-columns: 5; }
}

@media (max-width: 56rem) {
	.enrg-card-grid { --enrg-card-columns: 2; }
}

@media (max-width: 34rem) {
	.enrg-card-grid { --enrg-card-columns: 1; }
}

.enrg-team-card {
	padding: 2rem 1.25rem 1.5rem;
	border-radius: var(--enrg-radius);
	background: var(--enrg-color-bg);
	box-shadow: 0 0.25rem 1rem rgb(24 37 52 / 0.06);
	text-align: center;

	> *, > .wp-block-group__inner-container > * { margin-block: 0; }

	.wp-block-image img,
	.enrg-avatar {
		inline-size: 7.5rem;
		block-size: 7.5rem;
		margin: 0 auto 1.25rem;
		border-radius: 50%;
		box-shadow: 0 0 0 4px var(--enrg-color-bg), 0 0 0 6px var(--enrg-color-accent);
		object-fit: cover;
	}

	h3 { margin-block-end: 0.35rem; font-size: 1.0625rem; }

	p { font-size: 0.875rem; line-height: 1.65; }

	.enrg-avatar { font-size: 1.875rem; line-height: 1; }
}

.enrg-avatar {
	display: grid;
	place-items: center;
	background: linear-gradient(135deg, var(--enrg-color-heading), #24405f);
	color: #ffffff;
	font-size: 2rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1;
	user-select: none;
}

.enrg-team-card__role {
	margin-block-end: 0.85rem !important;
	color: var(--enrg-color-accent-dark);
	font-style: italic;
}

.enrg-service-card {
	overflow: hidden;
	border: 1px solid var(--enrg-color-border);
	border-radius: var(--enrg-radius);
	background: var(--enrg-color-bg);
	box-shadow: 0 0.25rem 1rem rgb(24 37 52 / 0.06);
	transition: box-shadow var(--enrg-transition), transform var(--enrg-transition);

	&:hover { box-shadow: 0 0.75rem 2rem rgb(24 37 52 / 0.12); transform: translateY(-2px); }

	> *, > .wp-block-group__inner-container > * { margin-block: 0; padding-inline: 1.5rem; }
	> :last-child, > .wp-block-group__inner-container > :last-child { padding-block-end: 1.5rem; }

	> .wp-block-image, > .wp-block-group__inner-container > .wp-block-image { padding: 0; }

	.wp-block-image img { inline-size: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 0; }

	h3 { margin-block-end: 0.6rem; font-size: 1.1875rem; }

	p { font-size: 0.9375rem; }
}

.enrg-card__tag {
	align-self: flex-start;
	margin: 1.25rem 1.5rem 0.75rem !important;
	padding: 0.2rem 0.65rem !important;
	border-radius: 999px;
	background: rgb(188 83 81 / 0.1);
	color: var(--enrg-color-accent-dark);
	font-size: 0.75rem !important;
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

/* ---------- Footer ---------- */
.site-footer {
	background: var(--enrg-color-footer-bg);
	color: var(--enrg-color-footer-text);
	font-size: 0.9375rem;

	a { color: var(--enrg-color-on-dark); text-decoration: none; }
	a:hover { color: #f0a9a7; text-decoration: underline; }
}

.site-footer__widgets {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
	gap: 2.5rem;
	padding-block: clamp(3rem, 7vw, 5rem);
}

.site-footer__heading {
	margin-block-end: 1.25rem;
	color: var(--enrg-color-on-dark);
	font-size: 1.125rem;
}

.site-footer__logo { margin-block-end: 1.25rem; max-inline-size: 13rem; }

.footer-menu {
	margin: 0;
	padding: 0;
	list-style: none;

	li + li { margin-block-start: 0.5rem; }
}

.footer-news {
	display: grid;
	gap: 1rem;
	margin: 0;
	padding: 0;
	list-style: none;

	li { display: grid; grid-template-columns: 4rem 1fr; gap: 0.85rem; align-items: center; }
	img { inline-size: 4rem; block-size: 4rem; object-fit: cover; }
	time { display: block; font-size: 0.8125rem; }
}

.site-footer__bottom {
	padding-block: 1.5rem;
	border-block-start: 1px solid rgb(255 255 255 / 0.12);
	font-size: 0.875rem;
	text-align: center;

	p { margin: 0; }
	a { text-decoration: underline; }
}

/* ---------- 404 / search ---------- */
.not-found { text-align: center; }
.search-form { display: flex; gap: 0.5rem; max-inline-size: 32rem; margin: 2rem auto 0; }

/* ---------- WordPress core classes ---------- */
.alignleft { float: inline-start; margin-inline-end: 1.5rem; }
.alignright { float: inline-end; margin-inline-start: 1.5rem; }
.aligncenter { margin-inline: auto; }
.wp-caption-text, .gallery-caption { color: var(--enrg-color-muted); font-size: 0.875rem; }
.sticky, .bypostauthor { outline: 0; }
