
:root{--ease-out:cubic-bezier(0.23,1,0.32,1);--ease-in-out:cubic-bezier(0.77,0,0.175,1)}
html{scroll-behavior:smooth}
/* Buttons: exact properties, press feedback */
.press{transition:transform 160ms var(--ease-out),background-color 200ms ease,color 200ms ease,box-shadow 200ms ease;-webkit-tap-highlight-color:transparent}
.press:active{transform:scale(0.97)}
/* Service cards: subtle lift on real hover only */
.card-lift{transition:transform 250ms var(--ease-out),box-shadow 250ms var(--ease-out)}
@media (hover:hover) and (pointer:fine){.card-lift:hover{transform:translateY(-2px)}}
/* Visible keyboard focus in brand lime */
.press:focus-visible,a:focus-visible,button:focus-visible{outline:2px solid #BEC333;outline-offset:3px}
input:focus-visible,select:focus-visible,textarea:focus-visible{box-shadow:0 0 0 2px #BEC333}
/* One-time hero entrance, staggered */
@keyframes enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
[data-enter]{animation:enter 600ms var(--ease-out) both;animation-delay:calc(var(--i,0) * 70ms)}
/* Scroll reveal, only when JS is running so content never stays hidden */
.js [data-reveal]{opacity:0;transform:translateY(12px);transition:opacity 500ms var(--ease-out),transform 500ms var(--ease-out),box-shadow 250ms var(--ease-out);transition-delay:var(--d,0ms)}
.js [data-reveal].in{opacity:1;transform:none}
.js [data-reveal].in.card-lift{transition-delay:0ms}
@media (hover:hover) and (pointer:fine){.js [data-reveal].in.card-lift:hover{transform:translateY(-2px)}}

/* Header */
.site-header{transition:transform 350ms var(--ease-out)}
.site-header .mainbar{position:relative;transition:box-shadow 250ms ease}
.site-header.scrolled{transform:translateY(-36px)}
.site-header.scrolled .mainbar{box-shadow:0 8px 24px -12px rgba(40,36,94,.18)}
.site-logo{transform-origin:left center;transition:transform 350ms var(--ease-out)}
.site-header.scrolled .site-logo{transform:scale(.86)}
.brand-rule{position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,#28245E 0%,#28245E 35%,#BEC333 50%,#28245E 65%,#28245E 100%);opacity:.9}
.nav-link{position:relative;padding:6px 0;font-size:14px;line-height:20px;font-weight:600;letter-spacing:.01em;color:rgba(40,36,94,.72);transition:color 200ms ease}
.nav-link::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;border-radius:2px;background:#BEC333;transform:scaleX(0);transform-origin:left;transition:transform 250ms var(--ease-out)}
.nav-link.is-active{color:#28245E}
.nav-link.is-active::after{transform:scaleX(1)}
@media (hover:hover) and (pointer:fine){.nav-link:hover{color:#28245E}.nav-link:hover::after{transform:scaleX(1)}.cta-arrow:hover .material-symbols-outlined{transform:translateX(3px)}}
.cta-arrow .material-symbols-outlined{transition:transform 200ms var(--ease-out)}
.mobile-menu{border-top:1px solid #E2E8F0;box-shadow:0 16px 32px -16px rgba(40,36,94,.25);transform-origin:top;animation:menuIn 200ms var(--ease-out)}
@keyframes menuIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* Services */
.services{background:#F8FAFC}
.services-bg{position:absolute;inset:0;pointer-events:none;background:radial-gradient(600px 300px at 90% 0%,rgba(190,195,51,.14),transparent 70%),radial-gradient(700px 400px at 0% 100%,rgba(40,36,94,.08),transparent 70%)}
.services-title{font-family:"Playfair Display",Georgia,serif;font-weight:600;font-size:clamp(34px,4.4vw,56px);line-height:1.05;letter-spacing:-.02em;color:#28245E}
.services-title em{font-style:italic;font-weight:500;color:#6B6F12}
.svc-cta{display:inline-flex;align-items:center;gap:8px;padding:14px 22px;border-radius:9999px;background:#28245E;color:#fff;font-weight:600;font-size:14px;box-shadow:0 10px 24px -12px rgba(40,36,94,.6)}
.svc-cta .material-symbols-outlined{transition:transform 200ms var(--ease-out)}
.svc-grid{perspective:1400px}

/* Tile: navy by default */
.svc{--ink:550ms;position:relative;isolation:isolate;display:flex;flex-direction:column;gap:20px;min-height:280px;padding:28px;border-radius:20px;overflow:hidden;text-decoration:none;background:#28245E;border:1px solid rgba(255,255,255,.06);box-shadow:0 18px 40px -24px rgba(40,36,94,.7);transition:transform 350ms var(--ease-out),translate 350ms var(--ease-out),scale 160ms var(--ease-out),box-shadow 350ms var(--ease-out),border-color 350ms ease}
.svc>*:not(.svc-fill):not(.svc-sheen):not(.svc-num){position:relative;z-index:2}
/* corner glow */
.svc{background-image:radial-gradient(420px 260px at 100% 0%,rgba(190,195,51,.16),transparent 60%),radial-gradient(360px 240px at 0% 100%,rgba(120,112,220,.22),transparent 65%)}
/* white ink that spreads from the cursor */
.svc-fill{position:absolute;inset:0;z-index:1;background:#fff;clip-path:circle(0px at var(--x,50%) var(--y,50%));transition:clip-path var(--ink) var(--ease-out)}
/* one-time light sweep after the tile arrives */
.svc-sheen{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.14) 48%,rgba(190,195,51,.18) 52%,transparent 65%);transform:translateX(-120%)}
.svc::after{content:"";position:absolute;left:0;right:0;top:0;height:3px;z-index:3;background:linear-gradient(90deg,#28245E,#BEC333);transform:scaleX(0);transform-origin:left;transition:transform 500ms var(--ease-out) 120ms}
.svc-num{position:absolute;z-index:2;right:20px;top:6px;font-family:"Playfair Display",Georgia,serif;font-size:96px;line-height:1;font-weight:700;color:transparent;-webkit-text-stroke:1.5px rgba(190,195,51,.28);transition:transform 500ms var(--ease-out),-webkit-text-stroke-color 350ms ease;pointer-events:none}
.svc-icon{width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.08);color:#BEC333;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);transition:background-color 350ms ease,color 350ms ease,transform 500ms cubic-bezier(.34,1.56,.64,1)}
.svc-icon .material-symbols-outlined{font-size:28px}
.svc-body{display:block;flex:1}
.svc-title{font-family:"Playfair Display",Georgia,serif;font-size:24px;line-height:1.2;font-weight:600;color:#fff;margin-bottom:8px;transition:color 300ms ease 60ms,transform 400ms var(--ease-out)}
.svc-desc{font-size:15px;line-height:1.6;color:#C4C0EA;max-width:52ch;transition:color 300ms ease 80ms}
.svc-foot{display:flex;align-items:center;justify-content:space-between;gap:12px}
.svc-tags{display:flex;flex-wrap:wrap;gap:6px}
.svc-tag{font-size:12px;font-weight:600;letter-spacing:.02em;padding:5px 10px;border-radius:9999px;background:rgba(255,255,255,.08);color:#E4E79A;transition:background-color 300ms ease,color 300ms ease,transform 400ms var(--ease-out)}
.svc-tag:nth-child(2){transition-delay:50ms}
.svc-tag:nth-child(3){transition-delay:100ms}
.svc-go{flex-shrink:0;width:40px;height:40px;border-radius:9999px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.2);color:#BEC333;transition:background-color 300ms ease,border-color 300ms ease,color 300ms ease,transform 400ms var(--ease-out)}
.svc-go .material-symbols-outlined{font-size:20px;transition:transform 400ms var(--ease-out)}
.svc:active{scale:.985}
.svc:focus-visible{outline:2px solid #BEC333;outline-offset:3px}
.svc--feature .svc-title{font-size:32px}
.svc--feature .svc-icon{background:#BEC333;color:#28245E}

/* Hover: white card, navy content */
@media (hover:hover) and (pointer:fine){
.svc:hover{translate:0 -6px;border-color:rgba(190,195,51,.55);box-shadow:0 30px 60px -28px rgba(40,36,94,.45)}
.svc:hover .svc-fill{clip-path:circle(160% at var(--x,50%) var(--y,50%))}
.svc:hover::after{transform:scaleX(1)}
.svc:hover .svc-num{translate:-8px 8px;scale:1.04;-webkit-text-stroke-color:rgba(40,36,94,.18)}
.svc:hover .svc-icon{background:#28245E;color:#BEC333;rotate:-8deg;scale:1.08}
.svc--feature:hover .svc-icon{background:#BEC333;color:#28245E}
.svc:hover .svc-title{color:#28245E;transform:translateX(4px)}
.svc:hover .svc-desc{color:#475569}
.svc:hover .svc-tag{background:rgba(190,195,51,.2);color:#4F520C;transform:translateY(-2px)}
.svc:hover .svc-go{background:#BEC333;border-color:#BEC333;color:#28245E;transform:scale(1.08)}
.svc:hover .svc-go .material-symbols-outlined{transform:rotate(45deg)}
.svc-cta:hover .material-symbols-outlined{transform:translateX(3px)}
}

/* Scroll-in: header, then tiles tip up in a cascade, then a light sweep */
.js .svc-head,.js .svc-cta{opacity:0;transform:translateY(16px);transition:opacity 700ms var(--ease-out),transform 700ms var(--ease-out)}
.js .svc-cta{transition-delay:120ms}
.js .services.in .svc-head,.js .services.in .svc-cta{opacity:1;transform:none}
.js .svc{opacity:0;transform:translateY(40px) rotateX(14deg) scale(.96);transform-origin:50% 100%}
.js .svc.in{opacity:1;transform:none;transition:opacity 800ms var(--ease-out),transform 900ms var(--ease-out),box-shadow 350ms var(--ease-out),border-color 350ms ease;transition-delay:calc(var(--i) * 80ms)}
.js .svc.in.settled{transition:translate 350ms var(--ease-out),scale 160ms var(--ease-out),box-shadow 350ms var(--ease-out),border-color 350ms ease}
.js .svc .svc-icon{transform:scale(.5) rotate(-20deg);opacity:0}
.js .svc.in .svc-icon{transform:none;opacity:1;transition:transform 700ms cubic-bezier(.34,1.56,.64,1),opacity 300ms ease,background-color 350ms ease,color 350ms ease;transition-delay:calc(var(--i) * 80ms + 250ms)}
.js .svc.in.settled .svc-icon{transition:background-color 350ms ease,color 350ms ease,rotate 500ms cubic-bezier(.34,1.56,.64,1),scale 500ms cubic-bezier(.34,1.56,.64,1)}
.js .svc .svc-num{opacity:0;transform:translateX(24px)}
.js .svc.in .svc-num{opacity:1;transform:none;transition:opacity 700ms ease,transform 900ms var(--ease-out),-webkit-text-stroke-color 350ms ease;transition-delay:calc(var(--i) * 80ms + 150ms)}
.js .svc.in.settled .svc-num{transition:translate 500ms var(--ease-out),scale 500ms var(--ease-out),-webkit-text-stroke-color 350ms ease}
.js .svc.in .svc-sheen{animation:sheen 1100ms var(--ease-in-out) both;animation-delay:calc(var(--i) * 80ms + 500ms)}
@keyframes sheen{from{transform:translateX(-120%)}to{transform:translateX(120%)}}
@media (max-width:1023px){.svc{min-height:0}}

/* Why choose us */
.why{background:#28245E;color:#fff}
.why-glow{position:absolute;border-radius:9999px;filter:blur(90px);pointer-events:none}
.why-glow--a{width:560px;height:560px;left:-180px;top:-120px;background:radial-gradient(circle,rgba(120,112,220,.45),transparent 65%)}
.why-glow--b{width:520px;height:520px;right:-140px;bottom:-160px;background:radial-gradient(circle,rgba(190,195,51,.22),transparent 65%)}
.why-grid{position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(rgba(255,255,255,.06) 1px,transparent 1px);background-size:28px 28px;-webkit-mask-image:radial-gradient(ellipse at 70% 40%,#000,transparent 70%);mask-image:radial-gradient(ellipse at 70% 40%,#000,transparent 70%)}
.why-arc{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.why-arc path{fill:none;stroke:#BEC333;stroke-width:1.5;opacity:.25;stroke-dasharray:1;stroke-dashoffset:1;vector-effect:non-scaling-stroke;transition:stroke-dashoffset 2200ms var(--ease-out)}
.why.in .why-arc path{stroke-dashoffset:0}
.why-heading{font-family:"Playfair Display",Georgia,serif;font-weight:600;font-size:clamp(40px,5vw,64px);line-height:1.02;letter-spacing:-.02em}
.why-heading em{font-style:italic;font-weight:500;color:#BEC333}
.why-line{display:block;overflow:hidden;padding-bottom:.08em}
.why-line>span{display:inline-block}
.why-lead{margin-top:20px;font-size:18px;line-height:1.65;color:#C4C0EA;max-width:44ch}
.why-btn{display:inline-flex;align-items:center;gap:8px;padding:14px 22px;border-radius:9999px;background:#BEC333;color:#28245E;font-weight:600;font-size:14px;box-shadow:0 12px 28px -12px rgba(190,195,51,.55)}
.why-btn .material-symbols-outlined{transition:transform 200ms var(--ease-out)}
.why-link{display:inline-flex;align-items:center;gap:6px;color:#fff;font-weight:600;font-size:14px;transition:color 200ms ease}
/* Timeline */
.why-list{position:relative;list-style:none;margin:0;padding:0 0 0 72px;display:flex;flex-direction:column;gap:28px}
.why-list::before,.why-list::after{content:"";position:absolute;left:23px;top:46px;bottom:46px;width:2px;border-radius:2px}
.why-list::before{background:rgba(255,255,255,.1)}
.why-list::after{background:linear-gradient(180deg,#BEC333,#E4E79A);transform:scaleY(var(--p));transform-origin:top;box-shadow:0 0 12px rgba(190,195,51,.6)}
.why-item{position:relative;z-index:1}
.why-node{position:absolute;left:-72px;top:22px;width:48px;height:48px;border-radius:9999px;display:flex;align-items:center;justify-content:center;background:#1E1B4A;border:2px solid rgba(255,255,255,.15);font-family:"Playfair Display",Georgia,serif;font-weight:600;font-size:16px;color:#B8B4DE;transition:background-color 400ms ease,border-color 400ms ease,color 400ms ease,box-shadow 400ms ease,scale 500ms cubic-bezier(.34,1.56,.64,1)}
.why-item.lit .why-node{background:#BEC333;border-color:#BEC333;color:#28245E;scale:1.08;box-shadow:0 0 0 8px rgba(190,195,51,.15),0 0 24px rgba(190,195,51,.45)}
.why-card{position:relative;overflow:hidden;padding:28px 28px 24px;border-radius:20px;background:linear-gradient(160deg,rgba(255,255,255,.08),rgba(255,255,255,.03));border:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:border-color 350ms ease,background-color 350ms ease,translate 350ms var(--ease-out),box-shadow 350ms var(--ease-out)}
.why-card::before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(420px circle at var(--x,80%) var(--y,0%),rgba(190,195,51,.14),transparent 60%);opacity:0;transition:opacity 350ms ease;pointer-events:none}
.why-bignum{position:absolute;right:16px;top:-6px;font-family:"Playfair Display",Georgia,serif;font-size:120px;line-height:1;font-weight:700;color:transparent;-webkit-text-stroke:1.5px rgba(190,195,51,.16);pointer-events:none;transition:-webkit-text-stroke-color 350ms ease,translate 600ms var(--ease-out)}
.why-icon{position:relative;display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:14px;background:rgba(190,195,51,.14);color:#BEC333;margin-bottom:16px;transition:rotate 500ms cubic-bezier(.34,1.56,.64,1),background-color 350ms ease,color 350ms ease}
.why-title{position:relative;font-family:"Playfair Display",Georgia,serif;font-size:26px;line-height:1.2;font-weight:600;color:#fff;margin-bottom:10px}
.why-text{position:relative;font-size:15px;line-height:1.7;color:#C4C0EA;max-width:58ch}
.why-tag{position:relative;display:inline-flex;align-items:center;gap:6px;margin-top:18px;padding:6px 12px 6px 8px;border-radius:9999px;background:rgba(255,255,255,.06);font-size:12px;font-weight:600;letter-spacing:.02em;color:#E4E79A}
.why-tag .material-symbols-outlined{font-size:16px;color:#BEC333}
/* Credentials */
.cred{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:4px;padding:22px;border-radius:18px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);text-decoration:none;transition:border-color 300ms ease,background-color 300ms ease,translate 300ms var(--ease-out)}
.cred::after{content:"";position:absolute;left:22px;right:22px;bottom:0;height:2px;background:#BEC333;transform:scaleX(0);transform-origin:left;transition:transform 400ms var(--ease-out)}
.cred-icon{display:inline-flex;width:40px;height:40px;border-radius:12px;align-items:center;justify-content:center;background:rgba(190,195,51,.14);color:#BEC333;margin-bottom:10px}
.cred-icon .material-symbols-outlined{font-size:22px}
.cred-k{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#BEC333}
.cred-v{font-family:"Playfair Display",Georgia,serif;font-size:22px;font-weight:600;color:#fff}
.cred-d{font-size:13px;color:#B8B4DE}
.cred--link .cred-v{color:#BEC333}
@media (hover:hover) and (pointer:fine){
.why-card:hover{translate:0 -4px;border-color:rgba(190,195,51,.45);box-shadow:0 24px 48px -24px rgba(0,0,0,.5)}
.why-card:hover::before{opacity:1}
.why-card:hover .why-icon{rotate:-10deg;background:#BEC333;color:#28245E}
.why-card:hover .why-bignum{-webkit-text-stroke-color:rgba(190,195,51,.45);translate:-8px 6px}
.why-btn:hover .material-symbols-outlined{transform:translateX(3px)}
.why-link:hover{color:#BEC333}
.cred:hover{translate:0 -4px;background:rgba(255,255,255,.07);border-color:rgba(190,195,51,.4)}
.cred:hover::after{transform:scaleX(1)}
}
.cred--link:active,.why-card:active{scale:.985}
/* Entrances */
.js .why-rise{opacity:0;translate:0 18px;transition:opacity 700ms var(--ease-out),translate 700ms var(--ease-out);transition-delay:calc(var(--d) * 110ms)}
.js .why.in .why-rise{opacity:1;translate:none}
.js .why-line>span{translate:0 105%;transition:translate 900ms var(--ease-out);transition-delay:calc(var(--d) * 110ms)}
.js .why.in .why-line>span{translate:none}
.js .why-item .why-card{opacity:0;translate:40px 0;transition:opacity 700ms var(--ease-out),translate 800ms var(--ease-out),border-color 350ms ease,box-shadow 350ms var(--ease-out)}
.js .why-item.seen .why-card{opacity:1;translate:none}
.js .why-item.seen.settled .why-card{transition:border-color 350ms ease,translate 350ms var(--ease-out),box-shadow 350ms var(--ease-out)}
.js .why-item .why-node{scale:.4;opacity:0}
.js .why-item.seen .why-node{scale:1;opacity:1;transition:scale 600ms cubic-bezier(.34,1.56,.64,1),opacity 300ms ease,background-color 400ms ease,border-color 400ms ease,color 400ms ease,box-shadow 400ms ease}
.js .why-item.seen.lit .why-node{scale:1.08}
.js .cred{opacity:0;translate:0 24px}
.js .creds.in .cred{opacity:1;translate:none;transition:opacity 700ms var(--ease-out),translate 700ms var(--ease-out),border-color 300ms ease,background-color 300ms ease;transition-delay:calc(var(--i) * 90ms)}
.js .creds.in.settled .cred{transition:translate 300ms var(--ease-out),border-color 300ms ease,background-color 300ms ease}
@media (max-width:640px){.why-list{padding-left:60px}.why-node{left:-60px;width:40px;height:40px;font-size:14px}.why-list::before,.why-list::after{left:19px}.why-bignum{font-size:88px}}

/* Why: white ink fill on hover, same as the service tiles */
.ink{position:absolute;inset:0;z-index:0;background:#fff;clip-path:circle(0px at var(--x,50%) var(--y,50%));transition:clip-path 550ms var(--ease-out);pointer-events:none}
.why-card>*:not(.ink):not(.why-bignum),.cred>*:not(.ink){position:relative;z-index:1}
.why-bignum{z-index:1}
.cred::after{z-index:2}
.why-title,.cred-v{transition:color 300ms ease 60ms}
.why-text,.cred-d,.cred-k{transition:color 300ms ease 80ms}
.why-tag{transition:background-color 300ms ease,color 300ms ease}
.cred-icon{transition:background-color 300ms ease,color 300ms ease,rotate 500ms cubic-bezier(.34,1.56,.64,1)}
@media (hover:hover) and (pointer:fine){
.why-card:hover .ink,.cred:hover .ink{clip-path:circle(160% at var(--x,50%) var(--y,50%))}
.why-card:hover .why-title{color:#28245E}
.why-card:hover .why-text{color:#475569}
.why-card:hover .why-tag{background:rgba(190,195,51,.2);color:#4F520C}
.why-card:hover .why-tag .material-symbols-outlined{color:#6B6F12}
.why-card:hover .why-bignum{-webkit-text-stroke-color:rgba(40,36,94,.14)}
.why-card:hover .why-icon{background:#28245E;color:#BEC333}
.why-card:hover{box-shadow:0 30px 60px -28px rgba(0,0,0,.6)}
.cred:hover .cred-k{color:#6B6F12}
.cred:hover .cred-v{color:#28245E}
.cred:hover .cred-d{color:#475569}
.cred:hover .cred-icon{background:#28245E;color:#BEC333;rotate:-8deg}
}

/* Sectors */
.sectors{background:#F8FAFC}
.sectors-bg{position:absolute;inset:0;pointer-events:none;background:radial-gradient(700px 360px at 50% 0%,rgba(190,195,51,.12),transparent 70%)}
.sectors-title{font-family:"Playfair Display",Georgia,serif;font-weight:600;font-size:clamp(34px,4.4vw,56px);line-height:1.05;letter-spacing:-.02em;color:#28245E}
.sectors-title em{font-style:italic;font-weight:500;color:#6B6F12}
.sector{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;padding:40px;border-radius:28px;transition:translate 400ms var(--ease-out),box-shadow 400ms var(--ease-out),border-color 400ms ease}
.sector::before{content:"";position:absolute;inset:0;z-index:-1;opacity:0;transition:opacity 400ms ease;background:radial-gradient(480px circle at var(--x,50%) var(--y,0%),var(--spot),transparent 60%)}
.sector--private{--spot:rgba(190,195,51,.16);background:#fff;border:1px solid #E2E8F0;box-shadow:0 24px 60px -36px rgba(40,36,94,.35)}
.sector--public{--spot:rgba(190,195,51,.2);color:#fff;background:#28245E;border:1px solid #28245E;box-shadow:0 30px 70px -30px rgba(40,36,94,.7);background-image:radial-gradient(460px 300px at 0% 100%,rgba(120,112,220,.35),transparent 65%),radial-gradient(360px 260px at 100% 0%,rgba(190,195,51,.18),transparent 65%)}
.sector-arcs{position:absolute;right:0;top:0;width:340px;height:340px;z-index:-1;pointer-events:none}
.sector-arcs circle{fill:none;stroke-width:1.2;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:1}
.sector--private .sector-arcs circle{stroke:rgba(40,36,94,.1)}
.sector--public .sector-arcs circle{stroke:rgba(190,195,51,.28)}
.sector-mark{position:absolute;right:-18px;bottom:-30px;z-index:-1;font-size:220px!important;line-height:1;pointer-events:none;transition:rotate 700ms var(--ease-out),translate 700ms var(--ease-out),color 400ms ease}
.sector--private .sector-mark{color:rgba(40,36,94,.04)}
.sector--public .sector-mark{color:rgba(255,255,255,.04)}
.sector-head{display:grid;grid-template-columns:auto 1fr;column-gap:16px;align-items:center}
.sector-icon{grid-row:span 2;width:60px;height:60px;border-radius:18px;display:flex;align-items:center;justify-content:center;transition:rotate 500ms cubic-bezier(.34,1.56,.64,1),scale 500ms cubic-bezier(.34,1.56,.64,1)}
.sector-icon .material-symbols-outlined{font-size:30px}
.sector--private .sector-icon{background:#28245E;color:#BEC333}
.sector--public .sector-icon{background:#BEC333;color:#28245E}
.sector-eyebrow{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;align-self:end}
.sector--private .sector-eyebrow{color:#6B6F12}
.sector--public .sector-eyebrow{color:#BEC333}
.sector-title{font-family:"Playfair Display",Georgia,serif;font-size:clamp(24px,2.4vw,30px);line-height:1.15;font-weight:600;align-self:start}
.sector--private .sector-title{color:#28245E}
.sector-text{margin-top:22px;font-size:16px;line-height:1.7;max-width:56ch}
.sector--private .sector-text{color:#475569}
.sector--public .sector-text{color:#C4C0EA}
.sector-list{list-style:none;margin:28px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}
.sector-list li{display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:14px;font-size:15px;line-height:1.5;transition:background-color 250ms ease,translate 300ms var(--ease-out)}
.sector--private .sector-list li{color:#1E1B4A;background:#F8FAFC}
.sector--public .sector-list li{color:#fff;background:rgba(255,255,255,.05)}
.sector-check{flex-shrink:0;width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;transition:background-color 250ms ease,color 250ms ease,rotate 400ms cubic-bezier(.34,1.56,.64,1)}
.sector-check .material-symbols-outlined{font-size:20px}
.sector--private .sector-check{background:rgba(190,195,51,.2);color:#4F520C}
.sector--public .sector-check{background:rgba(190,195,51,.16);color:#BEC333}
.sector-foot{margin-top:auto;padding-top:32px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}
.sector-chips{display:flex;flex-wrap:wrap;gap:6px}
.sector-chips span{font-size:12px;font-weight:600;padding:6px 12px;border-radius:9999px}
.sector--private .sector-chips span{background:#F1F5F9;color:#3F3B7A}
.sector--public .sector-chips span{background:rgba(255,255,255,.08);color:#E4E79A}
.sector-cta{display:inline-flex;align-items:center;gap:8px;padding:13px 20px;border-radius:9999px;font-size:14px;font-weight:600;transition:background-color 250ms ease,color 250ms ease,box-shadow 250ms ease}
.sector-cta .material-symbols-outlined{font-size:18px;transition:transform 250ms var(--ease-out)}
.sector--private .sector-cta{background:#28245E;color:#fff}
.sector--public .sector-cta{background:#BEC333;color:#28245E}
.sectors-amp{display:none}
@media (min-width:1024px){
.sectors-amp{display:flex;position:absolute;left:50%;top:50%;translate:-50% -50%;z-index:5;width:76px;height:76px;border-radius:9999px;align-items:center;justify-content:center;background:#fff;color:#28245E;font-family:"Playfair Display",Georgia,serif;font-style:italic;font-size:40px;line-height:1;box-shadow:0 0 0 8px #F8FAFC,0 0 0 9px rgba(190,195,51,.6),0 20px 40px -16px rgba(40,36,94,.45)}
}
@media (hover:hover) and (pointer:fine){
.sector:hover{translate:0 -6px}
.sector--private:hover{border-color:rgba(190,195,51,.6);box-shadow:0 36px 70px -36px rgba(40,36,94,.45)}
.sector:hover::before{opacity:1}
.sector:hover .sector-mark{rotate:-8deg;translate:-12px -8px}
.sector--private:hover .sector-mark{color:rgba(190,195,51,.12)}
.sector--public:hover .sector-mark{color:rgba(190,195,51,.1)}
.sector:hover .sector-icon{rotate:-8deg;scale:1.06}
.sector-list li:hover{translate:4px 0}
.sector--private .sector-list li:hover{background:rgba(190,195,51,.12)}
.sector--public .sector-list li:hover{background:rgba(255,255,255,.09)}
.sector--private .sector-list li:hover .sector-check{background:#28245E;color:#BEC333;rotate:-8deg}
.sector--public .sector-list li:hover .sector-check{background:#BEC333;color:#28245E;rotate:-8deg}
.sector--private .sector-cta:hover{background:#3A3580;box-shadow:0 12px 24px -12px rgba(40,36,94,.6)}
.sector--public .sector-cta:hover{background:#E4E79A;box-shadow:0 12px 24px -12px rgba(190,195,51,.6)}
.sector-cta:hover .material-symbols-outlined{transform:translateX(3px)}
}
/* Entrances */
.js .sectors-head{opacity:0;translate:0 18px;transition:opacity 700ms var(--ease-out),translate 700ms var(--ease-out)}
.js .sectors.in .sectors-head{opacity:1;translate:none}
.js .sector{opacity:0}
.js .sector--l{translate:-48px 0}
.js .sector--r{translate:48px 0}
.js .sectors.in .sector{opacity:1;translate:none;transition:opacity 800ms var(--ease-out) 200ms,translate 900ms var(--ease-out) 200ms,box-shadow 400ms var(--ease-out),border-color 400ms ease}
.js .sectors.in.settled .sector{transition:translate 400ms var(--ease-out),box-shadow 400ms var(--ease-out),border-color 400ms ease}
.sectors.in .sector-arcs circle{stroke-dashoffset:0;transition:stroke-dashoffset 1600ms var(--ease-out) 600ms}
.sectors.in .sector-arcs circle:nth-child(2){transition-delay:750ms}
.sectors.in .sector-arcs circle:nth-child(3){transition-delay:900ms}
.js .sector-list li{opacity:0;translate:0 12px}
.js .sectors.in .sector-list li{opacity:1;translate:none;transition:opacity 500ms var(--ease-out),translate 500ms var(--ease-out),background-color 250ms ease;transition-delay:calc(700ms + var(--j) * 110ms)}
.js .sectors.in.settled .sector-list li{transition:translate 300ms var(--ease-out),background-color 250ms ease}
.js .sector-check{scale:.4}
.js .sectors.in .sector-check{scale:1;transition:scale 500ms cubic-bezier(.34,1.56,.64,1),background-color 250ms ease,color 250ms ease,rotate 400ms cubic-bezier(.34,1.56,.64,1);transition-delay:calc(800ms + var(--j) * 110ms)}
.js .sectors.in.settled .sector-check{transition:background-color 250ms ease,color 250ms ease,rotate 400ms cubic-bezier(.34,1.56,.64,1)}
@media (min-width:1024px){
.js .sectors-amp{opacity:0;scale:.3;rotate:-90deg}
.js .sectors.in .sectors-amp{opacity:1;scale:1;rotate:0deg;transition:opacity 400ms ease 1000ms,scale 700ms cubic-bezier(.34,1.56,.64,1) 1000ms,rotate 700ms var(--ease-out) 1000ms}
}
@media (max-width:640px){.sector{padding:28px;border-radius:22px}}

/* Contact */
.contact{background:#F8FAFC}
.contact-bg{position:absolute;inset:0;pointer-events:none;background:radial-gradient(700px 380px at 100% 100%,rgba(190,195,51,.14),transparent 70%),radial-gradient(600px 360px at 0% 0%,rgba(40,36,94,.08),transparent 70%)}
.contact-card{position:relative;border-radius:32px;overflow:hidden;background:#fff;box-shadow:0 50px 100px -50px rgba(40,36,94,.45),0 0 0 1px #E2E8F0}
/* Info panel */
.contact-info{position:relative;isolation:isolate;overflow:hidden;background:#28245E;color:#fff;padding:48px 40px}
.ci-glow{position:absolute;inset:0;z-index:-1;background:radial-gradient(420px 320px at 100% 0%,rgba(190,195,51,.2),transparent 65%),radial-gradient(460px 360px at 0% 100%,rgba(120,112,220,.4),transparent 65%)}
.ci-arc{position:absolute;left:0;bottom:0;width:420px;height:420px;z-index:-1;pointer-events:none}
.ci-arc circle{fill:none;stroke:rgba(190,195,51,.22);stroke-width:1.2;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:1}
.contact.in .ci-arc circle{stroke-dashoffset:0;transition:stroke-dashoffset 1800ms var(--ease-out) 500ms}
.contact.in .ci-arc circle:nth-child(2){transition-delay:650ms}
.contact.in .ci-arc circle:nth-child(3){transition-delay:800ms}
.ci-title{font-family:"Playfair Display",Georgia,serif;font-weight:600;font-size:clamp(34px,3.6vw,48px);line-height:1.05;letter-spacing:-.02em}
.ci-title em{font-style:italic;font-weight:500;color:#BEC333}
.ci-line{display:block;overflow:hidden;padding-bottom:.08em}
.ci-line>span{display:inline-block}
.ci-lead{margin-top:18px;font-size:16px;line-height:1.7;color:#C4C0EA;max-width:40ch}
.ci-status{margin-top:26px;display:inline-flex;align-items:center;gap:12px;padding:10px 16px 10px 12px;border-radius:9999px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1)}
.ci-status strong{display:block;font-size:13px;font-weight:700;color:#fff;line-height:1.2}
.ci-hours{display:block;font-size:12px;color:#B8B4DE}
.ci-dot{position:relative;width:10px;height:10px;border-radius:9999px;background:#8A86C0;flex-shrink:0}
.ci-status.is-open .ci-dot{background:#BEC333}
.ci-status.is-open .ci-dot::after{content:"";position:absolute;inset:0;border-radius:inherit;background:#BEC333;animation:ping 1.8s cubic-bezier(0,0,.2,1) infinite}
@keyframes ping{75%,100%{transform:scale(2.4);opacity:0}}
.ci-list{list-style:none;margin:28px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}
.ci-row{display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:16px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);color:#fff;text-decoration:none;transition:background-color 250ms ease,border-color 250ms ease,translate 300ms var(--ease-out)}
.ci-row-link{display:flex;align-items:center;gap:14px;flex:1;min-width:0;color:inherit;text-decoration:none}
.ci-icon{flex-shrink:0;width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:rgba(190,195,51,.16);color:#BEC333;transition:background-color 250ms ease,color 250ms ease,rotate 400ms cubic-bezier(.34,1.56,.64,1)}
.ci-icon .material-symbols-outlined{font-size:22px}
.ci-k{display:block;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#BEC333}
.ci-v{display:block;font-size:15px;font-weight:600;line-height:1.35;overflow-wrap:anywhere}
.ci-go{margin-left:auto;font-size:20px!important;color:#B8B4DE;transition:transform 300ms var(--ease-out),color 250ms ease}
.ci-copy{position:relative;flex-shrink:0;width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#B8B4DE;background:transparent;transition:background-color 200ms ease,color 200ms ease}
.ci-copy .material-symbols-outlined{font-size:18px}
.ci-copied{position:absolute;right:0;bottom:calc(100% + 6px);white-space:nowrap;padding:4px 8px;border-radius:8px;background:#BEC333;color:#28245E;font-size:11px;font-weight:700;opacity:0;translate:0 4px;transition:opacity 200ms ease,translate 200ms var(--ease-out);pointer-events:none}
.ci-copy.done .ci-copied{opacity:1;translate:none}
.ci-map{position:relative;margin-top:22px;height:190px;border-radius:18px;overflow:hidden;border:1px solid rgba(255,255,255,.1);background:#1E1B4A}
.ci-map iframe{width:100%;height:100%;border:0;filter:grayscale(1) contrast(1.05) brightness(.95);transition:filter 500ms ease,scale 700ms var(--ease-out)}
.ci-map::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(160deg,rgba(40,36,94,.35),rgba(40,36,94,.05));mix-blend-mode:multiply;transition:opacity 500ms ease}
.ci-map-pin{position:absolute;left:14px;top:14px;z-index:1;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:#BEC333;color:#28245E;box-shadow:0 8px 20px -8px rgba(0,0,0,.5);pointer-events:none}
.ci-map-pin .material-symbols-outlined{font-size:20px}
.ci-note{margin-top:22px;display:flex;align-items:center;gap:8px;font-size:13px;color:#B8B4DE}
.ci-note .material-symbols-outlined{font-size:18px;color:#BEC333}
/* Form */
.contact-form{position:relative;padding:48px 40px;display:flex;flex-direction:column;justify-content:center}
.cf-title{font-family:"Playfair Display",Georgia,serif;font-size:30px;line-height:1.15;font-weight:600;color:#28245E}
.cf-sub{margin-top:6px;font-size:15px;color:#64748B}
.cf-head{margin-bottom:30px}
.cf-field{position:relative}
.cf-field input,.cf-field textarea{width:100%;padding:26px 16px 10px;border-radius:14px;background:#F8FAFC;border:1px solid #E2E8F0;color:#0F172A;font-size:15px;outline:none;transition:border-color 250ms ease,background-color 250ms ease,box-shadow 250ms ease}
.cf-field textarea{resize:vertical;min-height:130px;padding-top:30px}
.cf-field label{position:absolute;left:17px;top:18px;font-size:15px;color:#64748B;pointer-events:none;transform-origin:left top;transition:transform 250ms var(--ease-out),color 250ms ease}
.cf-field input:focus,.cf-field textarea:focus{background:#fff;border-color:#28245E;box-shadow:0 0 0 4px rgba(190,195,51,.25)}
.cf-field input:focus+label,.cf-field input:not(:placeholder-shown)+label,.cf-field textarea:focus+label,.cf-field textarea:not(:placeholder-shown)+label{transform:translateY(-10px) scale(.78);color:#6B6F12;font-weight:600}
.cf-line{position:absolute;left:14px;right:14px;bottom:0;height:2px;border-radius:2px;background:linear-gradient(90deg,#28245E,#BEC333);transform:scaleX(0);transform-origin:left;transition:transform 400ms var(--ease-out)}
.cf-field input:focus~.cf-line,.cf-field textarea:focus~.cf-line{transform:scaleX(1)}
.cf-field.is-invalid input{border-color:#ba1a1a;background:#fff8f7}
.cf-field.is-invalid label{color:#ba1a1a}
.cf-field.shake{animation:shake 380ms var(--ease-out)}
@keyframes shake{20%{translate:-6px 0}40%{translate:5px 0}60%{translate:-3px 0}80%{translate:2px 0}}
.cf-count{position:absolute;right:14px;bottom:10px;font-size:11px;color:#94A3B8;font-variant-numeric:tabular-nums}
.cf-areas{margin:28px 0 24px;padding:0;border:0}
.cf-areas legend{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#28245E;margin-bottom:12px}
.cf-chips{display:flex;flex-wrap:wrap;gap:8px}
.cf-chip{position:relative;cursor:pointer}
.cf-chip input{position:absolute;opacity:0;pointer-events:none}
.cf-chip span{display:inline-flex;align-items:center;padding:9px 16px;border-radius:9999px;border:1px solid #E2E8F0;background:#fff;font-size:14px;font-weight:600;color:#3F3B7A;transition:background-color 250ms ease,color 250ms ease,border-color 250ms ease,scale 160ms var(--ease-out),box-shadow 250ms ease}
.cf-chip:active span{scale:.96}
.cf-chip input:checked+span{background:#28245E;border-color:#28245E;color:#fff;box-shadow:0 8px 18px -10px rgba(40,36,94,.7)}
.cf-chip input:checked+span::before{content:"";width:7px;height:7px;border-radius:9999px;background:#BEC333;margin-right:8px;animation:pop 350ms cubic-bezier(.34,1.56,.64,1)}
@keyframes pop{from{transform:scale(0)}to{transform:scale(1)}}
.cf-chip input:focus-visible+span{outline:2px solid #BEC333;outline-offset:2px}
.cf-actions{margin-top:26px;display:flex;flex-wrap:wrap;align-items:center;gap:18px}
.cf-submit{position:relative;display:inline-flex;align-items:center;gap:10px;padding:16px 26px;border-radius:9999px;background:#BEC333;color:#28245E;font-weight:700;font-size:15px;box-shadow:0 14px 30px -14px rgba(190,195,51,.8);overflow:hidden;transition:background-color 250ms ease,box-shadow 250ms ease,transform 160ms var(--ease-out)}
.cf-submit-icon{font-size:20px!important;transition:transform 400ms var(--ease-out),opacity 200ms ease}
.cf-spinner{position:absolute;left:50%;top:50%;width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:9999px;border:2.5px solid rgba(40,36,94,.25);border-top-color:#28245E;opacity:0;animation:spin 700ms linear infinite;transition:opacity 200ms ease}
@keyframes spin{to{transform:rotate(360deg)}}
.cf-submit.is-loading .cf-submit-label,.cf-submit.is-loading .cf-submit-icon{opacity:0}
.cf-submit.is-loading .cf-spinner{opacity:1}
.cf-submit-label{transition:opacity 200ms ease}
.cf-privacy{display:flex;align-items:center;gap:6px;font-size:13px;color:#64748B}
.cf-privacy .material-symbols-outlined{font-size:16px;color:#6B6F12}
.cf-success{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-height:100%;padding:12px 0;outline:none}
.cf-success[hidden]{display:none}
.cf-check{width:84px;height:84px;margin-bottom:20px}
.cf-check circle{fill:rgba(190,195,51,.14);stroke:#BEC333;stroke-width:3;stroke-dasharray:1;stroke-dashoffset:1;animation:draw 700ms var(--ease-out) 100ms forwards;transform:rotate(-90deg);transform-origin:center}
.cf-check path{fill:none;stroke:#28245E;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:draw 450ms var(--ease-out) 650ms forwards}
.cf-success .cf-title,.cf-success .cf-sub,.cf-again{animation:enter 600ms var(--ease-out) both}
.cf-success .cf-title{animation-delay:500ms}
.cf-success .cf-sub{animation-delay:600ms;max-width:44ch}
.cf-again{margin-top:24px;display:inline-flex;align-items:center;gap:8px;padding:11px 18px;border-radius:9999px;border:1px solid #E2E8F0;font-weight:600;font-size:14px;color:#28245E;animation-delay:750ms;transition:background-color 200ms ease,border-color 200ms ease}
.cf-again .material-symbols-outlined{font-size:18px}
.cf.is-leaving{opacity:0;translate:0 -12px;transition:opacity 300ms ease,translate 300ms var(--ease-out)}
@media (hover:hover) and (pointer:fine){
.ci-row:hover{background:rgba(255,255,255,.09);border-color:rgba(190,195,51,.4);translate:4px 0}
.ci-row:hover .ci-icon{background:#BEC333;color:#28245E;rotate:-8deg}
.ci-row:hover .ci-go{color:#BEC333;transform:translate(2px,-2px)}
.ci-copy:hover{background:rgba(255,255,255,.1);color:#BEC333}
.ci-map:hover iframe{filter:none;scale:1.03}
.ci-map:hover::after{opacity:0}
.cf-field input:hover:not(:focus),.cf-field textarea:hover:not(:focus){border-color:#C4C0EA}
.cf-chip:hover input:not(:checked)+span{border-color:#BEC333;background:rgba(190,195,51,.1)}
.cf-submit:hover{background:#CDD24A;box-shadow:0 18px 36px -14px rgba(190,195,51,.9)}
.cf-submit:hover .cf-submit-icon{transform:translate(3px,-3px) rotate(-12deg)}
.cf-again:hover{background:#F1F5F9;border-color:#C4C0EA}
}
/* Entrances */
.js .contact-card{opacity:0;translate:0 40px;scale:.98}
.js .contact.in .contact-card{opacity:1;translate:none;scale:1;transition:opacity 800ms var(--ease-out),translate 900ms var(--ease-out),scale 900ms var(--ease-out)}
.js .ci-rise,.js .cf-rise{opacity:0;translate:0 16px}
.js .contact.in .ci-rise,.js .contact.in .cf-rise{opacity:1;translate:none;transition:opacity 600ms var(--ease-out),translate 600ms var(--ease-out),background-color 250ms ease,border-color 250ms ease}
.js .contact.in .ci-rise{transition-delay:calc(250ms + var(--d) * 80ms)}
.js .contact.in .cf-rise{transition-delay:calc(350ms + var(--d) * 80ms)}
.js .contact.in.settled .ci-rise,.js .contact.in.settled .cf-rise{transition-delay:0ms}
.js .ci-line>span{translate:0 105%}
.js .contact.in .ci-line>span{translate:none;transition:translate 900ms var(--ease-out);transition-delay:calc(250ms + var(--d) * 110ms)}
@media (max-width:1023px){.contact-info,.contact-form{padding:36px 28px}}
@media (max-width:640px){.contact-card{border-radius:24px}.contact-info,.contact-form{padding:28px 20px}}

/* Contact: stacked layout */
.contact-info{padding:56px 56px 48px}
.contact-form{padding:48px 56px 56px}
.ci-inner{display:grid;grid-template-columns:1fr;gap:28px}
.ci-col--a .ci-note{margin-top:28px}
.ci-col--b .ci-list{margin-top:0}
.ci-map{height:220px}
.cf-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:8px 24px}
@media (min-width:1024px){
.ci-inner{grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:56px;align-items:start}
.ci-arc{left:auto;right:0;bottom:0;transform:scaleX(-1)}
}
@media (max-width:1023px){.contact-info,.contact-form{padding:36px 28px}}
@media (max-width:640px){.contact-info,.contact-form{padding:28px 20px}}

/* Footer */
.site-footer{background:#1E1B4A;color:#fff;padding-top:96px}
.ft-glow{position:absolute;border-radius:9999px;filter:blur(100px);pointer-events:none}
.ft-glow--a{width:620px;height:620px;left:-200px;top:-220px;background:radial-gradient(circle,rgba(120,112,220,.45),transparent 65%)}
.ft-glow--b{width:560px;height:560px;right:-160px;top:120px;background:radial-gradient(circle,rgba(190,195,51,.18),transparent 65%)}
.ft-grid-bg{position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(rgba(255,255,255,.05) 1px,transparent 1px);background-size:28px 28px;-webkit-mask-image:linear-gradient(180deg,#000,transparent 60%);mask-image:linear-gradient(180deg,#000,transparent 60%)}
/* CTA */
.ft-cta{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:32px}
.ft-cta-title{font-family:"Playfair Display",Georgia,serif;font-weight:600;font-size:clamp(40px,6vw,80px);line-height:1;letter-spacing:-.025em}
.ft-cta-title em{font-style:italic;font-weight:500;color:#BEC333}
.ft-line{display:block;overflow:hidden;padding-bottom:.1em}
.ft-line>span{display:inline-block}
.ft-cta-actions{display:flex;flex-wrap:wrap;align-items:center;gap:20px;padding-bottom:10px}
.ft-btn{display:inline-flex;align-items:center;gap:10px;padding:16px 26px;border-radius:9999px;background:#BEC333;color:#28245E;font-weight:700;font-size:15px;box-shadow:0 16px 36px -16px rgba(190,195,51,.8);transition:background-color 250ms ease,box-shadow 250ms ease}
.ft-btn .material-symbols-outlined{font-size:20px;transition:transform 250ms var(--ease-out)}
.ft-phone{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:#fff;transition:color 200ms ease}
.ft-phone .material-symbols-outlined{font-size:20px;color:#BEC333}
.ft-rule{height:1px;margin:56px 0 64px;background:linear-gradient(90deg,rgba(190,195,51,0),rgba(190,195,51,.8) 20%,rgba(255,255,255,.18) 60%,rgba(255,255,255,0));transform-origin:left}
/* Brand */
.ft-logo{display:inline-flex;padding:12px 18px;border-radius:16px;background:#fff;box-shadow:0 16px 36px -18px rgba(0,0,0,.6);transition:rotate 400ms cubic-bezier(.34,1.56,.64,1),translate 400ms var(--ease-out)}
.ft-logo img{height:48px;width:auto}
.ft-blurb{margin-top:22px;font-size:15px;line-height:1.7;color:#B8B4DE;max-width:40ch}
.ft-contact{list-style:none;margin:22px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}
.ft-contact a{display:flex;align-items:flex-start;gap:12px;font-size:14px;line-height:1.5;color:#E3E1F7;text-decoration:none;transition:color 200ms ease}
.ft-ci{flex-shrink:0;width:32px;height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:rgba(190,195,51,.14);color:#BEC333;transition:background-color 250ms ease,color 250ms ease,rotate 400ms cubic-bezier(.34,1.56,.64,1)}
.ft-ci .material-symbols-outlined{font-size:18px}
.ft-contact a>span:last-child{padding-top:5px}
/* Columns */
.ft-h{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#BEC333;margin-bottom:18px}
.ft-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.ft-link{position:relative;display:inline-flex;align-items:center;gap:6px;font-size:14px;color:#C4C0EA;text-decoration:none;transition:color 200ms ease}
.ft-link>span:first-child{position:relative}
.ft-link>span:first-child::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:#BEC333;transform:scaleX(0);transform-origin:right;transition:transform 300ms var(--ease-out)}
.ft-link .material-symbols-outlined{font-size:16px;color:#BEC333;opacity:0;translate:-6px 0;transition:opacity 200ms ease,translate 300ms var(--ease-out)}
/* Bottom */
.ft-bottom{margin-top:72px;padding:24px 0;border-top:1px solid rgba(255,255,255,.1);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 32px;font-size:13px;color:#8A86C0}
.ft-legal{display:flex;flex-wrap:wrap;gap:24px;margin-left:auto}
.ft-link--sm{font-size:13px;color:#8A86C0}
.ft-top{position:relative;width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:9999px;color:#BEC333;background:rgba(255,255,255,.04);transition:background-color 250ms ease,color 250ms ease}
.ft-top svg{position:absolute;inset:0;width:100%;height:100%;rotate:-90deg}
.ft-top circle{fill:none;stroke-width:2}
.ft-top-track{stroke:rgba(255,255,255,.12)}
.ft-top-ring{stroke:#BEC333;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--sp,0))}
.ft-top .material-symbols-outlined{font-size:20px;transition:translate 300ms var(--ease-out)}
/* Giant wordmark */
.ft-word{display:flex;justify-content:center;margin-top:8px;font-family:"Playfair Display",Georgia,serif;font-weight:700;font-size:clamp(72px,19vw,300px);line-height:.78;letter-spacing:-.02em;color:transparent;-webkit-text-stroke:1.5px rgba(190,195,51,.28);user-select:none;pointer-events:none;overflow:hidden;padding-top:.05em}
.ft-word span{display:inline-block;background:linear-gradient(180deg,rgba(190,195,51,.16),rgba(190,195,51,0) 80%);-webkit-background-clip:text;background-clip:text}
@media (hover:hover) and (pointer:fine){
.ft-btn:hover{background:#CDD24A;box-shadow:0 20px 40px -16px rgba(190,195,51,.9)}
.ft-btn:hover .material-symbols-outlined{transform:translateX(4px)}
.ft-phone:hover{color:#BEC333}
.ft-logo:hover{rotate:-2deg;translate:0 -2px}
.ft-contact a:hover{color:#fff}
.ft-contact a:hover .ft-ci{background:#BEC333;color:#28245E;rotate:-8deg}
.ft-link:hover{color:#fff}
.ft-link:hover>span:first-child::after{transform:scaleX(1);transform-origin:left}
.ft-link:hover .material-symbols-outlined{opacity:1;translate:0 0}
.ft-top:hover{background:#BEC333;color:#28245E}
.ft-top:hover .material-symbols-outlined{translate:0 -3px}
}
/* Entrances */
.js .ft-rise{opacity:0;translate:0 20px}
.js .site-footer.in .ft-rise{opacity:1;translate:none;transition:opacity 700ms var(--ease-out),translate 700ms var(--ease-out);transition-delay:calc(200ms + var(--d) * 100ms)}
.js .ft-line>span{translate:0 105%}
.js .site-footer.in .ft-line>span{translate:none;transition:translate 1000ms var(--ease-out);transition-delay:calc(var(--d) * 120ms)}
.js .ft-rule{scale:0 1}
.js .site-footer.in .ft-rule{scale:1 1;transition:scale 1400ms var(--ease-out) 300ms}
.js .ft-word span{translate:0 100%;opacity:0}
.js .ft-word.in span{translate:none;opacity:1;transition:translate 1100ms var(--ease-out),opacity 600ms ease;transition-delay:calc(var(--k) * 60ms)}
@media (max-width:640px){.site-footer{padding-top:72px}.ft-legal{margin-left:0}}

/* ================= Inner pages ================= */
html{scroll-padding-top:150px}
.js [data-reveal].in{transition:opacity 600ms var(--ease-out),transform 600ms var(--ease-out),translate 300ms var(--ease-out),border-color 300ms ease,box-shadow 300ms ease;transition-delay:var(--d,0ms),var(--d,0ms),0ms,0ms,0ms}

/* Generic white/navy ink fill for tiles */
[data-ink]{position:relative;overflow:hidden;isolation:isolate}
[data-ink]>*:not(.ink){position:relative;z-index:1}
.bee-card .ink,.cc .ink,.of-sub .ink,.of-am .ink{background:#28245E}
@media (hover:hover) and (pointer:fine){[data-ink]:hover .ink{clip-path:circle(160% at var(--x,50%) var(--y,50%))}}

/* Page hero */
.page-hero{background:#28245E;color:#fff;padding:88px 0 96px}
.ph-crumb{display:flex;align-items:center;gap:6px;margin-bottom:28px;font-size:13px;color:#B8B4DE}
.ph-crumb a{color:#B8B4DE;text-decoration:none;transition:color 200ms ease}
.ph-crumb a:hover{color:#BEC333}
.ph-crumb .material-symbols-outlined{font-size:16px;opacity:.6}
.ph-crumb [aria-current]{color:#fff;font-weight:600}
.ph-title{font-family:"Playfair Display",Georgia,serif;font-weight:600;font-size:clamp(40px,6vw,76px);line-height:1.04;letter-spacing:-.025em}
.ph-title em{font-style:italic;font-weight:500;color:#BEC333}
.ph-lead{margin-top:22px;font-size:18px;line-height:1.7;color:#C4C0EA;max-width:56ch}
.ph-stats{display:grid;grid-template-columns:repeat(3,1fr);border-radius:22px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.ph-stats>div{padding:22px 20px;display:flex;flex-direction:column;gap:4px;font-size:13px;color:#B8B4DE}
.ph-stats>div+div{border-left:1px solid rgba(255,255,255,.1)}
.ph-stat{font-family:"Playfair Display",Georgia,serif;font-size:32px;font-weight:600;color:#BEC333;line-height:1.1}

/* Section headings */
.sec-eyebrow{display:flex;align-items:center;gap:12px;margin-bottom:16px;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#6B6F12}
.sec-eyebrow>span{width:32px;height:2px;background:#BEC333}
.sec-eyebrow--dark{color:#BEC333}
.sec-title{font-family:"Playfair Display",Georgia,serif;font-weight:600;font-size:clamp(32px,4vw,52px);line-height:1.08;letter-spacing:-.02em;color:#28245E}
.sec-title em{font-style:italic;font-weight:500;color:#6B6F12}
.sec-title--dark{color:#fff}
.sec-title--dark em{color:#BEC333}
.sec-title--sm{font-size:clamp(26px,3vw,36px)}

/* About: story */
.ab-story{background:#F8FAFC}
.ab-photo{position:relative;margin:0;aspect-ratio:4/5;max-width:460px;border-radius:24px 200px 24px 24px;overflow:hidden;box-shadow:0 40px 80px -40px rgba(40,36,94,.55)}
.ab-photo::before{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(40,36,94,.08);pointer-events:none}
.ab-photo img{width:100%;height:100%;object-fit:cover;object-position:0% 0%;transition:scale 900ms var(--ease-out)}
.ab-photo figcaption{position:absolute;left:18px;bottom:18px;z-index:1;display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:9999px;background:rgba(40,36,94,.85);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;font-size:13px;font-weight:600}
.ab-photo figcaption .material-symbols-outlined{font-size:18px;color:#BEC333}
@media (hover:hover) and (pointer:fine){.ab-photo:hover img{scale:1.04}}
.ab-copy{margin-top:24px;display:flex;flex-direction:column;gap:16px;font-size:16px;line-height:1.8;color:#475569;max-width:62ch}
.ab-copy p:first-child{font-size:19px;line-height:1.7;color:#1E1B4A}

/* About: name equation */
.ab-name{background:#28245E;color:#fff}
.nm-eq{margin-top:56px;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:18px}
.nm-card{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:190px;padding:26px 28px;border-radius:22px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);text-align:center}
.nm-k{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#BEC333}
.nm-v{font-family:"Playfair Display",Georgia,serif;font-size:36px;font-weight:600;line-height:1.1}
.nm-v em{font-style:italic;font-weight:500}
.nm-d{font-size:13px;color:#B8B4DE}
.nm-d strong{color:#fff;font-style:italic}
.nm-card--result{background:#BEC333;border-color:#BEC333;color:#28245E;box-shadow:0 24px 50px -20px rgba(190,195,51,.6)}
.nm-card--result .nm-k,.nm-card--result .nm-d,.nm-card--result .nm-d strong{color:#28245E}
.nm-op{font-family:"Playfair Display",Georgia,serif;font-size:48px;color:#BEC333;line-height:1}
.nm-note{margin:40px auto 0;max-width:60ch;text-align:center;font-size:16px;line-height:1.75;color:#C4C0EA}
.js [data-name-eq]>*{opacity:0;translate:0 24px;scale:.92}
.js [data-name-eq].in>*{opacity:1;translate:none;scale:1;transition:opacity 500ms ease,translate 700ms var(--ease-out),scale 700ms cubic-bezier(.34,1.56,.64,1);transition-delay:calc(var(--n) * 160ms)}

/* About: timeline */
.ab-history{background:#F8FAFC}
.tl{position:relative;list-style:none;margin:56px 0 0;padding:0;display:grid;grid-template-columns:1fr;gap:28px}
.tl-item{position:relative;padding:28px;border-radius:22px;background:#fff;border:1px solid #E2E8F0;box-shadow:0 20px 40px -30px rgba(40,36,94,.35)}
.tl-year{display:inline-block;font-family:"Playfair Display",Georgia,serif;font-size:44px;font-weight:600;line-height:1;color:#28245E;margin-bottom:12px}
.tl-item h3{font-family:"Playfair Display",Georgia,serif;font-size:22px;font-weight:600;color:#28245E;margin-bottom:8px}
.tl-item p{font-size:15px;line-height:1.7;color:#475569}
.tl-dot{position:absolute;width:18px;height:18px;border-radius:9999px;background:#BEC333;box-shadow:0 0 0 6px rgba(190,195,51,.2)}
@media (min-width:1024px){
.tl{grid-template-columns:repeat(3,1fr);padding-top:44px}
.tl::before,.tl::after{content:"";position:absolute;left:0;right:0;top:8px;height:2px;border-radius:2px}
.tl::before{background:#E2E8F0}
.tl::after{background:linear-gradient(90deg,#28245E,#BEC333);transform:scaleX(0);transform-origin:left}
.tl-dot{left:28px;top:-45px}
.js .tl.in::after{transform:scaleX(1);transition:transform 1400ms var(--ease-out) 200ms}
}
@media (max-width:1023px){
.tl{padding-left:34px}
.tl::before{content:"";position:absolute;left:8px;top:10px;bottom:10px;width:2px;background:linear-gradient(180deg,#28245E,#BEC333)}
.tl-dot{left:-34px;top:32px}
}
.js .tl-item{opacity:0;translate:0 24px}
.js .tl.in .tl-item{opacity:1;translate:none;transition:opacity 600ms var(--ease-out),translate 700ms var(--ease-out);transition-delay:calc(300ms + var(--t) * 260ms)}
.js .tl-dot{scale:0}
.js .tl.in .tl-dot{scale:1;transition:scale 500ms cubic-bezier(.34,1.56,.64,1);transition-delay:calc(450ms + var(--t) * 260ms)}

/* Badge tiles (light, navy ink on hover) */
.bee-card{display:flex;align-items:center;gap:16px;padding:22px 24px;border-radius:20px;background:#fff;border:1px solid #E2E8F0;box-shadow:0 16px 36px -28px rgba(40,36,94,.4)}
.bee-badge{flex-shrink:0;width:52px;height:52px;border-radius:16px;display:flex;align-items:center;justify-content:center;background:#BEC333;color:#28245E;transition:rotate 500ms cubic-bezier(.34,1.56,.64,1)}
.bee-badge .material-symbols-outlined{font-size:28px}
.bee-k{display:block;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#6B6F12;transition:color 300ms ease 60ms}
.bee-v{display:block;font-family:"Playfair Display",Georgia,serif;font-size:21px;font-weight:600;color:#28245E;transition:color 300ms ease 60ms}
@media (hover:hover) and (pointer:fine){
.bee-card:hover{translate:0 -4px;border-color:#28245E}
.bee-card:hover .bee-k{color:#BEC333}
.bee-card:hover .bee-v{color:#fff}
.bee-card:hover .bee-badge{rotate:-8deg}
}

/* Partners */
.pp-section{background:#F8FAFC}
.pp{position:relative;border-radius:26px;background:#fff;border:1px solid #E2E8F0;overflow:hidden;box-shadow:0 30px 60px -40px rgba(40,36,94,.45);transition:translate 350ms var(--ease-out),box-shadow 350ms var(--ease-out),border-color 350ms ease}
.pp-photo{position:relative;display:flex;justify-content:center;padding:36px 0 0;background:#28245E;background-image:radial-gradient(260px 200px at 100% 0%,rgba(190,195,51,.25),transparent 65%),radial-gradient(300px 220px at 0% 100%,rgba(120,112,220,.45),transparent 65%)}
.pp-photo::before{content:"";position:absolute;left:50%;top:22px;width:238px;height:100%;translate:-50% 0;border:1.5px solid rgba(190,195,51,.5);border-bottom:0;border-radius:140px 140px 0 0;transition:translate 500ms var(--ease-out),border-color 350ms ease}
.pp-photo img{position:relative;width:210px;height:250px;object-fit:cover;object-position:top;border-radius:120px 120px 0 0;transition:scale 600ms var(--ease-out)}
.pp-badge{position:absolute;right:20px;top:20px;padding:5px 12px;border-radius:9999px;background:#BEC333;color:#28245E;font-size:12px;font-weight:700;letter-spacing:.04em}
.pp-body{padding:28px}
.pp-name{font-family:"Playfair Display",Georgia,serif;font-size:28px;font-weight:600;line-height:1.15;color:#28245E}
.pp-role{margin-top:4px;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#6B6F12}
.pp-tags{margin-top:16px;display:flex;flex-wrap:wrap;gap:6px}
.pp-tags span{padding:5px 11px;border-radius:9999px;background:#F1F5F9;color:#3F3B7A;font-size:12px;font-weight:600}
.pp-intro{margin-top:16px;font-size:15px;line-height:1.7;color:#334155}
.pp-more{display:grid;grid-template-rows:0fr;transition:grid-template-rows 500ms var(--ease-out)}
.pp-more>div{overflow:hidden}
.pp-more p{margin-top:12px;font-size:15px;line-height:1.7;color:#475569;opacity:0;translate:0 -6px;transition:opacity 300ms ease,translate 400ms var(--ease-out)}
.pp.is-open .pp-more{grid-template-rows:1fr}
.pp.is-open .pp-more p{opacity:1;translate:none;transition-delay:150ms}
.pp-actions{margin-top:22px;padding-top:20px;border-top:1px solid #E2E8F0;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.pp-toggle{display:inline-flex;align-items:center;gap:4px;font-size:14px;font-weight:700;color:#28245E}
.pp-toggle .material-symbols-outlined{transition:rotate 400ms var(--ease-out)}
.pp.is-open .pp-toggle .material-symbols-outlined{rotate:180deg}
.pp-mail{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:9999px;background:#28245E;color:#fff;font-size:13px;font-weight:600;transition:background-color 250ms ease,color 250ms ease}
.pp-mail .material-symbols-outlined{font-size:18px;color:#BEC333;transition:color 250ms ease}
@media (hover:hover) and (pointer:fine){
.pp:hover{translate:0 -6px;border-color:rgba(190,195,51,.6);box-shadow:0 40px 70px -40px rgba(40,36,94,.55)}
.pp:hover .pp-photo img{scale:1.04}
.pp:hover .pp-photo::before{translate:-50% -8px;border-color:#BEC333}
.pp-toggle:hover{color:#6B6F12}
.pp-mail:hover{background:#BEC333;color:#28245E}
.pp-mail:hover .material-symbols-outlined{color:#28245E}
}
@media (min-width:1024px){.pp-mail-t{display:none}.pp-mail{padding:10px}}

/* What we offer */
.of{background:#F8FAFC}
.of-nav{position:sticky;top:140px;padding:22px;border-radius:22px;background:#fff;border:1px solid #E2E8F0;box-shadow:0 20px 40px -32px rgba(40,36,94,.4)}
.of-nav-h{display:block;margin-bottom:12px;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#6B6F12}
.of-nav ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.of-nav a{position:relative;display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:12px;font-size:14px;font-weight:600;color:#64748B;text-decoration:none;transition:color 250ms ease,background-color 250ms ease}
.of-nav-n{font-family:"Playfair Display",Georgia,serif;font-size:13px;color:#94A3B8;transition:color 250ms ease}
.of-nav a.is-active{color:#28245E;background:rgba(190,195,51,.16)}
.of-nav a.is-active .of-nav-n{color:#6B6F12}
.of-nav a:hover{color:#28245E}
.of-nav-bar{position:absolute;left:0;top:22px;bottom:22px;width:3px;border-radius:3px;background:#BEC333;transform:scaleY(var(--sp));transform-origin:top}
@media (max-width:1023px){
.of-nav{position:static}
.of-nav ol{flex-direction:row;flex-wrap:wrap;gap:6px}
.of-nav a{padding:7px 12px;background:#F1F5F9}
.of-nav-bar{display:none}
}
.of-card{position:relative;overflow:hidden;padding:40px;border-radius:26px;background:#fff;border:1px solid #E2E8F0;box-shadow:0 30px 60px -44px rgba(40,36,94,.45)}
.of-head{position:relative;display:flex;align-items:center;gap:18px;margin-bottom:22px}
.of-icon{flex-shrink:0;width:60px;height:60px;border-radius:18px;display:flex;align-items:center;justify-content:center;background:#28245E;color:#BEC333;transition:rotate 500ms cubic-bezier(.34,1.56,.64,1),background-color 300ms ease,color 300ms ease}
.of-icon .material-symbols-outlined{font-size:30px}
.of-title{font-family:"Playfair Display",Georgia,serif;font-size:clamp(28px,3vw,38px);font-weight:600;line-height:1.1;color:#28245E}
.of-num{position:absolute;right:0;top:-28px;font-family:"Playfair Display",Georgia,serif;font-size:110px;font-weight:700;line-height:1;color:transparent;-webkit-text-stroke:1.5px rgba(40,36,94,.08);pointer-events:none;transition:-webkit-text-stroke-color 400ms ease,translate 600ms var(--ease-out)}
.of-body{display:flex;flex-direction:column;gap:16px;font-size:16px;line-height:1.75;color:#475569}
.of-lead{font-family:"Playfair Display",Georgia,serif;font-size:22px;line-height:1.45;color:#1E1B4A}
.of-h{margin-top:8px;font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#28245E}
.of-list{list-style:none;margin:4px 0 0;padding:0;display:grid;grid-template-columns:1fr;gap:10px}
.of-list li{display:flex;align-items:flex-start;gap:12px;font-size:15px;line-height:1.5;color:#1E1B4A}
.of-list li .material-symbols-outlined{flex-shrink:0;width:26px;height:26px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:18px;background:rgba(190,195,51,.22);color:#4F520C}
@media (min-width:768px){.of-list--2{grid-template-columns:1fr 1fr}}
.of-brands{display:flex;flex-wrap:wrap;gap:8px}
.of-brands span{padding:8px 16px;border-radius:9999px;background:#28245E;color:#fff;font-size:14px;font-weight:600}
.of-brands span:first-child{background:#BEC333;color:#28245E}
.of-brands--sm span{padding:6px 12px;font-size:12px;background:#F1F5F9;color:#3F3B7A}
.of-brands--sm span:first-child{background:#F1F5F9;color:#3F3B7A}
.of-subs{display:grid;grid-template-columns:1fr;gap:14px;margin-top:8px}
@media (min-width:900px){.of-subs{grid-template-columns:repeat(3,1fr)}}
.of-sub{padding:22px;border-radius:18px;background:#F8FAFC;border:1px solid #E2E8F0;transition:translate 300ms var(--ease-out),border-color 300ms ease}
.of-sub-icon{display:inline-flex;width:40px;height:40px;border-radius:12px;align-items:center;justify-content:center;background:#fff;color:#28245E;font-size:22px!important;box-shadow:0 0 0 1px #E2E8F0;transition:background-color 300ms ease,color 300ms ease}
.of-sub h4{margin:14px 0 6px;font-family:"Playfair Display",Georgia,serif;font-size:19px;font-weight:600;color:#28245E;transition:color 300ms ease 60ms}
.of-sub p{font-size:14px;line-height:1.65;color:#475569;transition:color 300ms ease 60ms}
.of-kpis{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.of-kpis>div{padding:22px;border-radius:18px;background:#28245E;color:#C4C0EA;font-size:14px;display:flex;flex-direction:column;gap:4px}
.of-kpi{font-family:"Playfair Display",Georgia,serif;font-size:28px;font-weight:600;color:#BEC333}
.of-split{display:grid;grid-template-columns:1fr;gap:14px}
@media (min-width:900px){.of-split{grid-template-columns:1fr 1fr}}
.of-panel{padding:24px;border-radius:18px;background:#F8FAFC;border:1px solid #E2E8F0;display:flex;flex-direction:column;gap:12px}
.of-panel h4{display:flex;align-items:center;gap:10px;font-family:"Playfair Display",Georgia,serif;font-size:20px;font-weight:600;color:#28245E}
.of-panel h4 .material-symbols-outlined{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:#28245E;color:#BEC333;font-size:20px}
.of-panel p{font-size:15px}
.of-amen{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
@media (min-width:768px){.of-amen{grid-template-columns:repeat(5,1fr)}}
.of-am{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:16px;border-radius:16px;background:#F8FAFC;border:1px solid #E2E8F0;font-size:13px;font-weight:600;line-height:1.35;color:#1E1B4A;transition:translate 300ms var(--ease-out),border-color 300ms ease}
.of-am .material-symbols-outlined{color:#6B6F12;font-size:24px;transition:color 300ms ease}
.of-am>span:last-child{transition:color 300ms ease 60ms}
.of-cta{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin-top:8px}
.of-phone{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:#28245E;transition:color 200ms ease}
.of-phone .material-symbols-outlined{color:#6B6F12;font-size:20px}
@media (hover:hover) and (pointer:fine){
.of-card:hover .of-icon{rotate:-8deg;background:#BEC333;color:#28245E}
.of-card:hover .of-num{-webkit-text-stroke-color:rgba(190,195,51,.55);translate:-8px 6px}
.of-sub:hover,.of-am:hover{translate:0 -4px;border-color:#28245E}
.of-sub:hover h4,.of-am:hover>span:last-child{color:#fff}
.of-sub:hover p{color:#C4C0EA}
.of-sub:hover .of-sub-icon{background:#BEC333;color:#28245E;box-shadow:none}
.of-am:hover .material-symbols-outlined{color:#BEC333}
.of-phone:hover{color:#6B6F12}
}
@media (max-width:640px){.of-card{padding:26px}.of-num{font-size:80px}}

/* Contact tiles */
.cc{display:flex;flex-direction:column;gap:4px;padding:24px;border-radius:20px;background:#fff;border:1px solid #E2E8F0;box-shadow:0 16px 36px -28px rgba(40,36,94,.4);text-decoration:none;transition:translate 300ms var(--ease-out),border-color 300ms ease}
.cc-icon{display:inline-flex;width:46px;height:46px;border-radius:14px;align-items:center;justify-content:center;background:#28245E;color:#BEC333;margin-bottom:12px;transition:background-color 300ms ease,color 300ms ease,rotate 500ms cubic-bezier(.34,1.56,.64,1)}
.cc-k{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#6B6F12;transition:color 300ms ease 60ms}
.cc-v{font-family:"Playfair Display",Georgia,serif;font-size:21px;font-weight:600;color:#28245E;overflow-wrap:anywhere;transition:color 300ms ease 60ms}
.cc-d{font-size:13px;line-height:1.5;color:#64748B;transition:color 300ms ease 60ms}
@media (hover:hover) and (pointer:fine){
.cc:hover{translate:0 -4px;border-color:#28245E}
.cc:hover .cc-icon{background:#BEC333;color:#28245E;rotate:-8deg}
.cc:hover .cc-k{color:#BEC333}
.cc:hover .cc-v{color:#fff}
.cc:hover .cc-d{color:#C4C0EA}
}

/* PAIA */
.pa{background:#F8FAFC}
.pa-card{padding:40px;border-radius:26px;background:#fff;border:1px solid #E2E8F0;box-shadow:0 30px 60px -44px rgba(40,36,94,.45)}
.pa-quote{margin:24px 0 0;padding:4px 0 4px 22px;border-left:3px solid #BEC333;font-family:"Playfair Display",Georgia,serif;font-style:italic;font-size:20px;line-height:1.6;color:#1E1B4A}
.pa-p{margin-top:18px;font-size:16px;line-height:1.75;color:#475569}
.pa-steps{list-style:none;margin:26px 0 0;padding:0;display:flex;flex-direction:column;gap:18px}
.pa-steps li{display:flex;gap:16px}
.pa-steps li>span{flex-shrink:0;width:40px;height:40px;border-radius:9999px;display:flex;align-items:center;justify-content:center;background:#28245E;color:#BEC333;font-family:"Playfair Display",Georgia,serif;font-weight:600;font-size:18px}
.pa-steps h3{font-family:"Playfair Display",Georgia,serif;font-size:19px;font-weight:600;color:#28245E}
.pa-steps p{margin-top:2px;font-size:15px;line-height:1.65;color:#475569}
.pa-dl{display:flex;flex-direction:column;gap:6px;padding:36px;border-radius:26px;background:#28245E;color:#fff;text-decoration:none;box-shadow:0 40px 80px -40px rgba(40,36,94,.8);background-image:radial-gradient(300px 220px at 100% 0%,rgba(190,195,51,.25),transparent 65%);transition:translate 350ms var(--ease-out)}
.pa-dl-doc{width:72px;height:88px;border-radius:10px 26px 10px 10px;display:flex;align-items:center;justify-content:center;margin-bottom:14px;background:#BEC333;color:#28245E;box-shadow:0 18px 30px -14px rgba(190,195,51,.7);transition:rotate 500ms cubic-bezier(.34,1.56,.64,1),translate 500ms var(--ease-out)}
.pa-dl-doc .material-symbols-outlined{font-size:40px}
.pa-dl-k{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#BEC333;transition:color 300ms ease 60ms}
.pa-dl-v{font-family:"Playfair Display",Georgia,serif;font-size:28px;font-weight:600;line-height:1.15;transition:color 300ms ease 60ms}
.pa-dl-d{font-size:14px;color:#B8B4DE;transition:color 300ms ease 60ms}
.pa-dl-go{margin-top:18px;align-self:flex-start;display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border-radius:9999px;background:#BEC333;color:#28245E;font-weight:700;font-size:14px;transition:background-color 300ms ease,color 300ms ease}
.pa-dl-go .material-symbols-outlined{font-size:20px;transition:translate 300ms var(--ease-out)}
.pa-info{padding:30px;border-radius:24px;background:#fff;border:1px solid #E2E8F0}
.pa-info h3{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#6B6F12;margin-bottom:14px}
.pa-info h3+ul{margin-bottom:26px}
.pa-info ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.pa-info li{display:flex;gap:12px;font-size:15px;line-height:1.5;color:#1E1B4A}
.pa-info li .material-symbols-outlined{color:#6B6F12;font-size:20px}
.pa-info a{color:#28245E;font-weight:600;text-decoration:none}
.pa-info a:hover{color:#6B6F12}
.pa-info dl{display:flex;flex-direction:column;gap:10px;margin:0}
.pa-info dl>div{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:12px;background:#F8FAFC;font-size:14px}
.pa-info dt{color:#475569}
.pa-info dd{margin:0;font-weight:700;color:#28245E;font-variant-numeric:tabular-nums}
@media (hover:hover) and (pointer:fine){
.pa-dl:hover{translate:0 -6px}
.pa-dl:hover .pa-dl-doc{rotate:-6deg;translate:0 -4px}
.pa-dl:hover .pa-dl-k{color:#6B6F12}
.pa-dl:hover .pa-dl-v{color:#28245E}
.pa-dl:hover .pa-dl-d{color:#475569}
.pa-dl:hover .pa-dl-go{background:#28245E;color:#fff}
.pa-dl:hover .pa-dl-go .material-symbols-outlined{translate:0 3px}
}
@media (max-width:640px){.pa-card,.pa-dl{padding:26px}.page-hero{padding:64px 0 72px}.ph-stats{grid-template-columns:1fr}.ph-stats>div+div{border-left:0;border-top:1px solid rgba(255,255,255,.1)}}

/* Reduced motion for inner pages */

/* Contact form: sending state */
.cf-honey{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.cf-error{flex-basis:100%;display:flex;align-items:flex-start;gap:8px;padding:12px 14px;border-radius:12px;background:#fff1f0;color:#93000a;font-size:14px;line-height:1.5;animation:enter 400ms var(--ease-out) both}
.cf-error[hidden]{display:none}
.cf-error .material-symbols-outlined{font-size:20px}

/* Logo strip above the footer */
.logos{background:#fff;border-top:1px solid #E2E8F0;padding:34px 0 38px;overflow:hidden}
.logos-label{text-align:center;font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#6B6F12;margin-bottom:26px}
.logos-viewport{-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.logos-track{display:flex;align-items:center;gap:72px;width:max-content;animation:logos 38s linear infinite}
@keyframes logos{to{transform:translateX(-33.333%)}}
.logo-item{display:flex;align-items:center;justify-content:center;width:180px;height:70px;flex-shrink:0}
.logo-item img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;transition:opacity 350ms ease,scale 350ms var(--ease-out)}
@media (hover:hover) and (pointer:fine){
.logos-viewport:hover .logos-track{animation-play-state:paused}
.logo-item:hover img{scale:1.06}
}
@media (max-width:640px){.logos{padding:26px 0 30px}.logos-track{gap:40px}.logo-item{width:132px;height:52px}}
.tb-region-sm{display:none}

/* Each logo tuned so they read at the same visual size despite different shapes */
.logo-item img.logo--saica{height:58px;width:auto}
.logo-item img.logo--cipc{height:66px;width:auto}
.logo-item img.logo--sars{width:168px;height:auto}
.logo-item img.logo--qb{width:158px;height:auto}
@media (max-width:640px){.logo-item img.logo--saica{height:44px}.logo-item img.logo--cipc{height:50px}.logo-item img.logo--sars{width:124px}.logo-item img.logo--qb{width:118px}}
/* Top bar on small screens: one line, no wrapping */
@media (max-width:639px){
.tb-region{display:none}
.tb-region-sm{display:inline}
.topbar .h-9{gap:10px}
.topbar span,.topbar a{white-space:nowrap}
.topbar{font-size:11px}
}
@media (prefers-reduced-motion:reduce){
.js [data-name-eq]>*,.js .tl-item,.js .tl-dot{opacity:1!important;translate:none!important;scale:none!important;transition:none!important}
.tl::after{transform:scaleX(1)!important}
.pp-more,.pp-more p{transition:none}
.ink{transition:clip-path 1ms}
.bee-card:hover,.pp:hover,.of-sub:hover,.of-am:hover,.cc:hover,.pa-dl:hover,.bee-card:hover .bee-badge,.of-card:hover .of-icon,.cc:hover .cc-icon,.pa-dl:hover .pa-dl-doc{translate:none;rotate:none;scale:none}
}

@media (prefers-reduced-motion:reduce){
.js .ft-rise,.js .ft-line>span,.js .ft-word span{opacity:1!important;translate:none!important;transition:none!important}
.js .ft-rule{scale:1 1!important;transition:none!important}
.ft-logo:hover,.ft-contact a:hover .ft-ci,.ft-top:hover .material-symbols-outlined{rotate:none;translate:none}

.js .contact-card,.js .ci-rise,.js .cf-rise,.js .ci-line>span{opacity:1!important;translate:none!important;scale:none!important;transition:none!important}
.ci-arc circle{stroke-dashoffset:0!important;transition:none!important}
.ci-status.is-open .ci-dot::after,.cf-field.shake,.cf-chip input:checked+span::before{animation:none}
.cf-check circle,.cf-check path{animation:none;stroke-dashoffset:0}
.ci-row:hover,.ci-row:hover .ci-icon,.ci-map:hover iframe{translate:none;rotate:none;scale:none}

.js .sectors-head,.js .sector,.js .sector-list li,.js .sector-check,.js .sectors-amp{opacity:1!important;translate:none!important;scale:none!important;rotate:none!important;transition:none!important}
.sectors-amp{translate:-50% -50%!important}
.sector-arcs circle{stroke-dashoffset:0!important;transition:none!important}
.sector:hover,.sector:hover .sector-mark,.sector:hover .sector-icon,.sector-list li:hover{translate:none;rotate:none;scale:none}

.ink{transition:clip-path 1ms}
.cred:hover .cred-icon{rotate:none}

.js .why-rise,.js .why-line>span,.js .why-item .why-card,.js .cred,.js .why-item .why-node{translate:none!important;opacity:1!important;transition:none}
.why-arc path{stroke-dashoffset:0;transition:none}
.why-card:hover,.cred:hover,.why-card:hover .why-icon,.why-card:hover .why-bignum{translate:none;rotate:none}

.svc-fill{transition:clip-path 1ms}
.js .svc.in .svc-sheen{animation:none}
.js .svc .svc-num{opacity:1;transform:none}
.svc:hover .svc-title,.svc:hover .svc-tag,.svc:hover .svc-go{transform:none}
.svc:hover,.svc:hover .svc-icon,.svc:hover .svc-num,.svc:active{translate:none;rotate:none;scale:none}

.js .svc,.js .svc.in,.js .svc-head,.js .svc-cta{transform:none;transition:opacity 300ms ease}
.js .svc .svc-icon{transform:none;opacity:1}
.svc:hover,.svc:hover .svc-icon,.svc:hover .svc-num,.svc:active{transform:none}
.site-header,.site-logo{transition:none}.mobile-menu{animation:none}}

/* Hero */
.hero-glow{position:absolute;border-radius:9999px;filter:blur(80px);pointer-events:none}
.hero-glow--lime{width:520px;height:520px;right:-120px;top:40px;background:radial-gradient(circle,rgba(190,195,51,.28),transparent 65%)}
.hero-glow--indigo{width:640px;height:640px;left:-220px;bottom:-260px;background:radial-gradient(circle,rgba(90,84,180,.45),transparent 65%)}
.hero-grid{position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(rgba(255,255,255,.07) 1px,transparent 1px);background-size:28px 28px;-webkit-mask-image:linear-gradient(180deg,#000 0%,transparent 75%);mask-image:linear-gradient(180deg,#000 0%,transparent 75%)}
.hero-arc{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none}
.hero-arc path{fill:none;stroke:#BEC333;stroke-width:1.5;opacity:.35;stroke-dasharray:1;stroke-dashoffset:0;animation:draw 1800ms var(--ease-out) 200ms both;vector-effect:non-scaling-stroke}
.hero-title{font-family:"Playfair Display",Georgia,serif;font-weight:600}
.hero-accent{position:relative;display:inline-block;font-style:italic;font-weight:500;color:#BEC333;padding-bottom:.08em}
.hero-underline{position:absolute;left:0;bottom:-.12em;width:100%;height:.32em;overflow:visible}
.hero-underline path{fill:none;stroke:#BEC333;stroke-width:3;stroke-linecap:round;stroke-dasharray:1;animation:draw 900ms var(--ease-out) 650ms both;vector-effect:non-scaling-stroke}
@keyframes draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
.hero-stats>div{display:flex;flex-direction:column-reverse;justify-content:flex-end;gap:2px;padding-right:1rem}
.hero-stats>div+div{padding-left:1.25rem;border-left:1px solid rgba(255,255,255,.12)}
.stat-num{font-family:"Playfair Display",Georgia,serif;font-size:36px;line-height:1.1;font-weight:600;color:#fff;font-variant-numeric:tabular-nums}
/* Office visual */
.arch-photo{position:relative;margin:0;aspect-ratio:4/5;border-radius:24px 200px 24px 24px;overflow:hidden;background:#1E1B4A;box-shadow:0 40px 80px -30px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.08);animation:photoPop 1000ms var(--ease-out) 250ms both}
.arch-photo img{width:100%;height:100%;object-fit:cover;object-position:0% 0%;transform-origin:30% 15%;animation:settle 1600ms var(--ease-out) 250ms both}
.arch-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(30,27,74,.35) 65%,rgba(30,27,74,.95) 100%);pointer-events:none}
.arch-caption{position:absolute;left:20px;right:20px;bottom:20px;z-index:1;display:flex;gap:10px;align-items:flex-start;animation:enter 600ms var(--ease-out) 900ms both}
.arch-outline{position:absolute;inset:0;border:1.5px solid rgba(190,195,51,.55);border-radius:24px 200px 24px 24px;transform:translate(18px,18px);animation:outlineIn 900ms var(--ease-out) 700ms both}
@keyframes photoPop{from{opacity:0;transform:translateY(48px) scale(.92);clip-path:inset(40% 0 0 0)}to{opacity:1;transform:none;clip-path:inset(0)}}
@keyframes settle{from{transform:scale(1.18)}to{transform:scale(1)}}
@keyframes outlineIn{from{opacity:0;transform:translate(0,0)}to{opacity:1;transform:translate(18px,18px)}}
.float-card{position:absolute;z-index:2;display:flex;align-items:center;gap:12px;padding:12px 16px 12px 12px;border-radius:14px;animation:cardPop 650ms cubic-bezier(.34,1.56,.64,1) both;animation-delay:calc(1000ms + var(--pop) * 160ms)}
.float-card--light{left:-28px;top:42%;background:rgba(255,255,255,.96);box-shadow:0 20px 40px -16px rgba(0,0,0,.45);transform-origin:right center}
.float-card--dark{right:-24px;bottom:20%;background:rgba(30,27,74,.78);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.12);box-shadow:0 20px 40px -16px rgba(0,0,0,.5);transform-origin:left center}
.float-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
@keyframes cardPop{from{opacity:0;transform:scale(.85) translateY(12px)}to{opacity:1;transform:none}}
@media (max-width:640px){.float-card--light{left:-8px}.float-card--dark{right:-8px}.arch-outline{transform:translate(10px,10px)}}
@media (prefers-reduced-motion:reduce){
.hero-arc path,.hero-underline path{animation:none;stroke-dashoffset:0}
.arch-photo,.arch-outline,.float-card,.arch-caption{animation:fade 400ms ease both}
.arch-photo img{animation:none}
.animate-ping{animation:none}
html{scroll-behavior:auto}
[data-enter]{animation:fade 300ms ease both;animation-delay:0ms}
@keyframes fade{from{opacity:0}to{opacity:1}}
.js [data-reveal]{transform:none;transition:opacity 300ms ease}
.press:active,.card-lift:hover,.js [data-reveal].in.card-lift:hover{transform:none}
.animate-pulse{animation:none}
}

@media (prefers-reduced-motion:reduce){.logos-track{animation:none;flex-wrap:wrap;width:auto;justify-content:center}.logo-item:hover img{scale:none}}
