/* Home page: one full-bleed stage, many expressive content surfaces.
 * Drupal content, headings, links, lists, images remain unchanged. */
.apx-site--front .apx-page-body{position:relative;isolation:isolate;max-width:none;margin-inline:auto;overflow:visible;padding-block:clamp(12px,1.8vw,24px) clamp(44px,4.7vw,72px);}
.apx-site--front .apx-front-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,3.5vw,48px);}
.apx-site--front .apx-front-section{position:relative;isolation:isolate;padding:clamp(22px,3vw,44px);border-radius:27px;overflow:hidden;border:1px solid #93dccc4b;background:linear-gradient(137deg,#122c3de8,#1b2843f2 53%,#20213ce8);box-shadow:0 18px 54px #0004,inset 0 1px #ffffff1d;}
.apx-site--front .apx-front-section:nth-child(2){border-color:#b6a5ff66;background:linear-gradient(140deg,#24223e,#212c49 57%,#17344b)}
.apx-site--front .apx-front-section:nth-child(3){border-color:#f8d18853;background:linear-gradient(140deg,#243044,#292b46 64%,#163844)}
.apx-site--front .apx-front-section:nth-child(4){border-color:#90e5b163;background:linear-gradient(140deg,#183645,#252b48 65%,#203445)}
/* The first two sections are open editorial stages: do not frame an image or
 * a grid of already-framed cards inside another panel. The later paired
 * sections retain their distinct dark/purple surfaces for visual rhythm. */
.apx-site--front .apx-front-section:nth-child(-n/**/+2){
  grid-column:1/-1;
  padding:clamp(16px,2vw,28px) clamp(14px,1.8vw,26px);
  border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible;
}
.apx-site--front .apx-front-section:nth-child(-n/**/+2)::before{content:none}
.apx-site--front .apx-front-section::before{content:"";position:absolute;right:-75px;top:-95px;width:310px;height:310px;border:1px solid #acefe53d;border-radius:50%;box-shadow:0 0 0 40px #96e3df0b,0 0 0 90px #9a8def0b;pointer-events:none;animation:apxFrontOrbit 24s linear infinite;}
.apx-site--front .apx-front-section__heading h2{font-size:clamp(28px,3.8vw,54px);margin:0 0 clamp(18px,2.2vw,30px);line-height:1.12;letter-spacing:-.055em;}
.apx-site--front .apx-front-section__heading{position:relative;z-index:1;}
.apx-site--front .apx-front-section__contents{position:relative;z-index:1;min-width:0;}
.apx-site--front .apx-front-section__contents>p{color:#d4e1ee;font-size:clamp(16px,1.18vw,18px);line-height:1.77;max-width:84ch;}
.apx-site--front .apx-front-overview{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:stretch;gap:0;overflow:hidden;border:1px solid #a9ddde76;border-radius:26px;background:linear-gradient(115deg,#03070c 0%,#0b1422 47%,#202641 70%,#133644);box-shadow:inset 0 1px #ffffff2a;position:relative;isolation:isolate;}
.apx-site--front .apx-front-overview__visual{position:relative;overflow:hidden;border-radius:0;height:100%;min-height:clamp(330px,35vw,510px);background:#03070c;border:0;box-shadow:none;}
.apx-site--front .apx-front-overview__visual picture{display:block;width:100%;height:100%;border:0;margin:0;background:transparent;overflow:hidden;}
.apx-site--front .apx-front-overview__visual img{display:block;width:100%;height:100%;max-height:none;object-fit:cover;object-position:center;background:transparent;}
.apx-site--front .apx-front-overview__graphic{position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 43%,#f5f3ff1b 51%,transparent 61%);background-size:250% 100%;animation:apxFrontShine 14s ease-in-out infinite;}
.apx-site--front .apx-front-overview__graphic>span{position:absolute;width:9px;height:9px;background:#ffe281;border-radius:50%;box-shadow:0 0 20px #ffe281aa;animation:apxFrontSpark 5s ease-in-out infinite alternate;}
.apx-site--front .apx-front-overview__graphic>span:nth-child(1){left:12%;top:19%;}
.apx-site--front .apx-front-overview__graphic>span:nth-child(2){right:16%;top:23%;background:#7cffe0;box-shadow:0 0 20px #7cffe0aa;animation-delay:-1.4s;}
.apx-site--front .apx-front-overview__graphic>span:nth-child(3){left:25%;bottom:13%;background:#b9abff;box-shadow:0 0 20px #b9abffaa;animation-delay:-2.5s;}
.apx-site--front .apx-front-overview__graphic>span:nth-child(4){right:14%;bottom:21%;animation-delay:-3s;}
.apx-site--front .apx-front-overview__copy{min-width:0;align-self:stretch;position:relative;isolation:isolate;overflow:hidden;border:0;border-left:1px solid #b5a4ff60;border-radius:0;padding:clamp(20px,2.5vw,38px);background:radial-gradient(ellipse at 88% 8%,#aa83ff23,transparent 48%),linear-gradient(135deg,#1b3044ed,#20263de8 56%,#193743ec);box-shadow:inset 0 1px #ffffff22;}
.apx-site--front .apx-front-overview__copy p{font-size:clamp(16px,1.2vw,18px);line-height:1.76;margin:0 0 14px;color:#d8e9f1;}
.apx-site--front .apx-front-overview__copy ul{display:grid;gap:9px;margin:0;padding:0;list-style:none;}
.apx-site--front .apx-front-overview__copy li{font-size:clamp(16px,1.17vw,18px);position:relative;border:1px solid #a1deda28;border-radius:12px;background:#ffffff0c;padding:12px 14px 12px 30px;line-height:1.6;color:#e9f4fa;}

.apx-site--front .apx-front-reasons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(12px,1.8vw,24px);margin-top:22px;}
.apx-site--front .apx-front-reason{transform-origin:center;position:relative;border:1px solid #a9cbec44;background:linear-gradient(138deg,#1d3548d9,#2b2b50c7);border-radius:20px;padding:clamp(18px,2vw,28px);transition:transform 1.1s cubic-bezier(.2,.8,.2,1),border-color 1.1s ease,box-shadow 1.1s ease;}
.apx-site--front .apx-front-reason:nth-child(even){background:linear-gradient(135deg,#302c4bcf,#173b45cc);}
.apx-site--front .apx-front-reason:hover{transform:perspective(1200px) rotateX(var(--apx-tilt-x,0deg)) rotateY(var(--apx-tilt-y,0deg)) scale(1.008);border-color:#9cf6e5aa;box-shadow:0 20px 50px #0005,0 0 30px #8beedd17;}
.apx-site--front .apx-front-reason__glyph{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#ffd46a1c;border:1px solid #ffe18c6b;color:#ffe68e;font:850 13px/1 ui-monospace,Consolas,monospace;letter-spacing:.1em;}
.apx-site--front .apx-front-reason h3{font-size:clamp(21px,2vw,29px);margin:16px 0 9px;color:#ffe484;}
.apx-site--front .apx-front-reason p{margin:0;color:#dde9f3;font-size:clamp(16px,1.18vw,18px);line-height:1.75;}
.apx-site--front .apx-front-section--3 :is(p,ul),.apx-site--front .apx-front-section--4 :is(p,ul){max-width:92ch;font-size:clamp(16px,1.18vw,18px);}
.apx-site--front .apx-front-section a{color:#a3fff1;text-decoration-color:#81e6d8;transition:color .6s ease,text-decoration-color .6s ease;}
.apx-site--front .apx-front-section a:hover{color:#ffe48d;text-decoration-color:#ffe48d;}
@keyframes apxFrontOrbit{to{transform:rotate(360deg)}}
@keyframes apxFrontShine{0%{background-position:140% 50%}100%{background-position:-120% 50%}}
@keyframes apxFrontSpark{50%{opacity:.4;transform:translateY(9px) scale(.78)}}
@media(max-width:940px){.apx-site--front .apx-front-overview{grid-template-columns:1fr}.apx-site--front .apx-front-overview__copy{border-left:0;border-top:1px solid #b5a4ff65}.apx-site--front .apx-front-overview__visual{height:360px;min-height:0}}
@media(max-width:680px){.apx-site--front .apx-front-overview__copy,.apx-site--front .apx-front-company__text{padding:19px}.apx-site--front .apx-front-reasons{grid-template-columns:1fr}.apx-site--front .apx-front-section{padding:20px;border-radius:20px}.apx-site--front .apx-front-overview__visual{height:250px;min-height:0}}
@media(prefers-reduced-motion:reduce){.apx-site--front :is(.apx-front-section::before,.apx-front-overview__visual img,.apx-front-overview__graphic,.apx-front-overview__graphic>span){animation:none}.apx-site--front .apx-front-reason,.apx-site--front .apx-front-reason:is(:hover,:focus-within){transition:none;transform:none}}

/* Main-page editorial composition: original Drupal content, no floats. */
.apx-site--front .apx-additional{
  background:transparent;box-shadow:none;border:0;
  width:min(calc(100% - var(--apx-gap)*2),var(--apx-width));
  max-width:var(--apx-width);margin:0 auto;
  padding:clamp(24px,2.6vw,40px) 0 clamp(44px,4vw,66px);
  display:block;clear:both;isolation:isolate;
}
.apx-site--front .apx-front-company{
  display:grid;grid-template-columns:minmax(270px,.87fr) minmax(0,1.13fr);
  gap:0;align-items:stretch;
  padding:0;
  border:1px solid #b2d8e075;border-radius:26px;
  background:linear-gradient(110deg,#03070c 0%,#0c1625 45%,#282644 70%,#143846);
  box-shadow:0 29px 95px #0009,inset 0 1px #ffffff29;
  position:relative;overflow:hidden;isolation:isolate;clear:both;
}
.apx-site--front .apx-front-company::before{
  content:"";position:absolute;inset:-40%;z-index:-1;pointer-events:none;
  background:radial-gradient(circle at 12% 72%,#90fde51a,transparent 33%),radial-gradient(circle at 84% 17%,#aa88ff23,transparent 34%);
  animation:apxFrontAtmosphere 22s ease-in-out infinite alternate;
}
.apx-site--front .apx-front-company__media{
  position:relative;min-width:0;min-height:clamp(310px,30vw,490px);
  height:100%;display:grid;place-items:center;
  --apx-photo-glow-a:#32dcd730;--apx-photo-glow-b:#a681ff26;
  border:0;border-radius:0;overflow:hidden;
  background:#03070c;
  box-shadow:none;
}
.apx-site--front .apx-front-company__media picture{
  width:100%;height:100%;display:flex;align-items:center;justify-content:center;
  overflow:hidden;position:relative;z-index:1;margin:0;float:none;
}
.apx-site--front .apx-front-company__media img{
  display:block;float:none;margin:0 auto;
  width:100%;height:100%;max-width:none;max-height:none;
  object-fit:cover;object-position:center;

}
.apx-site--front .apx-front-company__circuit{position:absolute;inset:0;pointer-events:none;z-index:2;
 background:linear-gradient(112deg,transparent 43%,#e2fff613 50%,transparent 59%);background-size:220% 100%;animation:apxFrontShine 16s linear infinite}
.apx-site--front .apx-front-company__circuit>i{position:absolute;width:9px;height:9px;background:#ffe390;border-radius:50%;box-shadow:0 0 19px #ffe39099;animation:apxFrontSpark 6s ease-in-out infinite alternate}
.apx-site--front .apx-front-company__circuit>i:nth-child(1){left:12%;top:16%}
.apx-site--front .apx-front-company__circuit>i:nth-child(2){right:11%;top:29%;background:#7afce4;box-shadow:0 0 19px #7afce499;animation-delay:-2s}
.apx-site--front .apx-front-company__circuit>i:nth-child(3){left:25%;bottom:15%;background:#a69cff;box-shadow:0 0 19px #a69cff99;animation-delay:-3s}
.apx-site--front .apx-front-company__circuit>i:nth-child(4){right:22%;bottom:20%;animation-delay:-4s}
.apx-site--front .apx-front-company__circuit>i:nth-child(5){left:50%;top:8%;background:#83ffe4;animation-delay:-1.5s}
.apx-site--front .apx-front-company__text{min-width:0;max-width:100%;position:relative;z-index:2;overflow:hidden;padding:clamp(22px,3vw,43px);border:0;border-left:1px solid #b3a4ff65;border-radius:0;background:radial-gradient(ellipse at 82% 14%,#886dff23,transparent 52%),linear-gradient(145deg,#152b40ed,#222741ef 65%,#173345eb);box-shadow:inset 0 1px #ffffff27}
.apx-site--front .apx-front-company__eyebrow{display:inline-flex;gap:9px;align-items:center;color:#81fbe5;letter-spacing:.2em;font:850 11px/1.5 ui-monospace,SFMono-Regular,monospace;margin:0 0 18px}
.apx-site--front .apx-front-company__eyebrow::before{content:"";width:8px;height:8px;border-radius:50%;background:#ffe18b;box-shadow:0 0 14px #ffe18b80}
.apx-site--front .apx-front-company__text h1,
.apx-site--front .apx-front-company__text h2{text-align:left;letter-spacing:-.045em;line-height:1.12}
.apx-site--front .apx-front-company__text h1{font-size:clamp(29px,3vw,49px);color:#fff;margin:0 0 10px}
.apx-site--front .apx-front-company__text h2{font-size:clamp(20px,2vw,31px);color:#ffe08a;margin:0 0 21px}
.apx-site--front .apx-front-company__text p{font-size:clamp(16px,1.2vw,18px);line-height:1.76;color:#d8e5f1;margin:0 0 13px}
.apx-site--front .apx-front-company__text ul{display:grid;list-style:none;padding:0;margin:16px 0;gap:7px}
.apx-site--front .apx-front-company__text li{position:relative;margin:0;padding:10px 13px 10px 30px;
 color:#e7f3fb;line-height:1.5;border:1px solid #83e8d52c;border-radius:11px;background:#ffffff09;
 }


.apx-site--front .apx-front-company__actions{margin-top:22px;display:flex;flex-wrap:wrap;gap:13px}
.apx-site--front .apx-front-company__cta{display:inline-flex;align-items:center;gap:15px;justify-content:center;
 padding:14px 20px;border-radius:12px;background:#ffe18a;color:#0e2131;text-decoration:none;font-weight:850;
 box-shadow:0 10px 30px #ffe18a20;transition:transform .85s cubic-bezier(.2,.82,.2,1),box-shadow .85s ease,background-color .85s ease}
.apx-site--front .apx-front-company__cta:hover{transform:translateY(-4px);background:#fff0bd;box-shadow:0 16px 36px #ffe18a35}
/* The related area now follows the actual block height instead of a stray float. */
.apx-site--front .apx-related{display:block;width:100%;clear:both;margin:0;float:none}
.apx-site--front .apx-related>.apx-container{width:min(calc(100% - var(--apx-gap)*2),var(--apx-width));margin-inline:auto}
@keyframes apxFrontAtmosphere{from{transform:translate3d(-3%,2%,0)}to{transform:translate3d(3%,-2%,0)}}
@media(max-width:960px){.apx-site--front .apx-front-company{grid-template-columns:1fr}.apx-site--front .apx-front-company__text{border-left:0;border-top:1px solid #b3a4ff65}.apx-site--front .apx-front-company__media{height:360px;min-height:280px}.apx-site--front .apx-front-company__text h1{font-size:clamp(30px,5vw,46px)}}
@media(max-width:620px){.apx-site--front .apx-front-company{padding:0;gap:0;border-radius:20px}.apx-site--front .apx-front-company__media{height:290px;min-height:250px}.apx-site--front .apx-additional{padding:24px 0 44px}}
@media(prefers-reduced-motion:reduce){.apx-site--front .apx-front-company::before,.apx-site--front .apx-front-company__media img,.apx-site--front .apx-front-company__circuit,.apx-site--front .apx-front-company__circuit>i{animation:none}}

/* Shared homepage finishing stays in this component, not in later override patches. */
.apx-site--front .apx-header{border-bottom:0}
.apx-site--front .apx-front-section:nth-child(n/**/+3){
  min-width:0;
  transition:transform 1.05s cubic-bezier(.16,.85,.2,1),border-color 1s ease,box-shadow 1.05s ease;
}
.apx-site--front .apx-front-section:nth-child(n/**/+3) .apx-front-section__heading h2{font-size:clamp(25px,2.6vw,38px)}
.apx-site--front .apx-front-section:nth-child(n/**/+3) .apx-front-section__contents{min-width:0}
.apx-site--front .apx-front-reason__glyph svg{width:24px;height:24px;display:block}
.apx-site--front .apx-additional #block-aplike-main{background:transparent;box-shadow:none;border:0}
/* Preserve original dark-source pixels at full contrast. Fade only the
 * picture edges into a near-black field; screen blending washed the artwork
 * out against colored containers. Full Drupal image sources are unchanged. */
.apx-site--front :is(.apx-front-overview__visual,.apx-front-company__media){
 isolation:isolate;overflow:hidden;
 background:#03070c;
}
.apx-site--front :is(.apx-front-overview__visual,.apx-front-company__media)::before{
  content:"";position:absolute;inset:-5%;z-index:0;pointer-events:none;border-radius:50%;
 background:radial-gradient(ellipse 61% 55% at 47% 52%,var(--apx-photo-glow-a,#58e9d724),var(--apx-photo-glow-b,#8c7bf015) 44%,transparent 79%);
 animation:apxFrontMediaBreath 18s ease-in-out infinite alternate;
  transition:opacity 2.4s cubic-bezier(.16,.72,.2,1);
}
.apx-site--front :is(.apx-front-overview__visual,.apx-front-company__media) picture{
 position:absolute;inset:0;width:100%;height:100%;z-index:1;overflow:hidden;
 mix-blend-mode:normal;
 -webkit-mask-image:none;
 mask-image:none;
 opacity:1;filter:none;
 transition:opacity 2.5s cubic-bezier(.14,.65,.23,1),filter 2.5s cubic-bezier(.14,.65,.23,1),transform 2.5s cubic-bezier(.14,.65,.23,1);
}
.apx-site--front :is(.apx-front-overview__visual,.apx-front-company__media) picture.apx-front-media--pending{
 opacity:.11;filter:brightness(.33) blur(8px);transform:scale(.965);
}
.apx-site--front :is(.apx-front-overview__visual,.apx-front-company__media) picture.apx-front-media--visible{
 opacity:1;filter:brightness(1) blur(0);transform:scale(1);
}
.apx-site--front :is(.apx-front-overview__visual,.apx-front-company__media) img{
 mix-blend-mode:normal;animation:none;
 width:100%;height:100%;max-width:none;max-height:none;
 object-fit:cover;object-position:center;
 transform:scale(1);
 transform-origin:center;
 filter:brightness(1.01) saturate(1.08) contrast(1.04);
 transition:transform 1.55s cubic-bezier(.18,.8,.22,1),filter 1.1s ease;
}
@media(hover:hover) and (pointer:fine){
 .apx-site--front :is(.apx-front-overview__visual,.apx-front-company__media):hover img{
   transform:scale(1.115);
   filter:brightness(1.075) saturate(1.12) contrast(1.04);
 }
}
.apx-site--front :is(.apx-front-overview__visual,.apx-front-company__media)::after{
 content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
 background:none;
}
/* The photograph and its background illumination enter together. Ambient
 * movement waits for a genuinely visible and loaded image; motion is still
 * preserved for visitors who scroll back through the section. */
.apx-site--front :is(.apx-front-overview__visual,.apx-front-company__media):has(>picture.apx-front-media--pending)::before{
 opacity:.16;animation-play-state:paused;
}

.apx-site--front :is(.apx-front-overview__visual,.apx-front-company__media) picture.apx-front-media--pending img{
 animation-play-state:paused;
}
.apx-site--front :is(.apx-front-overview__visual,.apx-front-company__media) picture.apx-front-media--visible img{
 animation-play-state:running;
}
@keyframes apxFrontMediaBreath{
 from{opacity:.7;transform:scale(.94) translateY(5px)}
 to{opacity:1;transform:scale(1.06) translateY(-7px)}
}
@media(prefers-reduced-motion:reduce){
 .apx-site--front :is(.apx-front-overview__visual,.apx-front-company__media) picture{
  opacity:1;filter:none;transform:none;transition:none;
 }
 .apx-site--front :is(.apx-front-overview__visual,.apx-front-company__media)::before{animation:none}
}
@media(max-width:920px){.apx-site--front .apx-front-sections{grid-template-columns:1fr}.apx-site--front .apx-front-section{grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){.apx-site--front .apx-front-overview__visual img,.apx-site--front .apx-front-company__media img{animation:none}}

/* Keep visible, restrained motion on homepage cards without masking the Drupal content. */

.apx-site--front .apx-front-section:nth-child(n/**/+3):hover{transform:translateY(-5px);border-color:#a4fae287;box-shadow:0 26px 64px #0007,0 0 22px #82eed71d,inset 0 1px #ffffff25}
@media(prefers-reduced-motion:reduce){.apx-site--front .apx-front-section{transform:none;transition:none}}




/* Hovering desktop reasons benefits from one promoted transform layer. */
@media screen and (min-width:1121px) and (prefers-reduced-motion:no-preference){
  .apx-site--front .apx-front-reason{will-change:transform}
}
