:root{
  --indigo:#4b34e0;--indigo-2:#6a56f0;--deep:#16104d;--lime:#c9f56b;--lav:#f1eeff;--lav-2:#e3deff;--white:#fff;--text:#2c2a4a;--muted:#6d6a8c;
  --r:28px;
}
html{scroll-behavior:smooth}
body{font-family:'Manrope',system-ui,sans-serif;color:var(--text);background:#fbfaff;line-height:1.75;overflow-x:hidden}
h1,h2,h3,h4,h5,.brand{font-family:'Sora',system-ui,sans-serif}
h1,h2,h3,h4,h5{color:var(--deep);font-weight:700;line-height:1.18;letter-spacing:-.02em}
a{color:var(--indigo);text-decoration:none}
a:hover{color:var(--deep)}
img{max-width:100%}

/* Brand: single line, single style */
.brand{display:inline-flex;align-items:center;gap:.55rem;white-space:nowrap;font-weight:800;font-size:1.35rem;color:var(--deep);letter-spacing:-.03em;line-height:1}
.brand::before{content:"";width:1.15rem;height:1.15rem;border-radius:50%;background:radial-gradient(circle at 35% 35%,var(--lime),var(--indigo-2));box-shadow:0 0 0 4px var(--lav-2);flex:0 0 auto}
.brand:hover{color:var(--deep)}
.brand-light,.brand-light:hover{color:#fff}
.brand-light::before{box-shadow:0 0 0 4px rgba(255,255,255,.2)}

/* Floating pill nav */
.nav-wrap{position:sticky;top:0;z-index:1030;padding:.9rem 0}
.pill-nav{background:rgba(255,255,255,.88);backdrop-filter:blur(14px);border-radius:60px;box-shadow:0 14px 40px -18px rgba(22,16,77,.45);padding:.55rem .8rem .55rem 1.5rem;border:1px solid rgba(75,52,224,.08)}
.pill-nav .nav-link{color:var(--deep);font-weight:700;font-size:.93rem;padding:.5rem 1rem!important;border-radius:40px;transition:.25s}
.pill-nav .nav-link:hover{background:var(--lav)}
.pill-nav .nav-link.active{background:var(--indigo);color:#fff}
.navbar-toggler{border:0;box-shadow:none!important}
@media(max-width:991px){.pill-nav{border-radius:30px}.pill-nav .navbar-collapse{padding:.8rem 0}}

/* Buttons */
.btn{border-radius:60px;font-weight:700;padding:.8rem 1.8rem;transition:.3s;border:2px solid transparent}
.btn-indigo{background:var(--indigo);color:#fff;box-shadow:0 12px 24px -12px var(--indigo)}
.btn-indigo:hover{background:var(--deep);color:#fff;transform:translateY(-3px)}
.btn-lime{background:var(--lime);color:var(--deep)}
.btn-lime:hover{background:#b9ea4f;color:var(--deep);transform:translateY(-3px)}
.btn-ghost{border-color:rgba(255,255,255,.55);color:#fff}
.btn-ghost:hover{background:#fff;color:var(--deep)}
.btn-soft{background:var(--lav);color:var(--indigo)}
.btn-soft:hover{background:var(--indigo);color:#fff}

/* Hero panel */
.hero-panel{background:radial-gradient(circle at 85% 10%,#7d6cff 0,transparent 45%),linear-gradient(135deg,var(--indigo),var(--deep));border-radius:48px;color:#fff;padding:4.5rem 3.2rem;position:relative;overflow:hidden;margin-top:.5rem}
.hero-panel::before{content:"";position:absolute;left:-120px;bottom:-140px;width:360px;height:360px;border-radius:50%;background:rgba(201,245,107,.18)}
.hero-panel>*{position:relative}
.chip-top{display:inline-flex;align-items:center;gap:.5rem;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25);border-radius:40px;padding:.35rem 1rem;font-weight:700;font-size:.85rem}
.chip-top i{color:var(--lime)}
.hero-panel h1{color:#fff;font-size:clamp(2.4rem,5.4vw,4.4rem);font-weight:800;margin:1.2rem 0}
.hero-panel h1 span{color:var(--lime)}
.hero-panel .lead{color:rgba(255,255,255,.82);max-width:520px}
.hero-img{border-radius:36px;width:100%;aspect-ratio:5/6;object-fit:cover;display:block;border:6px solid rgba(255,255,255,.2)}
.glass{position:absolute;background:rgba(255,255,255,.85);color:var(--deep);backdrop-filter:blur(10px);border-radius:20px;padding:.8rem 1.1rem;font-weight:700;font-size:.9rem;box-shadow:0 18px 30px -16px rgba(0,0,0,.5);display:flex;align-items:center;gap:.6rem;animation:bob 5s ease-in-out infinite}
.glass i{width:36px;height:36px;border-radius:12px;background:var(--lime);display:grid;place-items:center;color:var(--deep)}
.glass.g1{left:-18px;top:14%}
.glass.g2{right:-14px;bottom:12%;animation-delay:-2.5s}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@media(max-width:991px){.hero-panel{padding:3rem 1.6rem;border-radius:32px}.glass{display:none}}

/* Sections */
.section{padding:6rem 0}
.section-lav{background:var(--lav)}
.eyebrow{display:inline-block;color:var(--indigo);background:var(--lav-2);font-weight:800;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;padding:.3rem .9rem;border-radius:40px}
.title{font-size:clamp(2rem,4vw,3.1rem);margin:.9rem 0 1rem}
.muted{color:var(--muted)}

/* Bento */
.bento{border-radius:var(--r);padding:2rem;height:100%;position:relative;overflow:hidden;transition:.35s}
.bento:hover{transform:translateY(-6px)}
.bento .ico{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;font-size:1.6rem;margin-bottom:1.2rem}
.bento-lime{background:var(--lime)}
.bento-lime .ico{background:var(--deep);color:var(--lime)}
.bento-lav{background:var(--lav-2)}
.bento-lav .ico{background:var(--indigo);color:#fff}
.bento-indigo{background:var(--indigo);color:rgba(255,255,255,.85)}
.bento-indigo h3,.bento-indigo h4{color:#fff}
.bento-indigo .ico{background:var(--lime);color:var(--deep)}
.bento-white{background:#fff;border:1px solid var(--lav-2)}
.bento-white .ico{background:var(--lav);color:var(--indigo)}
.bento-photo{padding:0;min-height:300px}
.bento-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* Filter chips */
.filters{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin-bottom:2.6rem}
.filters button{border:2px solid var(--indigo);background:transparent;color:var(--indigo);font-weight:700;border-radius:40px;padding:.45rem 1.3rem;transition:.25s}
.filters button:hover{background:var(--lav-2)}
.filters button.on{background:var(--indigo);color:#fff}
.svc-item{transition:opacity .35s,transform .35s}
.svc-item.hide{display:none}

/* Service cards */
.svc{background:#fff;border-radius:var(--r);padding:.8rem;height:100%;display:flex;flex-direction:column;box-shadow:0 20px 40px -28px rgba(22,16,77,.55);border:1px solid rgba(75,52,224,.08);transition:.35s}
.svc:hover{transform:translateY(-8px);box-shadow:0 30px 50px -26px rgba(75,52,224,.55)}
.svc .pic{position:relative;border-radius:20px;overflow:hidden}
.svc .pic img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;transition:transform .6s}
.svc:hover .pic img{transform:scale(1.07)}
.svc .cat{position:absolute;left:12px;top:12px;background:rgba(255,255,255,.92);color:var(--indigo);font-weight:800;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;padding:.25rem .8rem;border-radius:30px}
.svc .txt{padding:1.3rem .8rem .7rem;display:flex;flex-direction:column;flex:1}
.svc h3{font-size:1.25rem}
.svc p{color:var(--muted);font-size:.95rem;flex:1}
.svc .btn{padding:.6rem 1.4rem;font-size:.9rem}

/* FAQ */
.accordion-item{border:0;background:#fff;border-radius:20px!important;margin-bottom:.9rem;overflow:hidden;box-shadow:0 10px 24px -20px rgba(22,16,77,.6)}
.accordion-button{font-family:'Sora',sans-serif;font-weight:700;color:var(--deep);background:#fff;padding:1.2rem 1.5rem;box-shadow:none!important}
.accordion-button:not(.collapsed){background:var(--lav);color:var(--indigo)}
.accordion-body{color:var(--muted)}

/* Blog overlay cards */
.post{position:relative;display:block;border-radius:var(--r);overflow:hidden;height:100%;min-height:380px;color:#fff;box-shadow:0 24px 40px -28px rgba(22,16,77,.7)}
.post img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s}
.post::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(22,16,77,0) 25%,rgba(22,16,77,.92))}
.post:hover img{transform:scale(1.08)}
.post .in{position:absolute;left:0;right:0;bottom:0;padding:1.6rem;z-index:2}
.post .tag{display:inline-block;background:var(--lime);color:var(--deep);font-weight:800;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;padding:.2rem .75rem;border-radius:30px;margin-bottom:.7rem}
.post h3{color:#fff;font-size:1.35rem;margin-bottom:.5rem}
.post p{color:rgba(255,255,255,.8);font-size:.92rem;margin:0}
.post:hover{color:#fff}

/* Page header */
.page-head{background:radial-gradient(circle at 15% 20%,#7d6cff 0,transparent 40%),linear-gradient(135deg,var(--indigo),var(--deep));color:#fff;text-align:center;padding:4.5rem 0 5rem;border-radius:0 0 56px 56px;margin-top:-4.9rem;padding-top:9rem;position:relative;overflow:hidden}
.page-head::after{content:"";position:absolute;right:-90px;top:50px;width:260px;height:260px;border-radius:50%;background:rgba(201,245,107,.2)}
.page-head .container{position:relative;z-index:1}
.page-head h1{color:#fff;font-weight:800;font-size:clamp(2.1rem,5vw,3.8rem);max-width:820px;margin:0 auto}
.page-head p{color:rgba(255,255,255,.82);max-width:600px;margin:1rem auto 0}
.crumbs{display:inline-flex;gap:.5rem;background:rgba(255,255,255,.14);border-radius:40px;padding:.3rem 1.1rem;font-weight:700;font-size:.85rem;margin-bottom:1.2rem}
.crumbs a{color:var(--lime)}

/* Article */
.article{max-width:780px;margin:0 auto}
.article .cover{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--r);margin-bottom:2rem;box-shadow:0 30px 50px -30px rgba(22,16,77,.7)}
.article h2{font-size:1.8rem;margin:2.2rem 0 .7rem}
.article p,.article li{font-size:1.08rem}
.article blockquote{background:var(--lav);border-radius:var(--r);padding:1.6rem 1.8rem;margin:2rem 0;font-family:'Sora',sans-serif;font-weight:600;font-size:1.25rem;color:var(--indigo);border-left:6px solid var(--lime)}
.chip{display:inline-block;background:var(--lav-2);color:var(--indigo);font-weight:800;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;padding:.25rem .85rem;border-radius:30px;margin-bottom:.8rem}

/* Forms / contact */
.card-x{background:#fff;border-radius:var(--r);padding:2.4rem;box-shadow:0 30px 50px -35px rgba(22,16,77,.6);border:1px solid rgba(75,52,224,.08);height:100%}
.tile{display:flex;gap:1rem;align-items:center;border-radius:24px;padding:1.3rem 1.5rem;margin-bottom:1rem}
.tile i{font-size:1.7rem;width:54px;height:54px;border-radius:16px;display:grid;place-items:center;flex:0 0 54px}
.tile small{display:block;font-weight:800;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;opacity:.75}
.tile a{font-weight:800;color:inherit}
.tile-lime{background:var(--lime);color:var(--deep)}.tile-lime i{background:var(--deep);color:var(--lime)}
.tile-lav{background:var(--lav-2);color:var(--deep)}.tile-lav i{background:var(--indigo);color:#fff}
.tile-indigo{background:var(--indigo);color:#fff}.tile-indigo i{background:var(--lime);color:var(--deep)}
.map{width:100%;height:320px;border:0;border-radius:var(--r);margin-top:2.5rem;box-shadow:0 30px 50px -35px rgba(22,16,77,.6)}
.form-label{font-weight:700;color:var(--deep);font-size:.9rem}
.form-control,.form-select{border:2px solid var(--lav-2);border-radius:16px;padding:.8rem 1.1rem;background:var(--lav)}
.form-control:focus,.form-select:focus{border-color:var(--indigo);background:#fff;box-shadow:0 0 0 .25rem rgba(75,52,224,.15)}
.form-check-input:checked{background-color:var(--indigo);border-color:var(--indigo)}
.form-success{display:none;background:var(--lime);color:var(--deep);border-radius:16px;padding:1rem 1.2rem;margin-top:1.2rem;font-weight:700}
.form-success.show{display:block;animation:pop .45s}
@keyframes pop{from{transform:scale(.94);opacity:0}to{transform:none;opacity:1}}
.news-wrap{background:radial-gradient(circle at 20% 20%,#7d6cff 0,transparent 45%),linear-gradient(135deg,var(--indigo),var(--deep));padding:5rem 0}
.news-card{background:#fff;border-radius:40px;overflow:hidden;display:flex;flex-wrap:wrap;box-shadow:0 40px 70px -30px rgba(0,0,0,.6)}
.news-card .side{flex:1 1 320px;min-height:320px;background-size:cover;background-position:center}
.news-card .main{flex:1 1 420px;padding:3rem 2.4rem}

/* Legal */
.legal{max-width:860px;margin:0 auto;background:#fff;border-radius:var(--r);padding:3rem;box-shadow:0 30px 50px -35px rgba(22,16,77,.5);border:1px solid rgba(75,52,224,.08)}
.legal h2{font-size:1.45rem;margin:2rem 0 .6rem;color:var(--indigo)}
.legal h2:first-of-type{margin-top:1.4rem}
@media(max-width:575px){.legal,.card-x{padding:1.6rem}.news-card .main{padding:2rem 1.4rem}}

/* CTA */
.cta{background:linear-gradient(120deg,var(--lime),#e4fba4);border-radius:44px;padding:4rem 1.5rem;text-align:center;position:relative;overflow:hidden}
.cta::after{content:"";position:absolute;right:-60px;bottom:-80px;width:240px;height:240px;border-radius:50%;background:rgba(75,52,224,.15)}
.cta>*{position:relative;z-index:1}
.cta p{max-width:540px;margin:0 auto 1.8rem;color:var(--deep)}

/* Footer */
.site-footer{background:var(--deep);color:rgba(255,255,255,.72);border-radius:56px 56px 0 0;padding:5rem 0 0}
.site-footer h5{color:#fff;font-size:1.05rem;margin-bottom:1.2rem}
.site-footer a{color:rgba(255,255,255,.72)}
.site-footer a:hover{color:var(--lime)}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{margin-bottom:.55rem}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:3rem;padding:1.5rem 0;font-size:.9rem}

/* Reveal */
.js .reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s ease}
.js .reveal.show{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.js .reveal{opacity:1;transform:none}}
@media(max-width:575px){.brand{font-size:1.12rem}.section{padding:4rem 0}.page-head{border-radius:0 0 32px 32px}.site-footer{border-radius:32px 32px 0 0}}
