/* ==========================================================================
   Sim Vision approved Builder design
   Canonical implementation of the approved penetration testing HTML.
   Typeset in Space Grotesk (display) + Inter (text).
   ========================================================================== */

:root{
  --pxb-navy:#0f1e30; --pxb-navy2:#142438; --pxb-navy3:#1c3049;
  --pxb-green:#8dd34f; --pxb-greend:#63bf11;
  --pxb-orange:#ff6010; --pxb-blue:#2d4ef7;
  --pxb-ink:#0d152d; --pxb-body:#495566; --pxb-muted:#8b98a6;
  --pxb-tint:#f4f6f8; --pxb-line:#e4e9ed;
  --pxb-display:"Space Grotesk",Inter,system-ui,sans-serif;
  --pxb-text:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  --pxb-maxw:1220px;
}

/* --- base ---------------------------------------------------------------- */
.svt-builder-page,.msvc{font-family:var(--pxb-text);font-size:16px;line-height:1.7;color:var(--pxb-body)}
.pxb-section,.pxb-hero,.pxb-executive{font-family:var(--pxb-text)}
.pxb-section{padding:76px 0;position:relative}
.pxb-section .wrap,.pxb-hero .wrap,.pxb-executive .wrap{max-width:var(--pxb-maxw);margin:0 auto;padding-left:28px;padding-right:28px;position:relative;z-index:2}
.pxb-section h2,.pxb-hero h2{font-family:var(--pxb-display);font-weight:300;font-size:clamp(26px,3.2vw,36px);line-height:1.22;color:var(--pxb-ink);margin:0 0 .55em}
.pxb-section h3{font-family:var(--pxb-text);font-weight:500;font-size:18px;line-height:1.4;color:var(--pxb-ink);margin:0 0 .5em}
.pxb-section h4{font-family:var(--pxb-text);font-weight:600;font-size:14.5px;line-height:1.4;color:var(--pxb-ink);margin:0 0 .4em}
.pxb-section p{margin:0 0 1.05em;max-width:72ch}
.pxb-rule{width:40px;height:4px;background:var(--pxb-green);margin:0 0 18px;border-radius:1px}
.pxb-eyebrow{font-family:var(--pxb-display);font-size:14px;font-weight:400;color:var(--pxb-greend);margin:0 0 10px;letter-spacing:0;text-transform:none}
.pxb-intro{font-size:18px;line-height:1.65;color:var(--pxb-body)}
.pxb-note{font-size:14px;color:var(--pxb-muted)}
.pxb-note-center{text-align:center;margin:16px auto 0}
.pxb-centered{text-align:center}
.pxb-centered .pxb-rule{margin-left:auto;margin-right:auto}
.pxb-centered .pxb-head p{margin-left:auto;margin-right:auto}
.pxb-rich p:last-child{margin-bottom:0}
.pxb-section :focus-visible,.pxb-hero :focus-visible{outline:3px solid var(--pxb-green);outline-offset:3px;border-radius:2px}

