.elementor-kit-7{--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-7 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 { --aes-red:#ED1C24; --aes-red-dark:#C4121A; --aes-red-soft:#FF9094; --aes-navy:#142F53; --aes-navy-dark:#0C1F39; --aes-on-navy:#C4D2E4; --aes-ink:#13181F; --aes-body:#3B434D; --aes-steel:#5B6270; --aes-line:#E6E9ED; --aes-paper:#F7F7FA; --aes-white:#FFFFFF; --aes-font-display:Montserrat; --aes-font-body:Inter; --aes-font-mono:JetBrains Mono; }
/* Start custom CSS *//* ===== AES custom CSS — things Elementor can't do natively. Keep this block. ===== */

/* Hero background slider: 3 stacked slides crossfade every 6s (18s loop).
   Slide 1 is always underneath; slides 2 and 3 carry the global classes below. */
@keyframes aesSlide2 { 0%, 28% { opacity: 0; } 34%, 94% { opacity: 1; } 100% { opacity: 0; } }
@keyframes aesSlide3 { 0%, 61% { opacity: 0; } 67%, 94% { opacity: 1; } 100% { opacity: 0; } }
.aes-hero-slide-2 { animation: aesSlide2 18s linear infinite; }
.aes-hero-slide-3 { animation: aesSlide3 18s linear infinite; }
@media (prefers-reduced-motion: reduce) { .aes-hero-slide-2, .aes-hero-slide-3 { animation: none; } }

/* Industries hover-expand gallery: first panel open; hovered panel grows, others collapse.
   Labels read vertically when collapsed, horizontally when open. Stacks on phones. */
.aes-hovex .aes-hx { flex-grow: 1; transition: flex-grow .55s cubic-bezier(.2,.8,.2,1); }
.aes-hovex .aes-hx:first-child { flex-grow: 3.4; }
.aes-hovex:hover .aes-hx { flex-grow: 1; }
.aes-hovex:hover .aes-hx:hover { flex-grow: 3.4; }
.aes-hx:hover .aes-hx-bg { transform: scale(1.05); }
.aes-hx-label { transform: translate(-50%, -50%) rotate(-90deg); transform-origin: center; transition: transform .5s cubic-bezier(.2,.8,.2,1); }
.aes-hovex .aes-hx:first-child .aes-hx-label,
.aes-hovex:hover .aes-hx:hover .aes-hx-label { transform: translate(-50%, -50%) rotate(0deg); }
.aes-hovex:hover .aes-hx:not(:hover) .aes-hx-label { transform: translate(-50%, -50%) rotate(-90deg); }
@media (max-width: 767px) {
  .aes-hovex .aes-hx { flex-grow: 1 !important; }
  .aes-hovex .aes-hx .aes-hx-label { transform: translate(-50%, -50%) rotate(0deg) !important; }
}

/* Border beam: a red light travelling around the edge of the "Why AES" panel. */
@property --aes-beam-a { syntax: '<angle>'; inherits: false; initial-value: 0deg; }
.aes-beam::before { content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1.6px; z-index: -1;
  background: conic-gradient(from var(--aes-beam-a), transparent 0 66%, var(--aes-red) 82%, #ff9a9e 92%, transparent 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude;
  animation: aesBeam 6s linear infinite; }
@keyframes aesBeam { to { --aes-beam-a: 360deg; } }

/* Numbered project list: the dot turns red on row hover. */
.aes-index-row:hover .aes-index-dot { background-color: var(--aes-red); transform: scale(1.25); }

/* FAQ: open question gets a red border and a filled red icon. */
.elementor details.aes-faq-item[open] { border-color: var(--aes-red); }
.elementor details.aes-faq-item .aes-faq-icon { transform: none; transition: background-color .25s, color .25s, transform .25s; }
.elementor details.aes-faq-item[open] .aes-faq-icon { background-color: var(--aes-red); color: #fff; transform: rotate(45deg); }

@media (prefers-reduced-motion: reduce) { .aes-beam::before { animation: none; } }

/* Marquee (PAI "Custom Fabrication"): the item row scrolls left forever; pauses on hover; edges fade.
   The row holds the items twice (second set named "loop copy") so the loop is seamless — edit both sets. */
.aes-marquee { -webkit-mask: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.aes-marquee-track { animation: aesMarquee 26s linear infinite; }
.aes-marquee:hover .aes-marquee-track { animation-play-state: paused; }
@keyframes aesMarquee { to { transform: translateX(-50%); } }
.aes-marquee-item::before { content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--aes-red); margin-right: 11px; vertical-align: middle; }
@media (prefers-reduced-motion: reduce) { .aes-marquee-track { animation: none; flex-wrap: wrap; } }

/* Homepage hero: 4 stacked slides crossfade every 6s (24s loop); slide 1 always underneath. */
@keyframes aesH4s2 { 0%, 21% { opacity: 0; } 25%, 96% { opacity: 1; } 100% { opacity: 0; } }
@keyframes aesH4s3 { 0%, 46% { opacity: 0; } 50%, 96% { opacity: 1; } 100% { opacity: 0; } }
@keyframes aesH4s4 { 0%, 71% { opacity: 0; } 75%, 96% { opacity: 1; } 100% { opacity: 0; } }
.aes-hero4-slide-2 { animation: aesH4s2 24s linear infinite; }
.aes-hero4-slide-3 { animation: aesH4s3 24s linear infinite; }
.aes-hero4-slide-4 { animation: aesH4s4 24s linear infinite; }
@media (prefers-reduced-motion: reduce) { .aes-hero4-slide-2, .aes-hero4-slide-3, .aes-hero4-slide-4 { animation: none; } }

/* Homepage cards: photo zooms slightly on hover (services + industries). */
.aes-zoom .aes-zoom-media img, .aes-zoom .aes-zoom-bg { transition: transform .4s; }
.aes-zoom:hover .aes-zoom-media img { transform: scale(1.05); }
.aes-zoom:hover .aes-zoom-bg { transform: scale(1.06); }/* End custom CSS */