/* Site-wide layout and contrast fallbacks for the static Elementor copy */

.e-con.e-flex {
	--display: flex;
}

.e-con.e-grid {
	--display: grid;
}

.elementor-invisible {
	visibility: visible !important;
	opacity: 1 !important;
}

@media (min-width: 1025px) {
	.elementor-nav-menu--layout-horizontal .elementor-nav-menu {
		flex-wrap: nowrap;
	}

	.elementor-nav-menu--main .elementor-item {
		white-space: nowrap;
	}

	/*
	 * Elementor hides every .elementor-nav-menu--dropdown at this breakpoint
	 * (meant for the hamburger panel). SmartMenus never initializes on the
	 * static export, so Services never opens. Restore CSS hover/focus.
	 */
	.elementor-location-header,
	.elementor-location-header .e-con,
	.elementor-location-header .elementor-element,
	.elementor-location-header .elementor-widget-wrap,
	.elementor-location-header .elementor-widget-nav-menu {
		overflow: visible !important;
	}

	.elementor-location-header {
		z-index: 1000;
	}

	.elementor-nav-menu--layout-horizontal .menu-item-has-children {
		position: relative;
	}

	.elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--layout-horizontal .elementor-nav-menu > .menu-item-has-children > ul.sub-menu.elementor-nav-menu--dropdown {
		margin-top: 0 !important;
		min-width: 260px;
		width: max-content;
		z-index: 10000;
	}

	.elementor-nav-menu--layout-horizontal .menu-item-has-children > ul.sub-menu a {
		white-space: nowrap;
	}

	.elementor-nav-menu--layout-horizontal .menu-item-has-children:hover > ul.sub-menu,
	.elementor-nav-menu--layout-horizontal .menu-item-has-children:focus-within > ul.sub-menu {
		display: block !important;
	}

	.elementor-nav-menu--layout-horizontal > ul > .menu-item-has-children > ul.sub-menu::before {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		top: -18px;
		height: 18px;
	}

	/* Nested flyouts: Elementor defaults top:100% (below). Force beside parent. */
	.elementor-location-header .elementor-nav-menu--layout-horizontal .sub-menu .menu-item-has-children {
		position: relative;
	}

	.elementor-location-header .elementor-nav-menu--layout-horizontal .sub-menu .menu-item-has-children > ul.sub-menu.elementor-nav-menu--dropdown {
		position: absolute !important;
		left: 100% !important;
		right: auto !important;
		top: 0 !important;
		margin-top: 0 !important;
		min-width: 220px;
		width: max-content;
		z-index: 10001;
	}

	.elementor-location-header .elementor-nav-menu--layout-horizontal .sub-menu .menu-item-has-children > ul.sub-menu::before {
		content: "";
		position: absolute;
		top: 0;
		left: -14px;
		width: 14px;
		height: 100%;
	}
}

/*
 * Elementor paints overlay ::before on top of in-flow children.
 * Keep the overlay behind inner content so dark photo sections stay readable.
 */
.e-con {
	isolation: isolate;
}

.e-con::before {
	z-index: 0 !important;
	pointer-events: none;
}

.e-con > .e-con-inner,
.e-con > .elementor-container,
.e-con > .elementor-element {
	position: relative;
	z-index: 1;
}

.e-con > .elementor-shape {
	position: absolute;
	z-index: 1;
}

/*
 * Exported shape dividers sit inside boxed .e-con-inner, so they shrink to
 * the content width. Stretch them to the viewport while keeping Elementor's
 * 180deg flip on bottom waves.
 */
.e-con:has(> .e-con-inner > .elementor-shape) {
	overflow-x: clip;
}

.e-con > .e-con-inner > .elementor-shape {
	position: absolute !important;
	left: 50% !important;
	width: 100vw !important;
	margin-left: -50vw;
	right: auto !important;
	z-index: 1;
}

.e-con > .e-con-inner > .elementor-shape svg {
	width: 100% !important;
	left: 0 !important;
	transform: none !important;
}

