/* ==========================================================================
   eGateweb — Page Sections
   Styles for template-parts/sections/**. Loaded only on pages that render
   theme sections (see egateweb_scripts() in functions.php).

   Rules:
   - No literal brand colour. Everything accents through --primary-color,
     which comes from Customizer → Site Identity → Primary Color.
   - Block naming: .egw-block, .egw-block__element, .egw-block--modifier.
   - Breakpoints: 1024px (tablet) and 767px (mobile), matching the theme.
   ========================================================================== */

:root {
	--egw-accent: var(--primary-color, #e11d2e);
	--egw-accent-rgb: var(--primary-color-rgb, 225, 29, 46);
	--egw-ink: #0f172a;
	--egw-deep: #0b1222;
	--egw-night: 2, 6, 23;
	--egw-max: 1160px;
	--egw-radius: 20px;
	--egw-radius-sm: 16px;
	--egw-shadow: 0 20px 60px rgba(2, 6, 23, 0.18);
	--egw-shadow-lg: 0 24px 70px rgba(2, 6, 23, 0.28);
}

/* Lighter tint of the brand colour, used for the button gradients. */
:root {
	--egw-accent-2: var(--egw-accent);
}
@supports (color: color-mix(in srgb, red 50%, white)) {
	:root {
		--egw-accent-2: color-mix(in srgb, var(--egw-accent) 84%, #fff);
	}
}

/* --------------------------------------------------------------------------
   Page shell
   content.css constrains .site-main to 900px for editor pages; section pages
   are full width and bring their own spacing.
   -------------------------------------------------------------------------- */

#primary.site-main--sections,
.site-main--sections {
	max-width: none;
	margin: 0;
	padding: 0;
	background: transparent;
	min-height: 0;
}

/* Pull the first section up behind the fixed header.
   --egw-header-offset is emitted by functions.php and is 0 when
   Header Settings → Header Overlap Content is enabled. */
.site-main--sections > .egw-hero:first-child {
	margin-top: calc(-1 * var(--egw-header-offset, 0px));
}

.egw-container {
	width: min(var(--egw-max), 100%);
	margin-inline: auto;
}

.egw-section {
	position: relative;
}

/* Shared section header (H2 + intro) --------------------------------------- */

.egw-head {
	max-width: 80ch;
	margin-bottom: 26px;
}

.egw-head__title {
	margin: 0 0 10px;
	font-size: clamp(26px, 3vw, 36px);
	line-height: 1.15;
	letter-spacing: -0.4px;
	font-weight: 900;
	color: var(--egw-ink);
}

.egw-head__text {
	margin: 0;
	color: rgba(15, 23, 42, 0.72);
	font-size: 15px;
	line-height: 1.8;
}

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

.egw-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 12px 18px;
	border-radius: 14px;
	text-decoration: none;
	font-weight: 800;
	font-size: 15px;
	line-height: 1.2;
	transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease, border-color 0.18s ease;
}

.egw-btn:focus-visible {
	outline: 3px solid var(--egw-accent);
	outline-offset: 3px;
}

.egw-btn--primary,
.egw-btn--solid {
	background: linear-gradient(180deg, var(--egw-accent-2), var(--egw-accent));
	color: #fff;
	border: 1px solid rgba(255, 255, 255, 0.16);
	box-shadow: 0 12px 26px rgba(var(--egw-accent-rgb), 0.3);
}

.egw-btn--primary:hover,
.egw-btn--primary:focus-visible {
	transform: translateY(-1px);
	box-shadow: 0 18px 40px rgba(var(--egw-accent-rgb), 0.42);
	color: #fff;
}

.egw-btn--solid:hover,
.egw-btn--solid:focus-visible {
	background: #000;
	color: #fff;
	transform: translateY(-1px);
	box-shadow: 0 18px 36px rgba(0, 0, 0, 0.28);
}

.egw-btn--ghost {
	background: rgba(var(--egw-night), 0.25);
	color: rgba(255, 255, 255, 0.92);
	border: 1px solid rgba(255, 255, 255, 0.2);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
}

.egw-btn--ghost:hover,
.egw-btn--ghost:focus-visible {
	transform: translateY(-1px);
	border-color: rgba(255, 255, 255, 0.32);
	color: #fff;
}

/* ==========================================================================
   1. Hero
   ========================================================================== */

.egw-hero {
	position: relative;
	display: grid;
	align-items: center;
	min-height: 100vh;
	padding: clamp(120px, 12vh, 160px) 16px clamp(56px, 8vh, 90px);
	overflow: hidden;
	isolation: isolate;
	background: var(--egw-deep);
}

.egw-hero__media,
.egw-hero__overlay,
.egw-hero__grid {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.egw-hero__media {
	z-index: -3;
	overflow: hidden;
}

.egw-hero__poster {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

/* YouTube wrapper: sized to cover the box, whatever the aspect ratio. */
.egw-hero__video {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: max(100%, 177.78vh);
	height: max(56.25vw, 100%);
	border: 0;
	opacity: 0;
	transition: opacity 0.8s ease;
}

.egw-hero__video iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}

/* Uploaded MP4 simply covers the box. */
.egw-hero__video--file {
	width: 100%;
	height: 100%;
	object-fit: cover;
	top: 0;
	left: 0;
	transform: none;
}

.egw-hero__video.is-playing {
	opacity: 1;
}

.egw-hero__overlay {
	z-index: -2;
	background:
		radial-gradient(1100px 520px at 15% 40%, rgba(var(--egw-accent-rgb), 0.2), transparent 65%),
		linear-gradient(90deg, rgba(var(--egw-night), 0.88) 0%, rgba(var(--egw-night), 0.62) 55%, rgba(var(--egw-night), 0.45) 100%);
}

.egw-hero__grid {
	z-index: -1;
	inset: -2px;
	background-image:
		linear-gradient(to right, rgba(255, 255, 255, 0.08) 1px, transparent 1px),
		linear-gradient(to bottom, rgba(255, 255, 255, 0.08) 1px, transparent 1px);
	background-size: 46px 46px;
	opacity: 0.22;
	-webkit-mask-image: radial-gradient(900px 520px at 20% 35%, #000 25%, transparent 70%);
	mask-image: radial-gradient(900px 520px at 20% 35%, #000 25%, transparent 70%);
}

.egw-hero__container {
	width: min(var(--egw-max), 100%);
	margin-inline: auto;
}

.egw-hero__content {
	max-width: 68ch;
}

.egw-hero__badge {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	padding: 10px 14px;
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: 999px;
	color: rgba(255, 255, 255, 0.78);
	background: rgba(var(--egw-night), 0.35);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	font-size: 14px;
	letter-spacing: 0.2px;
}

.egw-dot {
	width: 10px;
	height: 10px;
	border-radius: 999px;
	background: var(--egw-accent);
	box-shadow: 0 0 0 6px rgba(var(--egw-accent-rgb), 0.18);
}

.egw-hero__title {
	margin: 16px 0 10px;
	color: #fff;
	font-size: clamp(34px, 4.6vw, 56px);
	line-height: 1.05;
	letter-spacing: -0.7px;
	font-weight: 800;
	text-shadow: 0 18px 40px rgba(0, 0, 0, 0.35);
}

.egw-hero__subtitle {
	margin: 0 0 10px;
	font-size: clamp(16px, 1.35vw, 19px);
	line-height: 1.45;
	font-weight: 600;
	color: rgba(255, 255, 255, 0.86);
}

.egw-hero__text {
	margin: 12px 0 18px;
	color: rgba(255, 255, 255, 0.82);
	font-size: 16px;
	line-height: 1.7;
	max-width: 58ch;
}

.egw-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 14px 0 16px;
}

.egw-hero__bullets {
	margin: 8px 0 0;
	padding-inline-start: 18px;
	color: rgba(255, 255, 255, 0.78);
	font-size: 14px;
	line-height: 1.7;
}

.egw-hero__bullets li {
	margin: 4px 0;
}

.egw-hero__bullets li::marker {
	color: var(--egw-accent);
}

@media (max-width: 980px) {
	.egw-hero {
		min-height: auto;
		padding: 120px 16px 64px;
	}
}

@media (max-width: 620px) {
	.egw-hero__badge {
		font-size: 13px;
	}
}

/* ==========================================================================
   2. Choice cards
   ========================================================================== */

.egw-cta {
	padding: 70px 16px;
	background:
		radial-gradient(900px 420px at 15% 10%, rgba(var(--egw-accent-rgb), 0.08), transparent 60%),
		linear-gradient(180deg, #fff 0%, #fafafa 100%);
}

.egw-cta__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

.egw-cta__card {
	position: relative;
	display: flex;
	flex-direction: column;
	border-radius: var(--egw-radius);
	overflow: hidden;
	background: #fff;
	border: 1px solid rgba(var(--egw-accent-rgb), 0.18);
	box-shadow: var(--egw-shadow);
	transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}

.egw-cta__card:hover,
.egw-cta__card:focus-within {
	transform: translateY(-4px);
	box-shadow: var(--egw-shadow-lg);
	border-color: rgba(var(--egw-accent-rgb), 0.32);
}

.egw-cta__media {
	position: relative;
	height: 240px;
	overflow: hidden;
	background: var(--egw-deep);
}

.egw-cta__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transform: scale(1.02);
	transition: transform 0.35s ease;
}

.egw-cta__card:hover .egw-cta__img {
	transform: scale(1.08);
}

.egw-cta__shade {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(var(--egw-night), 0.45) 0%, rgba(var(--egw-night), 0.2) 55%, rgba(var(--egw-night), 0.1) 100%),
		linear-gradient(180deg, rgba(var(--egw-night), 0.1) 0%, rgba(var(--egw-night), 0.55) 100%);
}

.egw-cta__chip {
	position: absolute;
	inset-inline-start: 16px;
	top: 16px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	padding: 10px 12px;
	border-radius: 999px;
	color: rgba(255, 255, 255, 0.92);
	background: rgba(var(--egw-night), 0.35);
	border: 1px solid rgba(255, 255, 255, 0.18);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	font-weight: 800;
	font-size: 13px;
}

.egw-cta__body {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	flex: 1;
	padding: 18px 18px 20px;
}

.egw-cta__title {
	margin: 0 0 8px;
	font-size: 20px;
	letter-spacing: -0.3px;
	font-weight: 900;
	color: var(--egw-ink);
}

.egw-cta__text {
	margin: 0 0 16px;
	color: rgba(15, 23, 42, 0.72);
	line-height: 1.7;
	font-size: 15px;
}

.egw-cta__body .egw-btn {
	margin-top: auto;
}

@media (max-width: 1024px) {
	.egw-cta__media {
		height: 220px;
	}
}

@media (max-width: 767px) {
	.egw-cta {
		padding: 44px 16px;
	}

	.egw-cta__grid {
		grid-template-columns: 1fr;
		gap: 14px;
	}

	.egw-cta__media {
		height: 210px;
	}
}

/* ==========================================================================
   3. Why choose us
   ========================================================================== */

.egw-why {
	padding: 70px 16px;
	background: #f5f6f7;
}

.egw-why__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	align-items: stretch;
}

.egw-why__card {
	position: relative;
	overflow: hidden;
	background: #fff;
	border-radius: 22px;
	border: 1px solid rgba(var(--egw-accent-rgb), 0.2);
	box-shadow: 0 18px 55px rgba(2, 6, 23, 0.1);
	padding: 22px 20px;
	transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}

.egw-why__card:hover {
	transform: translateY(-4px);
	box-shadow: var(--egw-shadow-lg);
	border-color: rgba(var(--egw-accent-rgb), 0.32);
}

.egw-why__icon {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	margin-bottom: 12px;
	border-radius: 14px;
	color: var(--egw-accent);
	background: rgba(var(--egw-accent-rgb), 0.1);
	border: 1px solid rgba(var(--egw-accent-rgb), 0.16);
}

.egw-why__title {
	margin: 0 0 10px;
	font-size: 18px;
	font-weight: 900;
	letter-spacing: -0.2px;
	color: var(--egw-ink);
}

.egw-why__text {
	margin: 0 0 14px;
	color: rgba(15, 23, 42, 0.72);
	line-height: 1.75;
	font-size: 15px;
}

.egw-why__list {
	margin: 0;
	padding-inline-start: 18px;
	color: rgba(15, 23, 42, 0.7);
	font-size: 14px;
	line-height: 1.7;
}

.egw-why__list li {
	margin: 6px 0;
}

.egw-why__list li::marker {
	color: var(--egw-accent);
}

/* Photo card */

.egw-why__card--photo {
	padding: 0;
	color: #fff;
	min-height: 340px;
	border-color: rgba(var(--egw-night), 0.25);
}

.egw-why__media {
	position: absolute;
	inset: 0;
	overflow: hidden;
}

.egw-why__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transform: scale(1.03);
}

