/* Unified Drupal-authored picture + complete announcement.
 * Normal pages: vertical image first, full-width copy second.
 * Only /about-us retains its existing side-by-side desktop composition.
 * Home and Contacts use their own independent components. */
.apx-site:not(.apx-site--front) .apx-intro-scene {
  --apx-intro-accent:var(--hub-a,#86e7de);
  position:relative;isolation:isolate;overflow:hidden;display:grid;
  grid-template-columns:minmax(0,1fr);gap:0;align-items:start;
  margin:0 0 clamp(24px,3vw,45px);padding:0;
  border:1px solid color-mix(in srgb,var(--apx-intro-accent) 48%,#b4adff 20%);
  border-radius:clamp(18px,2vw,25px);
  background:var(--apx-intro-surface,linear-gradient(130deg,#12273a,#242a45 62%,#173943));
  box-shadow:0 22px 65px #0007,inset 0 1px #ffffff20;
}
.apx-site:not(.apx-site--front) .apx-intro-scene::before {
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:var(--apx-intro-light,radial-gradient(ellipse 60% 45% at 90% 86%,#b398ff16,transparent 78%));
  animation:apxIntroOpenGlow 22s ease-in-out infinite alternate;
}
.apx-site:not(.apx-site--front) .apx-intro-scene::after {content:none}
@keyframes apxIntroOpenGlow{from{opacity:.56}to{opacity:1}}
/* Original Drupal responsive image, no synthetic overlay or color blending. */
.apx-site:not(.apx-site--front) .apx-intro-scene__visual {
  position:relative;z-index:1;width:100%;min-width:0;min-height:0;
  aspect-ratio:40/21;display:grid;place-items:center;
  overflow:hidden;isolation:isolate;border:0;background:#03070c;
}
.apx-site:not(.apx-site--front) .apx-intro-scene__visual picture {
  position:absolute;inset:0;display:block;z-index:1;
  width:100%;height:100%;margin:0;overflow:hidden;
  background:transparent;mix-blend-mode:normal;
  animation:apxGlobalImageDrift 18s ease-in-out infinite alternate;
}
.apx-site:not(.apx-site--front) .apx-intro-scene__visual img {
  display:block;width:100%;height:100%;max-width:none;
  object-fit:contain;object-position:center;background:transparent;
  filter:brightness(1.01) saturate(1.06) contrast(1.03);
  transition:filter 1.85s ease;
  transform-origin:center;
}
@keyframes apxGlobalImageDrift{from{transform:scale(1.006)}to{transform:scale(1.025)}}
.apx-site:not(.apx-site--front) .apx-intro-scene__visual::after {content:none}
.apx-site:not(.apx-site--front) .apx-intro-scene__copy {
  position:relative;z-index:1;min-width:0;align-self:stretch;
  padding:clamp(24px,3.6vw,48px);
  border:0;border-top:1px solid #b1aaff4b;
  background:radial-gradient(ellipse 70% 100% at 100% 0%,#9c86e617,transparent 75%),
    linear-gradient(125deg,#1d3043ee,#222a44ed 62%,#183c42ed);
  color:#f3f6ff;font-size:clamp(16px,1.26vw,19px);line-height:1.76;
}
.apx-site:not(.apx-site--front) .apx-intro-scene__copy p {margin:0 0 1em}
.apx-site--hub .apx-intro-scene{--apx-intro-accent:var(--hub-a,#86e7de)}
/* /about-us remains side by side on desktop, as approved. */
@media(min-width:1101px){
 .apx-site.apx-site--about .apx-intro-scene{grid-template-columns:minmax(0,1.03fr) minmax(0,.97fr);align-items:stretch}
 .apx-site.apx-site--about .apx-intro-scene__visual{aspect-ratio:auto;min-height:280px}
 .apx-site.apx-site--about .apx-intro-scene__visual img{object-fit:cover}
 .apx-site.apx-site--about .apx-intro-scene__copy{border-top:0;border-left:1px solid #b1aaff4b}
}
@media(max-width:670px){
 .apx-site:not(.apx-site--front) .apx-intro-scene__copy{padding:clamp(20px,5vw,28px)}
}
/* The source picture also creates a halo behind itself. The blurred copy
 * contributes light only; never paint its WebP black pixels onto the scene. */
.apx-site :is(.apx-front-overview__visual,.apx-front-company__media,.apx-services-overview__visual){isolation:isolate}
.apx-site .apx-photo-ambient {
  position:absolute;inset:-14%;display:block;z-index:0;pointer-events:none;
  background-position:center;background-size:cover;background-repeat:no-repeat;
  opacity:.46;mix-blend-mode:normal;filter:blur(40px) saturate(1.18) brightness(.98);
  transform:scale(1.13);transition:opacity 2s ease;
}
.apx-site :is(.apx-front-overview__visual,.apx-front-company__media,.apx-services-overview__visual)>:is(picture,img){position:relative;z-index:1}
.apx-site--services .apx-services-overview__visual>picture{position:absolute;z-index:1}
.apx-site--services :is(.apx-services-overview__grid,.apx-services-overview__chips){z-index:2}
.apx-site--front :is(.apx-front-overview__graphic,.apx-front-company__circuit){z-index:2}
.apx-site--services .apx-services-overview__visual{
  background:radial-gradient(ellipse 58% 64% at 50% 50%,#162a3754,transparent 72%),radial-gradient(ellipse 84% 94% at 50% 50%,#09111a 0%,#04080c 64%,#020305 100%);
}
.apx-site--services .apx-services-overview__visual img,
.apx-site--front .apx-front-overview__visual img,
.apx-site--front .apx-front-company__media img{mix-blend-mode:normal}
@media(prefers-reduced-motion:reduce){
 .apx-site:not(.apx-site--front) .apx-intro-scene::before,
 .apx-site:not(.apx-site--front) .apx-intro-scene__visual picture,
 .apx-site:not(.apx-site--front) .apx-intro-scene__visual::after,
 .apx-site:not(.apx-site--front) .apx-intro-scene__visual img {animation:none;transition:none;transform:none}
 .apx-site:not(.apx-site--front) .apx-intro-scene__visual::after{opacity:0}
 .apx-site .apx-photo-ambient{transition:none}
 .apx-site--front .apx-front-overview__visual img,.apx-site--front .apx-front-company__media img{animation:none}
}

@media(max-width:1120px){
  .apx-site:not(.apx-site--front) .apx-intro-scene__visual picture{animation:none}
}