/* --- tones --------------------------------------------------------------- */
.pxb-tone-tint{background:var(--pxb-tint)}
.pxb-tone-navy{background:var(--pxb-navy);color:#aab8c6}
.pxb-tone-navy2{background:var(--pxb-navy2);color:#aab8c6}
.pxb-tone-navy h2,.pxb-tone-navy h3,.pxb-tone-navy h4,.pxb-tone-navy strong,
.pxb-tone-navy2 h2,.pxb-tone-navy2 h3,.pxb-tone-navy2 h4,.pxb-tone-navy2 strong{color:#fff}
.pxb-tone-navy .pxb-intro,.pxb-tone-navy2 .pxb-intro,
.pxb-tone-navy p,.pxb-tone-navy2 p{color:#a5b3c2}

/* --- buttons ------------------------------------------------------------- */
.pxb-btn{display:inline-flex;align-items:center;gap:9px;padding:13px 27px;font-family:var(--pxb-text);font-size:15px;font-weight:500;border-radius:4px;border:1px solid transparent;text-decoration:none;cursor:pointer;transition:background .18s,color .18s,border-color .18s}
.pxb-btn-primary{background:var(--pxb-green);color:#12291a}
.pxb-btn-primary:hover{background:var(--pxb-greend);color:#fff}
.pxb-btn-outline{border-color:rgba(255,255,255,.38);color:#fff;background:transparent}
.pxb-btn-outline:hover{border-color:var(--pxb-green);color:var(--pxb-green)}
.pxb-btn-dark{background:var(--pxb-navy);color:#fff;margin-top:8px}
.pxb-btn-dark:hover{background:var(--pxb-navy3);color:#fff}

/* --- hero ---------------------------------------------------------------- */
.pxb-hero{position:relative;overflow:hidden;padding:108px 0 92px;text-align:center;background:var(--pxb-navy)}
.pxb-glow{position:absolute;inset:0;z-index:0;background:
  radial-gradient(760px 420px at 22% 46%,rgba(30,190,140,.34),transparent 66%),
  radial-gradient(620px 400px at 72% 30%,rgba(141,211,79,.20),transparent 68%)}
.pxb-gridlines{position:absolute;inset:0;z-index:1;opacity:.20;
  background-image:linear-gradient(rgba(255,255,255,.10) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.10) 1px,transparent 1px);
  background-size:62px 62px;
  -webkit-mask-image:radial-gradient(circle at 50% 45%,#000,transparent 75%);
  mask-image:radial-gradient(circle at 50% 45%,#000,transparent 75%)}
.pxb-hero h1{font-family:var(--pxb-text);font-weight:300;font-size:clamp(34px,4.6vw,56px);line-height:1.16;letter-spacing:-.02em;color:#fff;max-width:19ch;margin:0 auto .3em}
.pxb-tagline{font-family:var(--pxb-display);font-weight:300;font-size:clamp(19px,2.3vw,27px);color:#e6edf4;margin:0 0 30px}
.pxb-tagline em{font-style:normal;color:var(--pxb-green)}
.pxb-actions{display:flex;gap:13px;justify-content:center;flex-wrap:wrap}
.pxb-chips{display:flex;gap:9px;justify-content:center;flex-wrap:wrap;margin-top:44px}
.pxb-chips span{font-size:12.5px;color:#b6c4d2;border:1px solid rgba(255,255,255,.18);padding:6px 14px;border-radius:40px}

/* --- executive strip ----------------------------------------------------- */
.pxb-executive{background:var(--pxb-navy2);border-top:1px solid rgba(255,255,255,.07)}
.pxb-executive .wrap{padding-left:0;padding-right:0}
.pxb-exec-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.pxb-exec-grid article{padding:34px 30px;border-right:1px solid rgba(255,255,255,.08)}
.pxb-exec-grid article:last-child{border-right:0}
.pxb-exec-num{display:block;font-family:var(--pxb-display);font-size:12px;color:var(--pxb-green);margin-bottom:9px}
.pxb-exec-grid h4{color:#fff;font-size:15.5px;margin:0 0 7px}
.pxb-exec-grid p{color:#9fadbc;font-size:14px;line-height:1.6;margin:0;max-width:none}

/* --- challenges ---------------------------------------------------------- */
.pxb-card-grid{display:grid;gap:28px;margin-top:42px}
.pxb-grid-2{grid-template-columns:repeat(2,1fr)}
.pxb-grid-3{grid-template-columns:repeat(3,1fr)}
.pxb-grid-4{grid-template-columns:repeat(4,1fr)}
.pxb-challenges{gap:40px 46px}
.pxb-challenge{text-align:left}
.pxb-challenge h4{font-size:15px;font-weight:600;margin:0 0 12px}
.pxb-challenge i{display:block;width:40px;height:3px;background:var(--pxb-green);margin:0 0 14px}
.pxb-challenge p{font-size:14px;line-height:1.65;margin:0;max-width:none}

/* --- statement band ------------------------------------------------------ */
.pxb-statement{overflow:hidden}
.pxb-statement.pxb-statement-left{overflow:visible}
.pxb-statement.pxb-tone-navy,.pxb-statement.pxb-tone-navy2{position:relative}
.pxb-statement.pxb-tone-navy:before,.pxb-statement.pxb-tone-navy2:before{content:"";position:absolute;inset:0;background:radial-gradient(620px 340px at 50% 50%,rgba(20,150,120,.30),transparent 70%)}
.pxb-statement .wrap{max-width:960px}
.pxb-statement h2{font-size:clamp(30px,3.6vw,40px)}
.pxb-marks{display:flex;justify-content:center;align-items:flex-start;margin-bottom:26px}
.pxb-marks i{display:block;width:15px;height:54px;background:var(--pxb-green)}
.pxb-marks b{display:block;width:22px;height:22px;background:var(--pxb-orange);margin:32px 0 0 16px}
.pxb-marks u{display:block;width:11px;height:44px;background:var(--pxb-blue);margin:14px 0 0 16px}
.pxb-statement .pxb-rich p{margin-left:auto;margin-right:auto;font-size:16.5px;max-width:78ch}

/* --- split layout -------------------------------------------------------- */
.pxb-split{display:grid;grid-template-columns:.85fr 1.15fr;gap:60px;align-items:start}
.pxb-split-center{align-items:center}
.pxb-split-even{grid-template-columns:1fr 1fr}
.pxb-split>div{text-align:left}

/* --- chart cards --------------------------------------------------------- */
.pxb-chartcard{background:#fff;border:1px solid var(--pxb-line);border-radius:14px;padding:26px 28px;margin:0;text-align:left}
.pxb-chart-title{font-family:var(--pxb-text);font-size:14px;font-weight:600;color:var(--pxb-ink);margin:0 0 4px}
.pxb-chart-sub{font-size:14px;color:var(--pxb-muted);margin:0 0 14px}
.pxb-chart-note{font-size:12.5px;color:var(--pxb-muted);line-height:1.55;margin:14px 0 0}

/* --- evidence funnel ----------------------------------------------------- */
.pxb-funnel{display:flex;flex-direction:column;gap:12px}
.pxb-funnel-row{display:flex;align-items:center;gap:12px}
.pxb-funnel-bar{display:flex;align-items:center;min-height:42px;padding:8px 18px;border-radius:6px;color:#fff;font-size:13.5px;font-weight:600;line-height:1.3}
.pxb-funnel-bar.is-dark-text{color:#1b2b3d}
.pxb-funnel-row em{font-style:normal;font-size:12px;color:var(--pxb-muted);white-space:nowrap}

/* --- tables -------------------------------------------------------------- */
.pxb-table-wrap{overflow-x:auto;border:1px solid var(--pxb-line);border-radius:12px;margin-top:44px;background:#fff;text-align:left}
.pxb-table-wrap table{width:100%;border-collapse:collapse;min-width:640px;font-size:14.5px}
.pxb-table-wrap th,.pxb-table-wrap td{padding:15px 20px;text-align:left;vertical-align:top;border-bottom:1px solid var(--pxb-line)}
.pxb-table-wrap thead th{background:var(--pxb-navy);color:#fff;font-weight:500;font-size:13.5px;border-bottom:0}
.pxb-table-wrap tbody th{font-weight:600;color:var(--pxb-ink);background:#fafbfc;width:24%}
.pxb-table-wrap tbody tr:last-child th,.pxb-table-wrap tbody tr:last-child td{border-bottom:0}

/* --- toggle (engagement) ------------------------------------------------- */
.pxb-toggle{display:inline-flex;background:var(--pxb-tint);border:1px solid var(--pxb-line);border-radius:40px;padding:5px;gap:4px;margin:0 0 34px}
.pxb-toggle button{border:0;background:transparent;font-family:var(--pxb-text);font-size:14.5px;font-weight:500;color:var(--pxb-muted);padding:11px 26px;border-radius:40px;cursor:pointer;transition:background .18s,color .18s}
.pxb-toggle button[aria-selected="true"]{background:var(--pxb-navy);color:#fff}
.pxb-panel-title{font-family:var(--pxb-display);font-weight:300;font-size:28px;line-height:1.25;color:var(--pxb-ink);margin:0 0 .5em}
.pxb-engage-copy p{font-size:16px}
.pxb-bestfor{font-size:14px;color:var(--pxb-muted);margin-bottom:0}
.pxb-bestfor strong{color:var(--pxb-ink)}

/* --- icon tiles ---------------------------------------------------------- */
.pxb-tiles{display:grid;grid-template-columns:1fr 1fr;gap:26px 34px;text-align:left}
.pxb-tile{display:flex;gap:16px;align-items:flex-start}
.pxb-tile-icon{flex:0 0 46px;height:46px;border-radius:10px;background:var(--pxb-tint);display:flex;align-items:center;justify-content:center}
.pxb-tile h4{margin:2px 0 4px;font-size:14.5px;font-weight:600;color:var(--pxb-ink)}
.pxb-tile p{font-size:13.5px;margin:0;color:var(--pxb-muted);line-height:1.6;max-width:none}

/* --- methodology chain --------------------------------------------------- */
.pxb-chain{display:flex;align-items:flex-start;justify-content:space-between;position:relative;margin:44px 0 0;gap:6px}
.pxb-chain:before{content:"";position:absolute;left:8%;right:8%;top:37px;height:2px;background:var(--pxb-line);z-index:0}
.pxb-node{position:relative;z-index:2;flex:1;background:transparent;border:0;cursor:pointer;font-family:var(--pxb-text);text-align:center;padding:0}
.pxb-dot{width:74px;height:74px;margin:0 auto 12px;border-radius:50%;background:#fff;border:3px solid var(--pxb-line);display:flex;align-items:center;justify-content:center;transition:transform .2s,border-color .2s,box-shadow .2s}
.pxb-node-label{display:block;font-size:13.5px;color:var(--pxb-muted);font-weight:500;transition:color .2s}
.pxb-node:hover .pxb-dot{transform:translateY(-3px)}
.pxb-node[aria-selected="true"] .pxb-dot{border-color:var(--pxb-node,var(--pxb-green));box-shadow:0 10px 26px rgba(13,21,45,.14)}
.pxb-node[aria-selected="true"] .pxb-node-label{color:var(--pxb-ink)}
.pxb-phase-panels{margin-top:36px}
.pxb-phase{display:none;text-align:left;background:#fff;border:1px solid var(--pxb-line);border-radius:14px;padding:32px 34px}
.pxb-phase.is-active{display:block}
.pxb-phase p{font-size:15.5px;max-width:82ch}
.pxb-phase ul{margin:14px 0 0;padding:0;list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:6px 26px}
.pxb-phase li{font-size:14px;padding-left:18px;position:relative;color:var(--pxb-body)}
.pxb-phase li:before{content:"";position:absolute;left:0;top:11px;width:8px;height:2px;background:var(--pxb-green)}

/* --- coverage tabs ------------------------------------------------------- */
.pxb-tabs{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin:30px 0}
.pxb-tabs button{font-family:var(--pxb-text);font-size:14px;font-weight:500;color:var(--pxb-body);background:#fff;border:1px solid var(--pxb-line);padding:11px 20px;border-radius:40px;cursor:pointer;display:inline-flex;align-items:center;gap:9px;transition:border-color .18s,background .18s,color .18s}
.pxb-tabs button:hover{border-color:#c2ccd6}
.pxb-tabs button[aria-selected="true"]{background:var(--pxb-navy);color:#fff;border-color:var(--pxb-navy)}
.pxb-sw{width:9px;height:9px;border-radius:50%;flex:0 0 9px}
.pxb-tab-panel{display:none;text-align:left}
.pxb-tab-panel.is-active{display:block}
.pxb-covpanel{background:#fff;border:1px solid var(--pxb-line);border-radius:14px;overflow:hidden}
.pxb-covpanel-head{padding:26px 32px;border-bottom:1px solid var(--pxb-line);border-left:5px solid var(--pxb-green)}
.pxb-covpanel-head h3{margin-bottom:.35em}
.pxb-covpanel-head p{font-size:15px;margin:0;color:var(--pxb-body);max-width:80ch}
.pxb-covpanel-body{padding:26px 32px;display:grid;grid-template-columns:1fr 1fr;gap:4px 40px}
.pxb-covpanel-body div{font-size:14.5px;padding:9px 0 9px 20px;position:relative;border-bottom:1px solid #f0f3f5}
.pxb-covpanel-body div:before{content:"";position:absolute;left:0;top:19px;width:8px;height:2px;background:var(--pxb-green)}

/* --- platform ------------------------------------------------------------ */
.pxb-platform .pxb-split{margin-bottom:46px}
.pxb-keycard{background:linear-gradient(118deg,#0f1e30 0%,#12352c 52%,#1d5c35 100%);border-radius:16px;padding:44px;display:grid;grid-template-columns:.62fr 1.38fr;gap:40px;align-items:center;overflow:hidden;text-align:left}
.pxb-keycard-copy h3{color:#fff;font-family:var(--pxb-display);font-weight:300;font-size:30px;line-height:1.2;margin:0 0 .4em}
.pxb-keycard-copy p{color:#bfd3c6;font-size:14.5px;margin:0}
.pxb-keycard-viz{position:relative}
.pxb-keycard-viz svg{display:block;width:100%;height:auto}

/* Key Features slider */
.pxb-slider-frame{position:relative;overflow:hidden;border-radius:12px}
.pxb-slider-track{display:flex;transition:transform .42s cubic-bezier(.4,0,.2,1);will-change:transform}
.pxb-slide{flex:0 0 100%;margin:0;min-width:0}
.pxb-slide img{display:block;width:100%;height:auto;border-radius:12px}
.pxb-slider-arrow{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.28);background:rgba(11,26,42,.62);cursor:pointer;padding:0;transition:background .18s,border-color .18s;backdrop-filter:blur(3px)}
.pxb-slider-arrow:hover{background:rgba(11,26,42,.88);border-color:var(--pxb-green)}
.pxb-slider-arrow:before{content:"";position:absolute;top:50%;left:50%;width:9px;height:9px;border-top:2px solid #fff;border-right:2px solid #fff}
.pxb-slider-prev{left:12px}
.pxb-slider-prev:before{transform:translate(-30%,-50%) rotate(-135deg)}
.pxb-slider-next{right:12px}
.pxb-slider-next:before{transform:translate(-70%,-50%) rotate(45deg)}
.pxb-slider-dots{display:flex;gap:9px;justify-content:center;margin-top:18px}
.pxb-slider-dot{width:9px;height:9px;padding:0;border-radius:50%;border:0;background:rgba(255,255,255,.34);cursor:pointer;transition:background .18s,transform .18s}
.pxb-slider-dot:hover{background:rgba(255,255,255,.6)}
.pxb-slider-dot.is-active{background:var(--pxb-green);transform:scale(1.25)}
.pxb-keycard .pxb-chart-note{color:#9fb8a8}

/* --- risk ---------------------------------------------------------------- */
.pxb-risk-split{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start;margin-top:38px}
.pxb-risk-split .pxb-card-grid{margin-top:0;gap:20px}
.pxb-card{background:#fff;border:1px solid var(--pxb-line);border-top:3px solid var(--pxb-green);border-radius:12px;padding:24px;text-align:left;transition:box-shadow .2s,transform .2s}
.pxb-card:hover{box-shadow:0 14px 34px rgba(13,21,45,.09);transform:translateY(-2px)}
.pxb-card small{font-size:12px;color:var(--pxb-muted);display:block;margin-bottom:6px}
.pxb-card h3{font-size:16px;margin-bottom:.4em}
.pxb-card p{font-size:14px;color:var(--pxb-muted);margin:0;max-width:none}
.pxb-matrix{display:grid;grid-template-columns:76px repeat(4,1fr);gap:5px}
.pxb-matrix-rowlabel{font-size:11.5px;color:var(--pxb-muted);display:flex;align-items:center;justify-content:flex-end;padding-right:8px;text-align:right;line-height:1.25}
.pxb-matrix-cell{aspect-ratio:1.9/1;border-radius:6px;cursor:pointer;border:2px solid transparent;padding:0;transition:transform .15s,border-color .15s}
.pxb-matrix-cell:hover,.pxb-matrix-cell:focus{transform:scale(1.04);border-color:var(--pxb-navy)}
.pxb-matrix-axis{margin-top:5px}
.pxb-matrix-collabel{font-size:11.5px;color:var(--pxb-muted);text-align:center;padding-top:6px}
.pxb-matrix-axis-title{font-size:14px;color:var(--pxb-muted);text-align:center;margin:8px 0 0}
.pxb-matrix-out{margin-top:16px;font-size:14px;color:var(--pxb-body);background:var(--pxb-tint);border-radius:8px;padding:14px 16px;min-height:62px}
.pxb-matrix-out b{color:var(--pxb-ink)}

/* --- compliance ---------------------------------------------------------- */
.pxb-frameworks{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;background:#fff;border:1px solid var(--pxb-line);border-radius:14px;padding:30px;margin:30px 0 38px}
.pxb-frameworks span{border:1px solid var(--pxb-line);border-radius:8px;padding:12px 22px;font-size:14.5px;color:var(--pxb-ink);font-weight:500;background:#fcfdfd}

/* --- accordion ----------------------------------------------------------- */
.pxb-accordion{margin-top:26px;text-align:left}
.pxb-accordion details{border-bottom:1px solid var(--pxb-line)}
.pxb-accordion summary{list-style:none;cursor:pointer;padding:19px 46px 19px 0;position:relative;font-weight:500;color:var(--pxb-ink);font-size:16px;line-height:1.45}
.pxb-accordion summary::-webkit-details-marker{display:none}
.pxb-accordion summary:after{content:"";position:absolute;right:12px;top:26px;width:10px;height:10px;border-right:2px solid var(--pxb-greend);border-bottom:2px solid var(--pxb-greend);transform:rotate(45deg);transition:transform .2s,top .2s}
.pxb-accordion details[open] summary:after{transform:rotate(-135deg);top:30px}
.pxb-ac{padding:0 0 22px;max-width:82ch;font-size:15px}
.pxb-ac p{margin:0}
.pxb-tone-navy .pxb-accordion details,.pxb-tone-navy2 .pxb-accordion details{border-color:rgba(255,255,255,.14)}
.pxb-tone-navy .pxb-accordion summary,.pxb-tone-navy2 .pxb-accordion summary{color:#fff}
.pxb-tone-navy .pxb-ac,.pxb-tone-navy2 .pxb-ac{color:#a5b3c2}

/* --- case studies -------------------------------------------------------- */
.pxb-case{background:#fff;border:1px solid var(--pxb-line);border-radius:12px;overflow:hidden;text-align:left;transition:box-shadow .2s,transform .2s}
.pxb-case:hover{box-shadow:0 16px 36px rgba(13,21,45,.1);transform:translateY(-3px)}
.pxb-case-media img{width:100%;height:132px;object-fit:contain;display:block;padding:18px;background:var(--pxb-tint)}
.pxb-case-media--empty{height:132px;background:var(--pxb-tint);display:flex;align-items:center;justify-content:center;font-family:var(--pxb-display);font-size:20px;color:#9aa8b6}
.pxb-case-body{padding:22px 24px}
.pxb-case-tag{font-size:11.5px;color:var(--pxb-muted);font-weight:600;letter-spacing:.03em}
.pxb-case h3{font-family:var(--pxb-text);font-size:18px;font-weight:400;margin:8px 0;color:var(--pxb-ink)}
.pxb-case p{font-size:13.5px;color:var(--pxb-muted);margin:0 0 14px;max-width:none}
.pxb-case a{font-size:13.5px;font-weight:500;color:var(--pxb-body);text-decoration:none}
.pxb-case a:hover{color:var(--pxb-greend)}

/* --- cta ----------------------------------------------------------------- */
.pxb-cta{background:var(--pxb-navy);color:#aab8c6;padding:72px 0}
.pxb-cta h2{color:#fff}
.pxb-cta p{color:#bcc8d6}
.pxb-contact{font-size:15px;line-height:2;color:#c2cdd9}
.pxb-contact a{color:var(--pxb-green);text-decoration:none}

/* --- sticky section nav alignment --------------------------------------- */
.svt-section-nav{font-family:var(--pxb-text)}

/* --- responsive ---------------------------------------------------------- */
@media(max-width:1000px){
  .pxb-split,.pxb-split-even{grid-template-columns:1fr;gap:34px}
  .pxb-risk-split{grid-template-columns:1fr;gap:30px}
  .pxb-keycard{grid-template-columns:1fr;padding:30px}
}
@media(max-width:960px){
  .pxb-exec-grid{grid-template-columns:1fr 1fr}
  .pxb-exec-grid article{border-bottom:1px solid rgba(255,255,255,.08)}
  .pxb-grid-3,.pxb-grid-4{grid-template-columns:1fr 1fr}
}
@media(max-width:820px){
  .pxb-chain{flex-wrap:wrap;gap:20px;justify-content:center}
  .pxb-chain:before{display:none}
  .pxb-node{flex:0 0 30%}
  .pxb-dot{width:60px;height:60px}
  .pxb-phase ul{grid-template-columns:1fr}
}
@media(max-width:700px){
  .pxb-section{padding:58px 0}
  .pxb-hero{padding:76px 0 60px}
  .pxb-grid-2,.pxb-grid-3,.pxb-grid-4,.pxb-tiles,.pxb-covpanel-body{grid-template-columns:1fr}
  .pxb-exec-grid{grid-template-columns:1fr}
  .pxb-exec-grid article{border-right:0}
  .pxb-covpanel-head,.pxb-covpanel-body{padding:22px}
  .pxb-phase{padding:24px}
  .pxb-slider-arrow{width:32px;height:32px}
  .pxb-toggle{width:100%;justify-content:center}
  .pxb-toggle button{padding:11px 18px;font-size:13.5px}
  .pxb-funnel-row em{display:none}
}
@media (prefers-reduced-motion:reduce){
  .pxb-section *,.pxb-hero *{transition:none!important;animation:none!important}
}

/* ==========================================================================
   Homepage and company-page sections
   ========================================================================== */

/* --- logo wall ----------------------------------------------------------- */
.pxb-logowall{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:30px}
.pxb-logo{
  display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--pxb-line);background:#fff;border-radius:8px;
  padding:14px 24px;font-size:15px;font-weight:500;color:var(--pxb-ink);
  text-decoration:none;transition:border-color .18s,box-shadow .18s,color .18s;
}
a.pxb-logo:hover{border-color:var(--pxb-green);color:var(--pxb-greend);box-shadow:0 8px 22px rgba(13,21,45,.07)}
.pxb-tone-navy .pxb-logo,.pxb-tone-navy2 .pxb-logo{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.14);color:#d6dde7}

/* --- linked card grid ---------------------------------------------------- */
.pxb-linkgroup{margin-top:44px;text-align:left}
.pxb-linkgroup:first-of-type{margin-top:34px}
.pxb-linkgroup-title{
  display:flex;align-items:center;gap:12px;font-family:var(--pxb-text);font-weight:600;
  font-size:17px;color:var(--pxb-ink);margin:0 0 8px;
}
.pxb-linkgroup-title span{width:26px;height:4px;border-radius:2px;flex:0 0 26px}
.pxb-linkgroup-text{font-size:15px;color:var(--pxb-muted);margin:0 0 20px;max-width:78ch}
.pxb-linkcards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.pxb-linkcard{
  display:block;background:#fff;border:1px solid var(--pxb-line);border-left:3px solid var(--pxb-accent,var(--pxb-green));
  border-radius:10px;padding:20px 22px;text-decoration:none;
  transition:box-shadow .2s,transform .2s,border-color .2s;
}
a.pxb-linkcard:hover{box-shadow:0 14px 32px rgba(13,21,45,.09);transform:translateY(-2px)}
.pxb-linkcard h4{font-size:15.5px;font-weight:600;color:var(--pxb-ink);margin:0 0 6px}
a.pxb-linkcard:hover h4{color:var(--pxb-greend)}
.pxb-linkcard p{font-size:13.5px;line-height:1.55;color:var(--pxb-muted);margin:0;max-width:none}
.pxb-linkgroup-all{
  display:inline-block;margin-top:18px;font-size:14.5px;font-weight:500;
  color:var(--pxb-greend);text-decoration:none;border-bottom:1px solid rgba(99,191,17,.35);
}
.pxb-linkgroup-all:hover{border-bottom-color:var(--pxb-greend)}
.pxb-tone-navy .pxb-linkcard,.pxb-tone-navy2 .pxb-linkcard{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.12)}
.pxb-tone-navy .pxb-linkcard h4,.pxb-tone-navy2 .pxb-linkcard h4{color:#fff}
.pxb-tone-navy .pxb-linkcard p,.pxb-tone-navy2 .pxb-linkcard p{color:#a5b3c2}
.pxb-tone-navy .pxb-linkgroup-title,.pxb-tone-navy2 .pxb-linkgroup-title{color:#fff}

/* --- leadership ---------------------------------------------------------- */
.pxb-people{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:38px;text-align:left}
.pxb-person{
  display:grid;grid-template-columns:96px 1fr;gap:22px;align-items:start;
  background:#fff;border:1px solid var(--pxb-line);border-radius:14px;padding:28px;
}
.pxb-person-photo{
  width:96px;height:96px;border-radius:12px;overflow:hidden;background:var(--pxb-tint);
  display:flex;align-items:center;justify-content:center;
}
.pxb-person-photo img{width:100%;height:100%;object-fit:cover;display:block}
.pxb-person-initials{font-family:var(--pxb-display);font-size:28px;font-weight:400;color:var(--pxb-greend)}
.pxb-person-body h3{font-size:19px;font-weight:600;margin:0 0 3px;color:var(--pxb-ink)}
.pxb-person-role{font-size:14.5px;font-weight:500;color:var(--pxb-greend);margin:0 0 6px}
.pxb-person-meta{font-size:13px;color:var(--pxb-muted);margin:0 0 12px}
.pxb-person-bio{font-size:14.5px;line-height:1.6;color:var(--pxb-body);margin:0 0 12px;max-width:none}
.pxb-person-focus{list-style:none;margin:0 0 14px;padding:0}
.pxb-person-focus li{font-size:13.5px;color:var(--pxb-body);padding:4px 0 4px 18px;position:relative}
.pxb-person-focus li:before{content:"";position:absolute;left:0;top:12px;width:8px;height:2px;background:var(--pxb-green)}
.pxb-person-links{display:flex;gap:16px}
.pxb-person-links a{font-size:13.5px;font-weight:500;color:var(--pxb-greend);text-decoration:none;border-bottom:1px solid rgba(99,191,17,.35)}
.pxb-tone-navy .pxb-person,.pxb-tone-navy2 .pxb-person{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.12)}
.pxb-tone-navy .pxb-person-bio,.pxb-tone-navy2 .pxb-person-bio,
.pxb-tone-navy .pxb-person-focus li,.pxb-tone-navy2 .pxb-person-focus li{color:#a5b3c2}

/* --- credential strip ----------------------------------------------------
   One low band of four verifiable facts. Icon, short label, one line of
   detail. Values are set at text size, never display size, so this supports
   the hero rather than competing with it. Everything is pinned with !important
   because services.css styles generic strong/span inside .msvc at a higher
   specificity than a single class. */
.svt-sec.pxb-proofbar{padding-block:26px}
.pxb-proof-band{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
}
.pxb-proof{
  display:flex;gap:13px;align-items:flex-start;text-align:left;
  padding:4px 30px;border-left:1px solid var(--pxb-line);
}
.pxb-proof:first-child{border-left:0;padding-left:0}
.pxb-proof-icon{
  flex:0 0 34px;width:34px;height:34px;border-radius:9px;
  background:rgba(141,211,79,.16);color:var(--pxb-greend);
  display:flex;align-items:center;justify-content:center;
}
.pxb-proof-icon svg{width:19px;height:19px;display:block}
.pxb-proof-body{display:block;min-width:0;padding-top:2px}
.pxb-proof-body strong{
  display:block;font-family:var(--pxb-text)!important;font-weight:600!important;
  font-size:15px!important;line-height:1.3!important;letter-spacing:0!important;
  color:var(--pxb-ink)!important;margin:0 0 3px!important;
}
.pxb-proof-body>span{
  display:block;font-family:var(--pxb-text)!important;font-weight:400!important;
  font-size:13px!important;line-height:1.5!important;color:var(--pxb-muted)!important;
}
.pxb-tone-navy .pxb-proof,.pxb-tone-navy2 .pxb-proof{border-color:rgba(255,255,255,.14)}
.pxb-tone-navy .pxb-proof-icon,.pxb-tone-navy2 .pxb-proof-icon{background:rgba(141,211,79,.18);color:var(--pxb-green)}
.pxb-tone-navy .pxb-proof-body strong,.pxb-tone-navy2 .pxb-proof-body strong{color:#fff!important}
.pxb-tone-navy .pxb-proof-body>span,.pxb-tone-navy2 .pxb-proof-body>span{color:#9fadbc!important}

@media(max-width:1000px){
  .pxb-proof-band{grid-template-columns:1fr 1fr;gap:22px 0}
  .pxb-proof:nth-child(3){border-left:0;padding-left:0}
}
@media(max-width:620px){
  .pxb-proof-band{grid-template-columns:1fr;gap:18px}
  .pxb-proof{border-left:0;padding:0}
}

/* --- compliance ---------------------------------------------------------- */
.pxb-frameworks{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;background:#fff;border:1px solid var(--pxb-line);border-radius:14px;padding:30px;margin:30px 0 38px}
.pxb-frameworks span{border:1px solid var(--pxb-line);border-radius:8px;padding:12px 22px;font-size:14.5px;color:var(--pxb-ink);font-weight:500;background:#fcfdfd}

/* --- accordion ----------------------------------------------------------- */
.pxb-accordion{margin-top:26px;text-align:left}
.pxb-accordion details{border-bottom:1px solid var(--pxb-line)}
.pxb-accordion summary{list-style:none;cursor:pointer;padding:19px 46px 19px 0;position:relative;font-weight:500;color:var(--pxb-ink);font-size:16px;line-height:1.45}
.pxb-accordion summary::-webkit-details-marker{display:none}
.pxb-accordion summary:after{content:"";position:absolute;right:12px;top:26px;width:10px;height:10px;border-right:2px solid var(--pxb-greend);border-bottom:2px solid var(--pxb-greend);transform:rotate(45deg);transition:transform .2s,top .2s}
.pxb-accordion details[open] summary:after{transform:rotate(-135deg);top:30px}
.pxb-ac{padding:0 0 22px;max-width:82ch;font-size:15px}
.pxb-ac p{margin:0}
.pxb-tone-navy .pxb-accordion details,.pxb-tone-navy2 .pxb-accordion details{border-color:rgba(255,255,255,.14)}
.pxb-tone-navy .pxb-accordion summary,.pxb-tone-navy2 .pxb-accordion summary{color:#fff}
.pxb-tone-navy .pxb-ac,.pxb-tone-navy2 .pxb-ac{color:#a5b3c2}

/* --- case studies -------------------------------------------------------- */
.pxb-case{background:#fff;border:1px solid var(--pxb-line);border-radius:12px;overflow:hidden;text-align:left;transition:box-shadow .2s,transform .2s}
.pxb-case:hover{box-shadow:0 16px 36px rgba(13,21,45,.1);transform:translateY(-3px)}
.pxb-case-media img{width:100%;height:132px;object-fit:contain;display:block;padding:18px;background:var(--pxb-tint)}
.pxb-case-media--empty{height:132px;background:var(--pxb-tint);display:flex;align-items:center;justify-content:center;font-family:var(--pxb-display);font-size:20px;color:#9aa8b6}
.pxb-case-body{padding:22px 24px}
.pxb-case-tag{font-size:11.5px;color:var(--pxb-muted);font-weight:600;letter-spacing:.03em}
.pxb-case h3{font-family:var(--pxb-text);font-size:18px;font-weight:400;margin:8px 0;color:var(--pxb-ink)}
.pxb-case p{font-size:13.5px;color:var(--pxb-muted);margin:0 0 14px;max-width:none}
.pxb-case a{font-size:13.5px;font-weight:500;color:var(--pxb-body);text-decoration:none}
.pxb-case a:hover{color:var(--pxb-greend)}

/* --- cta ----------------------------------------------------------------- */
.pxb-cta{background:var(--pxb-navy);color:#aab8c6;padding:72px 0}
.pxb-cta h2{color:#fff}
.pxb-cta p{color:#bcc8d6}
.pxb-contact{font-size:15px;line-height:2;color:#c2cdd9}
.pxb-contact a{color:var(--pxb-green);text-decoration:none}

/* --- sticky section nav alignment --------------------------------------- */
.svt-section-nav{font-family:var(--pxb-text)}

/* --- responsive ---------------------------------------------------------- */
@media(max-width:1000px){
  .pxb-split,.pxb-split-even{grid-template-columns:1fr;gap:34px}
  .pxb-risk-split{grid-template-columns:1fr;gap:30px}
  .pxb-keycard{grid-template-columns:1fr;padding:30px}
}
@media(max-width:960px){
  .pxb-exec-grid{grid-template-columns:1fr 1fr}
  .pxb-exec-grid article{border-bottom:1px solid rgba(255,255,255,.08)}
  .pxb-grid-3,.pxb-grid-4{grid-template-columns:1fr 1fr}
}
@media(max-width:820px){
  .pxb-chain{flex-wrap:wrap;gap:20px;justify-content:center}
  .pxb-chain:before{display:none}
  .pxb-node{flex:0 0 30%}
  .pxb-dot{width:60px;height:60px}
  .pxb-phase ul{grid-template-columns:1fr}
}
@media(max-width:700px){
  .pxb-section{padding:58px 0}
  .pxb-hero{padding:76px 0 60px}
  .pxb-grid-2,.pxb-grid-3,.pxb-grid-4,.pxb-tiles,.pxb-covpanel-body{grid-template-columns:1fr}
  .pxb-exec-grid{grid-template-columns:1fr}
  .pxb-exec-grid article{border-right:0}
  .pxb-covpanel-head,.pxb-covpanel-body{padding:22px}
  .pxb-phase{padding:24px}
  .pxb-slider-arrow{width:32px;height:32px}
  .pxb-toggle{width:100%;justify-content:center}
  .pxb-toggle button{padding:11px 18px;font-size:13.5px}
  .pxb-funnel-row em{display:none}
}
@media (prefers-reduced-motion:reduce){
  .pxb-section *,.pxb-hero *{transition:none!important;animation:none!important}
}

/* ==========================================================================
   Homepage and company-page sections
   ========================================================================== */

/* --- logo wall ----------------------------------------------------------- */
.pxb-logowall{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:30px}
.pxb-logo{
  display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--pxb-line);background:#fff;border-radius:8px;
  padding:14px 24px;font-size:15px;font-weight:500;color:var(--pxb-ink);
  text-decoration:none;transition:border-color .18s,box-shadow .18s,color .18s;
}
a.pxb-logo:hover{border-color:var(--pxb-green);color:var(--pxb-greend);box-shadow:0 8px 22px rgba(13,21,45,.07)}
.pxb-tone-navy .pxb-logo,.pxb-tone-navy2 .pxb-logo{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.14);color:#d6dde7}

/* --- linked card grid ---------------------------------------------------- */
.pxb-linkgroup{margin-top:44px;text-align:left}
.pxb-linkgroup:first-of-type{margin-top:34px}
.pxb-linkgroup-title{
  display:flex;align-items:center;gap:12px;font-family:var(--pxb-text);font-weight:600;
  font-size:17px;color:var(--pxb-ink);margin:0 0 8px;
}
.pxb-linkgroup-title span{width:26px;height:4px;border-radius:2px;flex:0 0 26px}
.pxb-linkgroup-text{font-size:15px;color:var(--pxb-muted);margin:0 0 20px;max-width:78ch}
.pxb-linkcards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.pxb-linkcard{
  display:block;background:#fff;border:1px solid var(--pxb-line);border-left:3px solid var(--pxb-accent,var(--pxb-green));
  border-radius:10px;padding:20px 22px;text-decoration:none;
  transition:box-shadow .2s,transform .2s,border-color .2s;
}
a.pxb-linkcard:hover{box-shadow:0 14px 32px rgba(13,21,45,.09);transform:translateY(-2px)}
.pxb-linkcard h4{font-size:15.5px;font-weight:600;color:var(--pxb-ink);margin:0 0 6px}
a.pxb-linkcard:hover h4{color:var(--pxb-greend)}
.pxb-linkcard p{font-size:13.5px;line-height:1.55;color:var(--pxb-muted);margin:0;max-width:none}
.pxb-linkgroup-all{
  display:inline-block;margin-top:18px;font-size:14.5px;font-weight:500;
  color:var(--pxb-greend);text-decoration:none;border-bottom:1px solid rgba(99,191,17,.35);
}
.pxb-linkgroup-all:hover{border-bottom-color:var(--pxb-greend)}
.pxb-tone-navy .pxb-linkcard,.pxb-tone-navy2 .pxb-linkcard{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.12)}
.pxb-tone-navy .pxb-linkcard h4,.pxb-tone-navy2 .pxb-linkcard h4{color:#fff}
.pxb-tone-navy .pxb-linkcard p,.pxb-tone-navy2 .pxb-linkcard p{color:#a5b3c2}
.pxb-tone-navy .pxb-linkgroup-title,.pxb-tone-navy2 .pxb-linkgroup-title{color:#fff}

/* --- leadership ---------------------------------------------------------- */
.pxb-people{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:38px;text-align:left}
.pxb-person{
  display:grid;grid-template-columns:96px 1fr;gap:22px;align-items:start;
  background:#fff;border:1px solid var(--pxb-line);border-radius:14px;padding:28px;
}
.pxb-person-photo{
  width:96px;height:96px;border-radius:12px;overflow:hidden;background:var(--pxb-tint);
  display:flex;align-items:center;justify-content:center;
}
.pxb-person-photo img{width:100%;height:100%;object-fit:cover;display:block}
.pxb-person-initials{font-family:var(--pxb-display);font-size:28px;font-weight:400;color:var(--pxb-greend)}
.pxb-person-body h3{font-size:19px;font-weight:600;margin:0 0 3px;color:var(--pxb-ink)}
.pxb-person-role{font-size:14.5px;font-weight:500;color:var(--pxb-greend);margin:0 0 6px}
.pxb-person-meta{font-size:13px;color:var(--pxb-muted);margin:0 0 12px}
.pxb-person-bio{font-size:14.5px;line-height:1.6;color:var(--pxb-body);margin:0 0 12px;max-width:none}
.pxb-person-focus{list-style:none;margin:0 0 14px;padding:0}
.pxb-person-focus li{font-size:13.5px;color:var(--pxb-body);padding:4px 0 4px 18px;position:relative}
.pxb-person-focus li:before{content:"";position:absolute;left:0;top:12px;width:8px;height:2px;background:var(--pxb-green)}
.pxb-person-links{display:flex;gap:16px}
.pxb-person-links a{font-size:13.5px;font-weight:500;color:var(--pxb-greend);text-decoration:none;border-bottom:1px solid rgba(99,191,17,.35)}
.pxb-tone-navy .pxb-person,.pxb-tone-navy2 .pxb-person{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.12)}
.pxb-tone-navy .pxb-person-bio,.pxb-tone-navy2 .pxb-person-bio,
.pxb-tone-navy .pxb-person-focus li,.pxb-tone-navy2 .pxb-person-focus li{color:#a5b3c2}

/* --- credential band ------------------------------------------------------
   A quiet single row of facts, not a fourth grid of cards. Values are set at
   text size rather than display size so the band supports the hero instead of
   competing with it. */
.svt-sec.pxb-proofbar{padding-block:30px}
.pxb-proof-band{
  list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;
  align-items:flex-start;gap:14px 0;
}
.pxb-proof{
  flex:1 1 220px;display:flex;gap:12px;align-items:flex-start;
  padding:2px 28px;border-left:1px solid var(--pxb-line);text-align:left;
}
.pxb-proof:first-child{border-left:0;padding-left:0}
.pxb-proof-mark{
  flex:0 0 8px;width:8px;height:8px;margin-top:7px;border-radius:2px;
  background:var(--pxb-green);
}
.pxb-proof-body{display:block;min-width:0}
.pxb-proof strong{
  display:block;font-family:var(--pxb-text);font-weight:600;font-size:15px;line-height:1.35;
  color:var(--pxb-ink);margin-bottom:3px;
}
.pxb-proof span{display:block;font-size:13.5px;line-height:1.5;color:var(--pxb-muted)}
.pxb-tone-navy .pxb-proof,.pxb-tone-navy2 .pxb-proof{border-color:rgba(255,255,255,.14)}
.pxb-tone-navy .pxb-proof strong,.pxb-tone-navy2 .pxb-proof strong{color:#fff}
.pxb-tone-navy .pxb-proof span,.pxb-tone-navy2 .pxb-proof span{color:#9fadbc}

@media(max-width:860px){
  .pxb-proof{flex:1 1 100%;border-left:0;padding-left:0;padding-right:0}
}

/* --- compliance ---------------------------------------------------------- */
.pxb-frameworks{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;background:#fff;border:1px solid var(--pxb-line);border-radius:14px;padding:30px;margin:30px 0 38px}
.pxb-frameworks span{border:1px solid var(--pxb-line);border-radius:8px;padding:12px 22px;font-size:14.5px;color:var(--pxb-ink);font-weight:500;background:#fcfdfd}

/* --- accordion ----------------------------------------------------------- */
.pxb-accordion{margin-top:26px;text-align:left}
.pxb-accordion details{border-bottom:1px solid var(--pxb-line)}
.pxb-accordion summary{list-style:none;cursor:pointer;padding:19px 46px 19px 0;position:relative;font-weight:500;color:var(--pxb-ink);font-size:16px;line-height:1.45}
.pxb-accordion summary::-webkit-details-marker{display:none}
.pxb-accordion summary:after{content:"";position:absolute;right:12px;top:26px;width:10px;height:10px;border-right:2px solid var(--pxb-greend);border-bottom:2px solid var(--pxb-greend);transform:rotate(45deg);transition:transform .2s,top .2s}
.pxb-accordion details[open] summary:after{transform:rotate(-135deg);top:30px}
.pxb-ac{padding:0 0 22px;max-width:82ch;font-size:15px}
.pxb-ac p{margin:0}
.pxb-tone-navy .pxb-accordion details,.pxb-tone-navy2 .pxb-accordion details{border-color:rgba(255,255,255,.14)}
.pxb-tone-navy .pxb-accordion summary,.pxb-tone-navy2 .pxb-accordion summary{color:#fff}
.pxb-tone-navy .pxb-ac,.pxb-tone-navy2 .pxb-ac{color:#a5b3c2}

/* --- case studies -------------------------------------------------------- */
.pxb-case{background:#fff;border:1px solid var(--pxb-line);border-radius:12px;overflow:hidden;text-align:left;transition:box-shadow .2s,transform .2s}
.pxb-case:hover{box-shadow:0 16px 36px rgba(13,21,45,.1);transform:translateY(-3px)}
.pxb-case-media img{width:100%;height:132px;object-fit:contain;display:block;padding:18px;background:var(--pxb-tint)}
.pxb-case-media--empty{height:132px;background:var(--pxb-tint);display:flex;align-items:center;justify-content:center;font-family:var(--pxb-display);font-size:20px;color:#9aa8b6}
.pxb-case-body{padding:22px 24px}
.pxb-case-tag{font-size:11.5px;color:var(--pxb-muted);font-weight:600;letter-spacing:.03em}
.pxb-case h3{font-family:var(--pxb-text);font-size:18px;font-weight:400;margin:8px 0;color:var(--pxb-ink)}
.pxb-case p{font-size:13.5px;color:var(--pxb-muted);margin:0 0 14px;max-width:none}
.pxb-case a{font-size:13.5px;font-weight:500;color:var(--pxb-body);text-decoration:none}
.pxb-case a:hover{color:var(--pxb-greend)}

/* --- cta ----------------------------------------------------------------- */
.pxb-cta{background:var(--pxb-navy);color:#aab8c6;padding:72px 0}
.pxb-cta h2{color:#fff}
.pxb-cta p{color:#bcc8d6}
.pxb-contact{font-size:15px;line-height:2;color:#c2cdd9}
.pxb-contact a{color:var(--pxb-green);text-decoration:none}

/* --- sticky section nav alignment --------------------------------------- */
.svt-section-nav{font-family:var(--pxb-text)}

/* --- responsive ---------------------------------------------------------- */
@media(max-width:1000px){
  .pxb-split,.pxb-split-even{grid-template-columns:1fr;gap:34px}
  .pxb-risk-split{grid-template-columns:1fr;gap:30px}
  .pxb-keycard{grid-template-columns:1fr;padding:30px}
}
@media(max-width:960px){
  .pxb-exec-grid{grid-template-columns:1fr 1fr}
  .pxb-exec-grid article{border-bottom:1px solid rgba(255,255,255,.08)}
  .pxb-grid-3,.pxb-grid-4{grid-template-columns:1fr 1fr}
}
@media(max-width:820px){
  .pxb-chain{flex-wrap:wrap;gap:20px;justify-content:center}
  .pxb-chain:before{display:none}
  .pxb-node{flex:0 0 30%}
  .pxb-dot{width:60px;height:60px}
  .pxb-phase ul{grid-template-columns:1fr}
}
@media(max-width:700px){
  .pxb-section{padding:58px 0}
  .pxb-hero{padding:76px 0 60px}
  .pxb-grid-2,.pxb-grid-3,.pxb-grid-4,.pxb-tiles,.pxb-covpanel-body{grid-template-columns:1fr}
  .pxb-exec-grid{grid-template-columns:1fr}
  .pxb-exec-grid article{border-right:0}
  .pxb-covpanel-head,.pxb-covpanel-body{padding:22px}
  .pxb-phase{padding:24px}
  .pxb-slider-arrow{width:32px;height:32px}
  .pxb-toggle{width:100%;justify-content:center}
  .pxb-toggle button{padding:11px 18px;font-size:13.5px}
  .pxb-funnel-row em{display:none}
}
@media (prefers-reduced-motion:reduce){
  .pxb-section *,.pxb-hero *{transition:none!important;animation:none!important}
}

/* ==========================================================================
   Homepage and company-page sections
   ========================================================================== */

/* --- logo wall ----------------------------------------------------------- */
.pxb-logowall{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:30px}
.pxb-logo{
  display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--pxb-line);background:#fff;border-radius:8px;
  padding:14px 24px;font-size:15px;font-weight:500;color:var(--pxb-ink);
  text-decoration:none;transition:border-color .18s,box-shadow .18s,color .18s;
}
a.pxb-logo:hover{border-color:var(--pxb-green);color:var(--pxb-greend);box-shadow:0 8px 22px rgba(13,21,45,.07)}
.pxb-tone-navy .pxb-logo,.pxb-tone-navy2 .pxb-logo{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.14);color:#d6dde7}

/* --- linked card grid ---------------------------------------------------- */
.pxb-linkgroup{margin-top:44px;text-align:left}
.pxb-linkgroup:first-of-type{margin-top:34px}
.pxb-linkgroup-title{
  display:flex;align-items:center;gap:12px;font-family:var(--pxb-text);font-weight:600;
  font-size:17px;color:var(--pxb-ink);margin:0 0 8px;
}
.pxb-linkgroup-title span{width:26px;height:4px;border-radius:2px;flex:0 0 26px}
.pxb-linkgroup-text{font-size:15px;color:var(--pxb-muted);margin:0 0 20px;max-width:78ch}
.pxb-linkcards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.pxb-linkcard{
  display:block;background:#fff;border:1px solid var(--pxb-line);border-left:3px solid var(--pxb-accent,var(--pxb-green));
  border-radius:10px;padding:20px 22px;text-decoration:none;
  transition:box-shadow .2s,transform .2s,border-color .2s;
}
a.pxb-linkcard:hover{box-shadow:0 14px 32px rgba(13,21,45,.09);transform:translateY(-2px)}
.pxb-linkcard h4{font-size:15.5px;font-weight:600;color:var(--pxb-ink);margin:0 0 6px}
a.pxb-linkcard:hover h4{color:var(--pxb-greend)}
.pxb-linkcard p{font-size:13.5px;line-height:1.55;color:var(--pxb-muted);margin:0;max-width:none}
.pxb-linkgroup-all{
  display:inline-block;margin-top:18px;font-size:14.5px;font-weight:500;
  color:var(--pxb-greend);text-decoration:none;border-bottom:1px solid rgba(99,191,17,.35);
}
.pxb-linkgroup-all:hover{border-bottom-color:var(--pxb-greend)}
.pxb-tone-navy .pxb-linkcard,.pxb-tone-navy2 .pxb-linkcard{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.12)}
.pxb-tone-navy .pxb-linkcard h4,.pxb-tone-navy2 .pxb-linkcard h4{color:#fff}
.pxb-tone-navy .pxb-linkcard p,.pxb-tone-navy2 .pxb-linkcard p{color:#a5b3c2}
.pxb-tone-navy .pxb-linkgroup-title,.pxb-tone-navy2 .pxb-linkgroup-title{color:#fff}

/* --- leadership ---------------------------------------------------------- */
.pxb-people{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:38px;text-align:left}
.pxb-person{
  display:grid;grid-template-columns:96px 1fr;gap:22px;align-items:start;
  background:#fff;border:1px solid var(--pxb-line);border-radius:14px;padding:28px;
}
.pxb-person-photo{
  width:96px;height:96px;border-radius:12px;overflow:hidden;background:var(--pxb-tint);
  display:flex;align-items:center;justify-content:center;
}
.pxb-person-photo img{width:100%;height:100%;object-fit:cover;display:block}
.pxb-person-initials{font-family:var(--pxb-display);font-size:28px;font-weight:400;color:var(--pxb-greend)}
.pxb-person-body h3{font-size:19px;font-weight:600;margin:0 0 3px;color:var(--pxb-ink)}
.pxb-person-role{font-size:14.5px;font-weight:500;color:var(--pxb-greend);margin:0 0 6px}
.pxb-person-meta{font-size:13px;color:var(--pxb-muted);margin:0 0 12px}
.pxb-person-bio{font-size:14.5px;line-height:1.6;color:var(--pxb-body);margin:0 0 12px;max-width:none}
.pxb-person-focus{list-style:none;margin:0 0 14px;padding:0}
.pxb-person-focus li{font-size:13.5px;color:var(--pxb-body);padding:4px 0 4px 18px;position:relative}
.pxb-person-focus li:before{content:"";position:absolute;left:0;top:12px;width:8px;height:2px;background:var(--pxb-green)}
.pxb-person-links{display:flex;gap:16px}
.pxb-person-links a{font-size:13.5px;font-weight:500;color:var(--pxb-greend);text-decoration:none;border-bottom:1px solid rgba(99,191,17,.35)}
.pxb-tone-navy .pxb-person,.pxb-tone-navy2 .pxb-person{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.12)}
.pxb-tone-navy .pxb-person-bio,.pxb-tone-navy2 .pxb-person-bio,
.pxb-tone-navy .pxb-person-focus li,.pxb-tone-navy2 .pxb-person-focus li{color:#a5b3c2}

/* --- proof bar ----------------------------------------------------------- */
.pxb-proofbar{padding:44px 0}
.pxb-proof-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.pxb-proof{padding:8px 26px;border-left:1px solid var(--pxb-line);text-align:left}
.pxb-proof:first-child{border-left:0;padding-left:0}
.pxb-proof strong{
  display:block;font-family:var(--pxb-display);font-weight:400;font-size:26px;line-height:1.15;
  color:var(--pxb-ink);margin-bottom:5px;
}
.pxb-proof span{display:block;font-size:13.5px;line-height:1.5;color:var(--pxb-muted)}
.pxb-tone-navy .pxb-proof,.pxb-tone-navy2 .pxb-proof{border-color:rgba(255,255,255,.14)}
.pxb-tone-navy .pxb-proof strong,.pxb-tone-navy2 .pxb-proof strong{color:#fff}
.pxb-tone-navy .pxb-proof span,.pxb-tone-navy2 .pxb-proof span{color:#9fadbc}

@media(max-width:980px){
  .pxb-linkcards{grid-template-columns:1fr 1fr}
  .pxb-people{grid-template-columns:1fr}
  .pxb-proof-grid{grid-template-columns:1fr 1fr;gap:24px 0}
  .pxb-proof:nth-child(3){border-left:0;padding-left:0}
}
@media(max-width:700px){
  .pxb-linkcards{grid-template-columns:1fr}
  .pxb-person{grid-template-columns:1fr;gap:16px}
  .pxb-proof-grid{grid-template-columns:1fr}
  .pxb-proof{border-left:0;padding-left:0;padding-bottom:18px;border-bottom:1px solid var(--pxb-line)}
}

/* ==========================================================================
   WCAG AA contrast overrides
   --pxb-muted was #8b98a6 (2.94:1 on white, 2.72:1 on the tint) and
   --pxb-greend was #63bf11 (2.34:1 on white). Both are text colours and both
   failed AA. The brand green #8dd34f is untouched: it is only ever a fill,
   rule or underline, where the 3:1 non-text threshold applies.
   ========================================================================== */
:root{
  --pxb-muted:#63707b;
  --pxb-greend:#3f7d09;
}

/* Focus rings and selected-state indicators need 3:1 against their
   background; the brand green only reaches 1.82:1 on white. */
.pxb-section :focus-visible,.pxb-hero :focus-visible{outline:3px solid var(--pxb-greend);outline-offset:3px}
.pxb-tabs button[aria-selected="true"],
.pxb-toggle button[aria-selected="true"]{background:var(--pxb-navy);color:#fff}
.pxb-node[aria-selected="true"] .pxb-node-label{color:var(--pxb-ink);font-weight:600}
.pxb-slider-dot.is-active{background:var(--pxb-greend)}

/* ==========================================================================
   Spacing ownership
   services.css applies .svt-sec{padding-block:var(--gap)} to every section.
   Builder widgets set their own vertical rhythm, so that inherited padding
   was stacking on top and making sections taller than the approved design.
   ========================================================================== */
/* Every rule below is written at .svt-sec specificity. Setting
   padding-block:0 on .svt-sec.pxb-section and then restoring it on the
   lower-specificity .pxb-section removed the padding everywhere. */
.svt-sec.pxb-section{padding-block:76px}
.svt-sec.pxb-section.pxb-cta{padding-block:72px}
.svt-sec.pxb-section.pxb-proofbar{padding-block:44px}
.svt-sec.pxb-hero{padding-block:108px 92px}
.svt-sec.pxb-executive{padding-block:0}
.pxb-executive .wrap{padding-top:0;padding-bottom:0}
.pxb-executive .pxb-exec-grid article{padding:34px 30px}

/* The Builder wraps every widget in .svtc-builder-widget; it must not add
   rhythm of its own or the section padding is applied twice. */
.svtc-builder-widget{margin:0}
.svtc-builder-root .svtc-builder-section{margin:0}

@media(max-width:700px){
  .svt-sec.pxb-section{padding-block:58px}
  .svt-sec.pxb-hero{padding-block:76px 60px}
}

/* ==========================================================================
   Hero slider
   Only the backgrounds are absolutely positioned. Copy and cards sit in
   normal flow, so the button can never land on top of the cards.
   ========================================================================== */
.svt-sec.pxb-heroslider{
  position:relative;padding-block:0;overflow:hidden;background:var(--pxb-navy);
  display:flex;flex-direction:column;justify-content:flex-end;
  min-height:clamp(560px,76vh,780px);
}
.pxb-hs-stage{position:absolute;inset:0;z-index:0}
.pxb-hs-bg{
  position:absolute;inset:0;background-size:cover;background-position:center;
  opacity:0;transition:opacity .7s ease;transform:scale(1.03);
}
.pxb-hs-bg.is-active{opacity:1;transform:scale(1);transition:opacity .7s ease,transform 9s ease-out}
.pxb-hs-scrim{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(15,30,48,.86) 0%,rgba(15,30,48,.62) 42%,rgba(15,30,48,.92) 100%);
}

/* Selection inside the hero: the browser default blue sat on top of the
   headings and made them unreadable when text got selected. */
.pxb-heroslider ::selection{background:rgba(141,211,79,.32);color:#fff}
.pxb-heroslider ::-moz-selection{background:rgba(141,211,79,.32);color:#fff}

.pxb-hs-copies{
  position:relative;z-index:2;display:grid;flex:1 1 auto;align-content:center;
  padding:110px 0 64px;
}
.pxb-hs-copy{
  grid-area:1 / 1;text-align:center;
  opacity:0;visibility:hidden;pointer-events:none;transition:opacity .5s ease;
}
.pxb-hs-copy.is-active{opacity:1;visibility:visible;pointer-events:auto}
.pxb-hs-eyebrow{
  font-family:var(--pxb-text);font-size:13.5px;font-weight:600;letter-spacing:.09em;
  text-transform:uppercase;color:var(--pxb-green);margin:0 0 16px;
}
.pxb-hs-heading{
  font-family:var(--pxb-text);font-weight:300;font-size:clamp(32px,4.8vw,58px);line-height:1.12;
  letter-spacing:-.02em;color:#fff;margin:0 auto .45em;max-width:22ch;
}
.pxb-hs-text{font-size:17px;line-height:1.6;color:#d3dde7;margin:0 auto 34px;max-width:64ch}
.pxb-hs-copy .pxb-btn{margin:0 auto}

.pxb-hs-cardwrap{
  position:relative;z-index:3;border-top:1px solid rgba(255,255,255,.14);
  background:rgba(11,26,42,.55);backdrop-filter:blur(2px);
}
.pxb-hs-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:0;padding-left:28px;padding-right:28px}
.pxb-hs-card{
  position:relative;text-align:left;cursor:pointer;background:transparent;border:0;
  border-left:1px solid rgba(255,255,255,.14);padding:26px 26px 24px;font-family:var(--pxb-text);
  transition:background .2s;
}
.pxb-hs-card:first-child{border-left:0}
.pxb-hs-card:hover{background:rgba(255,255,255,.05)}
.pxb-hs-progress{position:absolute;top:0;left:0;right:0;height:3px;background:rgba(255,255,255,.16);display:block}
.pxb-hs-progress i{display:block;height:100%;width:0;background:var(--pxb-green)}
.pxb-hs-card.is-active .pxb-hs-progress i{width:100%;transition:width linear var(--pxb-hs-duration,7s)}
.pxb-heroslider.is-paused .pxb-hs-progress i{transition:none}
.pxb-hs-card-title{display:block;font-size:16px;font-weight:600;color:#fff;margin-bottom:6px;line-height:1.35}
.pxb-hs-card-text{display:block;font-size:14px;line-height:1.5;color:#b9c6d4}
.pxb-hs-card.is-active .pxb-hs-card-text{color:#d9e2ea}

.pxb-hs-pause{
  position:absolute;top:22px;right:22px;z-index:4;width:34px;height:34px;border-radius:50%;
  background:rgba(11,26,42,.6);border:1px solid rgba(255,255,255,.28);color:#fff;
  font-size:11px;letter-spacing:1px;cursor:pointer;
}
.pxb-hs-pause:hover{border-color:var(--pxb-green);color:var(--pxb-green)}

@media(max-width:900px){
  .svt-sec.pxb-heroslider{min-height:0}
  .pxb-hs-copies{padding:72px 0 44px}
  .pxb-hs-cards{grid-template-columns:1fr;padding-left:0;padding-right:0}
  .pxb-hs-card{border-left:0;border-top:1px solid rgba(255,255,255,.14);padding:18px 26px}
  .pxb-hs-card:first-child{border-top:0}
}
@media (prefers-reduced-motion:reduce){
  .pxb-hs-bg,.pxb-hs-copy{transition:none}
  .pxb-hs-bg.is-active{transform:none;transition:none}
  .pxb-hs-card.is-active .pxb-hs-progress i{transition:none;width:100%}
}

/* ==========================================================================
   Heading colour ownership
   services.css sets `.msvc h1, .msvc h2 { color: var(--ink) }` at (0,1,1).
   The Builder root carries .msvc, so that rule outranked the single-class
   .pxb-hs-heading and painted slide headings in dark ink on a dark hero.
   Every rule below is scoped to its section so it wins on specificity
   rather than on stylesheet order.
   ========================================================================== */
.pxb-heroslider .pxb-hs-heading,
.pxb-heroslider h1.pxb-hs-heading,
.pxb-heroslider h2.pxb-hs-heading{color:#fff}
.pxb-heroslider .pxb-hs-eyebrow{color:var(--pxb-green)}
.pxb-heroslider .pxb-hs-text{color:#d3dde7}
.pxb-heroslider .pxb-hs-card-title{color:#fff}
.pxb-heroslider .pxb-hs-card-text{color:#b9c6d4}
.pxb-heroslider .pxb-hs-card.is-active .pxb-hs-card-text{color:#d9e2ea}

/* Same protection for every other widget: light sections keep ink headings,
   dark sections keep white ones, regardless of which stylesheet loads last. */
.pxb-section.pxb-tone-white h2,.pxb-section.pxb-tone-white h3,.pxb-section.pxb-tone-white h4,
.pxb-section.pxb-tone-tint h2,.pxb-section.pxb-tone-tint h3,.pxb-section.pxb-tone-tint h4{color:var(--pxb-ink)}
.pxb-section.pxb-tone-navy h2,.pxb-section.pxb-tone-navy h3,.pxb-section.pxb-tone-navy h4,
.pxb-section.pxb-tone-navy2 h2,.pxb-section.pxb-tone-navy2 h3,.pxb-section.pxb-tone-navy2 h4{color:#fff}
.pxb-hero h1,.pxb-hero .pxb-tagline{color:#fff}
.pxb-executive h4{color:#fff}
.pxb-statement.pxb-tone-navy h2,.pxb-statement.pxb-tone-navy2 h2{color:#fff}
.pxb-cta h2{color:#fff}
.pxb-keycard .pxb-keycard-copy h3{color:#fff}

/* ==========================================================================
   Executive strip: light variant
   Placed straight under a dark hero, the navy variant merged with it and the
   page opened with two near-identical rows of dark cards. The light variant
   gives the page an alternating rhythm and separates the proposition from
   the hero's announcement cards.
   ========================================================================== */
.svt-sec.pxb-executive.pxb-tone-tint{background:var(--pxb-tint)}
.svt-sec.pxb-executive.pxb-tone-white{background:#fff}
.pxb-executive.pxb-tone-tint,
.pxb-executive.pxb-tone-white{border-bottom:1px solid var(--pxb-line)}
.pxb-executive.pxb-tone-tint .pxb-exec-grid article,
.pxb-executive.pxb-tone-white .pxb-exec-grid article{
  border-right:1px solid var(--pxb-line);padding:40px 34px;
}
.pxb-executive.pxb-tone-tint .pxb-exec-grid article:last-child,
.pxb-executive.pxb-tone-white .pxb-exec-grid article:last-child{border-right:0}
.pxb-executive.pxb-tone-tint .pxb-exec-num,
.pxb-executive.pxb-tone-white .pxb-exec-num{color:var(--pxb-greend);font-weight:600}
.pxb-executive.pxb-tone-tint h4,
.pxb-executive.pxb-tone-white h4{color:var(--pxb-ink);font-size:16px;margin-bottom:9px}
.pxb-executive.pxb-tone-tint p,
.pxb-executive.pxb-tone-white p{color:var(--pxb-body);font-size:14.5px;line-height:1.65}

@media(max-width:960px){
  .pxb-executive.pxb-tone-tint .pxb-exec-grid article,
  .pxb-executive.pxb-tone-white .pxb-exec-grid article{border-bottom:1px solid var(--pxb-line)}
}
@media(max-width:560px){
  .pxb-executive.pxb-tone-tint .pxb-exec-grid article,
  .pxb-executive.pxb-tone-white .pxb-exec-grid article{border-right:0;padding:28px 24px}
}

/* --- executive strip: breathing room ------------------------------------
   The strip previously ran edge to edge with zero outer padding. Directly
   below the hero slider's thumbnail cards, and directly above the sticky
   section bar, that left the cells touching both and the boundary between
   the hero and the page invisible. */
.svt-sec.pxb-executive{padding-block:58px}
.pxb-executive.pxb-tone-navy,
.pxb-executive.pxb-tone-navy2{border-top:1px solid rgba(255,255,255,.10)}
.pxb-executive .pxb-exec-grid article{padding:6px 34px}
.pxb-executive .pxb-exec-grid article:first-child{padding-left:0}
.pxb-executive .pxb-exec-grid article:last-child{padding-right:0;border-right:0}
.pxb-executive.pxb-tone-navy .pxb-exec-grid article,
.pxb-executive.pxb-tone-navy2 .pxb-exec-grid article{border-right:1px solid rgba(255,255,255,.12)}

@media(max-width:960px){
  .svt-sec.pxb-executive{padding-block:44px}
  .pxb-executive .pxb-exec-grid article{padding:20px 26px}
  .pxb-executive .pxb-exec-grid article:first-child{padding-left:26px}
}
@media(max-width:560px){
  .svt-sec.pxb-executive{padding-block:36px}
  .pxb-executive .pxb-exec-grid article{padding:18px 0;border-right:0}
  .pxb-executive .pxb-exec-grid article:first-child{padding-left:0}
}

/* Hero supporting paragraph. The field existed and was populated in every
   document, but the hero renderer never read it, so the copy between the
   tagline and the buttons silently disappeared on the live page. */
.pxb-hero .pxb-hero-intro{
  font-size:17px;line-height:1.6;color:#bcc8d6;
  max-width:64ch;margin:0 auto 30px;
}
.pxb-hero .pxb-tagline{margin-bottom:20px}
@media(max-width:700px){
  .pxb-hero .pxb-hero-intro{font-size:15.5px;margin-bottom:24px}
}

/* --- case study cards: metrics and link treatment ------------------------ */
.pxb-case h3{font-size:17px;font-weight:500;line-height:1.35;margin:8px 0 10px}
.pxb-case h3 a{color:var(--pxb-ink);text-decoration:none}
.pxb-case h3 a:hover{color:var(--pxb-greend)}
.pxb-case-metrics{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0 0 12px}
.pxb-case-metrics span{display:flex;flex-direction:column;font-size:11.5px;line-height:1.35;color:var(--pxb-muted)}
.pxb-case-metrics strong{
  font-family:var(--pxb-display);font-weight:400;font-size:19px;line-height:1.1;
  color:var(--pxb-greend);margin-bottom:1px;
}
.pxb-case-more{
  display:inline-block;font-size:13.5px;font-weight:500;color:var(--pxb-greend);
  text-decoration:none;border-bottom:1px solid rgba(63,125,9,.35);
}
.pxb-case-more:hover{border-bottom-color:var(--pxb-greend)}
.pxb-case-media img{width:100%;height:170px;object-fit:cover;display:block}
.pxb-case-media--empty{height:170px;padding:16px;text-align:center;font-family:var(--pxb-text);font-size:14px;font-weight:500;color:#7d8b99}
.pxb-cases .pxb-linkgroup-all{margin-top:30px}
.pxb-tone-navy .pxb-case h3 a,.pxb-tone-navy2 .pxb-case h3 a{color:#fff}

/* Evidence section without a funnel: heading and body run full width rather
   than sitting in a two-column split beside an empty chart card. */
.pxb-evidence-wide{text-align:left}
.pxb-evidence-wide>div{max-width:none}
.pxb-evidence-wide .pxb-head p,.pxb-evidence-wide .pxb-rich p{max-width:82ch}

/* ==========================================================================
   Archive templates
   One template serves Services, Solutions, Industries, Compliance and Case
   Studies, so the card and grid styles carry all five.
   ========================================================================== */
.pxa-hero{text-align:center}
.pxa-hero .pxb-hero-intro{margin-bottom:28px}
.pxa-hero .pxb-hero-cta{display:flex;justify-content:center}

.pxa-filter{background:#fff;border-bottom:1px solid var(--pxb-line);padding:16px 0}
.pxa-filter .wrap{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.pxa-chip{
  display:inline-flex;align-items:center;font-family:var(--pxb-text);font-size:13.5px;font-weight:500;
  color:var(--pxb-body);background:#fff;border:1px solid var(--pxb-line);border-radius:40px;
  padding:8px 16px;text-decoration:none;transition:border-color .16s,color .16s;
}
.pxa-chip:hover{border-color:var(--pxb-greend);color:var(--pxb-greend)}
.pxa-chip.is-active{background:var(--pxb-navy);border-color:var(--pxb-navy);color:#fff}

.pxa-grid{display:grid;gap:22px}
.pxa-grid--three{grid-template-columns:repeat(3,1fr)}
.pxa-grid--four{grid-template-columns:repeat(4,1fr)}

.pxa-card{
  display:flex;flex-direction:column;background:#fff;border:1px solid var(--pxb-line);
  border-radius:12px;overflow:hidden;text-decoration:none;transition:border-color .16s,box-shadow .16s;
}
.pxa-card:hover{border-color:var(--pxb-greend);box-shadow:0 6px 22px rgba(13,21,45,.06)}
.pxa-card--link{padding:26px 24px}
.pxa-card h3{font-size:17px;font-weight:600;line-height:1.35;color:var(--pxb-ink);margin:0 0 10px}
.pxa-card--case h3{margin:6px 0 6px}
.pxa-card--case h3 a{color:var(--pxb-ink);text-decoration:none}
.pxa-card--case h3 a:hover{color:var(--pxb-greend)}
.pxa-card p{font-size:14.5px;line-height:1.6;color:var(--pxb-muted);margin:0 0 14px}
.pxa-card-more{
  margin-top:auto;font-size:13.5px;font-weight:500;color:var(--pxb-greend);
  border-bottom:1px solid rgba(63,125,9,.3);align-self:flex-start;
}
.pxa-card-media img{width:100%;height:170px;object-fit:cover;display:block}
.pxa-card-body{padding:22px 24px;display:flex;flex-direction:column;flex:1}
.pxa-card-tag{
  font-size:11px;font-weight:600;letter-spacing:.08em;color:var(--pxb-greend);
}
.pxa-card-client{font-size:13.5px;font-weight:500;color:var(--pxb-body);margin:0 0 10px}
.pxa-card-metrics{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0 0 12px}
.pxa-card-metrics span{display:flex;flex-direction:column;font-size:11.5px;line-height:1.35;color:var(--pxb-muted)}
.pxa-card-metrics strong{
  font-family:var(--pxb-display);font-weight:400;font-size:18px;line-height:1.1;
  color:var(--pxb-greend);margin-bottom:1px;
}

.pxa-pagination{margin-top:38px;display:flex;justify-content:center}
.pxa-pagination .nav-links{display:flex;gap:6px;flex-wrap:wrap}
.pxa-pagination .page-numbers{
  display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:38px;
  padding:0 12px;border:1px solid var(--pxb-line);border-radius:8px;
  font-size:14px;color:var(--pxb-body);text-decoration:none;
}
.pxa-pagination .page-numbers:hover{border-color:var(--pxb-greend);color:var(--pxb-greend)}
.pxa-pagination .page-numbers.current{background:var(--pxb-navy);border-color:var(--pxb-navy);color:#fff}

@media(max-width:1000px){
  .pxa-grid--four{grid-template-columns:repeat(2,1fr)}
  .pxa-grid--three{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:640px){
  .pxa-grid--three,.pxa-grid--four{grid-template-columns:1fr}
}

/* ==========================================================================
   Client revisions
   1. Hero action buttons removed site-wide.
   2. The green rule above headings removed everywhere it appears.
   3. Statement band: left aligned, optional background image, bar motif.
   ========================================================================== */

/* 1 + 2 — belt and braces for any markup that still emits these. */
.pxb-hero .pxb-actions{display:none}
.pxb-rule{display:none !important}

/* 3 — Statement band.
   The live design places the bar motif OUTSIDE the text column, against the
   container's left edge, straddling the section's top and bottom borders. The
   copy is then indented clear of it. That means the marks are positioned
   against the section rather than flowing inline, and the section cannot clip
   its own overflow. */
.svt-sec.pxb-statement.pxb-statement-left{position:relative;overflow:visible;text-align:left}
.pxb-statement-left .wrap{position:relative;z-index:2;max-width:var(--pxb-maxw)}

/* Copy block, indented past the marks. */
.pxb-statement-inner{position:relative;z-index:2;padding-left:152px}
.pxb-statement-left .pxb-head{text-align:left;margin-left:0;margin-right:auto;max-width:none}
.pxb-statement-left .pxb-head p{margin-left:0;margin-right:0}
.pxb-statement-left .pxb-head h2{
  text-align:left;font-size:clamp(40px,4.8vw,66px);font-weight:600;
  line-height:1.05;margin:0 0 26px;
}
.pxb-statement-left .pxb-rich{max-width:84ch;margin:0;text-align:left}
.pxb-statement-left .pxb-rich p{font-size:16.5px;line-height:1.7;margin:0 0 14px}

/* Background image and its scrim. */
.pxb-statement-bg{
  position:absolute;inset:0;z-index:0;overflow:hidden;
  background-size:cover;background-position:center;background-repeat:no-repeat;
}
.pxb-statement-scrim{position:absolute;inset:0;z-index:1;background:rgba(15,30,48,.62)}
.pxb-statement.has-bg .pxb-head h2{color:#fff}
.pxb-statement.has-bg .pxb-rich p{color:rgba(255,255,255,.92)}

/* The bar motif. Positioned against the section, aligned to the container's
   left edge, and allowed to cross the section boundary as it does on the live
   site. The base .pxb-marks rule centres the group, so that is overridden. */
.pxb-statement-left .pxb-marks{
  position:absolute;z-index:3;
  left:max(28px, calc(50% - (var(--pxb-maxw) / 2) + 28px));
  display:flex;justify-content:flex-start;align-items:flex-start;
  margin:0;padding:0;
}
.pxb-statement-left .pxb-marks-top{top:-26px}
.pxb-statement-left .pxb-marks-bottom{bottom:-30px}
.pxb-statement-left .pxb-marks i,
.pxb-statement-left .pxb-marks b,
.pxb-statement-left .pxb-marks u{display:block;border:0;text-decoration:none;margin:0}
.pxb-statement-left .pxb-marks-top i{width:15px;height:74px;background:var(--pxb-green)}
.pxb-statement-left .pxb-marks-top b{width:24px;height:24px;background:var(--pxb-orange);margin:50px 0 0 14px}
.pxb-statement-left .pxb-marks-bottom b{width:24px;height:24px;background:var(--pxb-green);margin:44px 0 0 0}
.pxb-statement-left .pxb-marks-bottom u{width:13px;height:68px;background:var(--pxb-blue);margin:0 0 0 14px}

@media(max-width:1100px){
  .pxb-statement-inner{padding-left:96px}
}
/* Superseded by the mobile block below, which stacks the marks instead of
   positioning them absolutely. */

/* ==========================================================================
   Typography aligned to the live site
   Taken from the supplied page source rather than estimated:
     h1 hero      Inter 300, 60px, line-height 1.2   (40px under 980px)
     hero tagline Space Grotesk 300, 32px
     section h2   300, 48px, letter-spacing -2px, line-height 1em (36px mobile)
     statement h2 700, 48px, line-height .9em
     body copy    Inter 300, 16px
   ========================================================================== */
.pxb-section h2,
.pxb-hero h2{
  font-family:var(--pxb-display);
  font-weight:300;
  font-size:48px;
  line-height:1em;
  letter-spacing:-2px;
  color:var(--pxb-ink);
  margin:0 0 .4em;
}
.pxb-tone-navy h2,.pxb-tone-navy2 h2{color:#fff}

.pxb-hero h1{
  font-family:var(--pxb-text);
  font-weight:300;
  font-size:60px;
  line-height:1.2em;
  letter-spacing:normal;
  color:#fff;
}
.pxb-hero .pxb-tagline{
  font-family:var(--pxb-display);
  font-weight:300;
  font-size:32px;
  line-height:1.2em;
  color:#fff;
}

.pxb-section p,
.pxb-hero .pxb-hero-intro,
.pxb-intro,
.pxb-rich p{font-family:var(--pxb-text);font-weight:300;font-size:16px;line-height:1.7em}

/* The Solutions band is the one heading the live site sets heavy and tight. */
.pxb-statement-left .pxb-head h2{
  font-family:var(--pxb-display);
  font-weight:700;
  font-size:48px;
  line-height:.9em;
  letter-spacing:normal;
  margin:0 0 26px;
}

@media(max-width:980px){
  .pxb-hero h1{font-size:40px}
  .pxb-hero .pxb-tagline{font-size:24px}
  .pxb-section h2,.pxb-hero h2{font-size:36px;letter-spacing:-1px}
  .pxb-statement-left .pxb-head h2{font-size:40px}
}
@media(max-width:600px){
  .pxb-section h2,.pxb-hero h2{font-size:30px}
  .pxb-statement-left .pxb-head h2{font-size:32px}
}

/* ==========================================================================
   Mobile fixes
   1. Anchor targets clearing the site header and the sticky section nav.
   2. Statement marks no longer crossing the copy on narrow screens.
   3. Methodology: circle grid replaced by an icon-left accordion.
   4. Coverage: wrapping pills replaced by the same accordion pattern.
   ========================================================================== */

/* 1 — Jumping to a section must not park it under the two fixed bars. */
:root{--pxb-sticky-offset:150px}
.svt-sec[id],.pxb-section[id],.svtc-builder-section[data-builder-section]{scroll-margin-top:var(--pxb-sticky-offset)}
@media(max-width:900px){
  :root{--pxb-sticky-offset:132px}
}

/* 3 + 4 — shared accordion, shown only on small screens. */
.pxb-phase-accordion,.pxb-cov-accordion{display:none}
.pxb-acc{
  border:1px solid var(--pxb-line);border-radius:12px;background:#fff;
  margin:0 0 10px;overflow:hidden;
}
.pxb-acc[open]{border-color:var(--pxb-node,var(--pxb-greend))}
.pxb-acc-summary{
  display:flex;align-items:center;gap:12px;cursor:pointer;list-style:none;
  padding:15px 16px;font-family:var(--pxb-text);font-size:15.5px;font-weight:600;
  color:var(--pxb-ink);text-align:left;
}
.pxb-acc-summary::-webkit-details-marker{display:none}
.pxb-acc-icon{
  flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;
  width:38px;height:38px;border-radius:50%;
  border:1.5px solid var(--pxb-node,var(--pxb-greend));background:#fff;
}
.pxb-acc-cov .pxb-sw{flex:0 0 auto;width:11px;height:11px;border-radius:50%;display:inline-block}
.pxb-acc-title{flex:1 1 auto;line-height:1.35}
.pxb-acc-chevron{
  flex:0 0 auto;width:9px;height:9px;border-right:2px solid var(--pxb-muted);
  border-bottom:2px solid var(--pxb-muted);transform:rotate(45deg);
  transition:transform .18s ease;margin-right:3px;
}
.pxb-acc[open] .pxb-acc-chevron{transform:rotate(-135deg)}
.pxb-acc-body{padding:0 16px 18px;border-top:1px solid var(--pxb-line)}
.pxb-acc-body h3{font-size:16px;font-weight:600;margin:16px 0 8px;color:var(--pxb-ink)}
.pxb-acc-body p{font-size:15px;line-height:1.65;color:var(--pxb-body);margin:14px 0 12px}
.pxb-acc-body ul{margin:0;padding-left:18px}
.pxb-acc-body li{font-size:14.5px;line-height:1.6;color:var(--pxb-body);margin:0 0 7px}
.pxb-acc-body .pxb-covpanel-body{display:grid;gap:8px;margin-top:10px}
.pxb-acc-body .pxb-covpanel-body div{
  font-size:14.5px;line-height:1.5;color:var(--pxb-body);
  padding-left:15px;position:relative;
}
.pxb-acc-body .pxb-covpanel-body div::before{
  content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;border-radius:50%;
  background:var(--pxb-node,var(--pxb-greend));
}
/* Dark sections need the panels inverted. */
.pxb-tone-navy .pxb-acc,.pxb-tone-navy2 .pxb-acc{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.14)}
.pxb-tone-navy .pxb-acc-summary,.pxb-tone-navy2 .pxb-acc-summary{color:#fff}
.pxb-tone-navy .pxb-acc-icon,.pxb-tone-navy2 .pxb-acc-icon{background:transparent}
.pxb-tone-navy .pxb-acc-body,.pxb-tone-navy2 .pxb-acc-body{border-top-color:rgba(255,255,255,.14)}
.pxb-tone-navy .pxb-acc-body h3,.pxb-tone-navy2 .pxb-acc-body h3{color:#fff}
.pxb-tone-navy .pxb-acc-body p,.pxb-tone-navy .pxb-acc-body li,
.pxb-tone-navy2 .pxb-acc-body p,.pxb-tone-navy2 .pxb-acc-body li{color:rgba(255,255,255,.86)}

@media(max-width:780px){
  /* Swap the desktop interactions for the accordions. */
  .pxb-methodology .pxb-chain,.pxb-methodology .pxb-phase-panels{display:none}
  .pxb-coverage .pxb-tabs,.pxb-coverage .pxb-tab-panels{display:none}
  .pxb-phase-accordion,.pxb-cov-accordion{display:block;text-align:left;margin-top:26px}
  .pxb-methodology,.pxb-coverage{text-align:left}
  .pxb-methodology .pxb-head,.pxb-coverage .pxb-head{text-align:center}

  /* 2 — the marks were running straight through the heading and copy. */
  .pxb-statement-left .pxb-marks{position:static;margin:0}
  .pxb-statement-inner{padding-left:0}
  .pxb-statement-left .pxb-marks-top{margin:0 0 20px}
  .pxb-statement-left .pxb-marks-bottom{margin:26px 0 0}
  .pxb-statement-left .pxb-marks-top i{height:48px}
  .pxb-statement-left .pxb-marks-top b{margin-top:30px}
  .pxb-statement-left .pxb-marks-bottom b{margin-top:22px}
  .pxb-statement-left .pxb-marks-bottom u{height:44px}
}