.egw-why__shade {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(520px 260px at 20% 18%, rgba(var(--egw-accent-rgb), 0.2), transparent 60%),
		linear-gradient(180deg, rgba(var(--egw-night), 0.25) 0%, rgba(var(--egw-night), 0.82) 70%, rgba(var(--egw-night), 0.92) 100%);
}

.egw-why__badge {
	position: absolute;
	top: 18px;
	inset-inline-start: 18px;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border-radius: 14px;
	color: #fff;
	background: rgba(255, 255, 255, 0.14);
	border: 1px solid rgba(255, 255, 255, 0.22);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
}

.egw-why__content {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: 340px;
	padding: 22px 20px;
}

.egw-why__card--photo .egw-why__title {
	color: #fff;
	text-shadow: 0 18px 40px rgba(0, 0, 0, 0.35);
}

.egw-why__card--photo .egw-why__text {
	color: rgba(255, 255, 255, 0.86);
	margin-bottom: 14px;
}

.egw-why__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.egw-why__chips li {
	display: inline-flex;
	padding: 8px 10px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.12);
	border: 1px solid rgba(255, 255, 255, 0.2);
	color: rgba(255, 255, 255, 0.92);
	font-weight: 800;
	font-size: 12px;
}

@media (max-width: 1024px) {
	.egw-why__grid {
		grid-template-columns: 1fr;
	}

	.egw-why__card--photo,
	.egw-why__content {
		min-height: 320px;
	}
}