/* Custom package builder leftover Astra blue */
.av-pb {
	--av-accent: #0B1E32;
	--av-accent-hover: #061525;
	--av-check: #0B1E32;
}

.av-pb-item.is-checked {
	border-color: #0B1E32;
	background: #e8eef4;
}

/* Package builder is a tool page, not a blog post */
.page-id-7496 .elementor-widget-post-info,
.page-id-7496 .elementor-post-navigation,
.page-id-7496 .elementor-share-buttons {
	display: none !important;
}

.elementor-field-type-acceptance a {
	color: inherit;
	text-decoration: underline;
}

.elementor-widget-text-editor a {
	color: #0B1E32;
}

.elementor-widget-text-editor a:hover {
	color: #061525;
}

.elementor-location-header .wp-image-7393,
.elementor-location-footer .wp-image-7393 {
	width: auto !important;
	max-width: min(200px, 52vw);
	height: 56px !important;
	object-fit: contain;
}

/* Color logo on white header (ebook2 brand) */
.elementor-location-header .elementor-element-463ca9c2:not(.elementor-motion-effects-element-type-background),
.elementor-location-header .elementor-element-463ca9c2 > .elementor-motion-effects-container > .elementor-motion-effects-layer,
.elementor-location-header .elementor-element-463ca9c2 {
	background-color: #ffffff !important;
}

.elementor-location-header {
	background: #ffffff !important;
	border-bottom: 1px solid rgba(11, 30, 50, 0.08);
}

.elementor-location-header .elementor-nav-menu--main .elementor-item {
	color: #0B1E32 !important;
	fill: #0B1E32 !important;
}

.elementor-location-header .elementor-nav-menu--main .elementor-item:hover,
.elementor-location-header .elementor-nav-menu--main .elementor-item.elementor-item-active,
.elementor-location-header .elementor-nav-menu--main .elementor-item.highlighted,
.elementor-location-header .elementor-nav-menu--main .elementor-item:focus {
	color: #16324F !important;
	fill: #16324F !important;
}

.elementor-location-header .elementor-social-icon,
.elementor-location-header .elementor-social-icon i,
.elementor-location-header .elementor-social-icon svg {
	color: #0B1E32 !important;
	fill: #0B1E32 !important;
	background-color: transparent !important;
}

.elementor-location-header .elementor-menu-toggle {
	color: #0B1E32 !important;
	background-color: transparent !important;
}

.elementor-location-header .elementor-menu-toggle svg {
	fill: #0B1E32 !important;
}

.elementor-location-header .wp-image-7393 {
	height: 64px !important;
	max-width: min(180px, 48vw);
}

/*
 * Mobile / tablet hamburger (static export has no Elementor Pro toggle JS).
 * Full-width panel anchored to the header, not the narrow nav column.
 */
