
body{margin:0}
a{color:#161A55}a:hover{color:#E1262D}
@keyframes up{from{opacity:0;transform:translateY(36px)}to{opacity:1;transform:none}}
@keyframes left{from{opacity:0;transform:translateX(-40px)}to{opacity:1;transform:none}}
.in{animation:up 1s cubic-bezier(.2,.7,.2,1) both}
.inl{animation:left 1s cubic-bezier(.2,.7,.2,1) both}
.d1{animation-delay:.15s}.d2{animation-delay:.3s}.d3{animation-delay:.45s}.d4{animation-delay:.6s}.d5{animation-delay:.75s}
@supports (animation-timeline: view()){
.rv{animation:up linear both;animation-timeline:view();animation-range:entry 0% entry 45%}
.rvl{animation:left linear both;animation-timeline:view();animation-range:entry 0% entry 45%}
.grow{animation:growx linear both;animation-timeline:view();animation-range:entry 10% cover 40%}
.par{animation:par linear both;animation-timeline:view();animation-range:cover 0% cover 100%}
}
@keyframes growx{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes par{from{transform:translateY(-6%) scale(1.12)}to{transform:translateY(6%) scale(1.12)}}
.grow{transform-origin:left}
@keyframes kb{from{transform:scale(1.18) translate(2%,2%)}to{transform:scale(1.02) translate(0,0)}}
.kb{animation:kb 14s ease-out both}
.ph{overflow:hidden}
.ph img{transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.card:hover .ph img{transform:scale(1.07)}
.card{transition:transform .35s ease,box-shadow .35s ease}
.card:hover{transform:translateY(-6px);box-shadow:0 22px 48px rgba(22,26,85,.18)}
.btn{transition:transform .2s ease,background-color .2s ease,color .2s ease}.btn:hover{transform:translateY(-2px)}
.nav a{position:relative}
.nav a.u::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:#E1262D;transform:scaleX(0);transform-origin:left;transition:transform .3s ease}
.nav a.u:hover::after{transform:scaleX(1)}
@property --n{syntax:'<integer>';initial-value:0;inherits:false}
@keyframes count{from{--n:0}to{--n:var(--to)}}
.count{animation:count 2.6s cubic-bezier(.2,.7,.2,1) .6s both;counter-reset:n var(--n)}.count::after{content:counter(n)}
@keyframes marquee{to{transform:translateX(-50%)}}
.marquee{display:flex;width:max-content;animation:marquee 34s linear infinite}
.marquee:hover{animation-play-state:paused}
@keyframes ring{0%{box-shadow:0 0 0 0 rgba(225,38,45,.6)}100%{box-shadow:0 0 0 18px rgba(225,38,45,0)}}
.ring{animation:ring 2s ease-out infinite}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.35)}}
.dot{animation:pulse 2.2s ease-in-out infinite}
@keyframes scrollhint{0%{transform:translateY(0);opacity:1}100%{transform:translateY(14px);opacity:0}}
.hint{animation:scrollhint 1.6s ease-in infinite}
.over{transition:opacity .4s ease}
.card:hover .over{opacity:1}
@media (prefers-reduced-motion: reduce){*{animation:none !important;transition:none !important}}
.slides{position:absolute;inset:0;overflow:hidden}
.slides img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;animation:slide 25s linear infinite}
.slides img:first-child{opacity:1}
@keyframes slide{0%{opacity:0;transform:scale(1)}4%{opacity:1}20%{opacity:1}24%{opacity:0;transform:scale(1.08)}100%{opacity:0;transform:scale(1.08)}}
@media (prefers-reduced-motion:reduce){.slides img{animation:none}.slides img:not(:first-child){display:none}}
section[id]{scroll-margin-top:100px}