@media (max-width: 767px) {
	.egw-why {
		padding: 44px 16px;
	}
}

/* ==========================================================================
   4. Contact
   ========================================================================== */

.egw-contact {
	position: relative;
	overflow: hidden;
	padding: 70px 16px;
	background: var(--egw-deep);
	isolation: isolate;
}

.egw-contact__bg,
.egw-contact__overlay {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.egw-contact__bg {
	z-index: -3;
	overflow: hidden;
}

.egw-contact__bgimg {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transform: scale(1.03);
	filter: saturate(1.05) contrast(1.05);
}

.egw-contact__overlay {
	z-index: -2;
	background:
		linear-gradient(110deg, rgba(var(--egw-accent-rgb), 0.52) 0%, rgba(var(--egw-accent-rgb), 0.18) 32%, rgba(var(--egw-night), 0.82) 72%, rgba(var(--egw-night), 0.92) 100%),
		radial-gradient(900px 420px at 18% 30%, rgba(255, 255, 255, 0.1), transparent 60%);
}

.egw-contact__grid {
	display: grid;
	grid-template-columns: 0.95fr 1.05fr;
	gap: 18px;
	align-items: stretch;
}

.egw-contact__info,
.egw-contact__form {
	border-radius: 22px;
	border: 1px solid rgba(255, 255, 255, 0.16);
	box-shadow: 0 22px 70px rgba(2, 6, 23, 0.4);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	padding: 22px 20px;
	color: rgba(255, 255, 255, 0.92);
}

.egw-contact__info {
	background: rgba(255, 255, 255, 0.1);
}

.egw-contact__form {
	background: rgba(255, 255, 255, 0.12);
}

.egw-contact__brand {
	display: flex;
	gap: 12px;
	align-items: center;
	margin-bottom: 12px;
}

.egw-contact__logo {
	display: grid;
	place-items: center;
	flex: 0 0 54px;
	width: 54px;
	height: 54px;
	border-radius: var(--egw-radius-sm);
	overflow: hidden;
	font-weight: 900;
	letter-spacing: 0.5px;
	color: #fff;
	background: linear-gradient(180deg, var(--egw-accent-2), var(--egw-accent));
	box-shadow: 0 14px 26px rgba(var(--egw-accent-rgb), 0.3);
}

.egw-contact__logo img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.egw-contact__brandtext strong {
	display: block;
	font-size: 16px;
	letter-spacing: -0.2px;
}

.egw-contact__brandtext span {
	display: block;
	margin-top: 2px;
	font-size: 13px;
	color: rgba(255, 255, 255, 0.75);
}

.egw-contact__lead {
	margin: 10px 0 16px;
	color: rgba(255, 255, 255, 0.8);
	line-height: 1.7;
	font-size: 15px;
}

.egw-contact__list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	gap: 12px;
}

.egw-contact__row {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	padding: 12px;
	border-radius: var(--egw-radius-sm);
	background: rgba(255, 255, 255, 0.07);
	border: 1px solid rgba(255, 255, 255, 0.1);
}

.egw-contact__icon {
	display: grid;
	place-items: center;
	flex: 0 0 40px;
	width: 40px;
	height: 40px;
	border-radius: 14px;
	color: #fff;
	background: rgba(var(--egw-accent-rgb), 0.25);
	border: 1px solid rgba(var(--egw-accent-rgb), 0.28);
}

/* A custom icon from the Media Library replaces the tinted box entirely —
   those files are already coloured badges. */
.egw-contact__icon--image {
	background: none;
	border-color: transparent;
	flex-basis: 42px;
	width: 42px;
	height: 42px;
}

.egw-contact__icon img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.egw-contact__label {
	display: block;
	font-size: 13px;
	margin-bottom: 4px;
	color: rgba(255, 255, 255, 0.92);
}

.egw-contact__value {
	display: block;
	color: rgba(255, 255, 255, 0.78);
	text-decoration: none;
	font-size: 14px;
	line-height: 1.45;
}

a.egw-contact__value:hover,
a.egw-contact__value:focus-visible {
	color: #fff;
	text-decoration: underline;
}

.egw-contact__note {
	margin: 16px 0 0;
	padding: 12px;
	border-radius: var(--egw-radius-sm);
	background: rgba(var(--egw-night), 0.28);
	border: 1px solid rgba(255, 255, 255, 0.12);
	color: rgba(255, 255, 255, 0.8);
	font-size: 13px;
	line-height: 1.6;
}