@media (max-width: 1024px) {
	.elementor-location-header {
		position: relative;
		z-index: 1000;
		overflow: visible !important;
	}

	.elementor-location-header .elementor-element-463ca9c2,
	.elementor-location-header .elementor-element-463ca9c2 > .elementor-container,
	.elementor-location-header .elementor-element-463ca9c2 .elementor-widget-wrap,
	.elementor-location-header .elementor-element-37ad2553,
	.elementor-location-header .elementor-element-37ad2553 > .elementor-widget-wrap {
		overflow: visible !important;
	}

	.elementor-location-header .elementor-element-463ca9c2 > .elementor-container {
		display: flex !important;
		align-items: center !important;
		justify-content: space-between !important;
		width: 100% !important;
		max-width: 100% !important;
		padding-left: 16px !important;
		padding-right: 16px !important;
	}

	/* Logo column: shrink to content. Nav column: take remaining space, pin toggle right. */
	.elementor-location-header .elementor-element-3b296942 {
		width: auto !important;
		max-width: none !important;
		flex: 0 0 auto !important;
	}

	.elementor-location-header .elementor-element-37ad2553 {
		width: auto !important;
		max-width: none !important;
		flex: 1 1 auto !important;
		margin-left: auto !important;
	}

	.elementor-location-header .elementor-element-37ad2553 > .elementor-widget-wrap {
		display: flex !important;
		justify-content: flex-end !important;
		align-items: center !important;
		width: 100% !important;
	}

	.elementor-location-header .elementor-element-2126fede {
		display: none !important;
	}

	.elementor-location-header .elementor-nav-menu--dropdown-tablet .elementor-nav-menu--main {
		display: none !important;
	}

	.elementor-location-header .elementor-menu-toggle {
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		margin-left: auto !important;
		margin-right: 0 !important;
		border: 1px solid rgba(11, 30, 50, 0.18) !important;
		border-radius: 8px !important;
		color: #0B1E32 !important;
		background: #fff !important;
	}

	.elementor-location-header .elementor-menu-toggle.elementor-active {
		background: #0B1E32 !important;
		border-color: #0B1E32 !important;
		color: #fff !important;
	}

	.elementor-location-header .elementor-menu-toggle.elementor-active svg {
		fill: #fff !important;
	}

	.elementor-location-header .elementor-widget-nav-menu,
	.elementor-location-header .elementor-widget-nav-menu .elementor-widget-container {
		position: static !important;
		width: 100% !important;
		display: flex !important;
		justify-content: flex-end !important;
		margin-left: auto !important;
	}

	.elementor-location-header nav.elementor-nav-menu--dropdown.elementor-nav-menu__container {
		display: none !important;
		position: fixed !important;
		top: 64px !important;
		left: 0 !important;
		right: 0 !important;
		bottom: 0 !important;
		width: 100vw !important;
		max-width: 100vw !important;
		height: calc(100vh - 64px) !important;
		height: calc(100dvh - 64px) !important;
		max-height: none !important;
		margin: 0 !important;
		padding: 8px 0 32px !important;
		overflow-x: hidden !important;
		overflow-y: auto !important;
		-webkit-overflow-scrolling: touch;
		transform: none !important;
		background: #ffffff !important;
		border: 0 !important;
		border-top: 1px solid rgba(11, 30, 50, 0.08) !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		z-index: 10050 !important;
	}

	html.av-nav-open,
	html.av-nav-open body {
		overflow: hidden !important;
		touch-action: none;
	}

	.elementor-location-header .elementor-menu-toggle.elementor-active + nav.elementor-nav-menu--dropdown,
	.elementor-location-header nav.elementor-nav-menu--dropdown.elementor-active {
		display: block !important;
	}

	.elementor-location-header nav.elementor-nav-menu--dropdown .elementor-nav-menu {
		margin: 0 !important;
		padding: 0 !important;
		background: transparent !important;
	}

	.elementor-location-header nav.elementor-nav-menu--dropdown li {
		border: 0 !important;
		border-bottom: 1px solid rgba(11, 30, 50, 0.08) !important;
		background: transparent !important;
	}

	.elementor-location-header nav.elementor-nav-menu--dropdown li:last-child {
		border-bottom: 0 !important;
	}

	.elementor-location-header nav.elementor-nav-menu--dropdown a,
	.elementor-location-header nav.elementor-nav-menu--dropdown .elementor-item,
	.elementor-location-header nav.elementor-nav-menu--dropdown .elementor-sub-item {
		color: #0B1E32 !important;
		fill: #0B1E32 !important;
		background: transparent !important;
		padding: 14px 20px !important;
		font-size: 16px !important;
		font-weight: 500 !important;
	}

	.elementor-location-header nav.elementor-nav-menu--dropdown a:hover,
	.elementor-location-header nav.elementor-nav-menu--dropdown a:focus,
	.elementor-location-header nav.elementor-nav-menu--dropdown a.highlighted,
	.elementor-location-header nav.elementor-nav-menu--dropdown a.elementor-item-active {
		background: #e8eef4 !important;
		color: #0B1E32 !important;
	}

	.elementor-location-header nav.elementor-nav-menu--dropdown .sub-menu {
		display: none !important;
		position: static !important;
		left: auto !important;
		top: auto !important;
		width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
		background: #f7fafc !important;
		box-shadow: none !important;
		border: 0 !important;
	}

	.elementor-location-header nav.elementor-nav-menu--dropdown .menu-item-has-children.av-open > .sub-menu {
		display: block !important;
	}

	.elementor-location-header nav.elementor-nav-menu--dropdown .sub-menu a {
		padding-left: 34px !important;
		font-size: 15px !important;
	}

	.elementor-location-header .wp-image-7393 {
		height: 48px !important;
		max-width: min(150px, 46vw);
	}
}

