.elementor-kit-4{--e-global-color-primary:#6EC1E4;--e-global-color-secondary:#54595F;--e-global-color-text:#7A7A7A;--e-global-color-accent:#61CE70;--e-global-typography-primary-font-family:"Roboto";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Roboto Slab";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Roboto";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto";--e-global-typography-accent-font-weight:500;}.elementor-kit-4 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}:root { --lux-gold:#C59B27; --lux-gold-light:#E3C25C; --lux-navy:#0C1A30; --lux-navy-deep:#060F1D; --lux-slate:#0F172A; --lux-mist:#F6F7F9; --lux-body:#4A5568; --lux-white:#FFFFFF; --lux-display:Archivo; --lux-sans:Inter; --lux-sand:#F5F4F0; --lux-ink:#0E151C; --lux-muted:#55616D; }
/* Start custom CSS *//* Astra wraps page content in .ast-container (max-width 1240px), which
   breaks full-bleed Elementor sections. Scoped to Elementor-built pages. */
body.elementor-page .ast-container {
	max-width: 100% !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

.elementor a.e-button-base,
.elementor a.e-button-base:hover,
.elementor .e-atomic-element a,
.elementor .e-paragraph-link-base { text-decoration: none !important; }

/* ---------- HEADER ---------- */
.elementor-element-49273c23 { padding: 0 !important; width: 100% !important; max-width: 100% !important; }
.elementor-element-5bcc6f89 { width: 100% !important; }
.elementor-element-4c422abe { background-color: #F5F4F0 !important; }
.elementor-element-5256458a {
	display: flex !important; align-items: center !important; gap: 24px !important;
	max-width: 1200px !important; margin-left: auto !important; margin-right: auto !important;
	min-height: 76px !important;
}
[data-id="58592c9c"] { max-width: 1200px !important; margin-left: auto !important; margin-right: auto !important; }
.elementor-element-6e7b80eb { flex: 1 1 auto !important; justify-content: center !important; gap: 34px !important; }
.elementor-element-6e7b80eb > * {
	text-transform: none !important; letter-spacing: 0 !important;
	font-size: 14.5px !important; font-weight: 500 !important;
}
@media (min-width: 900px) { .elementor-element-6e7b80eb { display: flex !important; } }
@media (max-width: 1100px) { [data-id="137007f0"] { display: none !important; } }
@media (min-width: 900px) and (max-width: 1180px) {
	.elementor-element-6e7b80eb { gap: 20px !important; }
	.elementor-element-6e7b80eb > * { font-size: 13px !important; }
	.elementor-element-5256458a { gap: 16px !important; }
	[data-id="14b128a1"] { font-size: 13px !important; padding-left: 20px !important; }
}
@media (max-width: 899px) {
	.elementor-element-5256458a { justify-content: space-between !important; gap: 14px !important; }
}
[data-id="14b128a1"] { background-color: #0E151C !important; color: #FFFFFF !important; }

/* ---------- FOOTER ---------- */
.elementor-element-7640fd03 { display: none !important; }

/* ---------- HOMEPAGE HERO ---------- */
.elementor-element-716774d9 { max-width: 1200px !important; margin-left: auto !important; margin-right: auto !important; }
[data-id="22684c3e"] { font-size: 96px !important; }
@media (max-width: 1024px) { [data-id="22684c3e"] { font-size: 60px !important; } }
@media (max-width: 767px)  { [data-id="22684c3e"] { font-size: 40px !important; } }

/* ---------- SECTION RHYTHM ---------- */
.elementor-element-1c0a0426,
.elementor-element-41c2b4f3,
.elementor-element-16e01afc,
.elementor-element-7a6a4d54,
.elementor-element-3b629bd4 { padding-top: 96px !important; padding-bottom: 96px !important; }
.elementor-element-41f52b6f { padding-top: 16px !important; padding-bottom: 56px !important; }
.elementor-element-1c0a0426 { padding-top: 44px !important; }
@media (max-width: 1024px) {
	.elementor-element-1c0a0426,
	.elementor-element-41c2b4f3,
	.elementor-element-16e01afc,
	.elementor-element-7a6a4d54,
	.elementor-element-3b629bd4 { padding-top: 72px !important; padding-bottom: 72px !important; }
	.elementor-element-1c0a0426 { padding-top: 36px !important; }
}
@media (max-width: 767px) {
	.elementor-element-1c0a0426,
	.elementor-element-41c2b4f3,
	.elementor-element-16e01afc,
	.elementor-element-7a6a4d54,
	.elementor-element-3b629bd4 { padding-top: 56px !important; padding-bottom: 56px !important; }
	.elementor-element-1c0a0426 { padding-top: 28px !important; }
}

/* ---------- 4-UP GRIDS HOLD LONGER ----------
   Elementor's tablet breakpoint dropped these to 2 columns while there was
   still plenty of width, leaving wide, squat tiles. Keep 4 across to 900px. */
@media (min-width: 900px) {
	.elementor-element-59af1489,
	.elementor-element-245d73b8,
	.elementor-element-7b65f9d3 {
		grid-template-columns: repeat(4, 1fr) !important;
		grid-template-rows: auto !important;
	}
}

/* ---------- INSET DARK CARDS ---------- */
.elementor-element-1c39adf1,
.elementor-element-71bd5320 { width: auto !important; }
.elementor-element-66515512, .elementor-element-21165e84 {
	max-width: 1200px !important; margin-left: auto !important; margin-right: auto !important;
	padding: 0 !important;
}

@media (max-width: 767px) {
	.elementor-element-5256458a { gap: 10px !important; }
	[data-id="14b128a1"] { font-size: 12px !important; padding-left: 16px !important; padding-right: 5px !important; }
}

/* ---------- ACCREDITATION MARQUEE ---------- */
@keyframes luxMarquee {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}
.elementor-element-ee33424 { animation: luxMarquee 34s linear infinite; will-change: transform; }
.elementor-element-ee33424:hover { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) { .elementor-element-ee33424 { animation: none !important; } }
/* will-change permanently promotes a wide layer. Worth it on desktop, but on
   phones it is memory the compositor does not need to hold. */
@media (max-width: 767px) { .elementor-element-ee33424 { will-change: auto; } }

/* ================= PRODUCT CARDS — WHOLE TILE CLICKABLE =================
   Each card contains one real link. Stretching that link across the card
   makes the image, title and whole tile clickable while keeping a single
   tab stop and one accessible name, rather than wrapping the image and
   heading in duplicate links.

   Two markup shapes exist across the site, so both are matched:
     a.lux-pcard-link            — button widget (most pages)
     p.lux-pcard-link > a        — paragraph with a link (Windows page)
   The overlay must only ever be attached to an <a>; putting it on the <p>
   covers the card with something that is not a link and eats every click.

   NOTE: nothing between the card and the link may be position:relative, or
   it becomes the containing block and the overlay shrinks to it. That is
   why .lux-pcard-body is forced position:static on its global class. */
.elementor .lux-pcard-media a.lux-pcard-link::after,
.elementor .lux-pcard-media .lux-pcard-link > a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
}

/* The stretched link is invisible, so surface keyboard focus on the card. */
.elementor .lux-pcard-media:focus-within {
	border-color: var(--lux-gold) !important;
	box-shadow: 0 0 0 3px rgba(197,155,39,0.28) !important;
}
.elementor .lux-pcard-media .lux-pcard-link a:focus-visible,
.elementor .lux-pcard-media a.lux-pcard-link:focus-visible { outline: none; }

/* Hover effects only where a real pointer exists. On touch, :hover fires on
   tap and sticks until you tap elsewhere, so cards lurch mid-scroll and the
   transform/scale forces repaints the phone does not need to do. */
@media (hover: hover) and (pointer: fine) {
	.elementor .lux-pcard-media .lux-pcard-img { transition: transform 0.5s ease; }
	.elementor .lux-pcard-media:hover .lux-pcard-title,
	.elementor .lux-pcard-media:hover .lux-pcard-link,
	.elementor .lux-pcard-media:hover .lux-pcard-link > a { color: var(--lux-gold); }
	.elementor .lux-pcard-media:hover .lux-pcard-img { transform: scale(1.04); }
}
@media (hover: none), (pointer: coarse) {
	.elementor .lux-pcard-media { transition: none !important; }
	.elementor .lux-pcard-media:hover { transform: none !important; box-shadow: none !important; }
}

@media (prefers-reduced-motion: reduce) {
	.elementor .lux-pcard-media,
	.elementor .lux-pcard-media .lux-pcard-img { transition: none !important; }
	.elementor .lux-pcard-media:hover { transform: none !important; }
	.elementor .lux-pcard-media:hover .lux-pcard-img { transform: none !important; }
}

/* ================= SCROLL REVEAL =================
   Held to tablet and up. On the homepage this drives 51 simultaneous
   scroll-timeline animations, which is what made phone scrolling feel
   glitchy. Desktop keeps the effect; phones get a clean scroll. */
@keyframes luxReveal {
	from { opacity: 0; translate: 0 32px; }
	to   { opacity: 1; translate: 0 0; }
}
@supports (animation-timeline: view()) {
	@media (prefers-reduced-motion: no-preference) and (min-width: 768px) {
		.elementor-element-7ad9e66 > *,
		.elementor-element-564a6470 > *:not(.elementor-element-52ef4e4c),
		.elementor-element-66515512 > *,
		.elementor-element-4f3a33f2 > *:not(.elementor-element-511c7557),
		.elementor-element-1c817d3e > *:not(.elementor-element-499db7f4),
		.elementor-element-77303b0c > *:not(.elementor-element-710a5a63),
		.elementor-element-21165e84 > *,
		.elementor-element-71a76e03 > *:not(.elementor-element-6f31fad),
		.elementor-element-7b65f9d3 > *,
		.elementor-element-52ef4e4c > *,
		.elementor-element-511c7557 > *,
		.elementor-element-499db7f4 > *,
		.elementor-element-69c63e26 > *,
		.elementor-element-710a5a63 > *,
		.elementor-element-6f31fad > *,
		.elementor-element-29bcb674 > *,
		.elementor-element-59af1489 > *,
		.elementor-element-34f86e15 > *:not(.elementor-element-245d73b8),
		.elementor-element-245d73b8 > *,
		.elementor-element-de93d08 > *:not(.elementor-element-3c8b7712),
		.elementor-element-3c8b7712 > *,
		.elementor-element-39692f49 > * {
			animation: luxReveal both;
			animation-timeline: view();
			animation-range: entry 0% entry 40%;
		}
		.elementor-element-52ef4e4c > *:nth-child(2),
		.elementor-element-511c7557 > *:nth-child(2),
		.elementor-element-499db7f4 > *:nth-child(2),
		.elementor-element-69c63e26 > *:nth-child(2),
		.elementor-element-7b65f9d3 > *:nth-child(2),
		.elementor-element-6f31fad > *:nth-child(2),
		.elementor-element-59af1489 > *:nth-child(2),
		.elementor-element-245d73b8 > *:nth-child(2),
		.elementor-element-3c8b7712 > *:nth-child(2),
		.elementor-element-39692f49 > *:nth-child(2) { animation-range: entry 5% entry 45%; }
		.elementor-element-52ef4e4c > *:nth-child(3),
		.elementor-element-511c7557 > *:nth-child(3),
		.elementor-element-499db7f4 > *:nth-child(3),
		.elementor-element-69c63e26 > *:nth-child(3),
		.elementor-element-7b65f9d3 > *:nth-child(3),
		.elementor-element-6f31fad > *:nth-child(3),
		.elementor-element-59af1489 > *:nth-child(3),
		.elementor-element-245d73b8 > *:nth-child(3),
		.elementor-element-3c8b7712 > *:nth-child(3),
		.elementor-element-39692f49 > *:nth-child(3) { animation-range: entry 10% entry 50%; }
		.elementor-element-52ef4e4c > *:nth-child(4),
		.elementor-element-511c7557 > *:nth-child(4),
		.elementor-element-69c63e26 > *:nth-child(4),
		.elementor-element-7b65f9d3 > *:nth-child(4),
		.elementor-element-6f31fad > *:nth-child(4),
		.elementor-element-59af1489 > *:nth-child(4),
		.elementor-element-245d73b8 > *:nth-child(4),
		.elementor-element-39692f49 > *:nth-child(4) { animation-range: entry 15% entry 55%; }
		.elementor-element-52ef4e4c > *:nth-child(n+5),
		.elementor-element-511c7557 > *:nth-child(n+5) { animation-range: entry 20% entry 60%; }
	}
}

/* Hero sits against the header. Astra adds 60px above the content from 1200px. */
@media (min-width: 1200px) {
	body.elementor-page.ast-plain-container.ast-no-sidebar #primary {
		margin-top: 0 !important;
	}
}/* End custom CSS */