.egw-contact__formtitle {
	margin: 0 0 6px;
	font-size: clamp(22px, 2.4vw, 30px);
	letter-spacing: -0.3px;
	font-weight: 900;
	color: #fff;
}

.egw-contact__formtext {
	margin: 0 0 16px;
	color: rgba(255, 255, 255, 0.78);
	line-height: 1.7;
	font-size: 15px;
}

/* Contact Form 7 inside the glass card ------------------------------------ */

.egw-form .wpcf7,
.egw-form form {
	margin: 0;
}

.egw-form .wpcf7-form-control-wrap {
	display: block;
	margin-bottom: 14px;
}

.egw-form label {
	display: block;
	margin: 0 0 8px;
	font-weight: 800;
	font-size: 14px;
	color: rgba(255, 255, 255, 0.9);
}

.egw-form input[type="text"],
.egw-form input[type="email"],
.egw-form input[type="tel"],
.egw-form input[type="url"],
.egw-form input[type="date"],
.egw-form input[type="number"],
.egw-form textarea,
.egw-form select {
	width: 100%;
	border-radius: var(--egw-radius-sm);
	padding: 12px 14px;
	border: 1px solid rgba(255, 255, 255, 0.18);
	background: rgba(var(--egw-night), 0.35);
	color: #fff;
	outline: none;
	font-size: 15px;
	transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.egw-form textarea {
	min-height: 130px;
	resize: vertical;
}

/* The quiz question sits inside a nested label — show it as a question, not a second heading. */
.egw-form .wpcf7-quiz-label {
	display: block;
	margin: 0 0 8px;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.8);
}

.egw-form input::placeholder,
.egw-form textarea::placeholder {
	color: rgba(255, 255, 255, 0.55);
}

.egw-form input:focus,
.egw-form textarea:focus,
.egw-form select:focus {
	border-color: rgba(var(--egw-accent-rgb), 0.55);
	box-shadow: 0 0 0 4px rgba(var(--egw-accent-rgb), 0.18);
	background: rgba(var(--egw-night), 0.42);
}

.egw-form input[type="submit"],
.egw-form button,
.egw-form .wpcf7-submit {
	width: 100%;
	border: 0;
	cursor: pointer;
	border-radius: var(--egw-radius-sm);
	padding: 13px 16px;
	font-weight: 900;
	font-size: 15px;
	color: #fff;
	background: linear-gradient(180deg, var(--egw-accent-2), var(--egw-accent));
	box-shadow: 0 16px 34px rgba(var(--egw-accent-rgb), 0.25);
	transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.egw-form input[type="submit"]:hover,
.egw-form .wpcf7-submit:hover,
.egw-form input[type="submit"]:focus-visible,
.egw-form .wpcf7-submit:focus-visible {
	background: #000;
	color: #fff;
	transform: translateY(-1px);
	box-shadow: 0 22px 44px rgba(0, 0, 0, 0.28);
}

.egw-form .wpcf7-response-output {
	margin: 14px 0 0;
	border-radius: var(--egw-radius-sm);
	border: 1px solid rgba(255, 255, 255, 0.18);
	background: rgba(var(--egw-night), 0.35);
	color: rgba(255, 255, 255, 0.9);
	padding: 12px;
}

.egw-form .wpcf7-not-valid-tip {
	display: inline-block;
	margin-top: 8px;
	padding: 8px 10px;
	border-radius: 12px;
	color: #fff;
	background: rgba(var(--egw-accent-rgb), 0.18);
	border: 1px solid rgba(var(--egw-accent-rgb), 0.35);
	font-size: 13px;
}

@media (max-width: 1024px) {
	.egw-contact__grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 767px) {
	.egw-contact {
		padding: 44px 16px;
	}
}

/* ==========================================================================
   RTL
   ========================================================================== */

.rtl .egw-hero__overlay {
	background:
		radial-gradient(1100px 520px at 85% 40%, rgba(var(--egw-accent-rgb), 0.2), transparent 65%),
		linear-gradient(270deg, rgba(var(--egw-night), 0.88) 0%, rgba(var(--egw-night), 0.62) 55%, rgba(var(--egw-night), 0.45) 100%);
}

.rtl .egw-hero__grid {
	-webkit-mask-image: radial-gradient(900px 520px at 80% 35%, #000 25%, transparent 70%);
	mask-image: radial-gradient(900px 520px at 80% 35%, #000 25%, transparent 70%);
}

.rtl .egw-contact__overlay {
	background:
		linear-gradient(250deg, rgba(var(--egw-accent-rgb), 0.52) 0%, rgba(var(--egw-accent-rgb), 0.18) 32%, rgba(var(--egw-night), 0.82) 72%, rgba(var(--egw-night), 0.92) 100%),
		radial-gradient(900px 420px at 82% 30%, rgba(255, 255, 255, 0.1), transparent 60%);
}

/* ==========================================================================
   Reduced motion
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	.egw-btn,
	.egw-cta__card,
	.egw-cta__img,
	.egw-why__card,
	.egw-hero__video,
	.egw-form input,
	.egw-form textarea,
	.egw-form .wpcf7-submit {
		transition: none;
	}

	.egw-cta__card:hover,
	.egw-why__card:hover,
	.egw-btn:hover {
		transform: none;
	}

	.egw-cta__card:hover .egw-cta__img {
		transform: scale(1.02);
	}
}

/* ==========================================================================
   Shared pieces used by the generic section types
   ========================================================================== */

.egw-textlink {
	display: inline-flex;
	align-items: center;
	font-weight: 800;
	font-size: 15px;
	color: var(--egw-accent);
	text-decoration: none;
	border-bottom: 1px solid rgba(var(--egw-accent-rgb), 0.35);
	padding-bottom: 2px;
	transition: color 0.18s ease, border-color 0.18s ease;
}

.egw-textlink:hover,
.egw-textlink:focus-visible {
	color: var(--egw-ink);
	border-color: var(--egw-ink);
}

.egw-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	margin: 16px 0 0;
	padding: 0;
}

.egw-chips li {
	display: inline-flex;
	padding: 8px 12px;
	border-radius: 999px;
	background: rgba(var(--egw-accent-rgb), 0.08);
	border: 1px solid rgba(var(--egw-accent-rgb), 0.2);
	color: var(--egw-ink);
	font-weight: 800;
	font-size: 12.5px;
}

/* ==========================================================================
   Hero — highlight boxes (type: hero)
   ========================================================================== */

.egw-hero__mini {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
	list-style: none;
	margin: 20px 0 0;
	padding: 0;
	max-width: 720px;
}

.egw-hero__mini li {
	padding: 12px 14px;
	border-radius: var(--egw-radius-sm);
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.14);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
}

.egw-hero__mini b {
	display: block;
	color: #fff;
	font-weight: 900;
	font-size: 14px;
	margin-bottom: 3px;
}

.egw-hero__mini span {
	display: block;
	color: rgba(255, 255, 255, 0.74);
	font-size: 13px;
	line-height: 1.5;
}

@media (max-width: 767px) {
	.egw-hero__mini {
		grid-template-columns: 1fr;
	}
}

/* ==========================================================================
   Media + text (type: mediatext)
   ========================================================================== */

.egw-mt {
	padding: 70px 16px;
	background: #fff;
}

.egw-mt--card {
	background: #f5f6f7;
}

.egw-mt__grid {
	display: grid;
	grid-template-columns: 1.05fr 0.95fr;
	gap: clamp(18px, 3vw, 34px);
	align-items: center;
}

.egw-mt--media-left .egw-mt__body {
	order: 2;
}

.egw-mt--media-left .egw-mt__media {
	order: 1;
}

.egw-mt__title {
	margin: 0 0 12px;
	font-size: clamp(24px, 2.8vw, 34px);
	line-height: 1.18;
	letter-spacing: -0.4px;
	font-weight: 900;
	color: var(--egw-ink);
}

.egw-mt__text {
	margin: 0 0 18px;
	color: rgba(15, 23, 42, 0.72);
	font-size: 15px;
	line-height: 1.8;
}

.egw-mt__points {
	display: grid;
	gap: 12px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.egw-mt__points li {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	padding: 12px 14px;
	border-radius: var(--egw-radius-sm);
	background: #fff;
	border: 1px solid rgba(var(--egw-accent-rgb), 0.18);
	box-shadow: 0 10px 30px rgba(2, 6, 23, 0.06);
}

.egw-mt__tick {
	display: grid;
	place-items: center;
	flex: 0 0 34px;
	width: 34px;
	height: 34px;
	border-radius: 12px;
	color: #fff;
	background: linear-gradient(180deg, var(--egw-accent-2), var(--egw-accent));
	box-shadow: 0 10px 20px rgba(var(--egw-accent-rgb), 0.24);
}

.egw-mt__pointbody b {
	display: block;
	color: var(--egw-ink);
	font-weight: 900;
	margin-bottom: 3px;
	font-size: 15px;
}

.egw-mt__pointbody span {
	display: block;
	color: rgba(15, 23, 42, 0.7);
	font-size: 14px;
	line-height: 1.6;
}

.egw-mt__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px;
	margin: 20px 0 0;
}

.egw-mt__media {
	position: relative;
}

.egw-mt__figures {
	display: grid;
	gap: 12px;
}

.egw-mt__figure {
	margin: 0;
	border-radius: var(--egw-radius);
	overflow: hidden;
	border: 1px solid rgba(var(--egw-accent-rgb), 0.14);
	box-shadow: var(--egw-shadow);
	background: var(--egw-deep);
}

/* Capped so a portrait photo cannot stretch the whole section. */
.egw-mt__img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 240px;
	max-height: 520px;
	object-fit: cover;
}