@media (max-width: 767px) {
	.elementor-location-header .elementor-social-icons-wrapper {
		display: none !important;
	}
}

/*
 * Site-wide mobile / tablet responsiveness for the static Elementor export.
 */
html {
	overflow-x: clip;
}

body {
	overflow-x: clip;
	max-width: 100%;
}

img,
picture,
video,
canvas,
svg,
iframe,
embed,
object {
	max-width: 100%;
	height: auto;
}

iframe {
	width: 100% !important;
}

table {
	max-width: 100%;
}

.elementor img,
.elementor .elementor-widget-image img,
.elementor .elementor-widget-image picture {
	max-width: 100% !important;
	height: auto !important;
}

/* Keep brand logos sized by site-fix header/footer rules */
.elementor-location-header .elementor-widget-image img,
.elementor-location-header .wp-image-7393,
.elementor-location-footer .elementor-widget-image img,
.elementor-location-footer .wp-image-7393 {
	width: auto !important;
	height: 48px !important;
	max-width: min(150px, 46vw) !important;
	object-fit: contain !important;
}

.elementor-location-footer .wp-image-7393 {
	height: 56px !important;
	max-width: min(200px, 70vw) !important;
}

.elementor-widget-video .elementor-wrapper,
.elementor-widget-video iframe,
.elementor-widget-video video {
	max-width: 100% !important;
}

.elementor-widget-html iframe,
.elementor-widget-html video,
.elementor-widget-html img {
	max-width: 100% !important;
}

@media (max-width: 1024px) {
	.elementor-section.elementor-section-boxed > .elementor-container,
	.e-con-boxed > .e-con-inner {
		max-width: 100% !important;
		padding-left: max(16px, env(safe-area-inset-left)) !important;
		padding-right: max(16px, env(safe-area-inset-right)) !important;
		box-sizing: border-box !important;
	}

	.elementor-section:not(.elementor-element-463ca9c2) > .elementor-container {
		flex-wrap: wrap !important;
	}

	/* Stack classic Elementor columns below desktop; never touch the header row. */
	body:not(.elementor-editor-active) .elementor-top-section:not(.elementor-element-463ca9c2) > .elementor-container > .elementor-column,
	body:not(.elementor-editor-active) .elementor-inner-section > .elementor-container > .elementor-column,
	body:not(.elementor-editor-active) .elementor-location-footer .elementor-column {
		width: 100% !important;
		max-width: 100% !important;
		flex: 0 0 100% !important;
	}

	.elementor-location-header .elementor-element-463ca9c2 > .elementor-container {
		flex-wrap: nowrap !important;
	}

	.elementor-location-header .elementor-element-463ca9c2 > .elementor-container > .elementor-column {
		width: auto !important;
		max-width: none !important;
		flex-basis: auto !important;
	}

	.elementor-widget-wrap {
		flex-wrap: wrap !important;
	}

	.elementor-button-wrapper {
		max-width: 100%;
	}

	.elementor-button {
		max-width: 100%;
		white-space: normal !important;
		word-break: break-word;
	}

	.elementor-form-fields-wrapper,
	.elementor-field-group,
	.elementor-field-textual,
	.elementor-field-type-submit {
		width: 100% !important;
		max-width: 100% !important;
	}

	.elementor-field-group .elementor-field,
	.elementor-field-group input,
	.elementor-field-group textarea,
	.elementor-field-group select {
		max-width: 100% !important;
		width: 100% !important;
		box-sizing: border-box !important;
	}

	.elementor-widget-heading .elementor-heading-title {
		overflow-wrap: anywhere;
		word-break: break-word;
	}

	.elementor-icon-list-items {
		padding-left: 0 !important;
	}

	.elementor-widget-image-carousel .swiper,
	.elementor-widget-testimonial-carousel .swiper,
	.elementor-widget-slides .swiper,
	.elementor-main-swiper {
		overflow: hidden !important;
		max-width: 100% !important;
	}

	.elementor-location-footer .elementor-container {
		flex-wrap: wrap !important;
	}

	.elementor-location-footer .elementor-widget-image img {
		max-width: min(220px, 70vw) !important;
		height: 56px !important;
	}
}