html{scroll-behavior:smooth}html,body{overflow-x:clip}
.stick{position:sticky;top:0;z-index:50;transition:box-shadow .3s ease}
.stick.sh{box-shadow:0 6px 24px rgba(15,18,64,.12)}
.js .rv,.js .rvl{opacity:0;transform:translateY(36px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1);animation:none !important}
.js .rvl{transform:translateX(-40px)}
.js .rv.on,.js .rvl.on{opacity:1;transform:none}
.js .grow{transform:scaleX(0);transition:transform 1.6s cubic-bezier(.2,.7,.2,1);animation:none !important}
.js .grow.on{transform:scaleX(1)}
.js .count{animation:none}
.js .count.go{animation:count 2.6s cubic-bezier(.2,.7,.2,1) both}
.wa{position:fixed;right:20px;bottom:20px;z-index:60;width:60px;height:60px;border-radius:999px;background:#25D366;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px rgba(0,0,0,.25)}

@media (max-width:700px){h1{font-size:44px !important}h2{font-size:34px !important}}

/* ---- shared page parts ---- */
.wrap{max-width:1200px;margin:0 auto;padding:96px 24px}
.kick{font-family:Archivo,sans-serif;font-weight:700;font-size:14px;letter-spacing:.2em;color:#E1262D;text-transform:uppercase}
.h2{margin:0;font-family:Archivo,sans-serif;font-weight:900;font-size:50px;line-height:1.02;color:#161A55;text-transform:uppercase}
.h3{margin:0;font-family:Archivo,sans-serif;font-weight:900;font-size:26px;line-height:1.15;color:#161A55;text-transform:uppercase}
.lead{margin:0;color:#4A4F6E;max-width:38em;font-size:19px}
.prose p{margin:0 0 16px;color:#3A3F5E;max-width:40em}
.stack{display:flex;flex-direction:column;gap:14px}
.split{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));gap:56px;align-items:start}
.grid4{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:20px}
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:20px}
.box{background:#fff;border:1px solid #E4E4EC;padding:28px;display:flex;flex-direction:column;gap:10px}
.box strong{font-family:Archivo,sans-serif;font-size:20px;color:#161A55}
.box .n{font-family:Archivo,sans-serif;font-weight:900;font-size:15px;color:#E1262D;letter-spacing:.1em}
.box span{color:#4A4F6E}
.stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));gap:0;border-top:4px solid #E1262D}
.stats>div{background:#fff;box-shadow:inset 0 0 0 1px #E4E4EC;padding:24px;display:flex;flex-direction:column;gap:4px}
.stats b{font-family:Archivo,sans-serif;font-weight:900;font-size:34px;color:#161A55;line-height:1.1}
.stats span{color:#4A4F6E;font-size:15px}
.grey{background:#F3F2EE}
.navy{background:#161A55;color:#fff}.navy .h2,.navy .h3{color:#fff}.navy .lead{color:#C8CBE6}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips span{background:#F3F2EE;padding:8px 14px;font-size:15px;color:#161A55;font-weight:500}
.grey .chips span{background:#fff}
.cols2{columns:2 280px;column-gap:48px}
.cols2 li{break-inside:avoid;padding:8px 0;border-bottom:1px solid #E4E4EC;color:#1D2140}
.cols2 ul,.plain{list-style:none;margin:0;padding:0}
.photo{position:relative;overflow:hidden;aspect-ratio:4/3}
.photo img{width:100%;height:100%;object-fit:cover;display:block}
.tick li{position:relative;padding:6px 0 6px 30px;color:#1D2140}
.tick li::before{content:"";position:absolute;left:0;top:14px;width:14px;height:8px;border-left:3px solid #E1262D;border-bottom:3px solid #E1262D;transform:rotate(-45deg)}
/* page hero */
.phero{position:relative;background:#161A55;color:#fff;overflow:hidden}
.phero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.phero .shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,18,64,.94) 0%,rgba(15,18,64,.72) 55%,rgba(15,18,64,.35) 100%)}
.phero .in-wrap{position:relative;max-width:1200px;margin:0 auto;padding:110px 24px 90px;display:flex;flex-direction:column;gap:18px}
.phero h1{margin:0;font-family:Archivo,sans-serif;font-weight:900;font-size:64px;line-height:1;text-transform:uppercase;max-width:14em}
.phero p{margin:0;color:#E1E3F5;font-size:20px;max-width:34em}
.crumb{font-size:14px;color:#C8CBE6}.crumb a{color:#fff;text-decoration:none}.crumb a:hover{color:#FF8A8E}
.bar{width:72px;height:6px;background:#E1262D}
/* header: active link and phone menu */
.nav a.u.cur::after{transform:scaleX(1)}
.menu-btn{display:none;background:none;border:2px solid #161A55;color:#161A55;font:700 15px Inter,sans-serif;padding:10px 14px;min-height:44px;cursor:pointer}
@media (max-width:980px){
 .menu-btn{display:inline-flex;align-items:center;gap:8px}
 header .nav{display:none !important;width:100%;flex-direction:column;align-items:stretch !important;gap:0 !important;padding:8px 0 16px}
 header .nav a{padding:14px 4px;border-bottom:1px solid #E4E4EC}
 header .nav a.btn{justify-content:center;margin-top:12px;border:0}
 header.open .nav{display:flex !important}
 header .nav a.u::after{display:none}
}
@media (max-width:700px){.phero h1{font-size:40px}.phero .in-wrap{padding:72px 20px 60px}.h2{font-size:34px}.wrap{padding:64px 20px}
 header img{width:52px !important;height:52px !important} header a span{font-size:15px !important;letter-spacing:.04em !important} header a{gap:8px !important} .menu-btn{padding:8px 12px}}
/* enquiry form status */
.fmsg{display:none;padding:14px 16px;font-weight:600}
.fmsg.ok{display:block;background:#E6F6EC;color:#14532D}
.fmsg.err{display:block;background:#FDECEC;color:#8A1C1C}
.hp{position:absolute;left:-5000px;width:1px;height:1px;overflow:hidden}
.map{width:100%;height:420px;border:0;display:block;filter:grayscale(.2)}