.egw-mt--collage .egw-mt__figures {
	grid-template-columns: 1fr 1fr;
	grid-auto-rows: 165px;
}

.egw-mt--collage .egw-mt__figure:first-child {
	grid-row: span 2;
}

.egw-mt--collage .egw-mt__img {
	min-height: 0;
}

.egw-mt__caption {
	margin: 12px 0 0;
	padding: 14px;
	border-radius: var(--egw-radius);
	background: var(--egw-deep);
	border: 1px solid rgba(255, 255, 255, 0.12);
	color: rgba(255, 255, 255, 0.88);
	box-shadow: 0 18px 55px rgba(2, 6, 23, 0.18);
}

.egw-mt__caption b {
	display: block;
	font-weight: 900;
	margin-bottom: 4px;
}

.egw-mt__caption span {
	display: block;
	color: rgba(255, 255, 255, 0.74);
	line-height: 1.6;
	font-size: 13.5px;
}

.egw-mt__stats {
	display: grid;
	gap: 10px;
	list-style: none;
	margin: 12px 0 0;
	padding: 0;
}

.egw-mt__stats li {
	padding: 12px 14px;
	border-radius: var(--egw-radius-sm);
	background: #fff;
	border: 1px solid rgba(var(--egw-accent-rgb), 0.18);
	box-shadow: 0 10px 30px rgba(2, 6, 23, 0.06);
}

.egw-mt__stats b {
	display: block;
	color: var(--egw-accent);
	font-weight: 900;
	font-size: 15px;
	margin-bottom: 3px;
}

.egw-mt__stats span {
	display: block;
	color: rgba(15, 23, 42, 0.7);
	font-size: 13.5px;
	line-height: 1.55;
}

/* One-card variant: photo and content share a single white card. */
.egw-mt--card .egw-mt__grid {
	background: #fff;
	border-radius: var(--egw-radius);
	overflow: hidden;
	border: 1px solid rgba(var(--egw-accent-rgb), 0.18);
	box-shadow: var(--egw-shadow);
	gap: 0;
	align-items: stretch;
}

.egw-mt--card .egw-mt__body {
	padding: clamp(20px, 3vw, 34px);
}