@media (max-width: 767px) {
	.elementor-section.elementor-section-height-full {
		min-height: 0 !important;
		height: auto !important;
	}

	.elementor-widget:not(:last-child) {
		margin-bottom: 0;
	}

	/*
	 * Responsive type scale — Elementor exports desktop px sizes that
	 * stay oversized on phones. Force fluid caps site-wide.
	 */
	.elementor .elementor-headline,
	.elementor .elementor-heading-title,
	.elementor .elementor-icon-box-title,
	.elementor .elementor-cta__title,
	.elementor .elementor-price-table__heading,
	.elementor .elementor-price-table__price,
	.elementor .elementor-testimonial__name,
	.elementor .elementor-accordion-title,
	.elementor .elementor-toggle-title,
	.elementor .elementor-tab-title {
		line-height: 1.25 !important;
		overflow-wrap: anywhere;
		word-break: break-word;
	}

	body .elementor h1,
	body .elementor h1.elementor-heading-title,
	body .elementor .elementor-widget-heading h1,
	body .elementor .elementor-element h1.elementor-heading-title {
		font-size: clamp(1.65rem, 6.8vw, 2.15rem) !important;
		line-height: 1.18 !important;
	}

	/* Elementor often renders titles as p/div — size ALL heading-title widgets */
	body .elementor .elementor-widget-heading .elementor-heading-title,
	body .elementor .elementor-element .elementor-heading-title {
		font-size: clamp(1.3rem, 5.2vw, 1.75rem) !important;
		line-height: 1.22 !important;
	}

	body .elementor .elementor-widget-heading h1.elementor-heading-title,
	body .elementor .elementor-element h1.elementor-heading-title,
	body .av-hero-title,
	body p.av-hero-title,
	body .elementor-heading-title.av-hero-title {
		font-size: clamp(1.65rem, 6.8vw, 2.15rem) !important;
		line-height: 1.18 !important;
	}

	body .elementor h2,
	body .elementor h2.elementor-heading-title,
	body .elementor .elementor-widget-heading h2,
	body .elementor .elementor-element h2.elementor-heading-title {
		font-size: clamp(1.3rem, 5.2vw, 1.75rem) !important;
		line-height: 1.22 !important;
	}

	body .elementor h3,
	body .elementor h3.elementor-heading-title,
	body .elementor .elementor-widget-heading h3,
	body .elementor .elementor-element h3.elementor-heading-title,
	body .elementor .elementor-icon-box-title {
		font-size: clamp(1.1rem, 4.2vw, 1.35rem) !important;
		line-height: 1.3 !important;
	}

	body .elementor h4,
	body .elementor h4.elementor-heading-title,
	body .elementor h5,
	body .elementor h5.elementor-heading-title,
	body .elementor h6,
	body .elementor h6.elementor-heading-title {
		font-size: clamp(1rem, 3.6vw, 1.15rem) !important;
		line-height: 1.35 !important;
	}

	body .elementor .elementor-widget-text-editor,
	body .elementor .elementor-widget-text-editor p,
	body .elementor .elementor-widget-theme-post-content,
	body .elementor .elementor-widget-theme-post-content p,
	body .elementor .elementor-icon-box-description,
	body .elementor .elementor-cta__description,
	body .elementor .elementor-price-table__features-list,
	body .elementor .elementor-testimonial__text,
	body .elementor .elementor-tab-content,
	body .elementor .elementor-toggle-content,
	body .elementor .elementor-accordion-content {
		font-size: clamp(0.95rem, 3.6vw, 1.05rem) !important;
		line-height: 1.55 !important;
		overflow-wrap: anywhere;
	}

	body .elementor .elementor-button,
	body .elementor .elementor-button-text {
		font-size: 0.95rem !important;
		line-height: 1.3 !important;
	}

	body .elementor .elementor-icon-list-text,
	body .elementor .elementor-post-info {
		font-size: 0.9rem !important;
		line-height: 1.45 !important;
	}

	/* Narrow icon+text rows: stack icon above copy */
	.elementor-widget-icon-box.elementor-position-left .elementor-widget-container,
	.elementor-widget-icon-box.elementor-position-right .elementor-widget-container {
		flex-direction: column !important;
		align-items: flex-start !important;
		text-align: left !important;
	}

	.av-plans,
	.av-pub,
	.av-about,
	.av-hero {
		padding-left: 0;
		padding-right: 0;
	}

	.elementor-toggle-item,
	.elementor-accordion-item,
	.elementor-tab-title,
	.elementor-tab-content {
		max-width: 100%;
	}
}

