/* Websense V14 refinements. */

/* 1. Enquiry modal: fixed-height dialog, form column scrolls on its own. */
.modal-box.wsf-modal{height:min(92vh,900px);grid-template-rows:minmax(0,1fr)}
.wsf-modal>.wsf-aside,.wsf-modal>.wsf-main{min-height:0}
.wsf-main{height:100%}
@media(max-width:900px){
  .modal-box.wsf-modal{height:auto;grid-template-rows:auto auto}
  .wsf-main{height:auto}
}
.wsf-modal .wsf-progress{top:-28px;padding-top:30px;margin-top:-36px;background:linear-gradient(180deg,var(--wsf-surface,#0b1221) 78%,rgba(11,18,33,0))}
@media(max-width:900px){.wsf-modal .wsf-progress{top:0;padding-top:12px;margin-top:-8px}}

/* 3. Stats strip: no grey slab, clean outlined cells on the space background. */
.ws-proof-grid{background:none!important;gap:14px!important}
.ws-proof-item{background:linear-gradient(160deg,rgba(var(--blue-rgb),.07),rgba(4,9,18,0) 70%)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;border-color:rgba(var(--blue-light-rgb),.16)!important}
.ws-proof-item:hover{border-color:rgba(var(--blue-light-rgb),.4)!important}

/* 6. Headings: never clip descenders. The reveal mask ends slightly outside
   the box, and gradient-clipped text gets room below the baseline. */
.scroll-heading,.scroll-heading.scroll-in{clip-path:inset(-.2em -.2em -.3em -.2em)}
.scroll-heading.scroll-pending{clip-path:inset(-.2em -.2em 105% -.2em)}
.section-head h2,.ws-section-heading h2,.ws-page-hero h1,.ws-cta-panel h2,.ws-contact-layout h2,.ws-case-story h2,.crm-capability-copy h3,#faq .faq-signal h3,.pipeline-end{padding-bottom:.12em;margin-bottom:-.04em}
.ws-glow h2{padding-bottom:.08em}
.ws-page-hero h1 em,.section-head h2 em{padding-bottom:.12em;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.ao-facts b{padding-bottom:.08em}

/* 7. Connected system: one rail, a lead signal travelling through six stages. */
.ws-flow{position:relative;--flow-t:10s}
.ws-flow__head{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:clamp(24px,5vw,80px);align-items:end;margin-bottom:clamp(40px,5vw,64px)}
.ws-flow__head .section-head{margin:0}
.ws-flow__head h2{max-width:none}
.ws-flow__cta{display:inline-flex!important;align-items:center;gap:10px}
.ws-flow__head h2 em{font-style:normal;display:block}
.ws-flow__lede{margin:0 0 6px;color:#9fb0c6;font-size:clamp(15px,1.2vw,17px);line-height:1.7;max-width:46ch}
.ws-flow__board{position:relative}
.ws-flow__rail{position:absolute;left:calc(100%/12);right:calc(100%/12);top:27px;height:2px;border-radius:2px;background:repeating-linear-gradient(90deg,rgba(var(--blue-light-rgb),.28) 0 6px,transparent 6px 12px)}
.ws-flow__fill{position:absolute;left:0;top:0;bottom:0;width:calc(var(--flow-p,0) * 100%);border-radius:inherit;background:linear-gradient(90deg,var(--blue),var(--blue-light),var(--cyan));box-shadow:0 0 14px rgba(var(--cyan-rgb),.6);transition:width .3s linear}
.ws-flow__packet{position:absolute;top:50%;left:0;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:#fff;box-shadow:0 0 0 4px rgba(var(--cyan-rgb),.25),0 0 18px 4px rgba(var(--cyan-rgb),.9),-28px 0 22px -6px rgba(var(--cyan-rgb),.6);animation:wsFlowPacket var(--flow-t) cubic-bezier(.45,.05,.55,.95) infinite}
@keyframes wsFlowPacket{0%{left:0;opacity:0}4%{opacity:1}92%{opacity:1}100%{left:100%;opacity:0}}
.ws-flow__steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;position:relative}
.ws-flow__step{display:flex;flex-direction:column;align-items:center;gap:18px;opacity:0;translate:0 26px;transition:opacity .7s ease calc(var(--i) * 90ms),translate .8s cubic-bezier(.2,.8,.2,1) calc(var(--i) * 90ms)}
.ws-flow.is-in .ws-flow__step{opacity:1;translate:0 0}
.ws-flow__node{position:relative;z-index:1;display:grid;place-items:center;width:56px;height:56px;border-radius:50%;color:var(--blue-light);background:radial-gradient(circle at 50% 35%,#13233d,#070d19 70%);border:1px solid rgba(var(--blue-light-rgb),.35);box-shadow:0 0 0 6px rgba(4,9,18,.9);animation:wsFlowNode var(--flow-t) linear calc(var(--flow-t) * (var(--i) * .92 + .4) / 6 - var(--flow-t)) infinite}
.ws-flow__node svg{width:22px;height:22px}
@keyframes wsFlowNode{0%{color:#fff;border-color:var(--cyan);box-shadow:0 0 0 6px rgba(4,9,18,.9),0 0 0 7px rgba(var(--cyan-rgb),.5),0 0 34px 6px rgba(var(--cyan-rgb),.55)}14%,100%{color:var(--blue-light);border-color:rgba(var(--blue-light-rgb),.35);box-shadow:0 0 0 6px rgba(4,9,18,.9)}}
.ws-flow__card{position:relative;flex:1;width:100%;padding:20px 18px 18px;border-radius:18px;border:1px solid rgba(var(--blue-light-rgb),.14);background:linear-gradient(170deg,rgba(var(--blue-rgb),.1),rgba(5,10,20,.55) 55%);overflow:hidden;transition:border-color .35s,translate .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s}
.ws-flow__card::before{content:'';position:absolute;left:18px;right:18px;top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(var(--cyan-rgb),.9),transparent);opacity:0;animation:wsFlowCard var(--flow-t) linear calc(var(--flow-t) * (var(--i) * .92 + .4) / 6 - var(--flow-t)) infinite}
@keyframes wsFlowCard{0%{opacity:1}18%,100%{opacity:0}}
.ws-flow__step:hover .ws-flow__card{translate:0 -4px;border-color:rgba(var(--blue-light-rgb),.42);box-shadow:0 24px 50px -30px rgba(var(--blue-rgb),.9)}
.ws-flow__stage{display:flex;align-items:center;gap:8px;font:600 10.5px/1 var(--font-mono,ui-monospace,monospace);letter-spacing:.14em;text-transform:uppercase;color:#7f91a8}
.ws-flow__stage b{color:var(--cyan);font-weight:700}
.ws-flow__card h3{margin:12px 0 8px!important;font-size:clamp(16px,1.25vw,19px)!important;line-height:1.2!important;letter-spacing:-.02em;color:#fff}
.ws-flow__card p{margin:0 0 14px;color:#93a3b8;font-size:13.5px;line-height:1.55}
.ws-flow__tags{display:flex;flex-wrap:wrap;gap:6px}
.ws-flow__tags i{font:600 10.5px/1 var(--font-mono,ui-monospace,monospace);font-style:normal;letter-spacing:.04em;padding:6px 8px;border-radius:7px;color:var(--blue-light);background:rgba(var(--blue-light-rgb),.08);border:1px solid rgba(var(--blue-light-rgb),.18)}
.ws-flow__step:last-child .ws-flow__node{color:var(--coral);border-color:rgba(var(--coral-rgb,255,107,74),.5)}
.ws-flow__step:last-child .ws-flow__stage b{color:var(--coral)}
.ws-flow__foot{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-top:clamp(32px,4vw,48px);padding:20px 24px;border-radius:20px;border:1px solid rgba(var(--blue-light-rgb),.14);background:linear-gradient(90deg,rgba(var(--blue-rgb),.1),rgba(var(--cyan-rgb),.04) 60%,rgba(var(--coral-rgb,255,107,74),.07))}
.ws-flow__stats{display:flex;gap:clamp(20px,4vw,56px);margin:0}
.ws-flow__stats div{display:flex;align-items:baseline;gap:10px}
.ws-flow__stats dt{order:2;font:600 11px/1.2 var(--font-mono,ui-monospace,monospace);letter-spacing:.12em;text-transform:uppercase;color:#8295ad}
.ws-flow__stats dd{margin:0;font:800 clamp(28px,2.6vw,38px)/1 var(--font,inherit);letter-spacing:-.04em;color:#fff}
.ws-flow__stats div:last-child dd{color:var(--cyan)}
@media(max-width:1100px) and (min-width:901px){.ws-flow__steps{gap:10px}.ws-flow__card{padding:16px 14px}.ws-flow__tags i{font-size:9.5px;padding:5px 6px}}
@media(max-width:900px){
  .ws-flow__head{grid-template-columns:1fr;gap:16px}
  .ws-flow__rail{left:27px;right:auto;top:28px;bottom:28px;width:2px;height:auto;background:repeating-linear-gradient(180deg,rgba(var(--blue-light-rgb),.28) 0 6px,transparent 6px 12px)}
  .ws-flow__fill{width:auto;right:0;height:calc(var(--flow-p,0) * 100%);bottom:auto}
  .ws-flow__packet{left:50%;top:0;margin:-6px 0 0 -6px;animation-name:wsFlowPacketV}
  @keyframes wsFlowPacketV{0%{top:0;opacity:0}4%{opacity:1}92%{opacity:1}100%{top:100%;opacity:0}}
  .ws-flow__steps{grid-template-columns:1fr;gap:14px}
  .ws-flow__step{flex-direction:row;align-items:flex-start;gap:16px;translate:26px 0}
  .ws-flow__node{flex:0 0 56px}
  .ws-flow__foot{padding:18px}
  .ws-flow__stats{gap:18px;flex-wrap:wrap}
  .ws-flow__cta{width:100%;justify-content:center;text-align:center}
}
@media(prefers-reduced-motion:reduce){.ws-flow__packet,.ws-flow__node,.ws-flow__card::before{animation:none}.ws-flow__step{opacity:1;translate:none}}
html.ws-saver .ws-flow__packet,html.ws-saver .ws-flow__node,html.ws-saver .ws-flow__card::before{animation:none}

/* 8. Project rhythm: true circles on one timeline. */
#faq .faq-signal-list::before{left:17px!important;top:30px!important;bottom:30px!important;width:2px!important;border-radius:2px;background:linear-gradient(180deg,var(--cyan),rgba(var(--blue-light-rgb),.12))!important}
#faq .faq-signal-step{gap:16px!important;padding:12px 0!important}
#faq .faq-signal-num{flex:0 0 36px!important;width:36px!important;height:36px!important;aspect-ratio:1;box-sizing:border-box;padding:0!important;display:grid!important;place-items:center;border-radius:50%!important;border:1px solid rgba(var(--cyan-rgb),.5)!important;background:radial-gradient(circle at 50% 30%,#122440,#060d19 75%)!important;color:var(--cyan)!important;font:700 11px/1 var(--font-mono,ui-monospace,monospace)!important;letter-spacing:.02em!important;text-indent:.02em}
#faq .faq-cta{display:inline-flex!important;align-items:center;gap:8px}

/* 11. Solid containers get a slow, living aurora behind their content.
   A child layer (added by ws-v14.js) moves with translate only, so it runs on
   the compositor and only while the container is on screen. */
.ws-aura-host{isolation:isolate}
.ws-aura-host:not(.why-cell):not(.faq-item):not(.ws-rich-card):not(.ws-service-card):not(.ws-check-grid>div){overflow:hidden}
.ws-aura{position:absolute!important;inset:-60%!important;z-index:-1!important;pointer-events:none;border-radius:0!important;margin:0!important;padding:0!important;border:0!important;
  background:radial-gradient(30% 32% at 32% 34%,rgba(var(--blue-rgb),.26),transparent 70%),radial-gradient(26% 28% at 68% 66%,rgba(var(--cyan-rgb),.12),transparent 70%)!important;
  will-change:transform;animation:wsAura 18s ease-in-out infinite alternate;animation-play-state:paused}
.ws-aura-host.is-live>.ws-aura{animation-play-state:running}
.ws-aura-host:nth-child(2n)>.ws-aura{animation-delay:-6s;animation-direction:alternate-reverse}
.ws-aura-host:nth-child(3n)>.ws-aura{animation-delay:-12s}
@keyframes wsAura{0%{translate:-18% -14%}33%{translate:16% -6%}66%{translate:6% 16%}100%{translate:-12% 10%}}
.crm-capability-grid article:hover>.ws-aura{background:radial-gradient(30% 32% at 40% 40%,rgba(var(--coral-rgb,255,107,74),.24),transparent 70%)!important}
@media(prefers-reduced-motion:reduce){.ws-aura{animation:none}}
html.ws-saver .ws-aura{animation:none}

/* 12. Sound toggle: equaliser pill with a sliding on/off state. */
html body .audio-fab.ws-snd{width:auto!important;height:46px!important;padding:0 16px 0 14px!important;border-radius:999px!important;display:inline-flex!important;align-items:center;gap:12px;color:#dbe7f7;background:linear-gradient(135deg,rgba(17,27,46,.9),rgba(7,12,22,.92))!important;border:1px solid rgba(var(--blue-light-rgb),.3)!important;box-shadow:0 12px 34px -12px rgba(0,0,0,.8),inset 0 1px 0 rgba(255,255,255,.06)!important;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);cursor:pointer;overflow:hidden;isolation:isolate;transition:border-color .35s,box-shadow .45s,translate .35s cubic-bezier(.2,.8,.2,1)}
html body .audio-fab.ws-snd::before{content:'';position:absolute;inset:0;z-index:-1;border-radius:inherit;background:radial-gradient(80% 140% at 0% 50%,rgba(var(--cyan-rgb),.28),transparent 60%);opacity:0;transition:opacity .5s}
html body .audio-fab.ws-snd:hover{translate:0 -2px;border-color:rgba(var(--blue-light-rgb),.6)!important}
html body .audio-fab.ws-snd.playing{border-color:rgba(var(--cyan-rgb),.6)!important;box-shadow:0 12px 34px -12px rgba(0,0,0,.8),0 0 0 4px rgba(var(--cyan-rgb),.08),0 0 26px -4px rgba(var(--cyan-rgb),.55)!important}
html body .audio-fab.ws-snd.playing::before{opacity:1}
html body .audio-fab.ws-snd.resume-ready{border-color:var(--coral)!important;box-shadow:0 0 0 4px rgba(var(--coral-rgb,255,107,74),.12),0 0 24px rgba(var(--coral-rgb,255,107,74),.45)!important}
.ws-snd__bars{display:flex;align-items:center;gap:3px;height:18px}
.ws-snd__bars i{display:block;width:3px;height:18px;border-radius:3px;background:linear-gradient(180deg,var(--cyan),var(--blue-light));transform-origin:50% 50%;scale:1 .18;transition:scale .5s cubic-bezier(.2,.8,.2,1),opacity .4s;opacity:.7}
.ws-snd:not(.playing) .ws-snd__bars i{animation:wsSndIdle 2.6s ease-in-out infinite}
.ws-snd:not(.playing) .ws-snd__bars i:nth-child(2){animation-delay:.15s}.ws-snd:not(.playing) .ws-snd__bars i:nth-child(3){animation-delay:.3s}.ws-snd:not(.playing) .ws-snd__bars i:nth-child(4){animation-delay:.45s}.ws-snd:not(.playing) .ws-snd__bars i:nth-child(5){animation-delay:.6s}
@keyframes wsSndIdle{0%,60%,100%{scale:1 .18}30%{scale:1 .4}}
.ws-snd.playing .ws-snd__bars i{opacity:1;animation:wsSndEq .9s ease-in-out infinite alternate}
.ws-snd.playing .ws-snd__bars i:nth-child(1){animation-duration:.72s}
.ws-snd.playing .ws-snd__bars i:nth-child(2){animation-duration:.94s;animation-delay:-.3s}
.ws-snd.playing .ws-snd__bars i:nth-child(3){animation-duration:.61s;animation-delay:-.5s}
.ws-snd.playing .ws-snd__bars i:nth-child(4){animation-duration:1.05s;animation-delay:-.2s}
.ws-snd.playing .ws-snd__bars i:nth-child(5){animation-duration:.8s;animation-delay:-.65s}
@keyframes wsSndEq{0%{scale:1 .25}35%{scale:1 1}65%{scale:1 .45}100%{scale:1 .85}}
.ws-snd__label{display:flex;align-items:center;gap:6px;font:600 11px/1 var(--font-mono,ui-monospace,monospace);letter-spacing:.14em;text-transform:uppercase}
.ws-snd__label b{font-weight:600;color:#8ea2bb}
.ws-snd__state{position:relative;display:block;width:3.2ch;height:12px;overflow:hidden}
.ws-snd__state em{position:absolute;left:0;top:0;font-style:normal;line-height:12px;transition:translate .45s cubic-bezier(.2,.8,.2,1),opacity .3s}
.ws-snd__state em:first-child{color:#fff}
.ws-snd__state em:last-child{color:var(--cyan);translate:0 100%;opacity:0}
.ws-snd.playing .ws-snd__state em:first-child{translate:0 -100%;opacity:0}
.ws-snd.playing .ws-snd__state em:last-child{translate:0 0;opacity:1}
@media(max-width:700px){
  html body .audio-fab.ws-snd{width:46px!important;padding:0!important;justify-content:center}
  .ws-snd__label{display:none}
}
@media(prefers-reduced-motion:reduce){.ws-snd .ws-snd__bars i{animation:none!important}.ws-snd.playing .ws-snd__bars i{scale:1 .7}}

/* Performance: card blur is invisible on the dark space background but costly while scrolling. */
.ws-service-card,.ws-rich-card,.ws-check-grid>div,.ws-insights-grid article,.ws-proof-item,.ws-platform-table>div{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}

/* Header logo: white at all times, matching the sticky header. */
html body .logo-full--default{display:none!important}
html body .logo-full--white{display:block!important}
