/* ── TOKENS ─────────────────────────────────────────────── */
:root{
  --p:#643991;--p2:#472c70;--p3:#3c2763;
  --dk:#1c1940;--wh:#fff;--acc:#F5CB41;--acc2:#d4a900;
  --surf:#f8f7ff;--muted:#6b7280;--border:rgba(100,57,145,.12);
  --r1:8px;--r2:16px;--r3:24px;--r4:40px;
  --s1:0 2px 12px rgba(28,25,64,.06);
  --s2:0 8px 40px rgba(28,25,64,.12);
  --s3:0 24px 80px rgba(28,25,64,.18);
  --sa:0 8px 32px rgba(100,57,145,.25);
  --t:.35s cubic-bezier(.4,0,.2,1);
  --fd:'Poppins',sans-serif;--fb:'Manrope',sans-serif;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-family:var(--fb);color:var(--dk);background:var(--wh);overflow-x:hidden;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;touch-action:pan-y}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit;-webkit-tap-highlight-color:transparent}
ul{list-style:none}
button{border:none;cursor:pointer;font-family:inherit;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
input,textarea,select{font-family:inherit;-webkit-appearance:none;appearance:none;border-radius:var(--r1)}
/* Smooth scroll container for portfolio */
.pscrl{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;padding:8px 0 22px;scrollbar-width:thin;scrollbar-color:var(--p) var(--border)}
.ptab{padding:12px 26px;border-radius:100px;border:2px solid var(--border);background:var(--wh);color:var(--dk);font-family:var(--fd);font-weight:700;font-size:.92rem;cursor:pointer;transition:var(--t)}
.ptab:hover{border-color:var(--p)}
.ptab.active{background:var(--p);border-color:var(--p);color:var(--wh);box-shadow:var(--sa)}

/* ── PAGE LOADER ─────────────────────────────────────────── */
#pgload{position:fixed;inset:0;background:var(--dk);z-index:9999;display:flex;align-items:center;justify-content:center;transition:opacity .6s,visibility .6s}
#pgload.gone{opacity:0;visibility:hidden;pointer-events:none}
.load-logo{animation:lpulse 1.1s ease-in-out infinite alternate}
@keyframes lpulse{from{transform:scale(.93);opacity:.65}to{transform:scale(1.07);opacity:1}}

/* ── SPA PAGES ───────────────────────────────────────────── */
.page{display:none;animation:pfade .45s ease}
.page.active{display:block}
@keyframes pfade{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}

/* ── TYPOGRAPHY ──────────────────────────────────────────── */
.dxl{font-family:var(--fd);font-size:clamp(2.3rem,5.2vw,4.6rem);font-weight:800;line-height:1.08;letter-spacing:-.03em}
.tw-headline{display:inline}
.tw-headline-cur{display:inline-block;width:4px;height:.85em;background:var(--acc);margin-left:4px;vertical-align:text-bottom;animation:blink .75s step-end infinite}
.hero-title-wrap{min-height:calc(2 * clamp(2.3rem,5.2vw,4.6rem) * 1.08)}
.dlg{font-family:var(--fd);font-size:clamp(1.85rem,3.6vw,3.3rem);font-weight:700;line-height:1.14;letter-spacing:-.025em}
.dmd{font-family:var(--fd);font-size:clamp(1.35rem,2.6vw,2.2rem);font-weight:700;line-height:1.22}
.dsm{font-family:var(--fd);font-size:clamp(1.05rem,1.8vw,1.45rem);font-weight:700;line-height:1.32}
.lead{font-size:clamp(.98rem,1.4vw,1.17rem);line-height:1.78;color:var(--muted)}
.grad{background:linear-gradient(135deg,var(--acc),#ffe87a);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}

/* ── LAYOUT ──────────────────────────────────────────────── */
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}
.wwide{max-width:1420px;margin:0 auto;padding:0 24px}
.sec{padding:110px 0}
.ssm{padding:68px 0}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.tc{text-align:center}
.fc{display:flex;align-items:center}
.fb{display:flex;align-items:center;justify-content:space-between}
.mt8{margin-top:8px}.mt16{margin-top:16px}.mt20{margin-top:20px}.mt24{margin-top:24px}
.mt32{margin-top:32px}.mt40{margin-top:40px}.mt48{margin-top:48px}.mt56{margin-top:56px}
.mb8{margin-bottom:8px}.mb12{margin-bottom:12px}.mb16{margin-bottom:16px}.mb20{margin-bottom:20px}
.mb24{margin-bottom:24px}.mb32{margin-bottom:32px}.mb40{margin-bottom:40px}

/* ── BUTTONS ─────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;gap:9px;padding:14px 28px;border-radius:var(--r4);font-weight:600;font-size:.95rem;transition:var(--t);position:relative;overflow:hidden;cursor:pointer}
.btn::after{content:'';position:absolute;inset:0;background:rgba(255,255,255,.12);opacity:0;transition:var(--t)}
.btn:hover::after{opacity:1}
.btn-primary{background:var(--acc);color:var(--dk);box-shadow:0 4px 20px rgba(245,203,65,.35)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px rgba(245,203,65,.45)}
.btn-outline{background:transparent;color:var(--wh);border:1.5px solid rgba(255,255,255,.35);backdrop-filter:blur(4px)}
.btn-outline:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.6);transform:translateY(-2px)}
.btn-ghost{background:rgba(100,57,145,.08);color:var(--p)}
.btn-ghost:hover{background:rgba(100,57,145,.14);transform:translateY(-2px)}
.btn-wa{background:#25D366;color:var(--wh);box-shadow:0 4px 20px rgba(37,211,102,.3)}
.btn-wa:hover{transform:translateY(-2px);box-shadow:0 8px 32px rgba(37,211,102,.42)}
.btn-dk{background:var(--dk);color:var(--wh)}
.btn-dk:hover{transform:translateY(-2px);background:var(--p2)}
.btn-lg{padding:17px 35px;font-size:1.04rem}
.btn-sm{padding:9px 19px;font-size:.83rem}

/* ── SECTION LABELS ──────────────────────────────────────── */
.slbl{display:inline-flex;align-items:center;gap:8px;padding:5px 15px;border-radius:100px;background:rgba(100,57,145,.08);color:var(--p);font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin-bottom:18px}
.slbl .dot{width:6px;height:6px;border-radius:50%;background:var(--p);animation:pulse 2s infinite}
.slbl-acc{background:rgba(245,203,65,.1);color:var(--acc)}
.slbl-acc .dot{background:var(--acc)}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.82)}}