@media (min-width: 768px) and (max-width: 1024px) {
	.elementor h1,
	.elementor h1.elementor-heading-title {
		font-size: clamp(2rem, 4vw, 2.6rem) !important;
		line-height: 1.2 !important;
	}

	.elementor h2,
	.elementor h2.elementor-heading-title {
		font-size: clamp(1.45rem, 3vw, 2rem) !important;
		line-height: 1.25 !important;
	}

	.elementor h3,
	.elementor h3.elementor-heading-title,
	.elementor-icon-box-title {
		font-size: clamp(1.15rem, 2.4vw, 1.45rem) !important;
		line-height: 1.3 !important;
	}

	body .elementor .elementor-widget-heading h1.elementor-heading-title {
		font-size: clamp(2rem, 4vw, 2.6rem) !important;
	}

	body .elementor .elementor-widget-heading h2.elementor-heading-title,
	body .elementor .elementor-widget-heading .elementor-heading-title:not(h1):not(h3):not(h4):not(h5):not(h6) {
		font-size: clamp(1.45rem, 3vw, 2rem) !important;
	}
}

/*
 * Cross-page section polish — every Elementor page (services, blog, contact…).
 */
@media (max-width: 1024px) {
	/* Tighten vertical section spacing */
	body .elementor-section.elementor-top-section:not(.elementor-element-463ca9c2),
	body .e-con.e-parent {
		--padding-top: 40px !important;
		--padding-bottom: 48px !important;
		padding-top: 40px !important;
		padding-bottom: 48px !important;
	}

	/* Keep header untouched */
	body .elementor-location-header .elementor-section,
	body .elementor-element-463ca9c2 {
		padding-top: unset !important;
		padding-bottom: unset !important;
	}

	body .elementor-section > .elementor-container,
	body .e-con-boxed > .e-con-inner {
		row-gap: 20px !important;
	}

	/* Price / package cards */
	body .elementor-widget-price-table,
	body .elementor-price-table,
	body .elementor-widget-icon-box .elementor-widget-container {
		max-width: 100% !important;
	}

	body .elementor-price-table__price {
		font-size: clamp(1.5rem, 6vw, 2rem) !important;
		line-height: 1.15 !important;
	}

	/* FAQ / accordion / toggle */
	body .elementor-accordion-item,
	body .elementor-toggle-item {
		margin: 0 0 8px !important;
	}

	body .elementor-tab-title,
	body .elementor-accordion-title,
	body .elementor-toggle-title {
		padding: 14px 16px !important;
		font-size: clamp(0.95rem, 3.8vw, 1.1rem) !important;
	}

	body .elementor-tab-content,
	body .elementor-accordion-content,
	body .elementor-toggle-content {
		padding: 0 16px 14px !important;
	}

	/* Forms */
	body .elementor-form .elementor-field-group {
		margin-bottom: 12px !important;
	}

	body .elementor-form .elementor-button {
		width: 100% !important;
	}

	/* Portfolio / nested tabs: allow horizontal scroll instead of overflow */
	body .elementor-tabs-wrapper,
	body .e-n-tabs-heading,
	body [role="tablist"] {
		display: flex !important;
		flex-wrap: nowrap !important;
		overflow-x: auto !important;
		-webkit-overflow-scrolling: touch;
		gap: 8px !important;
		max-width: 100% !important;
		scrollbar-width: thin;
	}

	body .elementor-tab-title,
	body .e-n-tab-title,
	body [role="tab"] {
		flex: 0 0 auto !important;
		white-space: nowrap !important;
	}

	/* Portfolio / image grids */
	body .elementor-widget-image-gallery .gallery-item,
	body .elementor-widget-gallery .e-gallery-item,
	body .elementor-portfolio .elementor-portfolio-item {
		width: 100% !important;
		max-width: 100% !important;
	}

	/* Blog cards — keep 2-col on tablet; stack on phone only (see 767 block) */
	body .elementor-post__title,
	body .elementor-post__title a {
		font-size: clamp(1.1rem, 4vw, 1.35rem) !important;
		line-height: 1.3 !important;
	}

	/* Trustpilot / wide brand images — sitewide */
	body img.wp-image-7217,
	body img[src*="TRUSTPILOT"],
	body img[src*="trustpilot"],
	body .elementor-location-footer .elementor-widget-image img {
		width: auto !important;
		max-width: min(320px, 90vw) !important;
		height: auto !important;
		display: block !important;
		margin-left: auto !important;
		margin-right: auto !important;
	}

	/* Stack Elementor flex rows (ghostwriting / contact split layouts) */
	body .e-con.e-flex {
		--flex-direction: column !important;
		flex-direction: column !important;
	}

	body .elementor-location-header .e-con.e-flex,
	body .elementor-element-463ca9c2.e-con.e-flex,
	body .elementor-element-463ca9c2 .e-con.e-flex {
		--flex-direction: row !important;
		flex-direction: row !important;
	}

	body .e-con.e-flex > .e-con,
	body .e-con.e-flex > .e-con-inner > .e-con {
		width: 100% !important;
		max-width: 100% !important;
		--width: 100% !important;
	}

	body .elementor-location-header .e-con.e-flex > .e-con,
	body .elementor-element-463ca9c2 .e-con.e-flex > .e-con {
		width: auto !important;
		max-width: none !important;
	}

	/* Tablet grids: max 2 columns */
	body .e-con.e-grid {
		--e-con-grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}

	/* Kill oversized section min-heights (restore header after) */
	body .e-con,
	body .elementor-section > .elementor-container {
		--min-height: 0 !important;
		min-height: 0 !important;
	}

	body .elementor-location-header .e-con,
	body .elementor-location-header .elementor-section > .elementor-container,
	body .elementor-element-463ca9c2 {
		--min-height: unset !important;
		min-height: unset !important;
	}

	body .elementor-element-b4fcc9e,
	body .elementor-element-6f6895e,
	body .elementor-element-376179e,
	body .elementor-element-86a5e36 {
		min-height: auto !important;
		--min-height: auto !important;
		margin-top: 0 !important;
	}

	/* Fixed-width Essential Addons CTAs (not header) */
	body .eael-creative-button,
	body .eael-creative-button-wrapper {
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box !important;
	}

	body .elementor:not(.elementor-location-header) .elementor-button-link {
		max-width: 100% !important;
		box-sizing: border-box !important;
	}

	/* Footer widget lock (Elementor forces ~299px at tablet) */
	body .elementor-location-footer .e-con,
	body .elementor-location-footer .elementor-widget-wrap,
	body .elementor-location-footer [style*="299px"] {
		width: 100% !important;
		max-width: 100% !important;
		--container-widget-width: 100% !important;
	}

	/* Classic Elementor overlays behind content */
	body .elementor-section > .elementor-background-overlay {
		z-index: 0 !important;
		pointer-events: none !important;
	}

	body .elementor-section > .elementor-container {
		position: relative;
		z-index: 1;
	}

	/* FAQ accordion hit area */
	body .elementor-accordion-title,
	body .elementor-toggle-title {
		display: flex !important;
		align-items: center !important;
		justify-content: space-between !important;
		gap: 12px !important;
		min-height: 48px !important;
		white-space: normal !important;
	}

	body .elementor-accordion-icon {
		flex: 0 0 auto !important;
	}

	/* Newsletter 70/30 wrap */
	body .elementor-form-fields-wrapper {
		flex-wrap: wrap !important;
	}

	body .elementor-form .elementor-col-70,
	body .elementor-form .elementor-col-30,
	body .elementor-form .elementor-field-type-submit {
		width: 100% !important;
		flex: 0 0 100% !important;
		max-width: 100% !important;
	}

	/* Portfolio carousels */
	body .elementor-image-carousel .swiper-slide-image {
		width: 100% !important;
		height: auto !important;
		object-fit: contain !important;
	}

	body .elementor-location-footer .elementor-widget-heading .elementor-heading-title {
		font-size: clamp(1rem, 3.8vw, 1.2rem) !important;
	}

	body .elementor-location-footer .elementor-icon-list-text,
	body .elementor-location-footer p,
	body .elementor-location-footer a {
		font-size: 0.9rem !important;
		line-height: 1.5 !important;
	}

	/* Social icons: don't overflow */
	body .elementor-social-icons-wrapper {
		flex-wrap: wrap !important;
		justify-content: flex-start !important;
		gap: 8px !important;
	}

	/* Counters / stats rows */
	body .elementor-counter .elementor-counter-number-wrapper {
		font-size: clamp(1.5rem, 6vw, 2.25rem) !important;
	}

	/* Testimonials */
	body .elementor-testimonial__text {
		font-size: clamp(0.95rem, 3.6vw, 1.05rem) !important;
		line-height: 1.55 !important;
	}

	/* Spacer widgets: don't leave huge empty gaps on mobile */
	body .elementor-widget-spacer .elementor-spacer-inner {
		height: min(var(--spacer-size, 50px), 40px) !important;
	}
}

