/* Site-specific overrides on top of the imported Elementor CSS. */

/* Accordions: FAQ page (nested accordion) and service pages (toggle). */
.e-n-accordion { display: flex; flex-direction: column; gap: 16px; }
.e-n-accordion .e-n-accordion-item,
.elementor-widget-toggle .elementor-toggle-item {
	background: #fff;
	border: 1px solid #e4e4e4 !important;
	border-radius: 18px;
	overflow: hidden;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .04);
	transition: border-color .2s ease, box-shadow .2s ease;
}
.elementor-widget-toggle .elementor-toggle-item { margin-bottom: 16px; }
.elementor-widget-toggle .elementor-toggle-item:last-child { margin-bottom: 0; }
.e-n-accordion .e-n-accordion-item:hover,
.elementor-widget-toggle .elementor-toggle-item:hover { border-color: #000 !important; }
.e-n-accordion .e-n-accordion-item[open],
.elementor-widget-toggle .elementor-toggle-item:has(.elementor-tab-title.elementor-active) {
	border-color: var(--e-global-color-accent, #F9CF2A) !important;
	box-shadow: 0 12px 32px rgba(0, 0, 0, .1);
}

.e-n-accordion .e-n-accordion-item-title,
.elementor-widget-toggle .elementor-tab-title {
	display: flex !important;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding: 26px 30px !important;
	background: transparent !important;
	border: 0 !important;
	cursor: pointer;
}
.elementor-widget-toggle .elementor-tab-title { flex-direction: row-reverse; }
.e-n-accordion .e-n-accordion-item-title-header { flex: 1 1 auto; min-width: 0; }
.e-n-accordion .e-n-accordion-item-title-text,
.elementor-widget-toggle .elementor-toggle-title {
	flex: 1 1 auto;
	font-size: 21px !important;
	font-weight: 700 !important;
	line-height: 1.35 !important;
	color: #000 !important;
}

/* Round icon button, yellow when the item is open. */
.e-n-accordion .e-n-accordion-item-title-icon,
.elementor-widget-toggle .elementor-toggle-icon {
	flex: 0 0 46px;
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 46px !important;
	height: 46px;
	margin: 0 !important;
	float: none !important;
	background: #f2f2f2;
	border-radius: 50%;
	transition: background-color .2s ease;
}
.e-n-accordion .e-n-accordion-item[open] .e-n-accordion-item-title-icon,
.elementor-widget-toggle .elementor-tab-title.elementor-active .elementor-toggle-icon {
	background: var(--e-global-color-accent, #F9CF2A);
}
.e-n-accordion .e-n-accordion-item-title-icon svg,
.elementor-widget-toggle .elementor-toggle-icon svg {
	display: block;
	width: 16px !important;
	height: 16px !important;
	fill: #000 !important;
}

.e-n-accordion .e-n-accordion-item > [role="region"],
.elementor-widget-toggle .elementor-tab-content {
	padding: 0 30px 28px !important;
	border: 0 !important;
	background: transparent !important;
}
.e-n-accordion .e-n-accordion-item > [role="region"],
.e-n-accordion .e-n-accordion-item > [role="region"] *:not(a):not(strong):not(b),
.elementor-widget-toggle .elementor-tab-content,
.elementor-widget-toggle .elementor-tab-content p {
	font-size: 18px !important;
	line-height: 1.65 !important;
	color: #444 !important;
}

@media (max-width: 767px) {
	.e-n-accordion, .elementor-widget-toggle .elementor-toggle { gap: 12px; }
	.e-n-accordion .e-n-accordion-item-title,
	.elementor-widget-toggle .elementor-tab-title { padding: 20px !important; gap: 14px; }
	.e-n-accordion .e-n-accordion-item-title-text,
	.elementor-widget-toggle .elementor-toggle-title { font-size: 18px !important; }
	.e-n-accordion .e-n-accordion-item-title-icon,
	.elementor-widget-toggle .elementor-toggle-icon { flex-basis: 40px; width: 40px !important; height: 40px; }
	.e-n-accordion .e-n-accordion-item > [role="region"],
	.elementor-widget-toggle .elementor-tab-content { padding: 0 20px 22px !important; }
	.e-n-accordion .e-n-accordion-item > [role="region"],
	.e-n-accordion .e-n-accordion-item > [role="region"] *:not(a):not(strong):not(b),
	.elementor-widget-toggle .elementor-tab-content,
	.elementor-widget-toggle .elementor-tab-content p { font-size: 16px !important; }

	/* Accessibility button sits above the full-width ESPA banner. */
	.asw-menu-btn { bottom: 66px !important; right: 12px !important; }
}

/* Company page intro: narrower text, large image pushed to the right. */
@media (min-width: 1025px) {
	.elementor-109 .elementor-element.elementor-element-144f69cb > .e-con-inner { gap: 60px; flex-wrap: nowrap; }
	.elementor-109 .elementor-element.elementor-element-2b6a3f31 { width: 38%; flex: 0 0 38%; }
	.elementor-109 .elementor-element.elementor-element-6785368b { width: auto; flex: 1 1 0; min-width: 0; margin-left: auto; }
}
.elementor-109 .elementor-element-5fd5049,
.elementor-109 .elementor-element-5fd5049 img { width: 100%; max-width: 100%; height: auto; border-radius: 14px; }

/* The Elementor kit styles every <button>; restore the Sienna widget's own look. */
.elementor-kit-61 button.asw-profile-btn,
.elementor-kit-61 button.asw-btn,
.elementor-kit-61 button.asw-menu-reset,
.elementor-kit-61 button.asw-menu-close,
.elementor-kit-61 button.asw-menu-reset-footer-btn {
	white-space: normal;
	text-transform: none;
	letter-spacing: normal;
	font-family: inherit;
	color: #1a1a1a;
}
.elementor-kit-61 button.asw-profile-btn {
	display: flex;
	width: 100%;
	padding: 18px;
	background: #fff;
	border: 1px solid var(--asw-primary-faint);
	border-radius: 18px;
}
.elementor-kit-61 button.asw-btn { padding: 12px; border-radius: 16px; }
.elementor-kit-61 button.asw-menu-reset,
.elementor-kit-61 button.asw-menu-close { padding: 5px; border: 0; border-radius: 50%; }
.elementor-kit-61 button.asw-menu-reset-footer-btn { color: #fff; border: 0; }
.elementor-kit-61 button.asw-btn.asw-selected,
.elementor-kit-61 button.asw-profile-btn.asw-selected { color: var(--asw-primary); }

/* Homepage hero: self-hosted background video, no player controls. */
.hero-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.hero-video::-webkit-media-controls { display: none !important; }

/* Footer copyright: centred, white. */
.elementor-82 .elementor-element-e1f2d6f,
.elementor-82 .elementor-element-e1f2d6f p,
.elementor-82 .elementor-element-e1f2d6f a { text-align: center; color: #fff !important; }
.elementor-82 .elementor-element-29b2ccc6 { width: 100%; align-items: center; }

/* Accessibility: real backgrounds behind white text on images and video. */
.e-parent:has(> .e-con-inner h1), .e-parent:has(h1), .elementor-65 .elementor-element-34446b5c { background-color: #000; }
.elementor-screen-only { color: #fff !important; background: #000; }
.elementor-82 .elementor-headline-dynamic-text { background-color: var(--e-global-color-accent, #F9CF2A); color: #000 !important; }
.skip-link:focus { position: fixed; top: 8px; left: 8px; z-index: 100000; padding: 10px 16px; background: #fff; color: #000; clip: auto; width: auto; height: auto; }
main:focus { outline: 0; }

/* Headings renamed for a correct outline keep their original typography. */
.elementor-kit-61 [data-look="4"] { font-family: var(--e-global-typography-8c04063-font-family), Sans-serif; font-size: var(--e-global-typography-8c04063-font-size); font-weight: var(--e-global-typography-8c04063-font-weight); line-height: var(--e-global-typography-8c04063-line-height); letter-spacing: var(--e-global-typography-8c04063-letter-spacing); text-transform: var(--e-global-typography-8c04063-text-transform); }
.elementor-kit-61 [data-look="5"] { font-family: var(--e-global-typography-3b0f9a8-font-family), Sans-serif; font-size: var(--e-global-typography-3b0f9a8-font-size); font-weight: var(--e-global-typography-3b0f9a8-font-weight); line-height: var(--e-global-typography-3b0f9a8-line-height); letter-spacing: var(--e-global-typography-3b0f9a8-letter-spacing); text-transform: var(--e-global-typography-3b0f9a8-text-transform); }
.elementor-kit-61 [data-look="6"] { font-family: var(--e-global-typography-f706168-font-family), Sans-serif; font-size: var(--e-global-typography-f706168-font-size); font-weight: var(--e-global-typography-f706168-font-weight); line-height: var(--e-global-typography-f706168-line-height); letter-spacing: var(--e-global-typography-f706168-letter-spacing); text-transform: var(--e-global-typography-f706168-text-transform); }

/* Homepage hero: video across the full width under a soft gradient. */
.elementor-65 .elementor-element.elementor-element-34446b5c::before,
.elementor-65 .elementor-element.elementor-element-34446b5c > .elementor-background-video-container::before {
	background-image: linear-gradient(90deg, rgba(0, 0, 0, .82) 0%, rgba(0, 0, 0, .6) 50%, rgba(0, 0, 0, .25) 100%) !important;
}
.elementor-65 .elementor-element-3736cf05 .elementor-headline-dynamic-text { color: var(--e-global-color-accent, #F9CF2A) !important; }
.elementor-65 .elementor-element-3736cf05 .elementor-headline .elementor-headline-dynamic-wrapper { -webkit-text-stroke-width: 0 !important; }
.elementor-65 .elementor-element-3736cf05 .elementor-headline-dynamic-wrapper svg { display: none; }

/* Mobile: smaller headings across the site. */
@media (max-width: 767px) {
	.elementor-kit-61 h1, .elementor-kit-61 h1.elementor-heading-title { font-size: 32px !important; line-height: 1.2 !important; }
	.elementor-kit-61 h2, .elementor-kit-61 h2.elementor-heading-title,
	.elementor-kit-61 .elementor-headline, .elementor-kit-61 .elementor-headline-dynamic-text { font-size: 32px !important; line-height: 1.25 !important; }
	.elementor-kit-61 h3.elementor-heading-title, .elementor-kit-61 h3:not(.elementor-tab-title) { font-size: 21px !important; line-height: 1.3 !important; }
	.elementor-kit-61 h4.elementor-heading-title, .elementor-kit-61 h5.elementor-heading-title { font-size: 18px !important; line-height: 1.35 !important; }
	/* The hero title keeps its original size. */
	.elementor-65 .elementor-element-3736cf05 .elementor-headline { font-size: var(--e-global-typography-927ae6c-font-size) !important; line-height: 1.15 !important; }
	.elementor-65 .elementor-element-3736cf05 .elementor-headline-dynamic-text { font-size: inherit !important; line-height: inherit !important; }
}

/* Tablet and mobile menu: plain black icon, white drawer sliding in from the right. */
@media (max-width: 1024px) {
	.elementor-58 .elementor-element.elementor-element-5636ba75 div.elementor-menu-toggle,
	.elementor-58 .elementor-element.elementor-element-5636ba75 div.elementor-menu-toggle:hover,
	.elementor-58 .elementor-element.elementor-element-5636ba75 div.elementor-menu-toggle:focus {
		position: relative;
		z-index: 1002;
		margin: 0 0 0 auto;
		padding: 8px;
		background: transparent !important;
		color: #000 !important;
	}
	.elementor-58 .elementor-element.elementor-element-5636ba75 div.elementor-menu-toggle svg { fill: #000 !important; width: 34px; height: 34px; }
	.elementor-58 .elementor-element.elementor-element-5636ba75 div.elementor-menu-toggle.elementor-active { position: fixed; top: 22px; right: 18px; }

	.elementor-58 .elementor-element.elementor-element-5636ba75 nav.elementor-nav-menu--dropdown.elementor-nav-menu__container {
		position: fixed !important;
		top: 0 !important;
		right: 0 !important;
		bottom: 0 !important;
		left: auto !important;
		z-index: 1001;
		display: block !important;
		width: min(86vw, 400px) !important;
		height: 100dvh !important;
		max-height: none !important;
		margin: 0 !important;
		padding: 88px 12px 40px;
		overflow-y: auto !important;
		background: #fff !important;
		transform: translate3d(100%, 0, 0) !important;
		visibility: hidden;
		box-shadow: 0 0 0 100vmax rgba(0, 0, 0, 0);
		transition: transform .6s cubic-bezier(.22, 1, .36, 1), box-shadow .6s ease, visibility .6s;
	}
	.elementor-58 .elementor-element.elementor-element-5636ba75 .elementor-menu-toggle.elementor-active + nav.elementor-nav-menu--dropdown.elementor-nav-menu__container {
		transform: translate3d(0, 0, 0) !important;
		visibility: visible;
		box-shadow: 0 0 0 100vmax rgba(0, 0, 0, .5);
	}
	.elementor-58 .elementor-element.elementor-element-5636ba75 .elementor-nav-menu--dropdown a,
	.elementor-58 .elementor-element.elementor-element-5636ba75 .elementor-nav-menu--dropdown a.elementor-item-active,
	.elementor-58 .elementor-element.elementor-element-5636ba75 .elementor-nav-menu--dropdown a:hover,
	.elementor-58 .elementor-element.elementor-element-5636ba75 .elementor-nav-menu--dropdown a:focus {
		color: #000 !important;
		fill: #000;
		background: transparent !important;
	}
	.elementor-58 .elementor-element.elementor-element-5636ba75 .elementor-nav-menu--dropdown .elementor-item { font-size: 20px !important; font-weight: 700; padding: 14px 20px !important; border-bottom: 1px solid #ececec; }
	.elementor-58 .elementor-element.elementor-element-5636ba75 .elementor-nav-menu--dropdown .elementor-sub-item { font-size: 17px !important; padding: 10px 20px 10px 34px !important; }
	.elementor-58 .elementor-element.elementor-element-5636ba75 .elementor-nav-menu--dropdown a.elementor-item-active { box-shadow: inset 4px 0 0 var(--e-global-color-accent, #F9CF2A); }
	.elementor-58 .elementor-element.elementor-element-5636ba75 .elementor-nav-menu--dropdown ul { background: #fff !important; }

	body:has(.elementor-menu-toggle.elementor-active) { overflow: hidden; }
	body:has(.elementor-menu-toggle.elementor-active) .espa-banner,
	body:has(.elementor-menu-toggle.elementor-active) .asw-menu-btn { opacity: 0; pointer-events: none; }
}

/* Bullet lists in text blocks: yellow check badges, left aligned. */
.check-list { display: inline-flex; flex-direction: column; gap: 12px; margin: 18px 0; padding: 0; list-style: none; text-align: left; }
.check-list li {
	position: relative;
	padding-left: 36px;
	font-weight: 500;
	line-height: 1.45;
	color: #1f1f1f;
}
.check-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .1em;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--e-global-color-accent, #F9CF2A);
}
.check-list li::after {
	content: "";
	position: absolute;
	left: 8.5px;
	top: calc(.1em + 5px);
	width: 7px;
	height: 12px;
	border: solid #000;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}

/* The menu's language switcher keeps its colours whatever the nav link colour is. */
.elementor-58 .elementor-nav-menu--dropdown a.lang-switch { color: #000 !important; background: #fff !important; }
