/* Aplike foundations: tokens, typography, global layout, accessible defaults. */
:root{--apx-bg:#080b13;--apx-ink:#f6f7ff;--apx-mint:#72f0d2;--apx-gold:#FFD700;--apx-rose:#fb526e;--apx-ease:cubic-bezier(.16,1,.3,1);--apx-width:1360px;--apx-gap:clamp(22px,4.4vw,72px);font-synthesis:none}
html{scroll-behavior:smooth;scroll-padding-top:112px}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--apx-bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;color:var(--apx-ink);font-synthesis:none;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
a{color:inherit}
button{cursor:pointer}
img,picture,video{max-width:100%}
img{height:auto}
::selection{color:#0b1320;background:var(--apx-mint)}
:focus-visible{outline:3px solid var(--apx-gold);outline-offset:4px}
.apx-site{background:#080b13;overflow-x:clip;cursor:default}
.apx-container{width:min(calc(100% - var(--apx-gap)*2),var(--apx-width));margin-inline:auto}

.apx-site .visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.apx-site a{text-decoration-thickness:1px;text-underline-offset:4px}
.apx-site button{color:inherit}
.apx-eyebrow{font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--apx-mint)}
.apx-blink{display:inline-block;width:7px;height:7px;margin-right:10px;border-radius:50%;background:var(--apx-mint);box-shadow:0 0 20px var(--apx-mint);animation:apxPulse 2.8s ease-in-out infinite}
.apx-mark{color:var(--apx-gold)}
@keyframes apxPulse{50%{opacity:.35;transform:scale(.76)}}

/* Shared interface primitives. Component-specific interactions live in the motion library. */
.apx-crumb{padding-top:16px;padding-bottom:11px;color:#b9cbd9;min-width:0}
.apx-crumb ol{display:flex;align-items:center;flex-wrap:wrap;column-gap:9px;row-gap:7px;list-style:none;padding:0;margin:0;font-size:clamp(12px,.95vw,14px);line-height:1.5}
.apx-crumb li{margin:0;min-width:0;overflow-wrap:anywhere}
.apx-crumb li+li::before{content:"/";padding-right:9px;color:#81d5c1aa;font-size:.9em}
.apx-crumb a{text-decoration:none;color:#8cebd7;font-weight:650;text-underline-offset:4px}
.apx-crumb a:focus-visible{outline:2px solid #ffe184;outline-offset:4px;border-radius:3px}

/* Drupal system message fallback. */
.apx-system-messages{padding-top:0}
.apx-system-messages:has(> :not(.hidden)){padding-top:12px}
.apx-hero{min-height:clamp(470px,54vw,650px);position:relative;isolation:isolate;overflow:hidden;background:transparent}
.apx-hero__mesh{
  position:absolute;background-image:linear-gradient(#ffffff09 1px,transparent 1px),linear-gradient(90deg,#ffffff09 1px,transparent 1px);background-size:52px 52px;mask-image:linear-gradient(90deg,transparent 25%,#000 80%);animation:apxMesh 25s linear infinite;z-index:-1;
  inset:-52px;
}
.apx-hero__grid{display:grid;grid-template-columns:minmax(0,1.22fr) minmax(0,.78fr);column-gap:clamp(22px,3.3vw,64px);align-items:center;min-height:clamp(445px,42vw,598px)}
.apx-hero__copy{z-index:2;min-width:0;max-width:840px;padding-block:clamp(58px,7.5vw,102px)}
.apx-hero__copy h1{font-size:clamp(49px,5.7vw,91px);letter-spacing:-.061em;line-height:1.045;font-weight:790;margin:24px 0 32px;max-width:15ch;text-wrap:balance;overflow-wrap:normal;color:#f8fafc}
.apx-hero__actions{display:flex;gap:13px;flex-wrap:wrap}
.apx-button{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;text-decoration:none;font-size:13px;font-weight:820;padding:18px 26px;border-radius:9px;transition:transform .3s var(--apx-ease),box-shadow .3s,background .3s}
.apx-button--primary{background:var(--apx-gold);color:#16190f;box-shadow:0 12px 50px rgba(245,202,64,.1)}
.apx-button--primary:hover{background:#ffed9b;transform:scale(1.012);box-shadow:0 17px 46px #ffd84a4b}
.apx-button--ghost{border:1px solid #667d93;background:#14223965;color:#f9fbff}
.apx-button--ghost:hover{border-color:var(--apx-mint);background:#193246;transform:scale(1.008)}
/* Keep the clickable hero CTA hitbox stable and motion preference respected. */
@media(prefers-reduced-motion:reduce){
 .apx-button:is(:hover,:focus-visible){transform:none;transition:none}
}
.apx-hero__media{min-width:0;height:clamp(370px,39vw,540px);position:relative;display:grid;place-items:center;filter:drop-shadow(0 18px 50px #7d50c855);pointer-events:none}
.apx-hero__orb{position:absolute;width:min(76%,410px);aspect-ratio:1;border-radius:26%;background:radial-gradient(circle at 35% 27%,#3bc3bd98,transparent 23%),radial-gradient(circle at 75% 80%,#97326d99,transparent 32%),linear-gradient(130deg,#132749,#101728);transform:rotate(-15deg);border:1px solid #a6c7ff55;box-shadow:inset 0 0 70px #74e6d71b,0 0 100px #263c79a1;animation:apxFloat 7s ease-in-out infinite}
.apx-hero__orb::before{content:"";position:absolute;inset:10%;border:1px solid #a6f3e646;border-radius:20%;background:repeating-linear-gradient(0deg,transparent 0 16px,#ffffff06 17px 18px)}
.apx-hero__glyph{font-size:clamp(50px,7vw,115px);font-weight:800;letter-spacing:-.12em;color:#95f6e6;text-shadow:0 0 50px #4eeadf88;transform:rotate(-15deg);z-index:1}
.apx-hero__orbit{position:absolute;border:1px solid #76e1d633;border-radius:50%;aspect-ratio:1;animation:apxOrbit 25s linear infinite}
.apx-hero__orbit--one{width:80%}
.apx-hero__orbit--two{width:106%;border-style:dashed;border-color:#c5a5fa29;animation-duration:39s;animation-direction:reverse}
.apx-hero__node{position:absolute;width:11px;height:11px;border-radius:50%;background:var(--apx-gold);box-shadow:0 0 25px currentColor}
.apx-hero__node--a{top:15%;right:19%;color:var(--apx-gold)}
.apx-hero__node--b{bottom:17%;left:16%;background:var(--apx-mint);color:var(--apx-mint)}
.apx-hero__node--c{top:25%;left:10%;background:var(--apx-rose);color:var(--apx-rose)}
.apx-hero__foot{
  border-top:1px solid #ffffff20;justify-content:space-between;min-height:65px;font-size:10px;letter-spacing:.14em;font-weight:650;color:#92a4b7;
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:12px;
}
.apx-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(360px circle at var(--cursor-x,75%) var(--cursor-y,45%),#5ce9db20,transparent 85%);z-index:0;pointer-events:none}
.apx-hero__copy,.apx-hero__media{position:relative}
.apx-hero__media::before{content:"";position:absolute;inset:10%;border-radius:50%;background:conic-gradient(from 40deg,#7af1dc00,#7af1dc24,#d464bb00,#e2c46f2b,#7af1dc00);filter:blur(45px);animation:apxAurora 20s linear infinite}

/* From content.css; only unrelated rules kept. */
.apx-section-intro{display:grid;grid-template-columns:1.1fr .9fr;align-items:end;gap:40px;margin-bottom:46px}
.apx-section-intro .apx-eyebrow{grid-column:1/-1;margin:0 0 -24px}
.apx-section-intro h2{font-size:clamp(39px,5vw,76px);line-height:1.09;letter-spacing:-.06em;margin:0;max-width:720px;font-weight:780}
.apx-section-intro>p{margin:0;max-width:410px;color:#a9b7cb;line-height:1.85;font-size:16px}
/* The Drupal-editable story summary is a designed introduction, not an
   unframed grey Word paragraph. No text is duplicated or rewritten. */
.apx-site:is(.apx-site--service,.apx-site--hub) .apx-service-story .apx-section-intro>p:not(.apx-editorial-signal){
  position:relative;isolation:isolate;width:100%;max-width:510px;
  padding:18px 23px 18px 25px;border-left:2px solid #86f4df;
  border-radius:0 13px 13px 0;
  background:linear-gradient(95deg,#6cdbcc15,#a7bdff0b 76%,transparent);
  box-shadow:inset 0 1px #a4fff010;
  font-size:clamp(14px,1.12vw,17px);font-weight:540;line-height:1.7;
  color:#dceaf5;text-wrap:pretty;
}
.apx-site:is(.apx-site--service,.apx-site--hub) .apx-service-story .apx-section-intro>p:not(.apx-editorial-signal)::before{
  content:"";position:absolute;left:-3px;top:10px;height:24px;width:4px;border-radius:3px;
  background:linear-gradient(#ffe19b,#83ffe6);box-shadow:0 0 13px #7df8e45a;
}
.apx-page-body{
  padding-block:clamp(54px,7vw,110px);
  position:relative;isolation:isolate;background:transparent;
}
.apx-prose{font-size:clamp(15px,1.1vw,17px);color:#d8e1ee;line-height:1.88;overflow-wrap:anywhere}
.apx-prose :where(p){line-height:1.9}
.apx-prose :where(h2,h3,h4,h5,h6){color:#f6f8fc;letter-spacing:-.035em;line-height:1.2;text-wrap:balance;scroll-margin-top:105px}
.apx-prose h2{font-size:clamp(26px,3vw,46px);margin:48px 0 21px}
.apx-prose h3{font-size:clamp(22px,2.1vw,30px);margin:35px 0 13px}
.apx-prose h4{font-size:20px;margin:28px 0 12px}
.apx-prose strong{font-weight:775;color:#fff}
.apx-prose em{color:#c6d4e5}
.apx-prose a:hover{color:#fff}
.apx-prose :where(p,ul,ol,blockquote,pre,table){margin-block:0 22px}
.apx-prose :where(ul,ol){padding-left:0;list-style:none}
.apx-prose :where(blockquote){padding:30px 35px;border-left:3px solid var(--apx-gold);border-radius:0 14px 14px 0;background:linear-gradient(100deg,#2e3548,#151c2b);font-size:1.2em}
.apx-prose :where(pre){position:relative;max-width:100%;overflow-x:auto;border-radius:14px;padding:26px;background:#070c18;border:1px solid #617d9d4d;box-shadow:inset 0 1px #ffffff15}
.apx-prose :where(code){font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.9em;color:#e8c98b;background:#142638;padding:2px 6px;border-radius:4px}
.apx-prose pre code{background:none;padding:0;color:#b8fbe8}
.apx-prose :where(table){width:100%;max-width:100%;border-collapse:collapse;display:block;overflow-x:auto;font-size:14px}
.apx-prose :where(th,td){padding:13px 16px;text-align:left;white-space:normal;border-bottom:1px solid #61738e4d}
.apx-prose :where(th){color:#fce59a;background:#192337}
.apx-prose :where(tr:nth-child(even)){background:#ffffff05}
.apx-prose hr{border:0;border-top:1px solid #ffffff30;margin:40px 0}
.apx-prose picture,.apx-prose>div picture,.apx-prose img{display:block}
.apx-prose picture{background:#01040c;border-radius:18px;overflow:hidden;border:1px solid #7ba4b344;margin-bottom:28px}
.apx-prose picture img{display:block;width:100%;height:auto;object-fit:contain;margin:auto;max-height:650px}
.apx-prose img{border-radius:inherit}
.apx-prose .paragraph--type--faq{margin-block:10px}


.apx-additional:empty{display:none}
.apx-standalone-price{padding:45px;background:#f3dfae;color:#151926;border-radius:15px}
.apx-standalone-price a{color:#17213c}

/* From motion.css; only unrelated rules kept. */

@keyframes apxFloat{50%{transform:rotate(-11deg) translateY(-17px)}}
@keyframes apxOrbit{to{transform:rotate(360deg)}}
@keyframes apxAurora{to{transform:rotate(360deg)}}

.apx-card-tilt{transition:transform .4s var(--apx-ease),box-shadow .4s var(--apx-ease)}
@media (hover:hover){
.apx-card-tilt:hover{box-shadow:0 18px 64px #0006,0 0 30px #73ebd51a}
}
/* Scroll viewport owns browser navigation; motion preferences apply to html,
   not just the nested Drupal theme root. Keep this rule near its owner. */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  /* Component rules also expose reduced-motion options at their own source.
     The global preference is a fallback without exceptional cascade priority. */
  .apx-site,.apx-site *,.apx-site *::before,.apx-site *::after{
    animation:none;
    transition-duration:.001ms;
    scroll-behavior:auto;
  }
}
@media(max-width:1120px){html{scroll-behavior:auto}}
/* The content container must never paint a rectangular sheet over the scene. */


.apx-additional{
  position:relative;isolation:isolate;
  padding-block:14px 20px;
}

@keyframes apxMesh{to{transform:translate3d(52px,52px,0)}}
@media screen and (min-width:1121px) and (prefers-reduced-motion:no-preference){
  .apx-hero__mesh{will-change:transform}
}

/* From responsive.css; only unrelated rules kept. */
@media (max-width:1050px){
.apx-hero__grid{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}
.apx-hero__media{height:clamp(320px,38vw,430px)}
}
@media (max-width:760px){
:root{--apx-gap:22px}
.apx-hero{min-height:auto}
.apx-hero__grid{grid-template-columns:1fr}
.apx-hero__copy{padding:clamp(40px,9vw,64px) 0 8px;max-width:100%}
.apx-hero__copy h1{font-size:clamp(38px,10.5vw,62px);max-width:100%;margin:20px 0 26px;line-height:1.09}
.apx-hero__media{height:clamp(210px,53vw,310px);max-width:450px;width:100%;margin-inline:auto}
.apx-hero__foot{font-size:8px;min-height:50px}
.apx-hero__foot span:nth-of-type(2){display:none}
/* Front-page headline, actions and media share a centered mobile axis. */
.apx-site--front .apx-hero__copy{text-align:center;justify-self:stretch}
.apx-site--front .apx-hero__copy h1{margin-inline:auto;text-wrap:balance}
.apx-site--front .apx-hero__actions{justify-content:center}
.apx-section-intro{grid-template-columns:1fr;gap:14px}
.apx-section-intro .apx-eyebrow{grid-column:1;margin-bottom:0}
}
@media (max-width:420px){
.apx-hero__actions{gap:9px}
.apx-button{font-size:12px;padding:15px 16px;gap:7px}
.apx-hero__copy h1{font-size:clamp(37px,10.25vw,43px)}
.apx-hero__media{height:clamp(205px,55vw,245px)}
}

@media (max-width:1050px){
@keyframes apxNavOpen{from{opacity:.4;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
}

[data-apx-scene]{--mx:60%;--my:45%}

/* From service.css; only unrelated rules kept. */
.apx-service-story{position:relative;padding-block:clamp(80px,9vw,135px);isolation:isolate;background:transparent}
.apx-story-body{max-width:100%;min-width:0}
.apx-story-body article{width:100%;max-width:100%}
.apx-story-body article>div{min-width:0}
.apx-story-body :where(.field--name-field-extended,.field--name-field-faq){margin-block:32px}
.apx-service-story::after{content:"";position:absolute;width:420px;height:420px;right:-230px;top:18%;border:1px solid #7beddf25;border-radius:50%;box-shadow:0 0 0 120px #7beddf06,0 0 0 245px #75adfa05;pointer-events:none;z-index:-1;animation:apxOrbit 40s linear infinite}

.apx-site--service .apx-hero{
  min-height:520px;
  background:transparent;
}
.apx-site--service .apx-hero__grid{min-height:420px}
.apx-site--service .apx-hero__copy{padding-block:55px}
.apx-site--service .apx-hero__copy h1{max-width:100%;text-wrap:pretty;letter-spacing:-.054em}
.apx-site--service .apx-hero__foot{min-height:47px}

.apx-site--service .apx-section-intro{margin-bottom:22px;grid-template-columns:1.2fr .8fr;gap:20px}
.apx-site--service .apx-section-intro h2{font-size:clamp(40px,4.5vw,67px);max-width:none;text-wrap:pretty}
.apx-site--service .apx-section-intro>p{max-width:none}

.apx-prose h2,.apx-prose h3{text-wrap:pretty}
.apx-prose p{max-width:none}
.apx-prose :where(p,ul,ol){overflow-wrap:break-word}
.apx-widgets{padding-block:16px 20px}

@media (max-width:760px){
.apx-site--service .apx-hero{min-height:auto}
.apx-site--service .apx-service-story{padding-block:42px 40px}
.apx-site--service .apx-section-intro{grid-template-columns:1fr}
}

.apx-site--service .apx-service-story{padding-block:38px 52px}

.apx-site--service .apx-service-story .apx-section-intro h2{font-size:clamp(42px,4.6vw,68px);text-wrap:pretty}

/* From showcase.css; only unrelated rules kept. */


/* From catalog.css; only unrelated rules kept. */

/* Richer additional blocks (not the main Drupal article); titles centered. */
.apx-site .apx-widgets{position:relative;isolation:isolate;padding:clamp(32px,4vw,58px) 0}

.apx-site .apx-widgets :is(h2,h3,.block-title){text-align:center;line-height:1.2;letter-spacing:-.025em}
.apx-site .apx-widgets>div{border:1px solid #78f4dd55;border-radius:22px;background:linear-gradient(145deg,#17304bcb,#231d39c9);padding:clamp(20px,3vw,38px);box-shadow:inset 0 1px #ffffff20,0 20px 50px #0002}
.apx-site .apx-widgets a:hover{color:#FFE272}

/* English telemetry in hero footer; three balanced, non-overlapping columns. */

.apx-hero__foot>span:nth-of-type(2){display:block;text-align:center}
.apx-hero__foot>span:nth-of-type(3){text-align:right;color:#a7eedb}
/* Keep the compact English signature on one line on tablets as well. */
@media(min-width:761px) and (max-width:1120px){
  .apx-hero__foot>span:nth-of-type(3){font-size:clamp(9px,1.05vw,10px);letter-spacing:0;white-space:nowrap}
}
@media(max-width:760px){
  .apx-hero__foot{grid-template-columns:max-content minmax(0,1fr);column-gap:10px}
  .apx-hero__foot>span:first-child{font-size:clamp(6px,1.65vw,8px);letter-spacing:.02em;white-space:nowrap}
  .apx-hero__foot>span:nth-of-type(2){display:none}
  .apx-hero__foot>span:nth-of-type(3){font-size:clamp(8px,2vw,10px);letter-spacing:0;white-space:nowrap;overflow-wrap:normal;justify-self:end;max-width:100%}
}

/* v22: tie the English hero footer to the first content block on non-service pages. */
.apx-site:not(.apx-site--service):not(.apx-site--hub) .apx-hero__foot{border-top-color:#8fe8dd26}
.apx-site:not(.apx-site--service):not(.apx-site--hub) .apx-page-body{padding-top:clamp(16px,2.1vw,30px)}
/* Do not rewrite the real Drupal breadcrumb labels via text-transform. */
.apx-site .apx-breadcrumb :is(a,span,li),.apx-site .breadcrumb :is(a,span,li){text-transform:none}
/* v208 / one document-wide world scene. The canvas is fixed to the viewport
 * and calculates its colours and geometry in DOCUMENT coordinates. Drupal
 * regions contain content, not separate opaque backgrounds. */
.apx-site{position:relative;isolation:isolate;background:transparent}
.apx-site > .apx-world-scene{
  position:fixed;inset:0;width:100vw;height:100vh;z-index:0;
  pointer-events:none;display:block;contain:strict;
}
.apx-site > main,.apx-site > footer.apx-contact-scene{
  position:relative;z-index:1;background:transparent;
}
.apx-site > main{background:transparent}
@media print{.apx-site > .apx-world-scene{display:none}}

/* English labels are part of the next content region on every non-service page. */
.apx-site:not(.apx-site--service) .apx-hero__foot.apx-hero-foot-bridge{position:relative;min-height:61px;border-top:0;border-bottom:1px solid #75daca28;padding-block:17px;margin-top:0;margin-bottom:0;background:transparent}
.apx-site:not(.apx-site--service) .apx-page-body{padding-top:clamp(12px,1.6vw,24px)}
.apx-site:not(.apx-site--service) .apx-hero{border-bottom:0}
.apx-site .apx-header{border-bottom:0}

.apx-site:is(.apx-site--article,.apx-site--information,.apx-site--front,.apx-site--price,.apx-site--contact) .apx-page-body{background:transparent;border:0;box-shadow:none}


/* v116: remove any remaining page-body substrate on editorial layouts */
.apx-site--services .apx-page-body,.apx-site--services .apx-page-body.apx-container,.apx-site--front .apx-page-body,.apx-site--hub .apx-page-body,.apx-site--service .apx-page-body{background:transparent;box-shadow:none;}
