/*!
 * Evsen – design system for Betheme + Elementor
 *
 * Colours and fonts come from Elementor → Site Settings (the "Evsen – …" globals),
 * so changing a global there also updates these styles. Values after the comma
 * are fallbacks only.
 *
 * Contents
 *  1. Tokens & base          9. Process (dark)        17. Contact & map
 *  2. Accessibility          10. Pricing              18. Booking & forms (CF7)
 *  3. Section helpers        11. FAQ accordion        19. Footer & mobile bar
 *  4. Buttons & links        12. Call-to-action band  20. Reduced motion
 *  5. Cards                  13. Inner page header
 *  6. Header & navigation    14. About page
 *  7. Home hero (parallax)   15. Services page
 *  8. Home sections          16. FAQ page
 */

/* ============================================================== 1. Tokens & base */
:root {
	--ev-teal: var(--e-global-color-evteal, #0d7f78);
	--ev-teal-dark: var(--e-global-color-evtdark, #0a6b65);
	--ev-teal-soft: var(--e-global-color-evtsoft, #e6f4f2);
	--ev-blue: var(--e-global-color-evblue, #2f6db5);
	--ev-blue-soft: var(--e-global-color-evbsoft, #eaf2fb);
	--ev-ink: var(--e-global-color-evink, #0e2433);
	--ev-text: var(--e-global-color-evtext, #41525e);
	--ev-muted: var(--e-global-color-evmuted, #5f707b);
	--ev-sand: var(--e-global-color-evsand, #f7f2ec);
	--ev-bg-alt: var(--e-global-color-evbgalt, #f4f8fa);
	--ev-border: var(--e-global-color-evbord, #e2eaee);
	--ev-night: var(--e-global-color-evnight, #0b1e2b);
	--ev-serif: var(--e-global-typography-evh2-font-family, "DM Serif Display"), Georgia, "Times New Roman", serif;
	--ev-sans: var(--e-global-typography-evbody-font-family, "Plus Jakarta Sans"), system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	--ev-gradient: linear-gradient(135deg, #139c90 0%, #0d7f78 45%, #2a68b0 100%);
	--ev-radius-sm: 14px;
	--ev-radius: 22px;
	--ev-radius-lg: 32px;
	--ev-shadow-sm: 0 1px 2px rgba(14, 36, 51, .05), 0 6px 18px -10px rgba(14, 36, 51, .14);
	--ev-shadow: 0 18px 44px -22px rgba(14, 36, 51, .28);
	--ev-shadow-lg: 0 34px 70px -30px rgba(14, 36, 51, .35);
	--ev-ease: cubic-bezier(.2, .7, .2, 1);
	--evsen-header-h: 76px;
}

body.evsen-site {
	margin: 0;
	background: #fff;
	color: var(--ev-text);
	font-family: var(--ev-sans);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	overflow-x: clip;
}

html:has(body.evsen-site) {
	scroll-padding-top: calc(var(--evsen-header-h) + 16px);
	scroll-behavior: smooth;
}

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

.evsen-main {
	display: block;
	outline: none;
}

.evsen-site .elementor-widget-text-editor p {
	margin: 0 0 1em;
}

.evsen-site .elementor-widget-text-editor p:last-child,
.evsen-site .elementor-widget-text-editor ul:last-child,
.evsen-site .elementor-widget-text-editor ol:last-child {
	margin-bottom: 0;
}

.evsen-site .elementor-widget-text-editor a {
	color: var(--ev-teal-dark);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.evsen-site .elementor-heading-title a {
	color: inherit;
}

/* Fallback header/footer (only before the setup has been run). */
.evsen-fallback-header,
.evsen-fallback-footer {
	padding: 20px 24px;
	font-family: var(--ev-sans);
}

/* Child containers of one-line rows size to their content (also on phones). */
.e-con.evsen-shrink {
	--width: auto;
	width: auto;
	min-width: 0;
	flex: 0 1 auto;
}

/* ============================================================== 2. Accessibility */
.evsen-skip-link {
	position: absolute;
	left: 12px;
	top: -100px;
	z-index: 10000;
	padding: 12px 18px;
	border-radius: 999px;
	background: var(--ev-ink);
	color: #fff;
	font: 600 15px/1 var(--ev-sans);
	text-decoration: none;
	transition: top .2s;
}

.evsen-skip-link:focus {
	top: 12px;
}

.evsen-site a:focus-visible,
.evsen-site button:focus-visible,
.evsen-site summary:focus-visible,
.evsen-site input:focus-visible,
.evsen-site select:focus-visible,
.evsen-site textarea:focus-visible,
.evsen-site .elementor-button:focus-visible {
	outline: 3px solid var(--ev-blue);
	outline-offset: 3px;
}

/* ============================================================== 3. Section helpers */
.evsen-section {
	position: relative;
}

.evsen-bg-alt {
	background-color: var(--ev-bg-alt);
}

.evsen-bg-sand {
	background-color: var(--ev-sand);
}

.evsen-bg-dark {
	background:
		radial-gradient(900px 520px at 8% 0%, rgba(20, 156, 143, .32), transparent 62%),
		radial-gradient(700px 460px at 100% 100%, rgba(42, 104, 176, .28), transparent 60%),
		linear-gradient(160deg, #0c2b37 0%, var(--ev-night) 100%);
}

.evsen-section-head--center {
	max-width: 780px;
	margin-inline: auto;
	text-align: center;
}

.evsen-section-head--center .elementor-widget-text-editor {
	margin-inline: auto;
}

.evsen-eyebrow .elementor-heading-title {
	display: inline-flex;
	align-items: center;
	gap: 10px;
}

.evsen-eyebrow .elementor-heading-title::before {
	content: "";
	width: 26px;
	height: 2px;
	border-radius: 2px;
	background: currentColor;
	opacity: .55;
}

.evsen-lead {
	max-width: 62ch;
}

.evsen-actions {
	padding-top: 6px;
}

.evsen-chips > .e-con-inner,
.evsen-chips {
	flex-wrap: wrap;
}

.evsen-chip .elementor-heading-title,
.evsen-chip.e-con {
	display: inline-flex;
	align-items: center;
	padding: 7px 14px;
	border-radius: 999px;
	background: var(--ev-teal-soft);
	line-height: 1.2;
}

.evsen-chip.e-con {
	--width: auto;
	width: auto;
	max-width: max-content;
}

.evsen-chip--icon .elementor-icon {
	display: flex;
}

.evsen-checklist-widget .elementor-icon-list-item {
	align-items: flex-start !important;
}

.evsen-checklist-widget .elementor-icon-list-icon {
	padding-top: .3em;
}

/* ============================================================== 4. Buttons & links */
.evsen-site .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0;
	min-height: 48px;
	border: 1px solid transparent;
	transition: background-color .3s var(--ev-ease), color .3s var(--ev-ease), transform .3s var(--ev-ease), box-shadow .3s var(--ev-ease), border-color .3s;
}

.evsen-site .elementor-button .elementor-button-icon svg {
	width: 1.15em;
	height: 1.15em;
}

.evsen-btn--primary .elementor-button {
	box-shadow: 0 12px 24px -12px rgba(13, 127, 120, .65);
}

.evsen-btn--primary .elementor-button:hover {
	transform: translateY(-1px);
	box-shadow: 0 16px 30px -12px rgba(13, 127, 120, .7);
}

.evsen-btn--secondary .elementor-button {
	border-color: var(--ev-border);
	box-shadow: var(--ev-shadow-sm);
}

.evsen-btn--glass .elementor-button {
	border-color: rgba(255, 255, 255, .32);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
}

.evsen-btn--primary .elementor-button:hover .elementor-button-icon,
.evsen-btn--ghost .elementor-button:hover .elementor-button-icon,
.evsen-btn--light .elementor-button:hover .elementor-button-icon {
	transform: translateX(3px);
}

.evsen-site .elementor-button-icon {
	transition: transform .3s var(--ev-ease);
}

.evsen-link-arrow .elementor-heading-title {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-weight: 700;
}

.evsen-link-arrow .elementor-heading-title::after {
	content: "→";
	transition: transform .3s var(--ev-ease);
}

/* ============================================================== 5. Cards */
.evsen-card.e-con {
	position: relative;
	background: #fff;
	border: 1px solid var(--ev-border);
	border-radius: var(--ev-radius);
	box-shadow: var(--ev-shadow-sm);
	transition: transform .35s var(--ev-ease), box-shadow .35s var(--ev-ease), border-color .35s;
}

.evsen-card--link:hover,
.evsen-card--link:focus-within {
	transform: translateY(-4px);
	border-color: rgba(13, 127, 120, .28);
	box-shadow: var(--ev-shadow);
}

/* Whole card clickable through the title link (one link per card for screen readers). */
.evsen-card--link .elementor-icon-box-title a::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	z-index: 1;
}

.evsen-card--link .elementor-icon-box-icon a {
	pointer-events: none;
}

.evsen-card--link:hover .evsen-link-arrow .elementor-heading-title::after {
	transform: translateX(4px);
}

.evsen-card--link .evsen-link-arrow {
	margin-top: auto;
}

.evsen-site .elementor-icon-box-title a {
	color: inherit;
	text-decoration: none;
}

.evsen-card--accent.e-con {
	background: var(--ev-gradient);
	border-color: transparent;
	box-shadow: 0 24px 50px -26px rgba(13, 127, 120, .75);
	overflow: hidden;
}

.evsen-card--accent::after {
	content: "";
	position: absolute;
	right: -60px;
	bottom: -80px;
	width: 220px;
	height: 220px;
	border-radius: 50%;
	border: 34px solid rgba(255, 255, 255, .08);
	pointer-events: none;
}

.evsen-site .elementor-view-stacked .elementor-icon {
	transition: transform .35s var(--ev-ease);
}

.evsen-card--link:hover .elementor-view-stacked .elementor-icon {
	transform: scale(1.06) rotate(-3deg);
}

/* ============================================================== 6. Header & navigation */
.evsen-site-header {
	position: sticky;
	top: 0;
	z-index: 990;
}

/* Logged-in users: sit below the WordPress toolbar (its real height/position is measured by evsen.js). */
body.admin-bar .evsen-site-header {
	top: var(--evsen-adminbar-h, var(--wp-admin--admin-bar--height, 32px));
}

.evsen-header.e-con {
	background: rgba(255, 255, 255, .88);
	-webkit-backdrop-filter: saturate(170%) blur(14px);
	backdrop-filter: saturate(170%) blur(14px);
	border-bottom: 1px solid transparent;
	transition: box-shadow .3s, border-color .3s, background-color .3s;
}

.evsen-is-scrolled .evsen-header.e-con {
	background: rgba(255, 255, 255, .95);
	border-bottom-color: var(--ev-border);
	box-shadow: 0 10px 30px -22px rgba(14, 36, 51, .45);
}

.evsen-brand.e-con {
	--width: auto;
	width: auto;
	flex-shrink: 0;
	text-decoration: none;
	color: inherit;
}

.evsen-brand__mark .elementor-icon {
	background-image: var(--ev-gradient);
	border-radius: 14px !important;
	box-shadow: 0 10px 20px -10px rgba(13, 127, 120, .8);
}

.evsen-brand__name .elementor-heading-title {
	white-space: nowrap;
}

.evsen-brand__role .elementor-heading-title {
	white-space: nowrap;
	letter-spacing: .02em;
}

.evsen-header__nav.e-con {
	--width: auto;
	width: auto;
	flex: 1 1 auto;
	justify-content: center;
}

.evsen-header__actions.e-con {
	--width: auto;
	width: auto;
	flex-shrink: 0;
}

/* WordPress "Navigation Menu" widget */
.evsen-menu nav,
.evsen-menu .menu-container,
.evsen-menu div[class*="container"] {
	margin: 0;
}

.evsen-menu ul {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 2px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.evsen-menu li {
	margin: 0;
	padding: 0;
	list-style: none;
}

.evsen-menu li::before {
	display: none;
}

.evsen-menu a {
	display: block;
	padding: 10px 15px;
	border-radius: 999px;
	color: var(--ev-ink);
	font: 600 15px/1.2 var(--ev-sans);
	text-decoration: none;
	transition: background-color .25s, color .25s;
}

.evsen-menu a:hover {
	background: var(--ev-teal-soft);
	color: var(--ev-teal-dark);
}

.evsen-menu .current-menu-item > a,
.evsen-menu .current_page_item > a {
	color: var(--ev-teal-dark);
	background: var(--ev-teal-soft);
}

.evsen-menu .sub-menu {
	display: none;
}

/* Mobile menu toggle (added by evsen.js) – reset Betheme's global button styles */
.evsen-site .evsen-nav-toggle,
.evsen-nav-toggle {
	display: none;
	width: auto;
	height: auto;
	margin: 0;
	text-transform: none;
	letter-spacing: 0;
	line-height: 1;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	padding: 0 14px;
	border: 1px solid var(--ev-border);
	border-radius: 999px;
	background: #fff;
	color: var(--ev-ink);
	font: 600 14px/1 var(--ev-sans);
	cursor: pointer;
	box-shadow: var(--ev-shadow-sm);
}

.evsen-nav-toggle__bars {
	position: relative;
	display: inline-block;
	width: 18px;
	height: 12px;
}

.evsen-nav-toggle__bars span {
	position: absolute;
	left: 0;
	width: 100%;
	height: 2px;
	border-radius: 2px;
	background: currentColor;
	transition: transform .3s var(--ev-ease), opacity .2s, top .3s var(--ev-ease);
}

.evsen-nav-toggle__bars span:nth-child(1) { top: 0; }
.evsen-nav-toggle__bars span:nth-child(2) { top: 5px; }
.evsen-nav-toggle__bars span:nth-child(3) { top: 10px; }

.evsen-nav-toggle[aria-expanded="true"] .evsen-nav-toggle__bars span:nth-child(1) { top: 5px; transform: rotate(45deg); }
.evsen-nav-toggle[aria-expanded="true"] .evsen-nav-toggle__bars span:nth-child(2) { opacity: 0; }
.evsen-nav-toggle[aria-expanded="true"] .evsen-nav-toggle__bars span:nth-child(3) { top: 5px; transform: rotate(-45deg); }

@media (max-width: 1024px) {
	html:not(.evsen-js) .evsen-header__inner > .e-con-inner {
		flex-wrap: wrap;
	}

	/* Without JavaScript the menu stays visible as a scrollable row. */
	.evsen-header__nav.e-con {
		order: 3;
		flex-basis: 100%;
		justify-content: flex-start;
		overflow-x: auto;
	}

	.evsen-menu ul {
		flex-wrap: nowrap;
	}

	.evsen-menu a {
		white-space: nowrap;
	}

	.evsen-js .evsen-site .evsen-nav-toggle,
	.evsen-js .evsen-nav-toggle {
		display: inline-flex;
	}

	.evsen-site .evsen-nav-toggle:hover {
		background: var(--ev-teal-soft);
		color: var(--ev-teal-dark);
	}

	.evsen-js .evsen-header__nav.e-con {
		position: fixed;
		top: var(--evsen-header-h);
		left: 0;
		right: 0;
		max-height: calc(100vh - var(--evsen-header-h));
		max-height: calc(100dvh - var(--evsen-header-h));
		overflow-y: auto;
		flex-direction: column;
		align-items: stretch;
		gap: 18px;
		padding: 16px 20px 28px;
		background: #fff;
		border-top: 1px solid var(--ev-border);
		box-shadow: 0 30px 50px -30px rgba(14, 36, 51, .45);
		visibility: hidden;
		opacity: 0;
		transform: translateY(-8px);
		transition: opacity .25s var(--ev-ease), transform .25s var(--ev-ease), visibility 0s linear .25s;
	}

	.evsen-js .evsen-header__nav.e-con.is-open {
		visibility: visible;
		opacity: 1;
		transform: none;
		transition: opacity .25s var(--ev-ease), transform .25s var(--ev-ease), visibility 0s;
	}

	.evsen-js .evsen-menu ul {
		flex-direction: column;
		align-items: stretch;
		gap: 4px;
	}

	.evsen-js .evsen-menu a {
		padding: 15px 16px;
		border-radius: var(--ev-radius-sm);
		font-size: 17px;
		white-space: normal;
	}

	.evsen-js .evsen-menu li + li a {
		border-top: 1px solid var(--ev-border);
		border-radius: 0;
	}

	.evsen-js .evsen-menu li.current-menu-item a,
	.evsen-js .evsen-menu li a:hover {
		border-radius: var(--ev-radius-sm);
		border-top-color: transparent;
	}

	.evsen-header__panel-actions.e-con {
		--width: 100%;
		width: 100%;
	}

	.evsen-header__panel-actions .elementor-widget-button,
	.evsen-header__panel-actions .elementor-button {
		width: 100%;
	}

	body.evsen-menu-open {
		overflow: hidden;
	}
}

/* Very narrow phones: icon-only menu button (label kept for screen readers). */
@media (max-width: 369px) {
	.evsen-site .evsen-nav-toggle {
		width: 44px;
		padding: 0;
		justify-content: center;
	}

	.evsen-nav-toggle__label {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		white-space: nowrap;
	}

	.evsen-header__inner > .e-con-inner {
		gap: 10px !important;
	}
}

@media (max-width: 520px) {
	.evsen-header__cta {
		display: none;
	}

	.evsen-brand__mark .elementor-icon {
		padding: 9px !important;
	}

	.evsen-brand__role .elementor-heading-title {
		font-size: 12px;
	}
}

/* ============================================================== 7. Home hero (parallax) */
.evsen-hero.e-con {
	--mx: 0;
	--my: 0;
	position: relative;
	overflow: clip;
	isolation: isolate;
	background:
		radial-gradient(900px 600px at 100% 0%, rgba(47, 109, 181, .10), transparent 60%),
		radial-gradient(700px 520px at 0% 100%, rgba(13, 127, 120, .10), transparent 62%),
		linear-gradient(180deg, #ffffff 0%, #f1f8f7 100%);
}

/* Soft orb and dotted field – move gently with the pointer (desktop only). */
.evsen-hero::before,
.evsen-hero::after {
	content: "";
	position: absolute;
	pointer-events: none;
	z-index: -1;
}

.evsen-hero::before {
	width: 560px;
	height: 560px;
	left: -220px;
	top: -240px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(13, 127, 120, .16) 0%, rgba(13, 127, 120, 0) 66%);
	transform: translate3d(calc(var(--mx) * -16px), calc(var(--my) * -12px), 0);
}

.evsen-hero::after {
	width: 260px;
	height: 200px;
	right: 4%;
	top: 8%;
	background-image: radial-gradient(rgba(13, 127, 120, .28) 1.4px, transparent 1.6px);
	background-size: 18px 18px;
	-webkit-mask-image: radial-gradient(closest-side, #000 40%, transparent);
	mask-image: radial-gradient(closest-side, #000 40%, transparent);
	transform: translate3d(calc(var(--mx) * 10px), calc(var(--my) * 8px), 0);
}

.evsen-hero__title .elementor-heading-title {
	text-wrap: balance;
}

.evsen-hero__lead {
	max-width: 58ch;
}

.evsen-hero__trust .elementor-icon-list-items {
	row-gap: 8px;
}

.evsen-hero__trust .elementor-icon-list-item {
	font-weight: 600;
}

/* Visual composition */
.evsen-hero__visual.e-con {
	position: relative;
	align-self: center;
	max-width: 520px;
	margin-inline: auto;
	aspect-ratio: 13 / 15;
}

.evsen-hero__visual::before,
.evsen-hero__visual::after {
	content: "";
	position: absolute;
	pointer-events: none;
}

/* Organic gradient blob behind the photo */
.evsen-hero__visual::before {
	inset: 4% -2% 8% 10%;
	border-radius: 46% 54% 42% 58% / 52% 40% 60% 48%;
	background:
		radial-gradient(circle at 30% 25%, rgba(255, 255, 255, .7), transparent 45%),
		linear-gradient(140deg, #cfeee9 0%, #dbe9f8 60%, #e8f2fb 100%);
	transform: translate3d(calc(var(--mx) * -18px), calc(var(--my) * -14px), 0) rotate(-6deg);
	z-index: 0;
}

/* Thin ring, bottom left */
.evsen-hero__visual::after {
	width: 34%;
	aspect-ratio: 1;
	left: -4%;
	bottom: 2%;
	border-radius: 50%;
	border: 2px dashed rgba(13, 127, 120, .35);
	transform: translate3d(calc(var(--mx) * 26px), calc(var(--my) * 20px), 0);
	z-index: 0;
}

.evsen-hero__photo {
	position: relative;
	z-index: 1;
	width: 76% !important;
	max-width: 400px;
	margin: 3% auto 0;
	transform: translate3d(calc(var(--mx) * 6px), calc(var(--my) * 5px), 0);
}

.evsen-hero__photo img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: 50% 22%;
	border: 8px solid #fff;
	border-radius: 999px 999px 30px 30px;
	box-shadow: var(--ev-shadow-lg);
	background: #efe9e1;
}

.evsen-hero__card.e-con {
	--width: max-content;
	position: absolute;
	z-index: 2;
	width: max-content;
	max-width: 250px;
}

.evsen-float-card.e-con,
.evsen-float-pill.e-con {
	background: rgba(255, 255, 255, .92);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	border: 1px solid rgba(255, 255, 255, .8);
	box-shadow: var(--ev-shadow);
}

.evsen-float-card.e-con {
	border-radius: 18px;
}

.evsen-float-pill.e-con {
	border-radius: 999px;
}

.evsen-hero__card--a {
	left: -3%;
	bottom: 15%;
	transform: translate3d(calc(var(--mx) * 18px), calc(var(--my) * 14px), 0);
	animation: evsen-float 7s ease-in-out infinite;
}

.evsen-hero__card--b {
	right: 0;
	top: 16%;
	transform: translate3d(calc(var(--mx) * 24px), calc(var(--my) * 18px), 0);
	animation: evsen-float 8s ease-in-out -2s infinite;
}

.evsen-hero__card--c {
	right: 6%;
	bottom: 1%;
	transform: translate3d(calc(var(--mx) * 12px), calc(var(--my) * 10px), 0);
}

.evsen-hero--interactive .evsen-hero__visual::before,
.evsen-hero--interactive .evsen-hero__visual::after,
.evsen-hero--interactive .evsen-hero__photo,
.evsen-hero--interactive .evsen-hero__card {
	will-change: transform;
}

@keyframes evsen-float {
	0%, 100% { translate: 0 0; }
	50% { translate: 0 -7px; }
}

@media (max-width: 1024px) {
	.evsen-hero__visual.e-con {
		max-width: 440px;
	}

	.evsen-hero__content.e-con {
		max-width: 680px;
		margin-inline: auto;
	}
}

@media (max-width: 767px) {
	.evsen-hero__visual.e-con {
		max-width: 340px;
		aspect-ratio: 1 / 1.06;
	}

	.evsen-hero__photo {
		width: 72% !important;
		margin-top: 2%;
	}

	.evsen-hero__photo img {
		border-width: 6px;
		border-radius: 999px 999px 24px 24px;
	}

	.evsen-hero__card.e-con {
		max-width: 175px;
	}

	.evsen-hero__card--a {
		left: 0;
		bottom: 8%;
		max-width: 215px !important;
		padding: 10px 14px 10px 10px !important;
	}

	.evsen-hero__card--a .elementor-icon {
		padding: 8px !important;
	}

	.evsen-hero__card--b {
		right: -6px;
		top: 1%;
		max-width: 138px !important;
		padding: 10px 14px !important;
	}

	.evsen-hero__card--b .elementor-heading-title {
		font-size: 12px;
	}

	.evsen-hero__card--b p.elementor-heading-title:first-child,
	.evsen-hero__card--b .elementor-widget:first-child .elementor-heading-title {
		font-size: 28px;
	}

	.evsen-hero__card--c {
		display: none;
	}

	.evsen-hero::after {
		display: none;
	}

	.evsen-hero__actions .elementor-widget-button,
	.evsen-hero__actions .elementor-button {
		width: 100%;
	}
}

/* ============================================================== 8. Home sections */
.evsen-highlights.e-con {
	position: relative;
	z-index: 3;
	margin-top: -72px;
}

.evsen-highlights__card.e-con {
	background: #fff;
	border: 1px solid var(--ev-border);
	border-radius: var(--ev-radius-lg);
	box-shadow: var(--ev-shadow-lg);
}

.evsen-highlight .elementor-icon-box-title {
	margin-top: 0;
}

@media (max-width: 767px) {
	.evsen-highlights.e-con {
		margin-top: -56px;
	}

	.evsen-highlight .elementor-icon-box-wrapper {
		gap: 14px;
	}
}

/* About preview */
.evsen-about__media.e-con {
	position: relative;
	padding-bottom: 40px;
}

.evsen-about__photo img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: 50% 18%;
	border-radius: var(--ev-radius-lg);
	box-shadow: var(--ev-shadow-lg);
}

.evsen-about__media::before {
	content: "";
	position: absolute;
	top: -24px;
	left: -24px;
	width: 55%;
	height: 60%;
	border-radius: var(--ev-radius-lg);
	background-image: radial-gradient(rgba(13, 127, 120, .26) 1.4px, transparent 1.6px);
	background-size: 16px 16px;
	z-index: 0;
}

.evsen-about__photo {
	position: relative;
	z-index: 1;
	width: 88% !important;
}

.evsen-about__quote.e-con {
	position: absolute;
	right: 0;
	bottom: 0;
	z-index: 2;
	width: 70%;
	--width: 70%;
	background: var(--ev-gradient);
	border-radius: var(--ev-radius);
	box-shadow: 0 26px 50px -24px rgba(13, 127, 120, .8);
}

.evsen-about__quote .elementor-widget-text-editor p {
	font-size: clamp(17px, 1.6vw, 20px);
}

@media (min-width: 768px) and (max-width: 1024px) {
	.evsen-about__media.e-con {
		max-width: 560px;
		margin-inline: auto;
	}
}

@media (max-width: 767px) {
	.evsen-about__media.e-con {
		padding-bottom: 0;
	}

	.evsen-about__photo {
		width: 100% !important;
	}

	.evsen-about__quote.e-con {
		position: relative;
		width: 92%;
		--width: 92%;
		margin: -56px 0 0 auto;
	}

	.evsen-about__media::before {
		left: -10px;
		top: -14px;
	}
}

/* Services grid */
.evsen-services-grid .evsen-card.e-con {
	height: 100%;
}

@media (min-width: 1025px) {
	.evsen-service-card--cta {
		grid-column: span 2;
	}
}

.evsen-service-card--cta .elementor-widget-button {
	margin-top: auto;
}

/* Benefits */
.evsen-pullquote p {
	padding-left: 18px;
	border-left: 3px solid var(--ev-teal);
	color: var(--ev-ink);
	font-family: var(--ev-serif) !important;
	font-size: clamp(20px, 2vw, 24px) !important;
	line-height: 1.4 !important;
}

.evsen-benefit.e-con,
.evsen-benefit {
	padding: 26px 24px;
}

.evsen-benefit.evsen-card {
	background: #fff;
	border: 1px solid var(--ev-border);
	border-radius: var(--ev-radius);
	box-shadow: var(--ev-shadow-sm);
}

/* ============================================================== 9. Process (dark) */
.evsen-pstep.e-con {
	position: relative;
	height: 100%;
	background: rgba(255, 255, 255, .06);
	border: 1px solid rgba(255, 255, 255, .12);
	border-radius: var(--ev-radius);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	transition: background-color .3s, transform .35s var(--ev-ease);
}

.evsen-pstep.e-con:hover {
	background: rgba(255, 255, 255, .09);
	transform: translateY(-3px);
}

.evsen-pstep__num .elementor-heading-title {
	opacity: .55;
}

@media (min-width: 1025px) {
	.evsen-pstep.e-con:not(:last-child)::after {
		content: "";
		position: absolute;
		top: 54px;
		right: -21px;
		width: 22px;
		height: 2px;
		background: linear-gradient(90deg, rgba(255, 255, 255, .35), transparent);
	}
}

/* ============================================================== 10. Pricing */
.evsen-price-card.e-con {
	height: 100%;
}

.evsen-price-card.is-featured.e-con {
	border: 2px solid var(--ev-teal);
	background:
		radial-gradient(420px 220px at 100% 0%, rgba(13, 127, 120, .10), transparent 70%),
		#fff;
	box-shadow: 0 26px 56px -30px rgba(13, 127, 120, .6);
}

.evsen-price .elementor-heading-title {
	letter-spacing: -.02em;
}

.evsen-price-card .evsen-card__cta {
	margin-top: auto;
}

.evsen-price-card .evsen-chip.e-con {
	padding: 6px 12px;
}

.evsen-note.e-con {
	background: var(--ev-teal-soft);
	border-radius: var(--ev-radius);
}

.evsen-note .elementor-widget-icon {
	flex-shrink: 0;
}

/* ============================================================== 11. FAQ accordion */
.evsen-faq {
	--n-accordion-title-font-size: 17px;
	--n-accordion-title-normal-color: var(--ev-ink);
	--n-accordion-title-hover-color: var(--ev-teal-dark);
	--n-accordion-title-active-color: var(--ev-teal-dark);
	--n-accordion-icon-size: 13px;
	--n-accordion-icon-normal-color: var(--ev-teal-dark);
	--n-accordion-icon-hover-color: var(--ev-teal-dark);
	--n-accordion-icon-active-color: #fff;
	--n-accordion-border-width: 0;
	--n-accordion-border-radius: 0;
	--n-accordion-padding: 0;
	--n-accordion-item-title-space-between: 12px;
	--n-accordion-item-title-distance-from-content: 0;
}

.evsen-faq .e-n-accordion-item {
	background: #fff;
	border: 1px solid var(--ev-border);
	border-radius: 18px;
	overflow: hidden;
	transition: border-color .3s, box-shadow .3s;
}

.evsen-faq .e-n-accordion-item[open] {
	border-color: rgba(13, 127, 120, .32);
	box-shadow: var(--ev-shadow-sm);
}

.evsen-faq .e-n-accordion-item-title {
	gap: 16px;
	padding: 20px 22px !important;
	border: 0 !important;
	background: transparent !important;
	cursor: pointer;
}

.evsen-faq .e-n-accordion-item-title-header {
	flex: 1 1 auto;
}

.evsen-faq .e-n-accordion-item-title-text {
	font-family: var(--ev-sans);
	font-weight: 600;
	line-height: 1.45;
}

.evsen-faq .e-n-accordion-item-title-icon {
	flex: 0 0 32px;
	display: inline-grid;
	place-items: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--ev-teal-soft);
	transition: background-color .3s;
}

.evsen-faq .e-n-accordion-item[open] .e-n-accordion-item-title-icon {
	background: var(--ev-teal);
}

.evsen-faq .e-n-accordion-item-title-icon span {
	display: inline-flex;
}

.evsen-faq .e-n-accordion-item-title-icon svg {
	width: 13px;
	height: 13px;
}

.evsen-faq__panel.e-con {
	border: 0 !important;
}

.evsen-faq__answer {
	color: var(--ev-text);
}

/* ============================================================== 12. Call-to-action band */
.evsen-cta__panel.e-con {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	background: linear-gradient(130deg, #0d7f78 0%, #0b6672 48%, #24538f 100%);
	border-radius: var(--ev-radius-lg);
	box-shadow: 0 40px 80px -40px rgba(13, 79, 110, .7);
}

.evsen-cta__panel::before {
	content: "";
	position: absolute;
	width: 420px;
	height: 420px;
	right: -140px;
	top: -200px;
	border-radius: 50%;
	border: 60px solid rgba(255, 255, 255, .06);
	z-index: -1;
}

.evsen-cta__panel::after {
	content: "";
	position: absolute;
	left: -40px;
	bottom: -60px;
	width: 300px;
	height: 200px;
	background-image: radial-gradient(rgba(255, 255, 255, .22) 1.3px, transparent 1.5px);
	background-size: 16px 16px;
	-webkit-mask-image: radial-gradient(closest-side, #000 30%, transparent);
	mask-image: radial-gradient(closest-side, #000 30%, transparent);
	z-index: -1;
}

.evsen-cta__actions .elementor-button {
	width: 100%;
}

@media (min-width: 1025px) {
	.evsen-cta__actions.e-con {
		max-width: 340px;
		margin-left: auto;
	}
}

/* ============================================================== 13. Inner page header */
.evsen-page-hero.e-con {
	position: relative;
	overflow: clip;
	isolation: isolate;
	background:
		radial-gradient(760px 420px at 100% 0%, rgba(47, 109, 181, .09), transparent 62%),
		radial-gradient(640px 400px at 0% 0%, rgba(13, 127, 120, .10), transparent 60%),
		linear-gradient(180deg, #f3f9f8 0%, #ffffff 100%);
}

.evsen-page-hero.e-con::after {
	content: "";
	position: absolute;
	right: 6%;
	top: 22%;
	width: 180px;
	height: 140px;
	background-image: radial-gradient(rgba(13, 127, 120, .25) 1.3px, transparent 1.5px);
	background-size: 16px 16px;
	-webkit-mask-image: radial-gradient(closest-side, #000 40%, transparent);
	mask-image: radial-gradient(closest-side, #000 40%, transparent);
	z-index: -1;
}

.evsen-page-hero__title .elementor-heading-title {
	text-wrap: balance;
}

.evsen-page-hero--center .evsen-page-hero__content.e-con {
	max-width: 860px;
	margin-inline: auto;
	align-items: center;
	text-align: center;
}

.evsen-page-hero--center .evsen-page-hero__lead {
	max-width: 62ch;
}

.evsen-quote,
.evsen-page-hero blockquote {
	margin: 14px 0 6px;
	padding: 0 0 0 18px;
	border-left: 3px solid var(--ev-teal);
	color: var(--ev-ink);
	font-family: var(--ev-serif);
	font-size: clamp(19px, 2vw, 23px);
	line-height: 1.45;
	quotes: none;
}

.evsen-page-hero blockquote::before,
.evsen-page-hero blockquote::after {
	display: none;
}

/* Jump navigation chips (services / FAQ) */
.evsen-jumpnav {
	width: 100%;
	max-width: 100%;
}

.evsen-jumpnav .elementor-icon-list-items {
	justify-content: center;
	gap: 8px;
}

.evsen-jumpnav .elementor-icon-list-item {
	margin: 0 !important;
	padding: 0 !important;
}

.evsen-jumpnav .elementor-icon-list-item::after {
	display: none !important;
}

.evsen-jumpnav .elementor-icon-list-item a {
	display: inline-flex;
	align-items: center;
	padding: 9px 15px;
	border: 1px solid var(--ev-border);
	border-radius: 999px;
	background: #fff;
	box-shadow: var(--ev-shadow-sm);
	transition: border-color .25s, transform .25s var(--ev-ease);
	white-space: nowrap;
}

.evsen-jumpnav .elementor-icon-list-item a:hover {
	border-color: var(--ev-teal);
	transform: translateY(-1px);
}

.evsen-jumpnav .elementor-icon-list-icon {
	order: 2;
	margin-left: 8px;
	padding: 0 !important;
}

@media (max-width: 767px) {
	.evsen-jumpnav .elementor-icon-list-items {
		flex-wrap: nowrap !important;
		justify-content: flex-start;
		overflow-x: auto;
		scroll-snap-type: x proximity;
		margin-inline: -20px;
		padding: 4px 20px 10px;
		-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 20px, #000 calc(100% - 28px), transparent);
		mask-image: linear-gradient(90deg, transparent 0, #000 20px, #000 calc(100% - 28px), transparent);
		scrollbar-width: none;
	}

	.evsen-jumpnav .elementor-icon-list-items::-webkit-scrollbar {
		display: none;
	}

	.evsen-jumpnav .elementor-icon-list-item {
		scroll-snap-align: start;
	}

	.evsen-page-hero--center .evsen-page-hero__content.e-con {
		align-items: flex-start;
		text-align: left;
	}
}

.evsen-trust--center .elementor-icon-list-items {
	justify-content: center;
}

@media (max-width: 767px) {
	.evsen-trust--center .elementor-icon-list-items {
		justify-content: flex-start;
	}

	.evsen-trust--center .elementor-icon-list-item {
		justify-content: flex-start !important;
	}
}

/* ============================================================== 14. About page */
.evsen-portrait-frame.e-con {
	position: relative;
	max-width: 420px;
	margin-inline: auto;
	padding: 18px 18px 36px;
}

.evsen-portrait-frame::before {
	content: "";
	position: absolute;
	inset: 0 0 12% 8%;
	border-radius: 46% 54% 40% 60% / 50% 40% 60% 50%;
	background: linear-gradient(140deg, #cfeee9 0%, #dbe9f8 100%);
	transform: rotate(-5deg);
	z-index: 0;
}

.evsen-portrait-frame__img {
	position: relative;
	z-index: 1;
}

.evsen-portrait-frame__img img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: 50% 18%;
	border: 8px solid #fff;
	border-radius: 999px 999px 28px 28px;
	box-shadow: var(--ev-shadow-lg);
}

.evsen-portrait-frame__badge.e-con {
	--width: max-content;
	position: absolute;
	z-index: 2;
	left: -6px;
	bottom: 8%;
	width: max-content;
}

@media (max-width: 767px) {
	.evsen-portrait-frame.e-con {
		max-width: 320px;
	}

	.evsen-portrait-frame__badge.e-con {
		left: 0;
	}
}

.evsen-timeline.e-con {
	position: relative;
}

.evsen-timeline::before {
	content: "";
	position: absolute;
	left: 7px;
	top: 8px;
	bottom: 8px;
	width: 2px;
	background: linear-gradient(180deg, var(--ev-teal) 0%, rgba(13, 127, 120, .12) 100%);
}

.evsen-timeline__item.e-con {
	position: relative;
}

.evsen-timeline__item::before {
	content: "";
	position: absolute;
	left: 0;
	top: 2px;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: #fff;
	border: 3px solid var(--ev-teal);
	box-shadow: 0 0 0 5px #fff;
}

.evsen-stats__card.e-con {
	background: #fff;
	border: 1px solid var(--ev-border);
	border-radius: var(--ev-radius-lg);
	box-shadow: var(--ev-shadow);
}

.evsen-stat.e-con {
	padding-left: 18px;
	border-left: 2px solid var(--ev-teal-soft);
}

.evsen-skill-card .elementor-icon-list-item {
	align-items: flex-start !important;
}

.evsen-skill-card .elementor-icon-list-icon {
	padding-top: .35em;
}

.evsen-vision__panel.e-con {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	max-width: 980px;
	margin-inline: auto;
	text-align: center;
	align-items: center;
	background:
		radial-gradient(520px 260px at 50% 0%, rgba(255, 255, 255, .9), transparent 70%),
		linear-gradient(140deg, #e3f3f0 0%, #e9f1fb 100%);
	border: 1px solid rgba(13, 127, 120, .14);
	border-radius: var(--ev-radius-lg);
}

.evsen-vision__panel::after {
	content: "";
	position: absolute;
	right: -70px;
	bottom: -90px;
	width: 260px;
	height: 260px;
	border-radius: 50%;
	border: 40px solid rgba(13, 127, 120, .06);
	z-index: -1;
}

.evsen-vision__text {
	max-width: 52ch;
}

/* ============================================================== 15. Services page */
.evsen-svc-visual.e-con {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	min-height: 420px;
	border-radius: var(--ev-radius-lg);
	background:
		radial-gradient(circle at 28% 22%, rgba(255, 255, 255, .85), transparent 42%),
		linear-gradient(145deg, #dff1ee 0%, #e7f0fa 100%);
	border: 1px solid rgba(13, 127, 120, .12);
}

.evsen-svc-visual--1.e-con {
	background:
		radial-gradient(circle at 70% 20%, rgba(255, 255, 255, .85), transparent 42%),
		linear-gradient(145deg, #e3edf9 0%, #def2ef 100%);
}

.evsen-svc-visual--2.e-con {
	background:
		radial-gradient(circle at 30% 80%, rgba(255, 255, 255, .8), transparent 45%),
		linear-gradient(145deg, #f3ece3 0%, #e0f1ee 100%);
}

.evsen-svc-visual::before {
	content: "";
	position: absolute;
	width: 70%;
	aspect-ratio: 1;
	left: 15%;
	top: 50%;
	translate: 0 -50%;
	border-radius: 50%;
	border: 2px dashed rgba(13, 127, 120, .25);
	z-index: -1;
}

.evsen-svc-visual::after {
	content: "";
	position: absolute;
	right: -30px;
	bottom: -30px;
	width: 200px;
	height: 160px;
	background-image: radial-gradient(rgba(13, 127, 120, .3) 1.3px, transparent 1.5px);
	background-size: 16px 16px;
	-webkit-mask-image: radial-gradient(closest-side, #000 30%, transparent);
	mask-image: radial-gradient(closest-side, #000 30%, transparent);
	z-index: -1;
}

.evsen-svc-visual__num {
	position: absolute !important;
	top: 22px;
	left: 28px;
	opacity: .2;
}

.evsen-svc-visual__icon .elementor-icon {
	background-image: var(--ev-gradient);
	box-shadow: 0 28px 50px -20px rgba(13, 127, 120, .75);
}

.evsen-svc-visual__chips.e-con {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.evsen-chip--float {
	position: absolute !important;
	--width: max-content;
	width: max-content;
}

.evsen-chip--float .elementor-heading-title {
	background: rgba(255, 255, 255, .92);
	box-shadow: var(--ev-shadow-sm);
	padding: 9px 15px;
	font-weight: 600;
}

.evsen-chip--float:nth-child(1) { top: 16%; right: 8%; }
.evsen-chip--float:nth-child(2) { bottom: 22%; left: 7%; }
.evsen-chip--float:nth-child(3) { bottom: 9%; right: 12%; }

@media (max-width: 1024px) {
	.evsen-svc-visual.e-con {
		min-height: 340px;
	}
}

@media (max-width: 767px) {
	.evsen-svc-visual.e-con {
		min-height: 270px;
	}

	.evsen-svc-visual__icon .elementor-icon {
		font-size: 44px !important;
		padding: 24px !important;
	}

	.evsen-svc-visual__icon .elementor-icon svg {
		width: 44px !important;
		height: 44px !important;
	}

	.evsen-chip--float .elementor-heading-title {
		padding: 7px 12px;
		font-size: 12px;
	}

	.evsen-chip--float:nth-child(1) { top: 10%; right: 5%; }
	.evsen-chip--float:nth-child(2) { bottom: 18%; left: 5%; }
	.evsen-chip--float:nth-child(3) { bottom: 6%; right: 6%; }
}

.evsen-list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
	gap: 14px 24px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.evsen-site ul.evsen-list,
.evsen-site ul.evsen-list li {
	list-style: none;
}

.evsen-site .elementor-widget-text-editor ul.evsen-list {
	margin: 0;
	padding: 0;
}

.evsen-list li {
	position: relative;
	margin: 0;
	padding: 0 0 0 32px;
	line-height: 1.55;
}

.evsen-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 1px;
	width: 21px;
	height: 21px;
	border-radius: 50%;
	background: var(--ev-teal-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230a6b65' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center / 12px no-repeat;
}

.evsen-list strong {
	color: var(--ev-ink);
}

/* ============================================================== 16. FAQ page */
@media (min-width: 1025px) {
	.evsen-sticky.e-con {
		position: sticky;
		top: calc(var(--evsen-header-h) + 24px);
	}
}

.evsen-faq-group .elementor-heading-title {
	scroll-margin-top: calc(var(--evsen-header-h) + 20px);
}

/* ============================================================== 17. Contact & map */
.evsen-contact__number a {
	text-decoration: none;
}

.evsen-map-placeholder.e-con {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	min-height: 380px;
	border-radius: var(--ev-radius-lg);
	border: 1px solid var(--ev-border);
	background:
		radial-gradient(circle at 50% 46%, rgba(13, 127, 120, .16) 0 22%, transparent 22.3%),
		radial-gradient(circle at 50% 46%, rgba(13, 127, 120, .07) 0 38%, transparent 38.3%),
		linear-gradient(115deg, transparent 47%, rgba(255, 255, 255, .9) 47.5% 49%, transparent 49.5%),
		linear-gradient(35deg, transparent 58%, rgba(255, 255, 255, .9) 58.5% 60%, transparent 60.5%),
		linear-gradient(160deg, transparent 30%, rgba(255, 255, 255, .8) 30.5% 31.5%, transparent 32%),
		repeating-linear-gradient(0deg, rgba(14, 36, 51, .045) 0 1px, transparent 1px 34px),
		repeating-linear-gradient(90deg, rgba(14, 36, 51, .045) 0 1px, transparent 1px 34px),
		linear-gradient(145deg, #e3f1ee 0%, #e6eef8 100%);
}

.evsen-map__pin .elementor-icon {
	position: relative;
	background-image: var(--ev-gradient);
	box-shadow: 0 18px 30px -12px rgba(13, 127, 120, .8);
}

.evsen-map__pin .elementor-icon::after {
	content: "";
	position: absolute;
	inset: -10px;
	border-radius: 50%;
	border: 2px solid rgba(13, 127, 120, .45);
	animation: evsen-pulse 2.6s ease-out infinite;
}

@keyframes evsen-pulse {
	0% { transform: scale(.85); opacity: .9; }
	100% { transform: scale(1.6); opacity: 0; }
}

.evsen-map__label .elementor-heading-title,
.evsen-map__sub .elementor-heading-title {
	padding: 4px 12px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .85);
}

/* ============================================================== 18. Booking & forms (Contact Form 7) */
.evsen-form-card.e-con {
	border-radius: var(--ev-radius-lg);
}

.evsen-form {
	color: var(--ev-text);
	font-family: var(--ev-sans);
	font-size: 16px;
}

.evsen-form fieldset {
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
}

.evsen-form legend {
	padding: 0;
}

.evsen-form .evsen-step {
	margin: 0 0 34px !important;
	padding: 0 0 34px !important;
	border-bottom: 1px solid var(--ev-border) !important;
}

.evsen-form .evsen-step__title {
	display: flex !important;
	align-items: center;
	gap: 14px;
	width: 100%;
	margin: 0 0 22px;
	color: var(--ev-ink);
	font: 400 clamp(22px, 2.4vw, 27px)/1.2 var(--ev-serif);
}

.evsen-form .evsen-step__num {
	flex: 0 0 38px;
	display: inline-grid;
	place-items: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--ev-gradient);
	color: #fff;
	font: 700 15px/1 var(--ev-sans);
	box-shadow: 0 10px 20px -10px rgba(13, 127, 120, .8);
}

.evsen-subhead {
	margin: 26px 0 12px !important;
	color: var(--ev-teal-dark);
	font: 700 12.5px/1.4 var(--ev-sans);
	letter-spacing: .12em;
	text-transform: uppercase;
}

.evsen-subhead span {
	color: var(--ev-muted);
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
}

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

.evsen-field--full {
	grid-column: 1 / -1;
}

.evsen-form label,
.evsen-label {
	display: block;
	margin: 0 0 8px;
	color: var(--ev-ink);
	font: 600 15px/1.4 var(--ev-sans);
}

.evsen-req {
	color: #b42318;
	text-decoration: none;
	border: 0;
	cursor: help;
}

.evsen-form .wpcf7-form-control-wrap {
	display: block;
}

.evsen-form input[type="text"],
.evsen-form input[type="email"],
.evsen-form input[type="tel"],
.evsen-form input[type="date"],
.evsen-form select,
.evsen-form textarea {
	box-sizing: border-box;
	width: 100%;
	min-height: 54px;
	margin: 0;
	padding: 14px 16px;
	border: 1.5px solid #cfdae1;
	border-radius: var(--ev-radius-sm);
	background: #fff;
	color: var(--ev-ink);
	font: 400 16px/1.45 var(--ev-sans);
	box-shadow: inset 0 1px 2px rgba(14, 36, 51, .04);
	transition: border-color .2s, box-shadow .2s;
	-webkit-appearance: none;
	appearance: none;
}

.evsen-form textarea {
	min-height: 128px;
	resize: vertical;
}

.evsen-form select {
	padding-right: 46px;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230e2433' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right 16px center / 18px no-repeat;
	cursor: pointer;
}

.evsen-form ::placeholder {
	color: #8494a0;
	opacity: 1;
}

.evsen-form input:hover,
.evsen-form select:hover,
.evsen-form textarea:hover {
	border-color: #aebfca;
}

.evsen-form input:focus,
.evsen-form select:focus,
.evsen-form textarea:focus {
	border-color: var(--ev-teal);
	box-shadow: 0 0 0 4px rgba(13, 127, 120, .16);
	outline: none;
}

.evsen-hint {
	display: block;
	margin-top: 7px;
	color: var(--ev-muted);
	font-size: 13.5px;
	line-height: 1.45;
}

/* Radio choices as large, tappable option cards */
.evsen-choice {
	margin-bottom: 8px !important;
}

.evsen-choice .wpcf7-radio {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 10px;
}

.evsen-form .wpcf7-list-item {
	display: block;
	margin: 0;
}

.evsen-choice .wpcf7-list-item label {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	height: 100%;
	margin: 0;
	padding: 15px 16px;
	border: 1.5px solid #cfdae1;
	border-radius: var(--ev-radius-sm);
	background: #fff;
	font-weight: 500;
	cursor: pointer;
	transition: border-color .2s, background-color .2s, box-shadow .2s;
}

.evsen-choice .wpcf7-list-item label:hover {
	border-color: #aebfca;
}

.evsen-choice .wpcf7-list-item label:has(input:checked) {
	border-color: var(--ev-teal);
	background: var(--ev-teal-soft);
	box-shadow: 0 0 0 1px var(--ev-teal) inset;
}

.evsen-form input[type="radio"],
.evsen-form input[type="checkbox"] {
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	margin: 1px 0 0;
	accent-color: var(--ev-teal);
	cursor: pointer;
}

.evsen-form .wpcf7-list-item-label {
	line-height: 1.45;
}

/* Fees, notices, policy text */
.evsen-small {
	margin: 0 0 14px;
	font-size: 15px;
	line-height: 1.65;
}

.evsen-fees-list {
	display: grid;
	gap: 12px;
	margin: 0 0 16px;
	padding: 0;
	list-style: none;
}

.evsen-fees-list li {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 4px 16px;
	margin: 0;
	padding: 16px 18px;
	border: 1px solid var(--ev-border);
	border-radius: var(--ev-radius-sm);
	background: var(--ev-bg-alt);
}

.evsen-fees-list__name {
	color: var(--ev-ink);
	font-weight: 700;
}

.evsen-fees-list__name small {
	display: inline-block;
	margin-left: 6px;
	padding: 2px 8px;
	border-radius: 999px;
	background: var(--ev-teal-soft);
	color: var(--ev-teal-dark);
	font-size: 12px;
	font-weight: 600;
	vertical-align: 2px;
}

.evsen-fees-list__price {
	color: var(--ev-teal);
	font: 400 24px/1 var(--ev-serif);
	text-align: right;
}

.evsen-fees-list__desc {
	grid-column: 1 / -1;
	color: var(--ev-muted);
	font-size: 14.5px;
	line-height: 1.55;
}

.evsen-notice {
	padding: 14px 18px;
	border-left: 4px solid #c99a5b;
	border-radius: 10px;
	background: var(--ev-sand);
	font-size: 15px;
	line-height: 1.6;
}

.evsen-policy {
	display: grid;
	gap: 10px;
	margin: 0 0 18px;
	padding-left: 22px;
	font-size: 15px;
	line-height: 1.6;
}

.evsen-policy li::marker {
	color: var(--ev-teal);
	font-weight: 700;
}

.evsen-consent {
	padding: 16px 18px;
	border: 1.5px solid var(--ev-border);
	border-radius: var(--ev-radius-sm);
	background: #fff;
	font-size: 15px;
	line-height: 1.6;
}

.evsen-consent .wpcf7-list-item label {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin: 0;
	font-weight: 400;
	cursor: pointer;
}

.evsen-consent:has(input:checked) {
	border-color: var(--ev-teal);
	background: #fbfefd;
}

.evsen-form a {
	color: var(--ev-teal-dark);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.evsen-payment-placeholder {
	position: relative;
	margin: 0 0 22px;
	padding: 18px 20px 18px 64px;
	border: 2px dashed rgba(13, 127, 120, .4);
	border-radius: var(--ev-radius-sm);
	background: rgba(230, 244, 242, .55);
}

.evsen-payment-placeholder::before {
	content: "";
	position: absolute;
	left: 18px;
	top: 18px;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230d7f78' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='11' width='14' height='10' rx='2'/%3E%3Cpath d='M8 11V7a4 4 0 0 1 8 0v4'/%3E%3C/svg%3E") center / 18px no-repeat;
}

.evsen-payment-placeholder__title {
	margin: 0 0 4px !important;
	color: var(--ev-ink);
	font-weight: 700;
}

.evsen-payment-placeholder .evsen-small {
	margin: 0;
}

.evsen-submit {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
}

.evsen-form .wpcf7-submit,
.evsen-form .wpcf7-stripe button {
	min-height: 56px;
	padding: 0 34px;
	border: 0;
	border-radius: 999px;
	background: var(--ev-teal);
	color: #fff;
	font: 600 16px/1 var(--ev-sans);
	cursor: pointer;
	box-shadow: 0 14px 28px -14px rgba(13, 127, 120, .8);
	transition: background-color .25s, transform .25s var(--ev-ease), box-shadow .25s;
}

.evsen-form .wpcf7-submit:hover,
.evsen-form .wpcf7-stripe button:hover {
	background: var(--ev-teal-dark);
	transform: translateY(-1px);
}

.evsen-form .wpcf7-submit:disabled {
	opacity: .55;
	cursor: not-allowed;
	transform: none;
}

.evsen-form .wpcf7-not-valid {
	border-color: #d92d20 !important;
}

/* Readable inline error messages (Betheme replaces them with a red icon box). */
.evsen-form .wpcf7-not-valid-tip {
	position: static !important;
	display: block;
	width: auto !important;
	height: auto !important;
	margin: 6px 0 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	box-shadow: none !important;
	color: #b42318 !important;
	font-size: 14px !important;
	font-weight: 500;
	line-height: 1.4 !important;
	text-indent: 0 !important;
	overflow: visible !important;
}

.evsen-form .wpcf7-not-valid-tip::before,
.evsen-form .wpcf7-not-valid-tip::after {
	content: none !important;
	display: none !important;
}

.evsen-cf7 .wpcf7-response-output {
	margin: 22px 0 0 !important;
	padding: 14px 18px !important;
	border: 1.5px solid var(--ev-border) !important;
	border-radius: var(--ev-radius-sm);
	font-size: 15px;
	line-height: 1.5;
}

.evsen-cf7 .wpcf7 form.sent .wpcf7-response-output {
	border-color: var(--ev-teal) !important;
	background: var(--ev-teal-soft);
	color: var(--ev-ink);
}

.evsen-cf7 .wpcf7 form.invalid .wpcf7-response-output,
.evsen-cf7 .wpcf7 form.unaccepted .wpcf7-response-output,
.evsen-cf7 .wpcf7 form.payment-required .wpcf7-response-output {
	border-color: #e0a43a !important;
	background: #fff8eb;
	color: var(--ev-ink);
}

.evsen-cf7 .wpcf7 form.failed .wpcf7-response-output,
.evsen-cf7 .wpcf7 form.aborted .wpcf7-response-output,
.evsen-cf7 .wpcf7 form.spam .wpcf7-response-output {
	border-color: #d92d20 !important;
	background: #fef3f2;
	color: var(--ev-ink);
}

@media (max-width: 767px) {
	.evsen-grid {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.evsen-form .evsen-step {
		margin-bottom: 28px !important;
		padding-bottom: 28px !important;
	}

	.evsen-form .wpcf7-submit {
		width: 100%;
	}

	.evsen-fees-list li {
		padding: 14px;
	}
}

/* ============================================================== 19. Footer & mobile bar */
.evsen-footer.e-con {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(900px 420px at 88% 0%, rgba(20, 156, 143, .2), transparent 60%),
		var(--ev-night);
	color: #b5c4cc;
}

.evsen-footer a {
	color: inherit;
	text-decoration: none;
}

.evsen-footer__bottom.e-con {
	border-top: 1px solid rgba(255, 255, 255, .12);
}

.evsen-footer__legal a {
	text-decoration: underline !important;
	text-underline-offset: 3px;
}

.evsen-footer__legal a:hover,
.evsen-footer a:hover {
	color: #fff;
}

.evsen-footer__badges .elementor-icon-list-item {
	padding: 6px 12px !important;
	border: 1px solid rgba(255, 255, 255, .16);
	border-radius: 999px;
	margin-bottom: 6px !important;
}

.evsen-footer__badges .elementor-icon-list-item::after {
	display: none !important;
}

.evsen-footer__contact .elementor-icon-list-item {
	align-items: flex-start !important;
}

.evsen-footer__contact .elementor-icon-list-icon {
	padding-top: .3em;
}

.evsen-mobilebar.e-con {
	position: fixed;
	left: 12px;
	right: 12px;
	bottom: calc(12px + env(safe-area-inset-bottom, 0px));
	z-index: 980;
	width: auto;
	--width: auto;
	padding: 8px;
	background: rgba(255, 255, 255, .94);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	border: 1px solid var(--ev-border);
	border-radius: 999px;
	box-shadow: 0 20px 44px -18px rgba(14, 36, 51, .5);
	transition: transform .35s var(--ev-ease), opacity .35s;
}

.evsen-mobilebar > .elementor-widget-button {
	flex: 1 1 0;
}

.evsen-mobilebar .elementor-button {
	width: 100%;
	min-height: 48px;
	padding: 12px 14px !important;
	box-shadow: none !important;
}

.evsen-js .evsen-mobilebar.e-con:not(.is-visible) {
	transform: translateY(calc(100% + 28px));
	opacity: 0;
	pointer-events: none;
}

@media (max-width: 767px) {
	body.evsen-site {
		padding-bottom: 84px;
	}

	body.evsen-site.evsen-slug-book {
		padding-bottom: 0;
	}
}

body.evsen-slug-book .evsen-mobilebar {
	display: none !important;
}

body.evsen-menu-open .evsen-mobilebar {
	opacity: 0;
	pointer-events: none;
}

/* ============================================================== 19b. Elementor editor preview (1.0.1) */
/* Keep the editing canvas uncluttered: the header scrolls normally and the
   phone action bar does not cover elements while editing. */
body.elementor-editor-active .evsen-site-header {
	position: relative;
	top: auto;
}

body.elementor-editor-active .evsen-mobilebar {
	display: none !important;
}

body.elementor-editor-active.evsen-site {
	padding-bottom: 0;
}

/* ============================================================== 20. Reduced motion */
@media (prefers-reduced-motion: reduce) {
	html:has(body.evsen-site) {
		scroll-behavior: auto;
	}

	.evsen-site *,
	.evsen-site *::before,
	.evsen-site *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
	}

	.evsen-hero {
		--mx: 0 !important;
		--my: 0 !important;
	}
}
