/* CAQA Analytics - data-driven business analysis design */
:root{
  --navy:#0B1B3A;--deep:#071228;--blue:#2E7CF6;--teal:#18C29C;--amber:#FFB224;--coral:#FF5D73;
  --ink:#0E1B38;--body:#3D4A68;--muted:#5C6683;/* cq-a11y: was #6B7591, 4.31:1 on --ice; darkened on-hue to pass 4.5:1 */--line:#E1E6F2;--paper:#FFFFFF;--ice:#F5F8FD;
  --grad:linear-gradient(110deg,#2E7CF6,#18C29C);
  --shadow:0 12px 30px rgba(11,27,58,.1);--shadow-lg:0 30px 64px rgba(11,27,58,.18);--max:1200px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Montserrat','Inter',sans-serif;color:var(--body);background:var(--paper);line-height:1.72;font-size:16.5px;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4{font-family:'Space Grotesk',sans-serif;color:var(--ink);line-height:1.1;font-weight:700;letter-spacing:-.015em}
.mono{font-family:'IBM Plex Mono',monospace}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none;transition:color .2s}
ul{list-style:none}
.container{max-width:var(--max);margin:0 auto;padding:0 24px}
.center{text-align:center}
.mt-1{margin-top:10px}.mt-2{margin-top:22px}.mt-3{margin-top:32px}
.h-xl{font-size:clamp(2rem,4.4vw,3.2rem)}
.h-lg{font-size:clamp(1.55rem,3vw,2.2rem)}
.gx{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.eyebrow{display:inline-flex;align-items:center;gap:12px;font-size:0.8125rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--blue);font-family:'IBM Plex Mono',monospace}
.eyebrow::before{content:"//";color:var(--teal);font-weight:700}
.lead{font-size:1.1rem;color:var(--muted);max-width:780px}
#scrollbar{position:fixed;top:0;left:0;height:3px;background:var(--grad);z-index:200;width:0}
/* grid paper background */
.gridbg{background-image:linear-gradient(rgba(46,124,246,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(46,124,246,.05) 1px,transparent 1px);background-size:34px 34px}
/* header */
.topbar{background:var(--deep);color:#93A3C8;font-size:0.8125rem;font-family:'IBM Plex Mono',monospace}
.topbar .container{display:flex;justify-content:space-between;align-items:center;min-height:36px;gap:14px}
.topbar a{color:#fff;font-weight:600}
.topbar a:hover{color:#5FE3C2}
.header{position:sticky;top:0;z-index:90;background:rgba(255,255,255,.95);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);transition:transform .4s,box-shadow .3s}
.header.hide{transform:translateY(-110%)}
.header.scrolled{box-shadow:var(--shadow)}
.header .container{display:flex;align-items:center;justify-content:space-between;min-height:80px;gap:16px}
.brand img{height:59px;width:auto}
.nav{display:flex;align-items:center;gap:2px}
.nav>div{position:relative}
.nav a.top,.nav>a{padding:12px 14px;font-size:.9rem;font-weight:600;color:var(--ink);display:inline-flex;align-items:center;gap:6px;position:relative}
.nav a.top::after,.nav>a::after{content:"";position:absolute;left:14px;right:14px;bottom:6px;height:2.5px;background:var(--grad);transform:scaleX(0);transform-origin:left;transition:.28s}
.nav a.top:hover::after,.nav>a:hover::after,.nav>a.on::after,.nav a.top.on::after{transform:scaleX(1)}
.caret{width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:.3s}
.nav>div:hover .caret{transform:rotate(225deg) translateY(-3px)}
.drop{position:absolute;top:100%;left:0;min-width:330px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg);padding:12px;opacity:0;visibility:hidden;transform:translateY(12px);transition:.3s;z-index:95;max-height:72vh;overflow:auto}
.nav>div:hover .drop{opacity:1;visibility:visible;transform:none}
.drop.mega{left:50%;transform:translateX(-50%) translateY(12px);width:min(880px,94vw);display:grid;grid-template-columns:1fr 1fr 1fr;gap:4px;padding:18px}
.nav>div:hover .drop.mega{transform:translateX(-50%) translateY(0)}
.drop a{display:block;padding:8px 14px;font-size:.85rem;font-weight:600;color:var(--body);border-radius:9px;transition:.2s;border-left:2px solid transparent}
.drop a:hover{background:var(--ice);color:var(--blue);border-left-color:var(--teal);padding-left:18px}
.drop .dl{font-size:0.8125rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--teal);padding:10px 14px 4px;display:block;font-family:'IBM Plex Mono',monospace}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:14px 30px;border-radius:12px;font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:.88rem;cursor:pointer;border:0;position:relative;overflow:hidden;transition:.25s;will-change:transform}
.btn-blue{background:var(--blue);color:#fff;box-shadow:0 10px 26px rgba(46,124,246,.32)}
.btn-blue:hover{background:#1C63D8;transform:translateY(-3px)}
.btn-teal{background:var(--teal);color:#fff;box-shadow:0 10px 26px rgba(24,194,156,.32)}
.btn-teal:hover{background:#10A282;transform:translateY(-3px)}
.btn-line{background:transparent;color:var(--ink);border:2px solid var(--ink)}
.btn-line:hover{background:var(--ink);color:#fff;transform:translateY(-3px)}
.btn-white{background:#fff;color:var(--navy)}
.btn-white:hover{transform:translateY(-3px);box-shadow:0 14px 32px rgba(0,0,0,.26)}
.btn:active{transform:scale(.97)}
.btn-blue::after,.btn-teal::after{content:"";position:absolute;top:0;left:-80%;width:50%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.4),transparent);transform:skewX(-20deg);transition:left .55s}
.btn-blue:hover::after,.btn-teal:hover::after{left:130%}
.nav-toggle{display:none;background:0;border:0;cursor:pointer;width:44px;height:44px}
.nav-toggle span{display:block;width:24px;height:2.5px;background:var(--ink);margin:5px auto;border-radius:2px}
.ripple{position:absolute;border-radius:50%;background:rgba(46,124,246,.16);transform:scale(0);animation:rip .6s ease-out forwards;pointer-events:none}
@keyframes rip{to{transform:scale(3.4);opacity:0}}
/* hero with live chart */
.mast{position:relative;min-height:580px;display:flex;align-items:center;overflow:hidden;background:var(--deep);color:#fff}
.mast::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(46,124,246,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(46,124,246,.08) 1px,transparent 1px);background-size:38px 38px}
.mast::after{content:"";position:absolute;inset:0;background:radial-gradient(700px 360px at 85% 10%,rgba(24,194,156,.16),transparent 60%),radial-gradient(560px 320px at 0% 100%,rgba(46,124,246,.2),transparent 60%)}
.mast .container{position:relative;z-index:2;display:grid;grid-template-columns:1.02fr .98fr;gap:50px;align-items:center;padding-top:60px;padding-bottom:60px}
.mast h1{color:#fff;font-size:clamp(2.3rem,4.8vw,3.8rem)}
.mast .lead{color:#B9C6E4;margin-top:18px}
.hero-cta{display:flex;gap:14px;margin-top:28px;flex-wrap:wrap}
.kpis{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
.kpi{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:12px 18px;transition:.3s;font-family:'IBM Plex Mono',monospace}
.kpi:hover{transform:translateY(-4px);border-color:var(--teal);background:rgba(24,194,156,.08)}
.kpi b{font-size:1.3rem;color:#5FE3C2;display:block}
.kpi span{font-size:0.8125rem;color:#93A3C8;letter-spacing:.1em;text-transform:uppercase}
/* dashboard mock */
.dash{background:#0D2147;border:1px solid #1B3461;border-radius:18px;padding:22px;box-shadow:0 40px 90px rgba(0,0,0,.45);position:relative}
.dash .bar-row{display:flex;align-items:flex-end;gap:10px;height:150px;padding:8px 4px 0}
.dash .bar{flex:1;border-radius:6px 6px 0 0;background:linear-gradient(180deg,#2E7CF6,#18C29C);transform:scaleY(0);transform-origin:bottom;animation:barup 1.2s cubic-bezier(.22,1,.36,1) forwards}
.dash .bar:nth-child(2n){background:linear-gradient(180deg,#5FE3C2,#2E7CF6)}
@keyframes barup{to{transform:scaleY(1)}}
.dash .dhead{display:flex;justify-content:space-between;align-items:center;font-family:'IBM Plex Mono',monospace;font-size:0.8125rem;color:#93A3C8;letter-spacing:.12em;text-transform:uppercase;padding-bottom:12px;border-bottom:1px solid #1B3461}
.dash .dots i{width:9px;height:9px;border-radius:50%;display:inline-block;margin-left:5px}
.sline{margin-top:16px}
.sline path{fill:none;stroke:#FFB224;stroke-width:2.5;stroke-dasharray:600;stroke-dashoffset:600;animation:dash 2.4s 1s ease-out forwards}
.sline circle{fill:#FFB224;opacity:0;animation:fadein .4s 2.6s forwards}
@keyframes dash{to{stroke-dashoffset:0}}
@keyframes fadein{to{opacity:1}}
.dfoot{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px}
.dfoot div{background:#10294F;border:1px solid #1B3461;border-radius:10px;padding:10px 12px;font-family:'IBM Plex Mono',monospace}
.dfoot b{color:#fff;font-size:1rem;display:block}
.dfoot span{font-size:0.8125rem;color:#93A3C8;letter-spacing:.1em;text-transform:uppercase}
.dfoot .up{color:#5FE3C2}.dfoot .down{color:#FF8B9C}
@media(prefers-reduced-motion:no-preference){
  .split-line{display:inline-block;overflow:hidden;vertical-align:bottom}
  .split-word{display:inline-block;transform:translateY(110%) rotate(3deg);animation:wordup .9s cubic-bezier(.22,1,.36,1) forwards}
  @keyframes wordup{to{transform:none}}
  .mast .eyebrow{opacity:0;animation:fadein .8s .1s forwards}
  .mast .lead,.mast .hero-cta,.mast .kpis{opacity:0;animation:riseup 1s .5s cubic-bezier(.22,1,.36,1) forwards}
  @keyframes riseup{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
}
/* ticker */
.ticker{background:var(--deep);border-top:1px solid #14264C;overflow:hidden;padding:11px 0}
.tk-track{display:flex;white-space:nowrap;animation:mq 34s linear infinite;font-family:'IBM Plex Mono',monospace}
.tk-track span{display:inline-flex;align-items:center;gap:16px;padding:0 16px;font-size:0.8125rem;color:#93A3C8;letter-spacing:.08em}
.tk-track i{color:#5FE3C2;font-style:normal}
.ticker:hover .tk-track{animation-play-state:paused}
@keyframes mq{to{transform:translateX(-50%)}}
/* sections */
.section{padding:74px 0}
.section.ice{background:var(--ice)}
.section.navy{background:var(--navy);color:#fff}
.section.navy h2,.section.navy h3{color:#fff}
.section:has(.cta-band){padding-top:14px;padding-bottom:30px}
/* service cards: report style */
.sv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:30px}
.sv{background:#fff;border:1.5px solid var(--line);border-radius:16px;padding:26px 24px;display:block;position:relative;overflow:hidden;transition:.3s;transform-style:preserve-3d}
.sv::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:var(--grad);transform:scaleX(0);transform-origin:left;transition:.4s}
.sv:hover{transform:translateY(-7px);box-shadow:var(--shadow-lg);border-color:transparent}
.sv:hover::before{transform:scaleX(1)}
.sv .tagn{font-family:'IBM Plex Mono',monospace;font-size:0.8125rem;color:var(--teal);letter-spacing:.16em;display:block;margin-bottom:10px}
.sv h3{font-size:1.06rem;margin-bottom:8px;transition:color .3s}
.sv:hover h3{color:var(--blue)}
.sv p{font-size:.87rem;color:var(--muted)}
.sv .spark{margin-top:14px;height:34px}
.sv .spark path{fill:none;stroke:var(--blue);stroke-width:2;opacity:.7;transition:.3s}
.sv:hover .spark path{stroke:var(--teal);opacity:1}
/* method steps: pipeline */
.pipe{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:30px;position:relative;counter-reset:pp}
.pipe::before{content:"";position:absolute;top:33px;left:6%;right:6%;height:2px;background:repeating-linear-gradient(90deg,var(--line) 0 10px,transparent 10px 18px)}
.pp{background:#fff;border:1.5px solid var(--line);border-radius:16px;padding:24px 22px;transition:.3s;counter-increment:pp;position:relative;z-index:2}
.pp::before{content:"0" counter(pp);font-family:'IBM Plex Mono',monospace;font-weight:700;font-size:.85rem;color:#fff;background:var(--grad);width:42px;height:42px;border-radius:12px;display:grid;place-items:center;margin-bottom:14px;box-shadow:0 10px 22px rgba(46,124,246,.3)}
.pp:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.pp h3{font-size:1rem;margin-bottom:6px}
.pp p{font-size:.84rem;color:var(--muted)}
/* case studies: file style */
.case{background:#fff;border:1.5px solid var(--line);border-radius:18px;overflow:hidden;transition:.3s;margin-bottom:20px}
.case:hover{box-shadow:var(--shadow-lg);border-color:#BBD4F5}
.case summary{cursor:pointer;list-style:none;padding:24px 28px;display:flex;align-items:center;gap:18px}
.case summary::-webkit-details-marker{display:none}
.case .cs-tag{font-family:'IBM Plex Mono',monospace;font-size:0.8125rem;background:var(--ice);border:1px solid var(--line);border-radius:8px;padding:6px 10px;color:var(--blue);letter-spacing:.12em;flex:none}
.case h3{font-size:1.05rem;flex:1}
.case .plus{width:34px;height:34px;border-radius:50%;border:1.5px solid var(--line);display:grid;place-items:center;color:var(--blue);font-size:1.2rem;transition:.3s;flex:none}
.case[open] .plus{transform:rotate(45deg);background:var(--blue);color:#fff;border-color:transparent}
.case .cs-body{padding:0 28px 26px;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.case .cs-body>div{background:var(--ice);border:1px solid var(--line);border-radius:12px;padding:18px}
.case .cs-body b{font-family:'IBM Plex Mono',monospace;font-size:0.8125rem;letter-spacing:.16em;text-transform:uppercase;color:var(--teal);display:block;margin-bottom:8px}
.case .cs-body p{font-size:.85rem;color:var(--body)}
/* pricing */
.tier-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:30px;align-items:stretch}
.tier{background:#fff;border:1.5px solid var(--line);border-radius:20px;padding:34px 28px;position:relative;overflow:hidden;transition:.3s;display:flex;flex-direction:column}
.tier:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg)}
.tier.hot{border:2.5px solid transparent;background:linear-gradient(#fff,#fff) padding-box,var(--grad) border-box;box-shadow:var(--shadow-lg)}
.tier h3{font-size:1.2rem}
.tier .meta{font-family:'IBM Plex Mono',monospace;font-size:0.8125rem;color:var(--teal);letter-spacing:.12em;margin:8px 0 14px;text-transform:uppercase}
.tier ul{margin:0 0 22px}
.tier li{padding:8px 0 8px 28px;position:relative;font-size:.89rem;border-bottom:1px dashed var(--line)}
.tier li::before{content:"";position:absolute;left:0;top:12px;width:17px;height:17px;border-radius:50%;background:var(--grad);mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/contain no-repeat}
.tier .btn{margin-top:auto;width:100%}
/* quotes: ledger style */
.q-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:30px}
.q-card{background:#fff;border:1.5px solid var(--line);border-left:4px solid var(--teal);border-radius:14px;padding:26px;transition:.3s}
.q-card:nth-child(2n){border-left-color:var(--blue)}
.q-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.q-card p{font-size:.89rem;font-style:italic;color:var(--body)}
.q-card .who{margin-top:14px;font-size:0.8125rem;font-weight:700;color:var(--ink);font-family:'IBM Plex Mono',monospace;letter-spacing:.04em}
/* people */
.team-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-top:30px}
.person{background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:20px 14px;text-align:center;transition:.3s}
.person:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}
.avatar{width:64px;height:64px;border-radius:50%;margin:0 auto 10px;display:grid;place-items:center;font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:1.1rem;color:#fff;background:var(--grad)}
.person h3{font-size:.84rem}
.person .role{font-size:0.8125rem;color:var(--muted);font-weight:600;margin-top:3px;line-height:1.4}
/* forms */
.field{margin-bottom:18px}
.field label{display:block;font-size:0.8125rem;font-weight:700;color:var(--ink);margin-bottom:7px;letter-spacing:.12em;text-transform:uppercase;font-family:'IBM Plex Mono',monospace}
.field input,.field select,.field textarea{width:100%;padding:13px 16px;border:1.5px solid var(--line);border-radius:12px;font:inherit;font-size:.93rem;color:var(--ink);background:#fff;transition:.25s}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 4px rgba(46,124,246,.13)}
.form-card{background:#fff;border:1.5px solid var(--line);border-radius:20px;padding:36px;box-shadow:var(--shadow)}
.info-card{background:#fff;border:1.5px solid var(--line);border-radius:16px;padding:28px;transition:.3s}
.info-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}
.info-card .row{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px dashed var(--line);font-size:.88rem}
.info-card .row b{text-align:right;color:var(--ink)}
/* page hero */
.page-hero{position:relative;background:var(--deep);color:#fff;padding:48px 0 42px;overflow:hidden}
.page-hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(46,124,246,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(46,124,246,.08) 1px,transparent 1px);background-size:38px 38px}
.page-hero::after{content:"";position:absolute;inset:0;background:radial-gradient(640px 300px at 88% 0%,rgba(24,194,156,.16),transparent 60%)}
.page-hero .container{position:relative;z-index:2}
.page-hero h1{color:#fff;font-size:clamp(2rem,4.2vw,3rem);max-width:880px}
.page-hero .lead{color:#B9C6E4;margin-top:14px}
.crumbs{font-size:0.8125rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#7E90BC;margin-bottom:16px;font-family:'IBM Plex Mono',monospace}
.crumbs a{color:#5FE3C2}
.page-hero .eyebrow{color:#5FE3C2}
/* prose blocks */
.bp{display:grid;grid-template-columns:70px 1fr;gap:24px;padding:30px 0;border-bottom:1px solid var(--line)}
.bp .num{font-family:'IBM Plex Mono',monospace;font-weight:700;font-size:.9rem;color:var(--teal);position:sticky;top:112px;align-self:start;background:var(--ice);border:1px solid var(--line);border-radius:10px;padding:8px 0;text-align:center}
.bp h2{font-size:1.35rem;margin-bottom:8px}
.bp p{color:var(--body);font-size:.94rem;margin-bottom:10px;max-width:820px}
.tag-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.tag-list span{font-size:0.8125rem;font-weight:600;color:var(--blue);background:rgba(46,124,246,.08);border-radius:8px;padding:5px 12px;transition:.25s;font-family:'IBM Plex Mono',monospace}
.tag-list span:hover{background:var(--grad);color:#fff;transform:translateY(-2px)}
/* cta */
.cta-band{background:#fff;color:var(--ink);border:2.5px solid var(--ink);border-radius:20px;box-shadow:10px 10px 0 var(--teal);padding:42px 46px;display:flex;justify-content:space-between;align-items:center;gap:30px;transition:.3s}
.cta-band:hover{box-shadow:14px 14px 0 var(--blue);transform:translate(-3px,-3px)}
.cta-band h2{font-size:clamp(1.4rem,2.6vw,2rem)}
.cta-band p{margin-top:8px;max-width:620px;font-size:.93rem;color:var(--muted)}
.cta-band .btn-white{background:var(--ink);color:#fff}
.cta-band .btn-white:hover{background:var(--blue)}
/* reveal */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s,transform .7s}
.reveal.in{opacity:1;transform:none}
.d1{transition-delay:.1s}.d2{transition-delay:.2s}.d3{transition-delay:.3s}
/* dome footer + newsletter */
.f-news{position:relative;z-index:3;width:min(1120px,90%);margin:0 auto -52px;background:linear-gradient(135deg,#0D2147,#2E7CF6);border-radius:20px;padding:28px 36px;display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap;box-shadow:0 30px 70px rgba(7,18,40,.45);overflow:hidden;color:#fff}
.f-news::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:var(--grad)}
.f-news h3{color:#fff;font-size:1.35rem}
.f-news p{color:#B9C6E4;font-size:.9rem}
.f-news-form{display:flex;align-items:center;background:#fff;border-radius:999px;padding:6px;flex:1;min-width:300px;max-width:500px}
.f-news-form input{flex:1;border:0;outline:none;padding:11px 20px;border-radius:999px;font:inherit;font-size:.92rem;color:var(--ink);min-width:0}
.f-news-form button{padding:12px 26px;border:0;background:var(--teal);color:#fff;font-weight:700;cursor:pointer;transition:.25s;border-radius:999px;font-size:.88rem}
.f-news-form button:hover{background:#10A282}
.footer{background:var(--deep);color:#93A3C8;position:relative;padding:110px 0 0;margin-top:56px}
.footer::before{content:"";position:absolute;top:-66px;left:50%;transform:translateX(-50%);width:130%;height:140px;background:var(--deep);border-radius:50% 50% 0 0}
.footer>.container,.footer .f-bottom{position:relative;z-index:2}
.footer h4{color:#fff;font-size:0.8125rem;letter-spacing:.2em;text-transform:uppercase;margin-bottom:16px;font-family:'IBM Plex Mono',monospace}
.footer h4::after{content:"";display:block;width:30px;height:2px;background:var(--grad);margin-top:8px}
.footer li{margin-bottom:9px;font-size:.86rem}
.footer li a{transition:.25s;display:inline-block}
.footer li a:hover{color:#fff;transform:translateX(5px)}
.footer .f-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.2fr;gap:38px;padding-bottom:40px}
.footer .f-brand img{height:50px;margin-bottom:16px}
.footer .f-brand p{font-size:.85rem;line-height:1.7}
.socials{display:flex;gap:10px;margin-top:16px}
.socials a{width:38px;height:38px;border-radius:50%;border:1px solid #1B3461;display:grid;place-items:center;transition:.3s}
.socials a:hover{background:var(--grad);border-color:transparent;transform:translateY(-4px)}
.socials svg{width:15px;height:15px;fill:#fff}
.f-bottom{border-top:1px solid #14264C;padding:18px 0;font-size:0.8125rem;font-family:'IBM Plex Mono',monospace}
.f-bottom .container{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}
.f-bottom a{color:#5FE3C2}
/* responsive */
@media(max-width:1020px){
  .sv-grid,.q-grid,.tier-grid{grid-template-columns:1fr 1fr}
  .pipe{grid-template-columns:1fr 1fr}
  .pipe::before{display:none}
  .mast .container{grid-template-columns:1fr}
  .case .cs-body{grid-template-columns:1fr}
  .team-grid{grid-template-columns:repeat(3,1fr)}
  .footer .f-grid{grid-template-columns:1fr 1fr}
  .drop.mega{grid-template-columns:1fr;width:94vw}
}
@media(max-width:1100px){
  .nav{position:fixed;inset:80px 0 auto 0;background:#fff;flex-direction:column;align-items:stretch;padding:14px 22px 24px;box-shadow:var(--shadow-lg);transform:translateY(-130%);transition:.4s;z-index:80;max-height:75vh;overflow:auto}
  .nav.open{transform:none}
  .drop{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;display:none}
  .nav>div:hover .drop{display:block}
  .nav-toggle{display:block}
  .header .btn{display:none}
}
@media(max-width:760px){
  .sv-grid,.q-grid,.tier-grid,.pipe{grid-template-columns:1fr}
  .team-grid{grid-template-columns:1fr 1fr}
  .cta-band{flex-direction:column;padding:34px 24px}
  .footer .f-grid{grid-template-columns:1fr}
  .section{padding:38px 0}
}
@media(max-width:900px){.two-col,#bookwrap,.section .container[style*="grid-template-columns"]{display:block!important}.two-col>*+*,#bookwrap>*+*{margin-top:26px}}
.gx .split-word{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
/* ===== v2 design layer: motion + per-service visuals ===== */
.mast .blob{position:absolute;border-radius:50%;filter:blur(80px);opacity:.4;pointer-events:none;animation:drift 14s ease-in-out infinite alternate;z-index:1}
@keyframes drift{from{transform:translate(0,0) scale(1)}to{transform:translate(46px,-34px) scale(1.18)}}
.page-hero::after{animation:drift 18s ease-in-out infinite alternate}
.dashwrap{animation:floaty 7s ease-in-out infinite}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
.dash{box-shadow:0 40px 90px rgba(0,0,0,.45),0 0 0 1px rgba(95,227,194,.06),0 0 60px rgba(46,124,246,.12)}
.cur{display:inline-block;width:8px;height:13px;background:#5FE3C2;margin-left:8px;vertical-align:-2px;animation:blink 1.05s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.donut .val{stroke-dasharray:0 999;animation:donutIn 1.6s 1s cubic-bezier(.22,1,.36,1) forwards}
@keyframes donutIn{to{stroke-dasharray:var(--dv) 999}}
.donut text{font-family:'IBM Plex Mono',monospace;font-weight:700;fill:#fff}
.pipe::before{animation:dashmove 1.1s linear infinite}
@keyframes dashmove{to{background-position:18px 0}}
/* accent-driven service cards */
.sv{--ac:var(--blue)}
.sv::before{background:linear-gradient(90deg,var(--ac),transparent 85%);transform:scaleX(1);opacity:.25;transition:.4s}
.sv:hover::before{opacity:1}
.sv .tagn{color:var(--ac)}
.sv:hover h3{color:var(--ac)}
.sv:hover{border-color:var(--ac)}
/* mini-visual system */
.mv{display:block;margin-top:16px;height:66px;width:100%;color:var(--ac)}
.mv .ln{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.mv .thin{stroke-width:1.3;opacity:.55}
.mv .ar{fill:currentColor;opacity:.13}
.mv .dt{fill:currentColor}
.mv .bx{fill:currentColor;fill-opacity:.14;stroke:currentColor;stroke-width:1.5}
.mv .gridln{stroke:var(--line);stroke-width:1}
.mv text{font-family:'IBM Plex Mono',monospace;font-size:13px;font-weight:700;fill:currentColor}
.mv .draw{stroke-dasharray:160;stroke-dashoffset:160;transition:stroke-dashoffset 1.1s ease .05s}
.sv:hover .mv .draw,.bp:hover .mv .draw{stroke-dashoffset:0}
.mv .pop{transform:scaleY(.22);transform-origin:bottom;transition:transform .65s cubic-bezier(.22,1,.36,1)}
.sv:hover .mv .pop,.bp:hover .mv .pop{transform:scaleY(1)}
.mv .popx{transform:scaleX(.18);transform-origin:left;transition:transform .65s cubic-bezier(.22,1,.36,1)}
.sv:hover .mv .popx,.bp:hover .mv .popx{transform:scaleX(1)}
.mv .spin{transform-origin:center;transition:transform .9s cubic-bezier(.22,1,.36,1)}
.sv:hover .mv .spin,.bp:hover .mv .spin{transform:rotate(200deg)}
.mv .needle{transform-origin:60px 50px;transform:rotate(-72deg);transition:transform 1s cubic-bezier(.22,1,.36,1)}
.sv:hover .mv .needle,.bp:hover .mv .needle{transform:rotate(38deg)}
.mv .fadeup{opacity:.3;transition:opacity .55s}
.sv:hover .mv .fadeup,.bp:hover .mv .fadeup{opacity:1}
.mv .pulse{animation:pulse 2.2s ease-in-out infinite}
.mv .pulse2{animation:pulse 2.2s ease-in-out -1.1s infinite}
@keyframes pulse{0%,100%{opacity:.25}50%{opacity:1}}
.mv .scan{animation:scan 2.6s ease-in-out infinite}
@keyframes scan{0%,100%{transform:translateY(0)}50%{transform:translateY(26px)}}
/* services page blocks pick up accents + side visual */
.bp{--ac:var(--blue)}
.bp .num{color:var(--ac);display:flex;flex-direction:column;align-items:center;gap:8px;padding:10px 4px}
.bp .num .mv{margin-top:2px;height:46px;width:54px}
.bp:hover .num{border-color:var(--ac)}
.bp h2{transition:color .3s}
.bp:hover h2{color:var(--ac)}
.bp .tag-list span{color:var(--ac);background:transparent;border:1px solid var(--line)}
.bp .tag-list span:hover{background:var(--ac);color:#fff;border-color:var(--ac)}
/* heading underline sweep */
.usweep{position:relative;display:inline-block}
.usweep::after{content:"";position:absolute;left:0;right:auto;bottom:-6px;height:4px;width:0;background:var(--grad);border-radius:99px;transition:width .9s cubic-bezier(.22,1,.36,1) .2s}
.in .usweep::after,.center.in .usweep::after{width:100%}
.tk-track{width:max-content}

/* UX-FIX contrast overrides (WCAG AA) */
.drop a:hover{color:#2668cf !important}
.btn-blue{background-color:#2668cf !important;color:#ffffff !important}
.btn-teal{background-color:#0e7e65 !important;color:#ffffff !important}
.case .cs-tag{color:#2668cf !important}
.case[open] .plus{background-color:#2668cf !important;color:#ffffff !important}
.bp .num{color:#0e7e65 !important}
.f-news-form button{background-color:#0e7e65 !important;color:#ffffff !important}
.bp .tag-list span:hover{background-color:#2668cf !important;color:#ffffff !important}

/* UX-FIX universal: readability, tap targets, focus, mobile */
html{-webkit-text-size-adjust:100%}
img{max-width:100%;height:auto}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #1a73e8;outline-offset:2px;border-radius:2px}
nav a,header a,.menu a,footer a{min-height:44px;display:inline-flex;align-items:center}
button,.btn,input[type=submit]{min-height:44px}
input,select,textarea{font-size:16px;min-height:44px}
@media (max-width:480px){body{font-size:16px}h1{font-size:clamp(26px,7vw,34px)}h2{font-size:clamp(22px,6vw,28px)}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}}

/* UX-FIX accent text on light bg (WCAG AA, cascade-safe) */
.eyebrow{color:#276ad4}
.eyebrow::before{color:#0d7b62}
.bp .num{color:#276ad4}

/* UX-FIX rendered-contrast (light-bg text to AA; dark contexts restored) */
.eyebrow{color:#2462c5}
.mast .eyebrow,[class*="hero"] .eyebrow,.page-hero .eyebrow,.banner .eyebrow,footer .eyebrow,.foot .eyebrow,.dark .eyebrow,.invert .eyebrow,.topbar .eyebrow,.drawer .eyebrow,.overlay .eyebrow{color:#2e7cf6}
.eyebrow::before{color:#0d7b62}
.mast .eyebrow::before,[class*="hero"] .eyebrow::before,.page-hero .eyebrow::before,.banner .eyebrow::before,footer .eyebrow::before,.foot .eyebrow::before,.dark .eyebrow::before,.invert .eyebrow::before,.topbar .eyebrow::before,.drawer .eyebrow::before,.overlay .eyebrow::before{color:#18c29c}
.drop .dl{color:#0d7b62}
.mast .drop .dl,[class*="hero"] .drop .dl,.page-hero .drop .dl,.banner .drop .dl,footer .drop .dl,.foot .drop .dl,.dark .drop .dl,.invert .drop .dl,.topbar .drop .dl,.drawer .drop .dl,.overlay .drop .dl{color:#18c29c}
.kpi b{color:#2e7462}
.mast .kpi b,[class*="hero"] .kpi b,.page-hero .kpi b,.banner .kpi b,footer .kpi b,.foot .kpi b,.dark .kpi b,.invert .kpi b,.topbar .kpi b,.drawer .kpi b,.overlay .kpi b{color:#5fe3c2}
.kpi span{color:#5d677e}
.mast .kpi span,[class*="hero"] .kpi span,.page-hero .kpi span,.banner .kpi span,footer .kpi span,.foot .kpi span,.dark .kpi span,.invert .kpi span,.topbar .kpi span,.drawer .kpi span,.overlay .kpi span{color:#93a3c8}
.tk-track span{color:#5d677e}
.mast .tk-track span,[class*="hero"] .tk-track span,.page-hero .tk-track span,.banner .tk-track span,footer .tk-track span,.foot .tk-track span,.dark .tk-track span,.invert .tk-track span,.topbar .tk-track span,.drawer .tk-track span,.overlay .tk-track span{color:#93a3c8}
.tk-track i{color:#2e7462}
.mast .tk-track i,[class*="hero"] .tk-track i,.page-hero .tk-track i,.banner .tk-track i,footer .tk-track i,.foot .tk-track i,.dark .tk-track i,.invert .tk-track i,.topbar .tk-track i,.drawer .tk-track i,.overlay .tk-track i{color:#5fe3c2}
.sv .tagn{color:#0d7b62}
.mast .sv .tagn,[class*="hero"] .sv .tagn,.page-hero .sv .tagn,.banner .sv .tagn,footer .sv .tagn,.foot .sv .tagn,.dark .sv .tagn,.invert .sv .tagn,.topbar .sv .tagn,.drawer .sv .tagn,.overlay .sv .tagn{color:#18c29c}
.sv:hover h3{color:#2462c5}
.mast .sv:hover h3,[class*="hero"] .sv:hover h3,.page-hero .sv:hover h3,.banner .sv:hover h3,footer .sv:hover h3,.foot .sv:hover h3,.dark .sv:hover h3,.invert .sv:hover h3,.topbar .sv:hover h3,.drawer .sv:hover h3,.overlay .sv:hover h3{color:#2e7cf6}
.case .plus{color:#2462c5}
.mast .case .plus,[class*="hero"] .case .plus,.page-hero .case .plus,.banner .case .plus,footer .case .plus,.foot .case .plus,.dark .case .plus,.invert .case .plus,.topbar .case .plus,.drawer .case .plus,.overlay .case .plus{color:#2e7cf6}
.case .cs-body b{color:#0d7b62}
.mast .case .cs-body b,[class*="hero"] .case .cs-body b,.page-hero .case .cs-body b,.banner .case .cs-body b,footer .case .cs-body b,.foot .case .cs-body b,.dark .case .cs-body b,.invert .case .cs-body b,.topbar .case .cs-body b,.drawer .case .cs-body b,.overlay .case .cs-body b{color:#18c29c}
.tier .meta{color:#0d7b62}
.mast .tier .meta,[class*="hero"] .tier .meta,.page-hero .tier .meta,.banner .tier .meta,footer .tier .meta,.foot .tier .meta,.dark .tier .meta,.invert .tier .meta,.topbar .tier .meta,.drawer .tier .meta,.overlay .tier .meta{color:#18c29c}
.crumbs{color:#5d6a8a}
.mast .crumbs,[class*="hero"] .crumbs,.page-hero .crumbs,.banner .crumbs,footer .crumbs,.foot .crumbs,.dark .crumbs,.invert .crumbs,.topbar .crumbs,.drawer .crumbs,.overlay .crumbs{color:#7e90bc}
.crumbs a{color:#2e7462}
.mast .crumbs a,[class*="hero"] .crumbs a,.page-hero .crumbs a,.banner .crumbs a,footer .crumbs a,.foot .crumbs a,.dark .crumbs a,.invert .crumbs a,.topbar .crumbs a,.drawer .crumbs a,.overlay .crumbs a{color:#5fe3c2}
.f-news p{color:#646c7d}
.mast .f-news p,[class*="hero"] .f-news p,.page-hero .f-news p,.banner .f-news p,footer .f-news p,.foot .f-news p,.dark .f-news p,.invert .f-news p,.topbar .f-news p,.drawer .f-news p,.overlay .f-news p{color:#b9c6e4}
.f-bottom a{color:#2e7462}
.mast .f-bottom a,[class*="hero"] .f-bottom a,.page-hero .f-bottom a,.banner .f-bottom a,footer .f-bottom a,.foot .f-bottom a,.dark .f-bottom a,.invert .f-bottom a,.topbar .f-bottom a,.drawer .f-bottom a,.overlay .f-bottom a{color:#5fe3c2}
.sv .tagn{color:#2462c5}
.mast .sv .tagn,[class*="hero"] .sv .tagn,.page-hero .sv .tagn,.banner .sv .tagn,footer .sv .tagn,.foot .sv .tagn,.dark .sv .tagn,.invert .sv .tagn,.topbar .sv .tagn,.drawer .sv .tagn,.overlay .sv .tagn{color:#2e7cf6}
/* mini-visual system */
.mv{color:#2462c5}
.mast /* mini-visual system */
.mv,[class*="hero"] /* mini-visual system */
.mv,.page-hero /* mini-visual system */
.mv,.banner /* mini-visual system */
.mv,footer /* mini-visual system */
.mv,.foot /* mini-visual system */
.mv,.dark /* mini-visual system */
.mv,.invert /* mini-visual system */
.mv,.topbar /* mini-visual system */
.mv,.drawer /* mini-visual system */
.mv,.overlay /* mini-visual system */
.mv{color:#2e7cf6}
.bp .num{color:#2462c5}
.mast .bp .num,[class*="hero"] .bp .num,.page-hero .bp .num,.banner .bp .num,footer .bp .num,.foot .bp .num,.dark .bp .num,.invert .bp .num,.topbar .bp .num,.drawer .bp .num,.overlay .bp .num{color:#2e7cf6}
.bp:hover h2{color:#2462c5}
.mast .bp:hover h2,[class*="hero"] .bp:hover h2,.page-hero .bp:hover h2,.banner .bp:hover h2,footer .bp:hover h2,.foot .bp:hover h2,.dark .bp:hover h2,.invert .bp:hover h2,.topbar .bp:hover h2,.drawer .bp:hover h2,.overlay .bp:hover h2{color:#2e7cf6}

/* ============ LAUNCH 2026-07: a11y + forms ============ */
.skip-link{position:absolute;left:-9999px;top:0;z-index:999;background:#0B1633;color:#fff;padding:12px 22px;border-radius:0 0 10px 0;font-weight:600}
.skip-link:focus{left:0}
.menu li:focus-within .dropdown,.menu li:focus-within .drop,nav li:focus-within .dropdown{opacity:1;visibility:visible;transform:none}
.cq-pause{position:absolute;right:18px;bottom:16px;z-index:6;width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.55);background:rgba(10,16,40,.45);color:#fff;cursor:pointer;font-size:.8rem;display:grid;place-items:center;backdrop-filter:blur(4px)}
.cq-pause:hover{background:rgba(10,16,40,.75)}
.form-ok{background:#F0F7F0;border:1px solid #CFE8D2;border-left:4px solid #00800b;border-radius:12px;padding:20px 24px;font-size:.98rem;line-height:1.7}
.form-err{color:#B4232A;font-weight:600;margin-top:12px}
.consent-row{display:flex;gap:10px;align-items:flex-start;font-size:.85rem;line-height:1.6;margin:4px 0 6px;grid-column:1/-1}
.consent-row input{width:auto!important;min-height:0!important;margin-top:4px;accent-color:#00800b}
.news-consent{font-size:.75rem;margin-top:8px;opacity:.85}
.news-consent a{text-decoration:underline}
@media (prefers-reduced-motion:reduce){.cqsvc-track,.marquee-track{animation:none!important}.reveal{opacity:1!important;transform:none!important}}

/* ============ FAMILY FEEDBACK 2026-07: brighter secondary text on dark surfaces ============ */
.marquee span{color:#DFE7FA}.marquee i{opacity:1}
.band p,.band .proof p{color:#C6CFE8}
.stats-row span,.sigband span{opacity:.92}
.f-news p{opacity:.95}
.f-bottom a{opacity:1}
/* footer: brand block as full-width first row, columns in a wider second row */
.f-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))!important;width:min(1240px,92%)!important;gap:38px}
.f-grid>div:first-child,.f-grid>.f-about{grid-column:1/-1;max-width:920px}
.f-bottom .container,.f-bottom>.container{justify-content:center!important;text-align:center;flex-direction:column;gap:8px}
@media(max-width:1024px){.f-grid{grid-template-columns:repeat(2,1fr)!important}}
@media(max-width:680px){.f-grid{grid-template-columns:1fr!important}}

/* ============ FOOTER-FAMILY 2026-07: consulting-style footer ============ */
.footer{padding-top:26px}
.footer .f-news{position:relative;z-index:2;width:min(1120px,90%);margin:6px auto 0;background:linear-gradient(135deg,#10286B,#183E99);border-radius:26px;padding:26px 36px;display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap;box-shadow:0 30px 70px rgba(11,22,51,.3)}
.footer .f-news h3{color:#fff;font-size:1.5rem;margin:0 0 4px;font-family:inherit}
.footer .f-news>div>p{color:#C7D0EC;font-size:.93rem;margin:0}
.footer .f-news-form{display:flex;align-items:center;background:#fff;border-radius:999px;padding:7px;flex:1;min-width:280px;max-width:560px}
.footer .f-news-form input[type="email"]{flex:1;border:0;outline:none;padding:11px 22px;font-family:inherit;font-size:.93rem;border-radius:999px;min-width:0;color:#13203A;background:#fff}
.footer .f-news-form button{border-radius:999px;padding:13px 26px;flex:none;border:0;cursor:pointer;background:#00800B;color:#fff;font-weight:700;font-family:inherit;font-size:.9rem;transition:.25s}
.footer .f-news-form button:hover{background:#026A0C}
.footer .news-consent{flex-basis:100%;font-size:.75rem;opacity:.9;margin:2px 0 0;color:#C7D0EC}
.footer .news-consent a{text-decoration:underline;color:#DFF3E1}
.footer .f-brandrow{width:min(1240px,92%);margin:0 auto;padding:44px 0 4px;display:flex;flex-direction:column;align-items:flex-start;gap:16px}
.footer .f-brandrow p{font-size:.95rem;line-height:1.85;max-width:900px;margin:0}
.footer .f-brandrow .socials{margin-top:4px}
.footer .f-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))!important;gap:40px;width:min(1240px,92%);margin:26px auto 0;padding:34px 0;border-top:1px solid rgba(255,255,255,.12)}
.footer .f-grid>div:first-child{grid-column:auto!important;max-width:none!important}
.footer .f-sis{grid-column:1/-1!important}
.footer .f-bottom .container{flex-direction:column;justify-content:center!important;text-align:center;gap:8px}
.footer .form-ok{color:#9FE6AE;font-weight:600;padding:10px 18px}
@media(max-width:680px){.footer .f-news{padding:22px}}

.footer .f-brandrow>img,.footer .f-brandrow>a>img{height:56px;width:auto}
.footer .f-brandrow>svg{height:56px;width:auto}
.footer .f-brandrow .socials svg{height:16px;width:16px}
.footer .f-brandrow .socials a{width:42px;height:42px}

.footer .f-brandrow .brand span{color:#fff}
.footer .f-brandrow .brand small{color:#B9C6EE}
.footer .f-brandrow .brand .bx{box-shadow:0 6px 18px rgba(0,0,0,.35)}

/* FTR3 2026-07 - centred footer brand row + balanced link columns */
.f-brandrow{align-items:center;text-align:center}
.f-brandrow p{margin-left:auto;margin-right:auto;max-width:860px}
.f-brandrow .socials{justify-content:center;margin-left:auto;margin-right:auto}
.f-grid{gap:30px 44px;padding:40px 0 26px}
.f-grid ul{margin:0;padding:0;list-style:none}
.f-grid li{margin:0 0 9px;padding:0}
.f-grid li a{line-height:1.45;display:inline-block}
.f-grid h4{margin-bottom:15px}

/* A11Y 2026-07 - WCAG 2.2 AA support layer */
:focus-visible{outline:3px solid #E8772E;outline-offset:2px;border-radius:3px}
.skip-link{position:absolute;left:-9999px;top:0;z-index:99999;background:#0B1E4B;color:#fff!important;padding:10px 18px;border-radius:0 0 10px 0;font-weight:600}
.skip-link:focus{left:0}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* FTR4 2026-07 - tight footer link rows */
.f-grid li{line-height:1.5;margin:0 0 10px;padding:0}
.f-grid li a{line-height:1.5;display:inline-block;padding:0}
.f-grid ul{margin:0;padding:0;list-style:none}
/* FTR4B 2026-07 - footer link rows at WCAG AA target size */
.f-grid li a, .foot2 li a, footer .f-links li a{min-height:24px}

/* FTR5 2026-07 - footer f-grid: restore shared footcenter.css centering.
   The chassis rules above (`.f-grid` / `.footer .f-grid` with
   grid-template-columns:repeat(auto-fit,minmax(200px,1fr))!important)
   outrank footcenter.css's non-important repeat(3,minmax(220px,320px)),
   stretching the three link columns edge-to-edge instead of centering
   them. Breakpoints mirror footcenter.css (1020px / 640px). */
@media(min-width:1021px){
  .footer .container.f-grid,.footer .f-grid{grid-template-columns:repeat(3,minmax(220px,320px))!important;justify-content:center}
}
@media(min-width:641px) and (max-width:1020px){
  .footer .container.f-grid,.footer .f-grid{grid-template-columns:repeat(2,minmax(200px,300px))!important;justify-content:center}
}
@media(max-width:640px){
  .footer .container.f-grid,.footer .f-grid{grid-template-columns:minmax(0,340px)!important;justify-content:center}
}

/* cq-foot-v3 */
.cqf3{background:#121F36;color:#E9ECF3;font-size:.95rem;line-height:1.7;margin-top:0}
.cqf3 a{color:#ABBFE3;text-decoration:none}
.cqf3 a:hover{color:#fff;text-decoration:underline}
.cqf3 h4{color:#B6C9ED;font-size:.9rem;letter-spacing:.07em;text-transform:uppercase;margin:0 0 14px;font-weight:700}
.cqf3-wrap{max-width:1200px;margin:0 auto;padding:64px 24px 26px}
.cqf3-cols{display:grid;grid-template-columns:1.4fr 1fr 1.1fr 1.2fr;gap:42px}
.cqf3 ul{list-style:none;margin:0;padding:0}
.cqf3 li{margin:0 0 9px}
.cqf3-logo{max-width:220px;height:auto;display:block;margin:0 0 16px}
.cqf3-blurb{margin:0 0 16px}
.cqf3-socials{display:flex;gap:10px;margin:0 0 22px}
.cqf3-socials a{width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.09)}
.cqf3-socials a:hover{background:rgba(255,255,255,.18)}
.cqf3-socials svg{width:17px;height:17px;fill:#ABBFE3}
.cqf3-socials a:hover svg{fill:#fff}
.cqf3-news form{display:flex;gap:8px;flex-wrap:wrap;margin:0;background:transparent;border-radius:0;padding:0;min-width:0;max-width:none;box-shadow:none}
.cqf3-news form input[type=email]{flex:1 1 170px;min-width:0;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.25);border-radius:8px;padding:10px 12px;color:#fff;font:inherit}
.cqf3-news form button{flex:none;border-radius:8px;padding:10px 18px}
.cqf3-news input[type=email]{flex:1 1 170px;min-width:0;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.25);border-radius:8px;padding:10px 12px;color:#fff;font:inherit}
.cqf3-news input[type=email]::placeholder{color:#AEB5C2}
.cqf3-news button{background:#95B1E4;color:#121F36;border:0;border-radius:8px;padding:10px 18px;font-weight:700;font-family:inherit;cursor:pointer}
.cqf3-news button:hover{filter:brightness(1.08)}
.cqf3-news .news-consent{font-size:.8rem;color:#AEB5C2;margin:8px 0 0;flex-basis:100%}
.cqf3-info b{display:block;color:#B6C9ED;font-weight:600}
.cqf3-info li{margin:0 0 13px}
.cqf3-band{border-top:1px solid rgba(255,255,255,.13);margin-top:44px;padding-top:20px}
.cqf3-band h4{margin-bottom:10px}
.cqf3-band ul{display:flex;flex-wrap:wrap;gap:6px 26px}
.cqf3-band li{margin:0}
.cqf3-bottom{border-top:1px solid rgba(255,255,255,.13);margin-top:30px;padding-top:20px;font-size:.85rem;color:#AEB5C2;text-align:center}
@media(max-width:1020px){.cqf3-cols{grid-template-columns:1fr 1fr;gap:34px}}
@media(max-width:600px){.cqf3-cols{grid-template-columns:1fr}.cqf3-wrap{padding:48px 18px 22px}}
/* /cq-foot-v3 */

/* cq-foot-top */
.cqft{position:relative;background:#F7F8FA;padding:56px 0 0;overflow:hidden}
.cqft-card{position:relative;z-index:2;max-width:1180px;margin:0 auto;background:#1553C1;border-radius:24px;padding:52px 56px;display:flex;align-items:center;justify-content:space-between;gap:14px 36px;flex-wrap:wrap}
.cqft-copy h2{color:#fff;font-size:2.35rem;font-weight:700;margin:0 0 6px;line-height:1.15}
.cqft-copy p{color:#DFE7F6;font-size:1.1rem;margin:0}
.cqft-card form{display:flex;flex:1 1 420px;max-width:620px;background:#fff;border-radius:999px;padding:5px;align-items:center;gap:0;margin:0;flex-wrap:nowrap;border:0;box-shadow:none;min-width:0}
.cqft-card form input[type=email]{flex:1 1 auto;border:0;background:transparent;padding:14px 24px;font-family:inherit;font-size:1rem;font-weight:500;color:#202233;min-width:0;outline-offset:2px;border-radius:999px;box-shadow:none}
.cqft-card form input[type=email]::placeholder{color:#8A8FA3}
.cqft-card form button{flex:none;background:#9C6C16;color:#fff;border:0;border-radius:999px;padding:16px 34px;font-family:inherit;font-size:.95rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;cursor:pointer;transition:filter .3s;white-space:nowrap}
.cqft-card form button:hover{filter:brightness(1.12)}
.cqft-card form button:focus-visible{outline:2px solid #202233;outline-offset:2px}
.cqft-card .cqft-consent{flex-basis:100%;color:rgba(255,255,255,.88);font-size:.85rem;margin:0}
.cqft-card .cqft-consent a{color:#fff;text-decoration:underline}
.cqft-curve{position:relative;z-index:1;margin:34px 0 0;line-height:0}
.cqft-curve svg{width:100%;height:140px;display:block}
.cqft+.cqf3{margin-top:0}
@media (max-width:760px){.cqft-card{padding:36px 24px;border-radius:18px;margin-inline:16px}.cqft-copy h2{font-size:1.7rem}.cqft-card form{flex:1 1 100%}.cqft-card form button{padding:14px 22px}.cqft-curve svg{height:90px}}
/* /cq-foot-top */

/* cq-audit-13jul: WCAG text-contrast fix - ticker labels on deep-navy band; explicit bright fill for donut chart label */
.ticker .tk-track span{color:#9FACC7}
.donut text{fill:#E8EEF9}

/* cq-audit-13jul-3: hero KPI labels readable on white */
.kpi span{color:#4C5875}

/* --- newsletter block fix, 31 Aug 2026 ---------------------------------
   A consent paragraph (.cq-consent) and a Cloudflare Turnstile widget were
   injected INSIDE .cqft-card form. That form is a nowrap flex row styled as
   the white pill, so both became flex items on the same row as the input:
   the email field collapsed to about 100px (only "Enter y" was visible) and
   the pale consent text rendered over the pill edge, unreadable.

   The pill is rebuilt on the input and button themselves, the form is allowed
   to wrap, and the injected elements drop to their own full width row below.

   Where the card already carries its own .cqft-consent line the injected one
   is a duplicate, so it is hidden. That also covers the three sites with a
   white card, where white consent text would be invisible. No site that
   relies on the injected consent has a white card, so the white is safe. */
.cqft-card form{flex-wrap:wrap; background:transparent; padding:0; border-radius:0; gap:10px 0}
.cqft-card form > input[type=email]{flex:1 1 auto; min-width:0; background:#fff;
  border-radius:999px 0 0 999px; padding:16px 24px}
.cqft-card form > button{border-radius:0 999px 999px 0}
.cqft-card form > .cq-consent{flex:0 0 100%; order:9; margin:2px 0 0; opacity:1;
  text-align:left; color:rgba(255,255,255,.92)}
.cqft-card form > .cq-consent a{color:#fff; text-decoration:underline}
.cqft-card form > .cf-turnstile{flex:0 0 100%; order:10; margin:0}
.cqft-card:has(> .cqft-consent) form > .cq-consent{display:none}
/* --- end newsletter block fix --- */