@media (max-width: 767px) {
	body .elementor-section.elementor-top-section:not(.elementor-element-463ca9c2),
	body .e-con.e-parent {
		--padding-top: 32px !important;
		--padding-bottom: 36px !important;
		padding-top: 32px !important;
		padding-bottom: 36px !important;
	}

	body .elementor-location-header .elementor-section,
	body .elementor-element-463ca9c2 {
		padding-top: unset !important;
		padding-bottom: unset !important;
	}

	body .elementor-widget-heading {
		margin-bottom: 8px !important;
	}

	body .elementor-button-wrapper {
		text-align: stretch;
	}

	body .elementor-button {
		display: inline-flex !important;
		justify-content: center !important;
		width: 100% !important;
		box-sizing: border-box !important;
	}

	/* Phone: single-column grids + blog */
	body .e-con.e-grid {
		--e-con-grid-template-columns: 1fr !important;
	}

	body .elementor-posts-container,
	body .elementor-posts-container.elementor-grid,
	body .elementor-grid.elementor-posts-container {
		grid-template-columns: 1fr !important;
		gap: 20px !important;
	}

	body .elementor:not(.elementor-location-header) .elementor-button-link {
		width: 100% !important;
	}

	/* Package builder tool */
	body .av-pb,
	body .av-pb * {
		max-width: 100%;
		box-sizing: border-box;
	}

	body .av-pb-item,
	body .av-pb-grid {
		width: 100% !important;
	}
}