.egw-mt--card .egw-mt__figure {
	height: 100%;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

.egw-mt--card .egw-mt__img {
	min-height: 300px;
}

@media (max-width: 1024px) {
	.egw-mt__grid {
		grid-template-columns: 1fr;
	}

	.egw-mt--media-left .egw-mt__body,
	.egw-mt--media-left .egw-mt__media {
		order: 0;
	}
}

@media (max-width: 767px) {
	.egw-mt {
		padding: 44px 16px;
	}

	.egw-mt--collage .egw-mt__figures {
		grid-auto-rows: 130px;
	}
}

/* ==========================================================================
   Card grid (type: cards)
   ========================================================================== */

.egw-cards {
	padding: 70px 16px;
	background: #f5f6f7;
}

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

.egw-cards__grid[data-count="1"],
.egw-cards__grid[data-count="2"] {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.egw-cards__grid[data-count="3"] {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.egw-cards__item {
	display: flex;
}

.egw-cards__card {
	display: flex;
	flex-direction: column;
	width: 100%;
	padding: 22px 20px;
	border-radius: 22px;
	background: #fff;
	border: 1px solid rgba(var(--egw-accent-rgb), 0.18);
	box-shadow: 0 18px 55px rgba(2, 6, 23, 0.08);
	color: inherit;
	text-decoration: none;
	transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}

a.egw-cards__card:hover,
a.egw-cards__card:focus-visible {
	transform: translateY(-4px);
	box-shadow: var(--egw-shadow-lg);
	border-color: rgba(var(--egw-accent-rgb), 0.34);
}

.egw-cards__icon {
	display: grid;
	place-items: center;
	width: 56px;
	height: 56px;
	margin-bottom: 14px;
	border-radius: 16px;
	background: rgba(var(--egw-accent-rgb), 0.08);
	border: 1px solid rgba(var(--egw-accent-rgb), 0.16);
}

.egw-cards__icon img {
	width: 32px;
	height: 32px;
	object-fit: contain;
}

.egw-cards__title {
	margin: 0 0 8px;
	font-size: 18px;
	font-weight: 900;
	letter-spacing: -0.2px;
	color: var(--egw-ink);
}

.egw-cards__text {
	margin: 0;
	color: rgba(15, 23, 42, 0.72);
	font-size: 14.5px;
	line-height: 1.7;
}

.egw-cards__more {
	margin-top: 14px;
	padding-top: 12px;
	border-top: 1px solid rgba(var(--egw-accent-rgb), 0.16);
	color: var(--egw-accent);
	font-weight: 800;
	font-size: 14px;
}

a.egw-cards__card:hover .egw-cards__more {
	color: var(--egw-ink);
}

@media (max-width: 1024px) {
	.egw-cards__grid,
	.egw-cards__grid[data-count="3"] {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 620px) {
	.egw-cards {
		padding: 44px 16px;
	}

	.egw-cards__grid,
	.egw-cards__grid[data-count="2"],
	.egw-cards__grid[data-count="3"] {
		grid-template-columns: 1fr;
	}
}

/* ==========================================================================
   Two panels (type: duo)
   ========================================================================== */

.egw-duo {
	padding: 70px 16px;
	background: #fff;
}

.egw-duo__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

.egw-duo__panel {
	position: relative;
	overflow: hidden;
	min-height: 200px;
	padding: 0;
	border-radius: 22px;
	background: #fff;
	border: 1px solid rgba(var(--egw-accent-rgb), 0.18);
	box-shadow: 0 18px 55px rgba(2, 6, 23, 0.08);
}

.egw-duo__panel--dark {
	background: var(--egw-deep);
	border-color: rgba(255, 255, 255, 0.1);
	box-shadow: 0 22px 70px rgba(2, 6, 23, 0.22);
	color: rgba(255, 255, 255, 0.92);
}

.egw-duo__media {
	position: absolute;
	inset: 0;
	overflow: hidden;
}

.egw-duo__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* The list sits at the top of the panel, so the shade has to be strong there
   too — a top-light gradient would leave the text unreadable. */
.egw-duo__shade {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, rgba(var(--egw-night), 0.72) 0%, rgba(var(--egw-night), 0.88) 55%, rgba(var(--egw-night), 0.94) 100%),
		radial-gradient(520px 260px at 18% 18%, rgba(var(--egw-accent-rgb), 0.22), transparent 60%);
}

.egw-duo__content {
	position: relative;
	z-index: 1;
	padding: 22px 20px;
}

.egw-duo__title {
	margin: 0 0 10px;
	font-size: 18px;
	font-weight: 900;
	letter-spacing: -0.2px;
	color: var(--egw-ink);
}

.egw-duo__panel--dark .egw-duo__title {
	color: #fff;
}

.egw-duo__text {
	margin: 0;
	color: rgba(15, 23, 42, 0.72);
	font-size: 15px;
	line-height: 1.8;
}

.egw-duo__panel--dark .egw-duo__text {
	color: rgba(255, 255, 255, 0.82);
}

.egw-duo__list {
	margin: 12px 0 0;
	padding-inline-start: 20px;
	color: rgba(15, 23, 42, 0.74);
	font-size: 14.5px;
	line-height: 1.7;
}

.egw-duo__panel--dark .egw-duo__list {
	color: rgba(255, 255, 255, 0.82);
}

.egw-duo__list li {
	margin: 8px 0;
}

.egw-duo__list li::marker {
	color: var(--egw-accent);
	font-weight: 900;
}

.egw-duo__panel--dark .egw-duo__list li::marker {
	color: #fff;
}

@media (max-width: 1024px) {
	.egw-duo__grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 767px) {
	.egw-duo {
		padding: 44px 16px;
	}
}

/* ==========================================================================
   Numbered dark strip (type: steps)
   ========================================================================== */

.egw-steps {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	padding: 70px 16px;
	background: var(--egw-deep);
	color: rgba(255, 255, 255, 0.92);
}

.egw-steps__media,
.egw-steps__overlay {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.egw-steps__media {
	z-index: -3;
	overflow: hidden;
}

.egw-steps__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.egw-steps__overlay {
	z-index: -2;
	background:
		radial-gradient(900px 420px at 12% 20%, rgba(var(--egw-accent-rgb), 0.28), transparent 62%),
		linear-gradient(180deg, rgba(var(--egw-night), 0.86) 0%, rgba(var(--egw-night), 0.94) 100%);
}

.egw-steps__title {
	margin: 0 0 12px;
	font-size: clamp(22px, 2.6vw, 34px);
	font-weight: 900;
	letter-spacing: -0.4px;
	color: #fff;
}

.egw-steps__text {
	margin: 0 0 20px;
	max-width: 70ch;
	color: rgba(255, 255, 255, 0.78);
	font-size: 15px;
	line-height: 1.8;
}

.egw-steps__list {
	display: grid;
	gap: 10px;
	max-width: 880px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.egw-steps__list li {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	padding: 14px;
	border-radius: 18px;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.14);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
}

.egw-steps__n {
	display: grid;
	place-items: center;
	flex: 0 0 30px;
	width: 30px;
	height: 30px;
	border-radius: 10px;
	font-weight: 900;
	color: #fff;
	background: rgba(var(--egw-accent-rgb), 0.38);
	border: 1px solid rgba(var(--egw-accent-rgb), 0.5);
}

.egw-steps__body b {
	display: block;
	font-weight: 900;
	color: #fff;
	margin-bottom: 4px;
}

.egw-steps__body span {
	display: block;
	color: rgba(255, 255, 255, 0.76);
	font-size: 14px;
	line-height: 1.6;
}

@media (max-width: 767px) {
	.egw-steps {
		padding: 44px 16px;
	}
}

/* ==========================================================================
   Closing call to action (type: cta)
   ========================================================================== */

.egw-cta2 {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	padding: 70px 16px;
	background: var(--egw-deep);
}

.egw-cta2__media,
.egw-cta2__overlay {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.egw-cta2__media {
	z-index: -3;
	overflow: hidden;
}

.egw-cta2__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transform: scale(1.03);
}

.egw-cta2__overlay {
	z-index: -2;
	background:
		linear-gradient(110deg, rgba(var(--egw-accent-rgb), 0.5) 0%, rgba(var(--egw-accent-rgb), 0.16) 34%, rgba(var(--egw-night), 0.84) 74%, rgba(var(--egw-night), 0.93) 100%),
		radial-gradient(900px 420px at 18% 30%, rgba(255, 255, 255, 0.08), transparent 60%);
}

.egw-cta2__box {
	display: grid;
	gap: clamp(18px, 3vw, 32px);
	padding: clamp(22px, 3vw, 34px);
	border-radius: 22px;
	background: rgba(255, 255, 255, 0.1);
	border: 1px solid rgba(255, 255, 255, 0.16);
	box-shadow: 0 22px 70px rgba(2, 6, 23, 0.4);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	color: rgba(255, 255, 255, 0.92);
}

.egw-cta2--split .egw-cta2__box {
	grid-template-columns: 1.1fr 0.9fr;
	align-items: center;
}

.egw-cta2__title {
	margin: 0 0 10px;
	font-size: clamp(22px, 2.6vw, 32px);
	font-weight: 900;
	letter-spacing: -0.3px;
	color: #fff;
}

.egw-cta2__text {
	margin: 0;
	color: rgba(255, 255, 255, 0.8);
	font-size: 15px;
	line-height: 1.8;
}

.egw-cta2__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 20px 0 0;
}

.egw-cta2__info {
	display: grid;
	gap: 10px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.egw-cta2__info li {
	display: flex;
	gap: 12px;
	align-items: center;
	padding: 12px 14px;
	border-radius: var(--egw-radius-sm);
	background: rgba(var(--egw-night), 0.3);
	border: 1px solid rgba(255, 255, 255, 0.12);
	color: rgba(255, 255, 255, 0.84);
	font-size: 14px;
	line-height: 1.5;
}

.egw-cta2__info a {
	color: inherit;
	text-decoration: none;
}

.egw-cta2__info a:hover,
.egw-cta2__info a:focus-visible {
	color: #fff;
	text-decoration: underline;
}

.egw-cta2__icon {
	display: grid;
	place-items: center;
	flex: 0 0 34px;
	width: 34px;
	height: 34px;
	border-radius: 12px;
	color: #fff;
	background: rgba(var(--egw-accent-rgb), 0.28);
	border: 1px solid rgba(var(--egw-accent-rgb), 0.32);
}

@media (max-width: 1024px) {
	.egw-cta2--split .egw-cta2__box {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 767px) {
	.egw-cta2 {
		padding: 44px 16px;
	}
}

/* RTL for the generic types */

.rtl .egw-steps__overlay {
	background:
		radial-gradient(900px 420px at 88% 20%, rgba(var(--egw-accent-rgb), 0.28), transparent 62%),
		linear-gradient(180deg, rgba(var(--egw-night), 0.86) 0%, rgba(var(--egw-night), 0.94) 100%);
}

.rtl .egw-cta2__overlay {
	background:
		linear-gradient(250deg, rgba(var(--egw-accent-rgb), 0.5) 0%, rgba(var(--egw-accent-rgb), 0.16) 34%, rgba(var(--egw-night), 0.84) 74%, rgba(var(--egw-night), 0.93) 100%),
		radial-gradient(900px 420px at 82% 30%, rgba(255, 255, 255, 0.08), transparent 60%);
}

@media (prefers-reduced-motion: reduce) {
	.egw-cards__card,
	.egw-textlink {
		transition: none;
	}

	a.egw-cards__card:hover {
		transform: none;
	}
}

/* ==========================================================================
   Hero — split layout with a photo collage (type: hero, layout "split")
   ========================================================================== */

.egw-hero--split .egw-hero__container {
	display: grid;
	grid-template-columns: 1.05fr 0.95fr;
	gap: clamp(20px, 3.5vw, 46px);
	align-items: center;
}

.egw-hero--split .egw-hero__content {
	max-width: none;
}

.egw-hero__collage {
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-auto-rows: 148px;
	gap: 14px;
}

.egw-hero--collage-1 .egw-hero__collage {
	grid-template-columns: 1fr;
	grid-auto-rows: 340px;
}

/* Three photos: a tall one on the left, two stacked on the right. */
.egw-hero--collage-3 .egw-hero__tile:first-child {
	grid-row: span 2;
}

.egw-hero__tile {
	position: relative;
	margin: 0;
	overflow: hidden;
	border-radius: var(--egw-radius);
	border: 1px solid rgba(255, 255, 255, 0.16);
	box-shadow: 0 22px 60px rgba(2, 6, 23, 0.45);
	background: var(--egw-deep);
}

.egw-hero__tile::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 40%, rgba(var(--egw-night), 0.45) 100%);
}

.egw-hero__tileimg {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

@media (max-width: 1024px) {
	.egw-hero--split .egw-hero__container {
		grid-template-columns: 1fr;
	}

	.egw-hero__collage {
		grid-auto-rows: 130px;
	}

	.egw-hero--collage-1 .egw-hero__collage {
		grid-auto-rows: 220px;
	}
}

@media (max-width: 620px) {
	.egw-hero__collage {
		grid-auto-rows: 108px;
		gap: 10px;
	}
}

/* ==========================================================================
   Steps — light card variant, side photo, sub-heading, footer
   ========================================================================== */

.egw-steps__grid {
	display: grid;
	gap: clamp(18px, 3vw, 34px);
}

.egw-steps--split .egw-steps__grid {
	grid-template-columns: 1.1fr 0.9fr;
	align-items: center;
}

.egw-steps__subtitle {
	margin: 0 0 14px;
	font-size: 16px;
	font-weight: 900;
	letter-spacing: -0.2px;
	color: #fff;
}

.egw-steps__item {
	display: block;
}

.egw-steps__item b {
	display: block;
	font-weight: 900;
	color: #fff;
	margin-bottom: 4px;
}

.egw-steps__item span {
	display: block;
	color: rgba(255, 255, 255, 0.76);
	font-size: 14px;
	line-height: 1.6;
}

.egw-steps__foot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px;
	margin-top: 22px;
}

.egw-steps__note {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	padding: 10px 14px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.16);
	color: rgba(255, 255, 255, 0.82);
	font-size: 13.5px;
}

.egw-steps__figure {
	margin: 0;
	overflow: hidden;
	border-radius: var(--egw-radius);
	border: 1px solid rgba(var(--egw-accent-rgb), 0.16);
	box-shadow: var(--egw-shadow);
	background: var(--egw-deep);
}

.egw-steps__sideimg {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 320px;
	object-fit: cover;
}

/* Light variant: a white card on a light background. */

.egw-steps--light {
	background: #f5f6f7;
	color: var(--egw-ink);
}

.egw-steps--light .egw-steps__grid {
	padding: clamp(22px, 3vw, 36px);
	border-radius: 24px;
	background: #fff;
	border: 1px solid rgba(var(--egw-accent-rgb), 0.16);
	box-shadow: 0 20px 60px rgba(2, 6, 23, 0.08);
}

.egw-steps--light .egw-steps__title,
.egw-steps--light .egw-steps__subtitle {
	color: var(--egw-ink);
}

.egw-steps--light .egw-steps__text {
	color: rgba(15, 23, 42, 0.72);
}

.egw-steps--light .egw-steps__list li {
	background: #fff;
	border-color: rgba(var(--egw-accent-rgb), 0.18);
	box-shadow: 0 10px 30px rgba(2, 6, 23, 0.06);
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
}

.egw-steps--light .egw-steps__n {
	background: linear-gradient(180deg, var(--egw-accent-2), var(--egw-accent));
	border-color: transparent;
	box-shadow: 0 10px 20px rgba(var(--egw-accent-rgb), 0.24);
}

.egw-steps--light .egw-steps__item b {
	color: var(--egw-ink);
}

.egw-steps--light .egw-steps__item span {
	color: rgba(15, 23, 42, 0.7);
}

.egw-steps--light .egw-steps__note {
	background: rgba(var(--egw-accent-rgb), 0.07);
	border-color: rgba(var(--egw-accent-rgb), 0.2);
	color: rgba(15, 23, 42, 0.78);
}

.egw-steps--light .egw-steps__list {
	max-width: none;
}

@media (max-width: 1024px) {
	.egw-steps--split .egw-steps__grid {
		grid-template-columns: 1fr;
	}

	.egw-steps__sideimg {
		min-height: 240px;
	}
}

/* ==========================================================================
   Media + text — sub-heading above the points
   ========================================================================== */

.egw-mt__subtitle {
	margin: 0 0 14px;
	font-size: 16px;
	font-weight: 900;
	letter-spacing: -0.2px;
	color: var(--egw-ink);
}

/* ==========================================================================
   Contact (type: contact) — form position, photo, opening hours, form note
   ========================================================================== */

.egw-contact--form-left .egw-contact__grid {
	grid-template-columns: 1.05fr 0.95fr;
}

.egw-contact--form-left .egw-contact__form {
	order: 1;
}

.egw-contact--form-left .egw-contact__info {
	order: 2;
}

.egw-contact__photo {
	margin: 0 0 16px;
	overflow: hidden;
	border-radius: var(--egw-radius-sm);
	border: 1px solid rgba(255, 255, 255, 0.16);
	box-shadow: 0 18px 50px rgba(2, 6, 23, 0.35);
	background: var(--egw-deep);
}

.egw-contact__photoimg {
	display: block;
	width: 100%;
	height: 240px;
	object-fit: cover;
	object-position: center top;
}

.egw-contact__hours {
	margin-top: 16px;
	padding: 14px;
	border-radius: var(--egw-radius-sm);
	background: rgba(255, 255, 255, 0.07);
	border: 1px solid rgba(255, 255, 255, 0.1);
}

.egw-contact__hourstitle {
	margin: 0 0 10px;
	font-size: 14px;
	font-weight: 900;
	color: #fff;
}

.egw-contact__hourslist {
	display: grid;
	gap: 8px;
	margin: 0;
}

.egw-contact__hourslist > div {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 6px 14px;
	font-size: 14px;
	line-height: 1.5;
}

.egw-contact__hourslist dt {
	font-weight: 800;
	color: rgba(255, 255, 255, 0.92);
}

.egw-contact__hourslist dd {
	margin: 0;
	color: rgba(255, 255, 255, 0.76);
}

.egw-contact__formnote {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 14px 0 0;
	color: rgba(255, 255, 255, 0.78);
	font-size: 13.5px;
	line-height: 1.5;
}

.egw-contact__formnote-tick {
	display: grid;
	place-items: center;
	flex: 0 0 24px;
	width: 24px;
	height: 24px;
	border-radius: 8px;
	color: #fff;
	background: rgba(var(--egw-accent-rgb), 0.35);
	border: 1px solid rgba(var(--egw-accent-rgb), 0.45);
}

@media (max-width: 1024px) {
	.egw-contact--form-left .egw-contact__grid {
		grid-template-columns: 1fr;
	}

	/* Stacked: the form stays first — it is what a contact page is for. */
}