/* ── REVEAL ──────────────────────────────────────────────── */
.rv{opacity:0;transform:translateY(34px);transition:opacity .65s ease,transform .65s ease}
.rv.in{opacity:1;transform:translateY(0)}
.rvl{opacity:0;transform:translateX(-34px);transition:opacity .65s ease,transform .65s ease}
.rvl.in{opacity:1;transform:translateX(0)}
.rvr{opacity:0;transform:translateX(34px);transition:opacity .65s ease,transform .65s ease}
.rvr.in{opacity:1;transform:translateX(0)}
.d1{transition-delay:.1s}.d2{transition-delay:.2s}.d3{transition-delay:.3s}
.d4{transition-delay:.4s}.d5{transition-delay:.5s}

/* ── NAVBAR ──────────────────────────────────────────────── */
#nav{position:fixed;top:0;left:0;right:0;z-index:1000;padding:17px 0;transition:var(--t)}
#nav.sc{background:rgba(28,25,64,.9);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);border-bottom:1px solid rgba(255,255,255,.07);padding:11px 0;box-shadow:0 4px 30px rgba(0,0,0,.26)}
.nav-in{display:flex;align-items:center;justify-content:space-between;gap:24px}
.nav-logo img{height:44px;width:auto;display:block;filter:drop-shadow(0 2px 8px rgba(0,0,0,.28))}
.nav-links{display:flex;align-items:center;gap:30px}
.nav-links a{color:rgba(255,255,255,.76);font-size:.87rem;font-weight:500;transition:color .2s;position:relative;padding-bottom:2px}
.nav-links a::after{content:'';position:absolute;bottom:-3px;left:0;right:0;height:1.5px;background:var(--acc);transform:scaleX(0);transition:transform .3s}
.nav-links a:hover,.nav-links a.act{color:var(--wh)}
.nav-links a:hover::after,.nav-links a.act::after{transform:scaleX(1)}
.ham{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:4px}
.ham span{display:block;width:24px;height:2px;background:var(--wh);border-radius:2px;transition:var(--t)}
/* Mobile nav */
.mnav{position:fixed;inset:0;background:var(--dk);z-index:999;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;transform:translateX(100%);transition:transform .4s cubic-bezier(.4,0,.2,1)}
.mnav.open{transform:translateX(0)}
.mnav a{color:var(--wh);font-family:var(--fd);font-size:1.65rem;font-weight:700;transition:color .2s}
.mnav a:hover{color:var(--acc)}
.mnav-x{position:absolute;top:22px;right:22px;width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;color:var(--wh);cursor:pointer;font-size:1.1rem;transition:background .2s}
.mnav-x:hover{background:rgba(255,255,255,.2)}

/* ── BREADCRUMB ──────────────────────────────────────────── */
.bc{display:flex;align-items:center;gap:8px;font-size:.8rem;color:rgba(255,255,255,.5);padding-top:22px}
.bc a{color:rgba(255,255,255,.5);transition:color .2s}
.bc a:hover{color:var(--acc)}
.bc span{color:rgba(255,255,255,.3)}

