/* ===== The AI Trust Layer (home, round 5) =====
   Default = final state (no JS / reduced motion). JS adds .tl-armed (lens whole in the centre, columns hidden),
   then .tl-play runs the opening; .tl-done = final. Transforms + opacity only. */
.alx-trust{background:var(--ail-bg-dark);border-top:1px solid var(--ail-border-dark);padding:clamp(72px,9vw,120px) 0;overflow:hidden}
.alx-trust .tl-head{text-align:center;max-width:40em;margin:0 auto clamp(40px,5vw,64px)}
.alx-trust .tl-head h2{font-size:clamp(32px,3.8vw,52px)}
.alx-trust .tl-sub{margin:14px 0 0;font-size:18px;color:var(--ail-muted-on-dark)}
.alx-trust .tl-body{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 1px minmax(0,1fr);gap:clamp(28px,4vw,64px);align-items:start}
.alx-trust .tl-rule{align-self:stretch;background:linear-gradient(transparent,var(--ail-border-dark-strong) 18%,var(--ail-border-dark-strong) 82%,transparent);transform-origin:50% 50%}
.alx-trust .tl-colhead{display:flex;align-items:center;gap:18px;margin-bottom:18px}
.alx-trust .tl-colhead h3{font-size:clamp(24px,2.2vw,32px);line-height:1.1}
.alx-trust .tl-anchor{flex:none;width:76px;height:76px;position:relative}
.alx-trust .tl-halfsvg{display:block;width:100%;height:100%;overflow:visible}
.alx-trust .tl-halfsvg path{fill:var(--ail-accent-on-dark,#22D3EE)}
/* centre each half in its box (the half fills one triangle of the circle's box) */
.alx-trust .tl-anchor--a .tl-halfsvg{transform:translate(16%,16%)}
.alx-trust .tl-anchor--b .tl-halfsvg{transform:translate(-16%,-16%)}
.alx-trust .tl-col--seal .tl-colhead{flex-direction:row}
/* modality chips (visual version of the deck line) */
.alx-trust .tl-chips{list-style:none;margin:0 0 22px;padding:0;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.alx-trust .tl-chips li{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 12px;border:1px solid var(--ail-border-dark);border-radius:999px;font-size:14px;color:var(--ail-text-on-dark);background:color-mix(in srgb,var(--ail-surface-dark) 70%,transparent)}
.alx-trust .tl-chips li.tl-chipv{border:0;background:none;padding:0}
.alx-trust .tl-chips .tl-ico{width:16px;height:16px}
.alx-trust .tl-line{margin:0 0 22px;font-size:16px;color:var(--ail-muted-on-dark);min-height:34px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
/* stat cards */
.alx-trust .tl-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.alx-trust .tl-card{position:relative;padding:22px 22px 20px;border-radius:16px;background:linear-gradient(180deg,color-mix(in srgb,var(--ail-surface-dark-2,#16304A) 92%,transparent),var(--ail-surface-dark));border:1px solid var(--ail-border-dark);min-height:150px;display:flex;flex-direction:column;justify-content:space-between;gap:16px}
.alx-trust .tl-card--wide{grid-column:1/-1;min-height:132px;flex-direction:row;align-items:center;justify-content:flex-start;gap:22px}
.alx-trust .tl-ico{width:26px;height:26px;fill:none;stroke:var(--ail-primary-on-dark);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
.alx-trust .tl-stat{margin:0;display:flex;flex-direction:column;gap:6px}
.alx-trust .tl-num{font:600 clamp(38px,3.6vw,54px)/1 "Schibsted Grotesk",Inter,sans-serif;letter-spacing:-.03em;color:var(--ail-text-on-dark)}
.alx-trust .tl-card--text .tl-num{font-size:clamp(24px,2.1vw,30px);line-height:1.1}
.alx-trust .tl-lbl{font-size:15px;font-weight:500;color:var(--ail-muted-on-dark)}
.alx-trust .tl-card .tl-v{position:absolute;top:14px;right:14px}
.alx-trust .tl-card--wide .tl-ico{width:34px;height:34px}
.alx-trust .tl-foot{display:flex;justify-content:center;margin-top:clamp(32px,4vw,48px)}
.alx-trust .tl-connect{display:inline-flex;align-items:center;gap:10px;height:42px;padding:0 18px;border-radius:999px;border:1px solid var(--ail-border-dark-strong);background:transparent;color:var(--ail-text-on-dark);font:600 14.5px Inter,sans-serif;cursor:pointer}
.alx-trust .tl-connect:hover{border-color:var(--ail-primary-on-dark)}
.alx-trust .tl-connect::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--ail-primary-on-dark)}
/* flyers + glow: hidden in the final state */
.alx-trust .tl-fly{position:absolute;inset:0;pointer-events:none;z-index:3}
.alx-trust .tl-flyer,.alx-trust .tl-glow{position:absolute;left:calc(50% - var(--tl-L,300px)/2);top:var(--tl-top,40px);width:var(--tl-L,300px);height:var(--tl-L,300px);transform-origin:0 0;opacity:0;overflow:visible}
.alx-trust .tl-glow .tl-cutline{fill:none;stroke:var(--ail-accent-on-dark,#22D3EE);stroke-width:5;stroke-linecap:round;vector-effect:non-scaling-stroke}
.alx-trust .tl-glow{filter:drop-shadow(0 0 6px var(--ail-accent-on-dark,#22D3EE)) drop-shadow(0 0 18px color-mix(in srgb,var(--ail-accent-on-dark,#22D3EE) 60%,transparent))}
.alx-trust .tl-mpair{display:none}

/* armed: whole lens in the centre, everything else waits */
.alx-trust.tl-armed .tl-flyer{opacity:1}
.alx-trust.tl-armed .tl-anchor,.alx-trust.tl-armed .tl-mslot{opacity:0}
.alx-trust.tl-armed .tl-colhead h3,.alx-trust.tl-armed .tl-chips,.alx-trust.tl-armed .tl-line,.alx-trust.tl-armed .tl-card,.alx-trust.tl-armed .tl-foot{opacity:0}
.alx-trust.tl-armed .tl-rule{opacity:0;transform:scaleY(0)}
/* joined ("See how they connect"): columns dim, lens whole in the centre */
.alx-trust.tl-joined .tl-col{opacity:.18;transition:opacity .45s cubic-bezier(.4,0,.2,1)}
.alx-trust .tl-col{transition:opacity .45s cubic-bezier(.4,0,.2,1)}

@media (max-width:860px){
  .alx-trust .tl-body{grid-template-columns:minmax(0,1fr);gap:40px}
  .alx-trust .tl-rule{display:none}
  .alx-trust .tl-mpair{display:flex;justify-content:center;gap:22px;height:120px;margin-bottom:-8px}
  .alx-trust .tl-mslot{width:104px;height:104px;display:block}
  .alx-trust .tl-mslot--a .tl-halfsvg{transform:translate(10%,6%)}
  .alx-trust .tl-mslot--b .tl-halfsvg{transform:translate(-10%,14%)}
  .alx-trust .tl-anchor{width:52px;height:52px}
  .alx-trust .tl-colhead{gap:12px}
  .alx-trust .tl-card{padding:18px;min-height:128px}
  .alx-trust .tl-num{font-size:40px}
  .alx-trust .tl-card--text .tl-num{font-size:23px}
  .alx-trust .tl-head{margin-bottom:28px}
}
@media (max-width:380px){.alx-trust .tl-cards{gap:10px}.alx-trust .tl-card{padding:16px}.alx-trust .tl-num{font-size:34px}}
@media (prefers-reduced-motion:reduce){
  .alx-trust .tl-connect{display:none}
  .alx-trust .tl-col{transition:none}
}
.alx-trust .tl-glow{transform-origin:50% 50%}
.alx-trust.tl-joined .tl-anchor,.alx-trust.tl-joined .tl-mslot{opacity:0}

/* maya caption at the split (visual only; aria-hidden with the flyers) */
.alx-trust .tl-cap{position:absolute;left:0;right:0;top:calc(var(--tl-top,0px) + var(--tl-L,300px) + 14px);margin:0;text-align:center;font:600 15px Inter,sans-serif;letter-spacing:.02em;color:var(--ail-muted-on-dark);opacity:0;pointer-events:none}
.alx-trust:not(.tl-armed) .tl-cap{display:none}
.alx-trust .tl-card--text.tl-card--wide .tl-num{font-size:clamp(20px,1.8vw,26px)}

/* round 10b: home.products.link carried into the Trust Layer (ghost text link on dark) */
.alx-trust .tl-foot--links{max-width:var(--ail-container,1200px);margin-inline:auto;padding-inline:var(--ail-space-5,24px)}
.alx-trust .tl-more{color:var(--ail-primary-on-dark);font:600 15px Inter,sans-serif;text-decoration:none;border-bottom:1.5px solid currentColor;padding-bottom:2px}
.alx-trust .tl-more:hover{color:var(--ail-text-on-dark)}
.alx-trust.tl-armed .tl-foot--links{opacity:1}
@media (max-width:700px){.alx-trust .tl-foot--links{margin-top:20px}}

/* ===== C15 (Nov 3, klara): slide 4 key visual = static split lens on the centre divider =====
   Detect side (left of the seam): halves shifted along the cut. SourceSeal side (right): halves aligned.
   Static by design; the later lens round animates .tl15-side--detect .tl15-up/.tl15-lo (transform only). */
.alx-trust.tl15 .tl-fly,.alx-trust.tl15 .tl-mpair,.alx-trust.tl15 .tl-anchor{display:none}
.alx-trust .tl15-body{grid-template-columns:minmax(0,1fr) clamp(132px,13vw,196px) minmax(0,1fr);gap:clamp(20px,3vw,48px)}
.alx-trust .tl15-centre{display:flex;flex-direction:column;align-items:center;align-self:stretch;min-width:0}
.alx-trust .tl15-fig{margin:0;width:100%;display:flex;flex-direction:column;align-items:center}
.alx-trust .tl15-lens{display:block;width:100%;height:auto;overflow:visible}
.alx-trust .tl15-fill{fill:var(--ail-accent-on-dark,#22D3EE)}
.alx-trust .tl15-side--detect .tl15-fill{fill:color-mix(in srgb,var(--ail-accent-on-dark,#22D3EE) 78%,var(--ail-bg-dark,#0B1724))}
.alx-trust .tl15-cut{fill:none;stroke:var(--ail-text-on-dark,#EEF6F9);stroke-width:2.5;stroke-linecap:round;vector-effect:non-scaling-stroke;opacity:.9}
.alx-trust .tl15-seam{stroke:var(--ail-text-on-dark,#EEF6F9);stroke-width:1.5;vector-effect:non-scaling-stroke;opacity:.55}
.alx-trust .tl15-cap{display:grid;grid-template-columns:1fr 1fr;width:100%;margin-top:14px;font:600 12px/1.2 Inter,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--ail-muted-on-dark)}
.alx-trust .tl15-cap--detect{text-align:right;padding-right:10px;border-right:1px solid var(--ail-border-dark-strong)}
.alx-trust .tl15-cap--seal{text-align:left;padding-left:10px;color:var(--ail-primary-on-dark)}
.alx-trust .tl15-centre .tl-rule{flex:1;width:1px;margin-top:18px;min-height:40px}
/* columns: the deck's two halves, head row lines up with the lens centre band */
.alx-trust.tl15 .tl-colhead{min-height:48px;margin-bottom:12px}
.alx-trust.tl15 .tl-col--detect .tl-colhead h3::before,.alx-trust.tl15 .tl-col--seal .tl-colhead h3::before{content:"";display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:12px;vertical-align:.18em;background:color-mix(in srgb,var(--ail-accent-on-dark,#22D3EE) 78%,var(--ail-bg-dark,#0B1724))}
.alx-trust.tl15 .tl-col--seal .tl-colhead h3::before{background:var(--ail-accent-on-dark,#22D3EE)}
@media (min-width:861px){
  .alx-trust.tl15 .tl-col--detect{text-align:left}
  .alx-trust .tl15-fig{position:sticky;top:110px}
}
@media (max-width:1100px) and (min-width:861px){
  .alx-trust .tl15-body .tl-cards{gap:10px}
  .alx-trust.tl15 .tl-card{padding:18px 16px 16px;min-height:132px}
  .alx-trust.tl15 .tl-num{font-size:clamp(32px,3.6vw,44px)}
  .alx-trust .tl15-cap{font-size:11px;letter-spacing:.08em}
}
@media (max-width:860px){
  .alx-trust .tl15-body{grid-template-columns:minmax(0,1fr);gap:32px}
  .alx-trust .tl15-centre{order:-1;align-self:center}
  .alx-trust .tl15-fig{width:min(168px,46vw)}
  .alx-trust .tl15-centre .tl-rule{display:none}
  .alx-trust .tl15-cap{margin-top:12px}
}
.alx-trust .tl15-centre .tl-rule{align-self:center}
@media (min-width:861px){.alx-trust.tl15 .tl-line{min-height:3.1em;align-items:flex-start}}
@media (max-width:1100px) and (min-width:861px){.alx-trust.tl15 .tl-card--text .tl-num{font-size:clamp(20px,2.3vw,26px)}}

/* ===== C16 (Nov 3, klara): split-lens motion + subline room =====
   Static (C15) = final pose and the fallback. trust-layer.js adds .tl16-armed only when motion is allowed and the lens is
   still below the fold; .tl16-play on scroll-in. Only the Detection half moves (transform), SourceSeal half never moves. No layout change. */
.alx-trust .tl15-cap{display:none}
@media (prefers-reduced-motion:no-preference){
  .alx-trust.tl16-armed .tl15-side--detect .tl15-up,.alx-trust.tl16-armed .tl15-side--detect .tl15-lo{transform:translate(0,0);transition:transform .9s cubic-bezier(.22,1,.36,1) .12s}
  .alx-trust.tl16-armed .tl15-side--detect .tl15-cut{opacity:0;transition:opacity .4s ease-out .7s}
  .alx-trust.tl16-armed.tl16-play .tl15-side--detect .tl15-up{transform:translate(29.7px,-29.7px)}
  .alx-trust.tl16-armed.tl16-play .tl15-side--detect .tl15-lo{transform:translate(-29.7px,29.7px)}
  .alx-trust.tl16-armed.tl16-play .tl15-side--detect .tl15-cut{opacity:.9}
}
/* longer Trust Layer subline (ido b31: "Trust becomes a security requirement. Detect what you receive. Seal what you create.") */
.alx-trust.tl15 .tl-head{max-width:48em}
.alx-trust.tl15 .tl-sub{text-wrap:balance;max-width:46em;margin-inline:auto}

/* ===== C20.16 (Nov 5): Trust Layer — copy ON opening halves =====
   Logo circle opens into two half-disks; locked product copy lives ON those halves.
   Logo must not remain forever-centered. Default / reduced-motion = open end state.
   Classes on .alx-trust: c2016-arm → c2016-spin → c2016-go. Owns motion (no .c20-tlsplit). */
.alx-trust .c2016-open{display:flex;flex-direction:column;align-items:center;align-self:stretch;min-width:0;justify-content:flex-start}
.alx-trust .c2016-stage{position:relative;width:100%;max-width:min(100%,340px);aspect-ratio:1.15;margin-inline:auto;isolation:isolate}
.alx-trust .c2016-logo{position:absolute;inset:18% 18%;margin:0;z-index:3;display:flex;align-items:center;justify-content:center;transform-origin:50% 50%;filter:none}
.alx-trust .c2016-logo .tl15-lens{width:100%;height:100%;overflow:hidden}
.alx-trust .c2016-half{position:absolute;top:8%;bottom:8%;width:49.4%;z-index:2;display:flex;align-items:stretch;pointer-events:none}
.alx-trust .c2016-half--detect{left:0;justify-content:flex-end}
.alx-trust .c2016-half--seal{right:0;justify-content:flex-start}
.alx-trust .c2016-half__disk{
  width:100%;min-height:100%;box-sizing:border-box;
  display:flex;flex-direction:column;justify-content:center;gap:10px;
  padding:22px 18px;border:1.5px solid color-mix(in srgb,#139EC4 70%,transparent);
  background:linear-gradient(165deg,color-mix(in srgb,#0E7490 38%,#0A1630),#0A1630 62%);
  box-shadow:0 18px 40px rgba(0,0,0,.35),inset 0 0 0 1px rgba(19,158,196,.12);
  color:#EEF6F9
}
.alx-trust .c2016-half--detect .c2016-half__disk{border-radius:999px 14px 14px 999px;text-align:right;padding-right:22px;padding-left:28px;background:linear-gradient(210deg,color-mix(in srgb,#0E7490 28%,#0A1630),#0A1630 70%)}
.alx-trust .c2016-half--seal .c2016-half__disk{border-radius:14px 999px 999px 14px;text-align:left;padding-left:22px;padding-right:28px;background:linear-gradient(150deg,color-mix(in srgb,#139EC4 34%,#0A1630),#0A1630 68%);border-color:color-mix(in srgb,#139EC4 85%,transparent)}
.alx-trust .c2016-half__title{margin:0;font:600 clamp(15px,1.35vw,20px)/1.15 "Schibsted Grotesk",Inter,sans-serif;letter-spacing:-.02em;color:#EEF6F9}
.alx-trust .c2016-half__line{margin:0;font:500 clamp(12px,1.05vw,15px)/1.35 Inter,sans-serif;color:color-mix(in srgb,#EEF6F9 78%,#139EC4)}
/* end state: halves open; logo fully out of paint (no lens/glow ghost in the gap) */
.alx-trust .c2016-open .c2016-logo{opacity:0;visibility:hidden;pointer-events:none;transform:none;filter:none;will-change:auto;display:none}
.alx-trust .c2016-half--detect{transform:translateX(-0.8%)}
.alx-trust .c2016-half--seal{transform:translateX(0.8%)}
.alx-trust .c2016-half{opacity:1}
/* widen centre so half copy can breathe */
.alx-trust:has(.c2016-open) .tl15-body{grid-template-columns:minmax(0,1fr) clamp(220px,28vw,340px) minmax(0,1fr);gap:clamp(16px,2.4vw,36px)}
/* ARM: logo only (restore paint; will-change only while armed) */
.alx-trust.c2016-arm:not(.c2016-go) .c2016-logo{display:flex;opacity:1;visibility:visible;transform:scale(1.12);will-change:transform,opacity,filter;filter:drop-shadow(0 0 20px color-mix(in srgb,#139EC4 55%,transparent)) drop-shadow(0 0 42px color-mix(in srgb,#139EC4 28%,transparent))}
.alx-trust.c2016-arm:not(.c2016-go) .c2016-logo .tl15-side--detect .tl15-up,
.alx-trust.c2016-arm:not(.c2016-go) .c2016-logo .tl15-side--detect .tl15-lo{transform:none}
.alx-trust.c2016-arm:not(.c2016-go) .c2016-logo .tl15-side--detect .tl15-fill{fill:var(--ail-accent-on-dark,#22D3EE)}
.alx-trust.c2016-arm:not(.c2016-go) .c2016-half{opacity:0;transform:scale(.55);filter:blur(2px)}
/* C20.TrustD: side columns early — heads+lines fade in during arm/spin; cards/CTAs wait for go. Centre halves untouched (no on-disk titles mid-open). */
.alx-trust.c2016-arm:not(.c2016-go) .tl-col--detect,
.alx-trust.c2016-arm:not(.c2016-go) .tl-col--seal{opacity:1!important;visibility:visible;pointer-events:none}
.alx-trust.c2016-arm .tl-col--detect>*,
.alx-trust.c2016-arm .tl-col--seal>*{transition:opacity .7s cubic-bezier(.2,.75,.15,1),transform .7s cubic-bezier(.2,.75,.15,1)}
.alx-trust.c2016-arm:not(.c2016-go) .tl-col--detect>*,
.alx-trust.c2016-arm:not(.c2016-go) .tl-col--seal>*{opacity:0;transform:translateY(8px)}
.alx-trust.c2016-arm:not(.c2016-go) .tl-col--detect>.tl-colhead,
.alx-trust.c2016-arm:not(.c2016-go) .tl-col--seal>.tl-colhead{opacity:1;transform:none;transition-delay:.05s}
.alx-trust.c2016-arm:not(.c2016-go) .tl-col--detect>.tl-line,
.alx-trust.c2016-arm:not(.c2016-go) .tl-col--seal>.tl-line{opacity:.9;transform:none;transition-delay:.3s}
.alx-trust.c2016-go .tl-col--detect>*,
.alx-trust.c2016-go .tl-col--seal>*{opacity:1;transform:none;transition-delay:.2s}
/* SPIN */
@keyframes c2016Spin{0%{transform:scale(1.12) rotate(0deg)}55%{transform:scale(1.08) rotate(110deg)}100%{transform:scale(1.02) rotate(180deg)}}
.alx-trust.c2016-arm.c2016-spin:not(.c2016-go) .c2016-logo{animation:c2016Spin 1.4s cubic-bezier(.25,.7,.2,1) forwards;filter:drop-shadow(0 0 24px color-mix(in srgb,#139EC4 60%,transparent))}
/* GO: halves carry copy; logo fades then fully removed from paint (.c2016-logo-clear) */
.alx-trust.c2016-go .c2016-logo{display:flex;transition:opacity .55s ease .15s,transform .9s cubic-bezier(.2,.75,.15,1),visibility 0s linear .7s,filter .35s ease;opacity:0;visibility:hidden;transform:scale(.55) rotate(360deg);filter:none;will-change:auto;pointer-events:none}
.alx-trust.c2016-go.c2016-logo-clear .c2016-logo{display:none;opacity:0;visibility:hidden;filter:none;will-change:auto;transform:none;animation:none}
.alx-trust.c2016-go .c2016-half{transition:opacity .7s cubic-bezier(.2,.75,.15,1) .05s,transform .95s cubic-bezier(.2,.75,.15,1),filter .7s ease}
.alx-trust.c2016-go .c2016-half--detect{opacity:1;transform:translateX(-0.8%);filter:none}
.alx-trust.c2016-go .c2016-half--seal{opacity:1;transform:translateX(0.8%);filter:none}
.alx-trust.c2016-go .tl-col--detect,
.alx-trust.c2016-go .tl-col--seal{opacity:1!important;visibility:visible;pointer-events:auto;transition:opacity .9s cubic-bezier(.2,.75,.15,1) .18s}
@media (max-width:860px){
  .alx-trust:has(.c2016-open) .tl15-body{grid-template-columns:minmax(0,1fr)}
  .alx-trust .c2016-open{order:-1;width:min(280px,78vw);margin-inline:auto}
  .alx-trust .c2016-stage{max-width:100%}
  .alx-trust .c2016-half__title{font-size:clamp(14px,3.8vw,17px)}
  .alx-trust .c2016-half__line{font-size:clamp(11px,3.2vw,13px)}
}
@media (prefers-reduced-motion:reduce){
  .alx-trust .c2016-open *,.alx-trust .tl-col--detect,.alx-trust .tl-col--seal,.alx-trust .tl-col--detect>*,.alx-trust .tl-col--seal>*{transition:none!important;animation:none!important;filter:none!important}
  .alx-trust.c2016-arm:not(.c2016-go) .c2016-logo{opacity:0;visibility:hidden;transform:none}
  .alx-trust.c2016-arm:not(.c2016-go) .c2016-half{opacity:1;transform:none;filter:none}
  .alx-trust.c2016-arm:not(.c2016-go) .tl-col--detect,
  .alx-trust.c2016-arm:not(.c2016-go) .tl-col--seal{opacity:1!important;visibility:visible}
  .alx-trust .c2016-logo{display:none;opacity:0;visibility:hidden;filter:none;will-change:auto}
}