/* ── HERO ────────────────────────────────────────────────── */
#hero{min-height:100vh;background:linear-gradient(135deg,var(--dk) 0%,var(--p3) 42%,var(--p2) 100%);position:relative;display:flex;align-items:center;overflow:hidden;padding-top:100px}
.orb{position:absolute;border-radius:50%;filter:blur(80px);pointer-events:none}
.o1{width:580px;height:580px;top:-190px;right:-90px;background:radial-gradient(circle,rgba(100,57,145,.48),transparent 70%)}
.o2{width:380px;height:380px;bottom:-90px;left:-70px;background:radial-gradient(circle,rgba(245,203,65,.17),transparent 70%)}
.o3{width:300px;height:300px;top:42%;left:40%;background:radial-gradient(circle,rgba(71,44,112,.52),transparent 70%)}
.hgrid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.024) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.024) 1px,transparent 1px);background-size:60px 60px;pointer-events:none}
.hwrap{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center;position:relative;z-index:1}
.htxt{color:var(--wh)}
.hbadge{display:inline-flex;align-items:center;gap:8px;padding:7px 17px;border-radius:100px;background:rgba(245,203,65,.12);border:1px solid rgba(245,203,65,.27);color:var(--acc);font-size:.77rem;font-weight:600;margin-bottom:26px;backdrop-filter:blur(8px)}
.hbdot{width:7px;height:7px;border-radius:50%;background:var(--acc);box-shadow:0 0 10px var(--acc);animation:glow 2s infinite}
@keyframes glow{0%,100%{box-shadow:0 0 8px var(--acc)}50%{box-shadow:0 0 20px var(--acc)}}
/* Typewriter */
.twwrap{min-height:3.4rem;display:flex;align-items:center;margin-bottom:14px}
.twtext{font-family:var(--fd);font-size:clamp(.95rem,1.7vw,1.25rem);font-weight:500;color:rgba(255,255,255,.72);line-height:1.5}
.twcur{display:inline-block;width:2px;height:1.1em;background:var(--acc);margin-left:2px;vertical-align:text-bottom;animation:blink .75s step-end infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}
.hsub{color:rgba(255,255,255,.66);margin-bottom:38px;max-width:476px}
.hbtns{display:flex;gap:13px;flex-wrap:wrap;margin-bottom:50px}
.hstats{display:flex;gap:26px;padding-top:26px;border-top:1px solid rgba(255,255,255,.1);flex-wrap:wrap}
.hsv{font-family:var(--fd);font-size:1.5rem;font-weight:800;color:var(--acc)}
.hsl{font-size:.75rem;color:rgba(255,255,255,.48);margin-top:2px}
/* Hero visual */
.hvis{position:relative;display:flex;align-items:center;justify-content:center}
.hframe{width:100%;max-width:490px;aspect-ratio:4/5;border-radius:var(--r3);overflow:hidden;position:relative;box-shadow:var(--s3),0 0 76px rgba(100,57,145,.36);border:1px solid rgba(255,255,255,.09)}
.hframe img{width:100%;height:100%;object-fit:cover;object-position:top center}
.hframe::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 52%,rgba(28,25,64,.44) 100%)}
.fcc{position:absolute;background:rgba(255,255,255,.09);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.13);border-radius:var(--r2);padding:13px 17px;color:var(--wh);animation:flt 6s ease-in-out infinite}
@keyframes flt{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
.fc1{top:14%;left:-52px;animation-delay:0s}
.fc2{bottom:18%;right:-34px;animation-delay:2.2s}
.fc3{top:52%;left:-34px;animation-delay:4s}
.fcl{font-size:.67rem;opacity:.6;margin-bottom:4px}
.fcv{font-family:var(--fd);font-size:1.12rem;font-weight:700;color:var(--acc)}
.fcs{font-size:.7rem;opacity:.63}
.fcbr{display:flex;gap:3px;margin-top:7px}
.fcbr span{display:block;height:25px;width:10px;border-radius:3px;background:rgba(245,203,65,.22)}
.fcbr span.on{background:var(--acc)}

/* ── CLIENTS SLIDER ──────────────────────────────────────── */
.csec{padding:58px 0;background:var(--surf);border-top:1px solid var(--border);border-bottom:1px solid var(--border);overflow:hidden}
.clbl{text-align:center;font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:30px}
.strk{overflow:hidden;position:relative}
.strk::before,.strk::after{content:'';position:absolute;top:0;bottom:0;width:100px;z-index:2;pointer-events:none}
.strk::before{left:0;background:linear-gradient(90deg,var(--surf),transparent)}
.strk::after{right:0;background:linear-gradient(-90deg,var(--surf),transparent)}
.sinn{display:flex;gap:56px;width:max-content;animation:slide 18s linear infinite}
@keyframes slide{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.clog{display:flex;align-items:center;justify-content:center;padding:8px 32px;border-radius:var(--r1);transition:transform .35s,opacity .3s;white-space:nowrap;cursor:default;flex-shrink:0;opacity:.85}
.clog:hover{transform:scale(1.08);opacity:1}
.clog img{height:46px;width:auto;max-width:200px;object-fit:contain;display:block;filter:none}
.clog-ic{width:28px;height:28px;border-radius:6px;flex-shrink:0}
.clog-nm{font-family:var(--fd);font-weight:700;font-size:.92rem;color:var(--dk)}

/* ── 3D ICONS ────────────────────────────────────────────── */
.i3d{width:62px;height:62px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:1.85rem;margin-bottom:22px;position:relative;flex-shrink:0;transition:var(--t)}
.i3d::before{content:'';position:absolute;inset:0;border-radius:16px;background:inherit;filter:blur(10px);opacity:.45;transform:translateY(4px) scale(.9);z-index:-1;transition:var(--t)}
.isoc{background:linear-gradient(135deg,#667eea,#764ba2)}
.iweb{background:linear-gradient(135deg,#f093fb,#f5576c)}
.ihos{background:linear-gradient(135deg,#4facfe,#00f2fe)}
.iema{background:linear-gradient(135deg,#43e97b,#38f9d7)}
.imet{background:linear-gradient(135deg,#fa709a,#fee140)}
.igoo{background:linear-gradient(135deg,#a18cd1,#fbc2eb)}
.iseo{background:linear-gradient(135deg,#ffecd2,#fcb69f)}
.icon{background:linear-gradient(135deg,#a1c4fd,#c2e9fb)}
.imon{background:linear-gradient(135deg,#d4fc79,#96e6a1)}
.imnu{background:linear-gradient(135deg,#f6d365,#fda085)}

/* ── SERVICE CARDS ───────────────────────────────────────── */
.sgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:50px}
.scard{background:var(--wh);border:1px solid var(--border);border-radius:var(--r3);padding:32px 26px;transition:var(--t);position:relative;overflow:hidden;cursor:pointer}
.scard::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--p),var(--acc));transform:scaleX(0);transform-origin:left;transition:transform .4s}
.scard:hover{box-shadow:var(--s2);transform:translateY(-6px);border-color:rgba(100,57,145,.17)}
.scard:hover::before{transform:scaleX(1)}
.scard:hover .i3d{transform:scale(1.09) rotate(-3deg)}
.scard:hover .i3d::before{opacity:.72;transform:translateY(6px) scale(.84)}
.stit{font-family:var(--fd);font-size:1rem;font-weight:700;color:var(--dk);margin-bottom:9px}
.sdsc{font-size:.87rem;color:var(--muted);line-height:1.67}
.sarr{display:inline-flex;align-items:center;gap:5px;margin-top:16px;font-size:.82rem;font-weight:600;color:var(--p);opacity:0;transform:translateX(-6px);transition:var(--t)}
.scard:hover .sarr{opacity:1;transform:translateX(0)}

/* ── PROCESS ─────────────────────────────────────────────── */
.psteps{display:grid;grid-template-columns:repeat(5,1fr);gap:18px}
.pstep{text-align:center}
.pnum{width:50px;height:50px;border-radius:50%;background:var(--wh);border:2px solid var(--border);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;font-family:var(--fd);font-weight:800;font-size:1.02rem;color:var(--p);position:relative;z-index:1;transition:var(--t)}
.pstep:hover .pnum{background:linear-gradient(135deg,var(--p),var(--p2));color:var(--wh);border-color:var(--p);box-shadow:var(--sa);transform:scale(1.1)}
.ptit{font-family:var(--fd);font-weight:700;font-size:.93rem;color:var(--dk);margin-bottom:7px}
.pdsc{font-size:.82rem;color:var(--muted);line-height:1.6}

/* ── PORTFOLIO SCROLL ────────────────────────────────────── */

.pscrl::-webkit-scrollbar{height:4px}
.pscrl::-webkit-scrollbar-track{background:var(--border);border-radius:2px}
.pscrl::-webkit-scrollbar-thumb{background:var(--p);border-radius:2px}
.pcard{flex:0 0 348px;scroll-snap-align:start;border-radius:var(--r3);overflow:hidden;position:relative;cursor:pointer;background:var(--p3);aspect-ratio:3/4}
.pcard img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.pcard:hover img{transform:scale(1.07)}
.pov{position:absolute;inset:0;background:linear-gradient(180deg,transparent 24%,rgba(28,25,64,.96) 100%);display:flex;flex-direction:column;justify-content:flex-end;padding:22px;transform:translateY(12px);opacity:0;transition:var(--t)}
.pcard:hover .pov{opacity:1;transform:translateY(0)}
.pcat{font-size:.69rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--acc);margin-bottom:5px}
.pcli{font-size:.76rem;color:rgba(255,255,255,.5);margin-bottom:4px}
.pnam{font-family:var(--fd);font-size:1.05rem;font-weight:700;color:var(--wh);margin-bottom:13px}
.pbtn{display:inline-flex;align-items:center;gap:5px;padding:7px 15px;border-radius:100px;background:var(--acc);color:var(--dk);font-size:.77rem;font-weight:700;width:fit-content}

/* ── PORTFOLIO FULLSCREEN MODAL ──────────────────────────── */
.pmod{position:fixed;inset:0;background:rgba(28,25,64,.95);backdrop-filter:blur(10px);z-index:2000;display:grid;grid-template-columns:1fr 400px;opacity:0;visibility:hidden;transition:var(--t)}
.pmod.open{opacity:1;visibility:visible}
.pmod-pre{position:relative;overflow:hidden;background:var(--surf)}
.pmod-scr{height:100%;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--p) var(--border)}
.pmod-scr::-webkit-scrollbar{width:4px}
.pmod-scr img{width:100%;display:block}
.pmod-side{background:var(--wh);overflow-y:auto;display:flex;flex-direction:column;padding:44px 36px}
.pmod-cat{font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--p);margin-bottom:7px}
.pmod-tit{font-family:var(--fd);font-size:1.75rem;font-weight:700;color:var(--dk);margin-bottom:5px}
.pmod-cli{font-size:.87rem;color:var(--muted);margin-bottom:18px}
.pmod-dsc{color:var(--muted);line-height:1.77;font-size:.93rem;margin-bottom:26px}
.pmod-tags{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:32px}
.pmod-tag{padding:5px 13px;border-radius:100px;background:rgba(100,57,145,.08);color:var(--p);font-size:.77rem;font-weight:600}
.pmod-x{position:fixed;top:22px;right:22px;width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.12);color:var(--wh);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.05rem;transition:background .2s;z-index:2010}
.pmod-x:hover{background:rgba(255,255,255,.22)}
.pmod-hint{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:5px;color:rgba(255,255,255,.5);font-size:.73rem;animation:shint 2s ease-in-out infinite}
@keyframes shint{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(6px)}}

/* ── DIFFERENTIALS ───────────────────────────────────────── */
.dgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:50px}
.dcard{padding:34px 26px;border-radius:var(--r3);background:linear-gradient(135deg,rgba(100,57,145,.04),rgba(100,57,145,.01));border:1px solid var(--border);transition:var(--t)}
.dcard:hover{background:linear-gradient(135deg,rgba(100,57,145,.08),rgba(100,57,145,.03));border-color:rgba(100,57,145,.22);transform:translateY(-4px);box-shadow:var(--s1)}
.dtit{font-family:var(--fd);font-size:1rem;font-weight:700;color:var(--dk);margin-bottom:9px}
.ddsc{font-size:.87rem;color:var(--muted);line-height:1.7}

/* ── ABOUT ───────────────────────────────────────────────── */
.aim{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--r3);box-shadow:var(--s3)}
.abadge{position:absolute;bottom:-18px;right:-18px;background:var(--p);color:var(--wh);padding:20px;border-radius:var(--r2);text-align:center;min-width:145px;box-shadow:var(--sa)}
.abadge-n{font-family:var(--fd);font-size:2.1rem;font-weight:800}
.abadge-t{font-size:.8rem;opacity:.76}
.atxt p{color:var(--muted);line-height:1.8;margin-bottom:16px}
.ahl-g{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:26px}
.ahl{display:flex;align-items:flex-start;gap:11px;padding:13px;border-radius:var(--r1);background:var(--wh);border:1px solid var(--border)}
.ahl-ic{width:32px;height:32px;border-radius:7px;background:linear-gradient(135deg,var(--p),var(--p2));display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ahl-tx{font-size:.82rem;font-weight:600;color:var(--dk);line-height:1.4}

/* ── STATS ───────────────────────────────────────────────── */
.sttsec{background:linear-gradient(135deg,var(--dk),var(--p3));color:var(--wh)}
.sttgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:42px;text-align:center}
.sttv{font-family:var(--fd);font-size:clamp(2.2rem,4.2vw,3.7rem);font-weight:800;color:var(--acc);line-height:1;margin-bottom:9px}
.sttd{width:30px;height:3px;background:var(--acc);border-radius:2px;margin:9px auto}
.sttl{font-size:.9rem;color:rgba(255,255,255,.6);font-weight:500}

/* ── TESTIMONIALS ────────────────────────────────────────── */
.tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:50px}
.tcard{padding:30px;border-radius:var(--r3);border:1px solid var(--border);transition:var(--t);background:var(--wh)}
.tcard:hover{box-shadow:var(--s2);transform:translateY(-4px);border-color:rgba(100,57,145,.17)}
.tcst{display:flex;gap:3px;margin-bottom:16px}
.tcst span{color:var(--acc);font-size:.92rem}
.tctx{color:var(--muted);line-height:1.74;margin-bottom:22px;font-style:italic;font-size:.91rem}
.tcau{display:flex;align-items:center;gap:11px}
.tcav{width:44px;height:44px;border-radius:50%;object-fit:cover;object-position:top}
.tcnm{font-weight:700;color:var(--dk);font-size:.9rem}
.tcrole{font-size:.76rem;color:var(--muted)}

/* ── CTA SECTION ─────────────────────────────────────────── */
.ctasec{background:linear-gradient(135deg,var(--p),var(--dk));color:var(--wh);text-align:center;position:relative;overflow:hidden}
.ctasec::before{content:'';position:absolute;width:680px;height:680px;top:50%;left:50%;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(245,203,65,.07),transparent 70%);pointer-events:none}
.ctabtns{display:flex;gap:13px;justify-content:center;flex-wrap:wrap}

/* ── FAQ ─────────────────────────────────────────────────── */
.flist{max-width:720px;margin:50px auto 0}
.fitem{border-bottom:1px solid var(--border)}
.fq{width:100%;display:flex;align-items:center;justify-content:space-between;padding:20px 0;cursor:pointer;font-family:var(--fd);font-weight:600;font-size:.96rem;color:var(--dk);background:none;text-align:left}
.fic{width:25px;height:25px;border-radius:50%;background:rgba(100,57,145,.08);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:var(--t);color:var(--p)}
.fitem.open .fic{background:var(--p);color:var(--wh);transform:rotate(45deg)}
.fa{max-height:0;overflow:hidden;transition:max-height .4s ease}
.fitem.open .fa{max-height:250px}
.fa p{color:var(--muted);line-height:1.74;padding-bottom:20px;font-size:.92rem}

/* ── CONTACT FORM ────────────────────────────────────────── */
.cgrid{display:grid;grid-template-columns:1fr 1.2fr;gap:56px;align-items:start}
.fbox{background:var(--surf);border-radius:var(--r3);padding:42px;border:1px solid var(--border)}
.frow2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.fg{margin-bottom:16px}
label{display:block;font-size:.82rem;font-weight:600;color:var(--dk);margin-bottom:6px}
input,textarea,select{width:100%;padding:12px 16px;border-radius:var(--r1);border:1.5px solid var(--border);background:var(--wh);font-size:.92rem;color:var(--dk);transition:border-color .25s,box-shadow .25s;outline:none}
input:focus,textarea:focus,select:focus{border-color:var(--p);box-shadow:0 0 0 4px rgba(100,57,145,.08)}
input.err,textarea.err,select.err{border-color:#ef4444;box-shadow:0 0 0 3px rgba(239,68,68,.09)}
textarea{resize:vertical;min-height:118px}
.ferr{font-size:.77rem;color:#ef4444;margin-top:4px;display:none}
.ferr.show{display:block}
.fsuc{display:none;margin-top:16px;padding:15px;background:rgba(34,197,94,.09);border:1px solid #22c55e;border-radius:var(--r1);color:#15803d;font-weight:600;text-align:center;font-size:.89rem}
.fsuc.show{display:block}
.fmsg{display:none;margin-top:16px;padding:15px;background:rgba(239,68,68,.07);border:1px solid #ef4444;border-radius:var(--r1);color:#dc2626;font-weight:600;text-align:center;font-size:.89rem}
.fmsg.show{display:block}
.spin{width:17px;height:17px;border:2px solid rgba(28,25,64,.25);border-top-color:var(--dk);border-radius:50%;animation:sp .7s linear infinite;display:none}
@keyframes sp{to{transform:rotate(360deg)}}
#fsubmit.ld .spin{display:block}
#fsubmit.ld .btxt{display:none}
.ci-ic{width:40px;height:40px;border-radius:var(--r1);background:linear-gradient(135deg,rgba(100,57,145,.1),rgba(100,57,145,.04));display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ci-lb{font-size:.72rem;color:var(--muted);margin-bottom:2px}
.ci-vl{font-weight:600;color:var(--dk);font-size:.9rem}

/* ── FOOTER ──────────────────────────────────────────────── */
#footer{background:var(--dk);color:rgba(255,255,255,.66);padding:72px 0 36px}
.ftop{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;margin-bottom:56px}
.fbrand p{font-size:.87rem;line-height:1.68;margin-bottom:20px}
.socls{display:flex;gap:9px}
.sl{width:35px;height:35px;border-radius:var(--r1);background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.62);transition:var(--t)}
.sl:hover{background:var(--p);color:var(--wh)}
.fcol h4{font-family:var(--fd);font-size:.87rem;font-weight:700;color:var(--wh);margin-bottom:16px}
.fcol ul{display:flex;flex-direction:column;gap:9px}
.fcol ul a{font-size:.84rem;color:rgba(255,255,255,.52);transition:color .2s}
.fcol ul a:hover{color:var(--acc)}
.fbot{padding-top:24px;border-top:1px solid rgba(255,255,255,.07);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}
.fbot p{font-size:.82rem}
.flinks{display:flex;gap:20px}
.flinks a{font-size:.82rem;color:rgba(255,255,255,.42);transition:color .2s}
.flinks a:hover{color:var(--acc)}

/* ── WA FLOAT ────────────────────────────────────────────── */
.waflt{position:fixed;bottom:28px;right:28px;z-index:998;width:56px;height:56px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 26px rgba(37,211,102,.4);transition:var(--t);animation:waf 3.5s ease-in-out infinite}
@keyframes waf{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.waflt:hover{transform:scale(1.1)!important;box-shadow:0 12px 34px rgba(37,211,102,.5)}
.watip{position:absolute;right:65px;background:var(--dk);color:var(--wh);padding:6px 12px;border-radius:var(--r1);font-size:.77rem;font-weight:600;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .3s}
.waflt:hover .watip{opacity:1}

/* ── SERVICE PAGE INTERNALS ──────────────────────────────── */
.shero{min-height:68vh;display:flex;align-items:center;position:relative;overflow:hidden;padding-top:100px}
.shbg{position:absolute;inset:0;background:linear-gradient(135deg,var(--dk) 0%,var(--p3) 55%,var(--p2) 100%)}
.shimg{border-radius:var(--r3);overflow:hidden;box-shadow:var(--s3);border:1px solid rgba(255,255,255,.08);width:100%;aspect-ratio:16/10;object-fit:cover}
.bgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:42px}
.bcard{padding:26px 22px;border-radius:var(--r2);background:var(--wh);border:1px solid var(--border);transition:var(--t)}
.bcard:hover{box-shadow:var(--s2);transform:translateY(-4px);border-color:rgba(100,57,145,.19)}
.btit{font-family:var(--fd);font-size:.96rem;font-weight:700;color:var(--dk);margin-bottom:7px;margin-top:12px}
.bdsc{font-size:.86rem;color:var(--muted);line-height:1.64}
.ilist{margin-top:32px}
.iitem{display:flex;align-items:flex-start;gap:12px;padding:14px 0;border-bottom:1px solid var(--border)}
.iitem:last-child{border-bottom:none}
.ichk{width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,var(--p),var(--p2));display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}
.itxt{font-size:.92rem;color:var(--dk);line-height:1.5}

/* ── RESPONSIVE ──────────────────────────────────────────── */

/* ════════════════════════════════════════════════════
   TABLET  ≤ 1024px
════════════════════════════════════════════════════ */
@media(max-width:1024px){
  /* Nav */
  .nav-links,.nav-cta-d{display:none}
  .ham{display:flex}

  /* Grids → 2 col */
  .sgrid{grid-template-columns:repeat(2,1fr);gap:18px}
  .dgrid{grid-template-columns:repeat(2,1fr);gap:18px}
  .g3{grid-template-columns:repeat(2,1fr);gap:18px}
  .bgrid{grid-template-columns:repeat(2,1fr);gap:16px}
  .tgrid{grid-template-columns:repeat(2,1fr);gap:16px}
  .psteps{grid-template-columns:repeat(3,1fr);gap:16px}
  .sttgrid{grid-template-columns:repeat(2,1fr);gap:26px}
  .ftop{grid-template-columns:1fr 1fr;gap:28px}
  .cgrid{grid-template-columns:1fr;gap:36px}

  /* Hero */
  .hwrap{grid-template-columns:1fr;gap:32px}
  .hvis{display:none}
  .htxt{text-align:center}
  .hbtns{justify-content:center}
  .hstats{justify-content:center;gap:20px}
  .hsub{max-width:100%}
  .twwrap{justify-content:center}

  /* Portfolio */
  .pcard{flex:0 0 300px}
  .pmod{grid-template-columns:1fr}
  .pmod-pre{height:52vh}
  .pmod-side{max-height:48vh;overflow-y:auto;padding:28px 24px}
  .pmod-x{top:14px;right:14px}

  /* Stats */
  .stats-sec .sttgrid{gap:24px}
  .stat-val,.sttv{font-size:clamp(2rem,4vw,3rem)}

  /* About */
  .g2{grid-template-columns:1fr;gap:32px}
  .aim{aspect-ratio:16/9}
  .abadge{right:16px;bottom:-14px}
  .atxt{padding-left:0}
  .ahl-g{grid-template-columns:1fr 1fr;gap:10px}

  /* Footer */
  .fbot{flex-direction:column;text-align:center;gap:12px}
  .flinks{justify-content:center}
  .socls{justify-content:flex-start}

  /* Form */
  .cgrid{grid-template-columns:1fr}
}

/* ════════════════════════════════════════════════════
   MOBILE  ≤ 768px
════════════════════════════════════════════════════ */
@media(max-width:768px){
  /* Spacing */
  .sec{padding:64px 0}
  .ssm{padding:48px 0}
  .wrap,.wwide{padding:0 16px}

  /* Typography */
  .dxl{font-size:clamp(1.9rem,7.5vw,2.8rem)}
  .dlg{font-size:clamp(1.5rem,6vw,2.2rem)}
  .dmd{font-size:clamp(1.25rem,5vw,1.8rem)}
  .lead{font-size:.97rem;line-height:1.7}

  /* Nav */
  .nav-links,.nav-cta-d{display:none}
  .ham{display:flex}
  #nav{padding:14px 0}
  #nav.sc{padding:10px 0}
  .nav-logo img{height:38px}

  /* Hero */
  #hero{padding-top:80px;min-height:auto;padding-bottom:48px}
  .hwrap{grid-template-columns:1fr;gap:28px}
  .hvis{display:none}
  .htxt{text-align:center}
  .hero-title-wrap{min-height:auto}
  .hbtns{justify-content:center;gap:10px;flex-direction:column;align-items:center}
  .hbtns .btn{width:100%;max-width:320px;justify-content:center}
  .hstats{justify-content:center;gap:14px;flex-wrap:wrap;padding-top:20px}
  .hstats > div{text-align:center;min-width:80px}
  .hsv{font-size:1.3rem}
  .twwrap{justify-content:center;min-height:2.8rem}
  .twtext{font-size:.9rem;text-align:center}
  .hbadge{font-size:.7rem}

  /* Grids → 1 col */
  .g2{grid-template-columns:1fr;gap:28px}
  .g3{grid-template-columns:1fr;gap:16px}
  .g4{grid-template-columns:1fr 1fr;gap:14px}
  .sgrid{grid-template-columns:1fr;gap:14px}
  .dgrid{grid-template-columns:1fr;gap:14px}
  .bgrid{grid-template-columns:1fr;gap:14px}
  .tgrid{grid-template-columns:1fr;gap:14px}
  .tgrid .tcard:last-child{display:flex!important}
  .psteps{grid-template-columns:1fr 1fr;gap:16px}
  .sttgrid{grid-template-columns:1fr 1fr;gap:18px}
  .ahl-g{grid-template-columns:1fr;gap:10px}

  /* Service cards */
  .scard{padding:24px 20px}
  .i3d{width:52px;height:52px;font-size:1.5rem;border-radius:12px;margin-bottom:16px}

  /* Process steps */
  .pnum{width:44px;height:44px;font-size:.9rem}
  .ptit{font-size:.88rem}
  .pdsc{font-size:.78rem}

  /* Portfolio */
  .pcard{flex:0 0 85vw;max-width:320px}
  .pscrl{gap:14px;padding-bottom:16px}
  .pmod{grid-template-columns:1fr;grid-template-rows:55vh auto}
  .pmod-pre{height:55vh}
  .pmod-side{max-height:45vh;overflow-y:auto;padding:20px 16px}
  .pmod-tit{font-size:1.2rem}
  .pmod-x{top:10px;right:10px;width:36px;height:36px;font-size:.95rem}

  /* About */
  .aim{aspect-ratio:4/3;border-radius:var(--r2)}
  .abadge{right:12px;bottom:-10px;padding:16px;min-width:120px}
  .abadge-n{font-size:1.8rem}

  /* Stats */
  .sttv{font-size:clamp(1.8rem,7vw,2.8rem)}
  .stat-lbl,.sttl{font-size:.82rem}

  /* Testimonials */
  .tcard{padding:22px 18px}
  .tctx{font-size:.88rem}

  /* FAQ */
  .flist{margin-top:32px}
  .fq{font-size:.9rem;padding:16px 0}

  /* Contact */
  .cgrid{grid-template-columns:1fr;gap:28px}
  .fbox{padding:22px 16px;border-radius:var(--r2)}
  .frow2{grid-template-columns:1fr;gap:12px}
  input,textarea,select{font-size:.92rem;padding:11px 14px}
  textarea{min-height:100px}

  /* CTA */
  .ctabtns{flex-direction:column;align-items:center;gap:10px}
  .ctabtns .btn{width:100%;max-width:300px;justify-content:center}
  .cta-sec .sec{padding:56px 0}

  /* Footer */
  .ftop{grid-template-columns:1fr;gap:28px}
  .fbot{flex-direction:column;text-align:center;gap:10px}
  .flinks{justify-content:center}
  .footer-brand .socls{justify-content:flex-start}
  #footer{padding:56px 0 28px}

  /* Floating WA */
  .waflt{width:50px;height:50px;bottom:20px;right:16px}
  .watip{display:none}

  /* Breadcrumb */
  .bc{font-size:.75rem;flex-wrap:wrap;padding-top:16px}

  /* Service hero page */
  .shero{padding-top:80px;min-height:auto;padding-bottom:40px}
  .shimg{aspect-ratio:16/10;border-radius:var(--r2)}

  /* Clients slider */
  .clog{padding:6px 18px}
  .clog img{height:36px}
  .csec{padding:40px 0}
}

/* ════════════════════════════════════════════════════
   MOBILE SMALL  ≤ 480px
════════════════════════════════════════════════════ */
@media(max-width:480px){
  .wrap,.wwide{padding:0 14px}
  .dxl{font-size:clamp(1.65rem,8.5vw,2.2rem)}
  .dlg{font-size:clamp(1.35rem,7vw,1.9rem)}
  .sec{padding:52px 0}
  .ssm{padding:40px 0}

  /* Hero compact */
  #hero{padding-top:74px}
  .hbtns .btn{font-size:.88rem;padding:14px 22px}
  .hstats > div{min-width:70px}
  .hsv{font-size:1.15rem}
  .hsl{font-size:.68rem}

  /* Nav */
  .nav-logo img{height:34px}

  /* Process → 1 col */
  .psteps{grid-template-columns:1fr;gap:14px}
  .pstep{text-align:left;display:flex;align-items:flex-start;gap:14px}
  .pnum{margin:0;flex-shrink:0}

  /* Stats 2 col stays but smaller */
  .sttv{font-size:clamp(1.6rem,8vw,2.4rem)}

  /* Cards full width */
  .pcard{flex:0 0 calc(100vw - 28px);max-width:100%}

  /* Modal full screen */
  .pmod{grid-template-rows:50vh auto}
  .pmod-pre{height:50vh}
  .pmod-side{max-height:50vh;padding:16px 14px}
  .pmod-tit{font-size:1.1rem}
  .pmod-dsc{font-size:.85rem}

  /* Form */
  .fbox{padding:18px 14px}
  .btn-lg{padding:14px 22px;font-size:.93rem}

  /* Footer compact */
  .fcol ul{gap:8px}
  .fcol h4{margin-bottom:12px}

  /* Differentials */
  .dcard{padding:24px 18px}

  /* Service page benefits */
  .bgrid{grid-template-columns:1fr}

  /* Section labels */
  .slbl{font-size:.68rem;padding:5px 12px}

  /* About badge */
  .abadge{position:relative;right:auto;bottom:auto;margin-top:16px;display:inline-block;border-radius:var(--r1)}
}

/* ════════════════════════════════════════════════════
   TOUCH  — disable hover animations on mobile
════════════════════════════════════════════════════ */
@media(hover:none){
  .scard:hover,.dcard:hover,.tcard:hover,.bcard:hover{transform:none;box-shadow:none}
  .btn:hover{transform:none}
  .pcard:hover img{transform:none}
  .pcard:hover .pov{opacity:1;transform:translateY(0)}
}


/* ── FLYER GALLERY ────────────────────────────────────────── */
.flyer-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:20px;
  margin-top:8px;
}
.flyer-item{
  position:relative;
  border-radius:var(--r2);
  overflow:hidden;
  cursor:pointer;
  box-shadow:var(--s2);
  transition:transform .35s,box-shadow .35s;
  background:var(--dk);
}
.flyer-item:hover{
  transform:translateY(-6px) scale(1.02);
  box-shadow:var(--s3);
}
.flyer-item img{
  width:100%;
  height:auto;
  display:block;
  transition:opacity .3s;
}
.flyer-item:hover img{opacity:.88}
.flyer-zoom{
  position:absolute;
  bottom:0;left:0;right:0;
  background:linear-gradient(transparent,rgba(28,25,64,.85));
  color:var(--wh);
  text-align:center;
  padding:18px 12px 14px;
  font-size:.82rem;
  font-weight:600;
  opacity:0;
  transform:translateY(8px);
  transition:var(--t);
}
.flyer-item:hover .flyer-zoom{opacity:1;transform:translateY(0)}
/* Lightbox */
.flyer-modal{
  position:fixed;inset:0;
  background:rgba(28,25,64,.94);
  backdrop-filter:blur(10px);
  z-index:3000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  opacity:0;visibility:hidden;
  transition:var(--t);
  cursor:zoom-out;
}
.flyer-modal.open{opacity:1;visibility:visible}
.flyer-modal img{
  max-width:min(540px,94vw);
  max-height:90vh;
  width:auto;
  height:auto;
  border-radius:var(--r2);
  box-shadow:var(--s3);
  cursor:default;
  object-fit:contain;
}
.flyer-modal-x{
  position:fixed;top:18px;right:18px;
  width:42px;height:42px;border-radius:50%;
  background:rgba(255,255,255,.14);
  color:var(--wh);font-size:1.1rem;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:background .2s;
  z-index:3010;
}
.flyer-modal-x:hover{background:rgba(255,255,255,.26)}
/* Mobile: single column */
@media(max-width:600px){
  .flyer-grid{grid-template-columns:1fr;gap:16px}
  .flyer-modal img{max-width:96vw}
}
/* 3 items: middle card full width on odd grids */
.flyer-grid:has(.flyer-item:last-child:nth-child(3)) .flyer-item:last-child{
  grid-column:1/-1;max-width:420px;margin:0 auto;
}
