:root {
  --bg0:#07080c; --bg1:#0b0d13; --bg2:#10131c; --bg3:#151a26;
  --bdr:rgba(255,255,255,0.07); --bdrh:rgba(255,255,255,0.13);
  --tx:#e0e4f5; --txm:#475068; --txs:#8892b0;
  --a:#3b9eff; --ah:#2880e0;
  --b:#00d4c8; --bh:#00b5aa;
  --r:10px;
  --fh:'Fraunces',serif;
  --fb:'Plus Jakarta Sans',sans-serif;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg1);color:var(--tx);font-family:var(--fb);font-size:15px;line-height:1.65;overflow-x:hidden;-webkit-font-smoothing:antialiased;}
::-webkit-scrollbar{width:3px}::-webkit-scrollbar-track{background:var(--bg0)}::-webkit-scrollbar-thumb{background:var(--a);border-radius:2px}
body::after{content:'';position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:.12;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.06'/%3E%3C/svg%3E")}
h1,h2,h3,h4{font-family:var(--fh);line-height:1.1}

/* ═══ PAGE HERO ═══ */
.page-hero{padding:130px 5% 70px;position:relative;overflow:hidden;
  background:radial-gradient(ellipse 55% 65% at 80% 30%,rgba(59,158,255,.07),transparent 65%),
    radial-gradient(ellipse 40% 40% at 10% 80%,rgba(0,212,200,.05),transparent 55%),var(--bg1);}
.hero-bg{position:absolute;inset:0;
  background-image:linear-gradient(rgba(59,158,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(59,158,255,.04) 1px,transparent 1px);
  background-size:56px 56px;
  mask-image:radial-gradient(ellipse 80% 80% at 60% 40%,black,transparent 75%);pointer-events:none}
.breadcrumb-nav{display:flex;align-items:center;gap:8px;margin-bottom:20px;opacity:0;animation:aUp .5s .1s ease forwards}
.breadcrumb-nav a{font-size:12.5px;color:var(--txm);text-decoration:none;transition:color .2s}
.breadcrumb-nav a:hover{color:var(--a)}
.breadcrumb-nav span{font-size:12px;color:var(--txm)}
.breadcrumb-nav .cur{font-size:12.5px;color:var(--a);font-weight:600}
.page-hero-pill{display:inline-flex;align-items:center;gap:8px;background:rgba(59,158,255,.09);border:1px solid rgba(59,158,255,.22);color:var(--a);font-size:12px;font-weight:700;padding:5px 14px;border-radius:999px;margin-bottom:20px;letter-spacing:.05em;opacity:0;animation:aUp .5s .15s ease forwards}
.page-hero h1{font-size:clamp(32px,4vw,54px);font-weight:700;letter-spacing:-1.5px;color:#fff;margin-bottom:16px;opacity:0;animation:aUp .6s .2s ease forwards}
.page-hero h1 em{font-style:italic;color:var(--a)}
.page-hero-sub{font-size:16px;color:var(--txs);max-width:540px;line-height:1.8;opacity:0;animation:aUp .6s .3s ease forwards}
.hero-info-pills{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px;opacity:0;animation:aUp .5s .35s ease forwards}
.hpill{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.04);border:1px solid var(--bdr);border-radius:999px;padding:7px 16px;font-size:13px;font-weight:600;color:var(--txs)}
.hpill i{color:var(--a);font-size:13px}
.hpill.hi{border-color:rgba(59,158,255,.22);color:var(--a);background:rgba(59,158,255,.07)}

/* ═══ SECTION BASE ═══ */
.sec{padding:72px 5%}
.s0{background:var(--bg0)}.s1{background:var(--bg1)}.s2{background:var(--bg2)}
.ey{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--a);margin-bottom:12px}
.ey::before{content:'';width:14px;height:1.5px;background:var(--a)}
.sh{font-size:clamp(24px,2.8vw,36px);font-weight:700;letter-spacing:-1px;color:#fff;line-height:1.1;margin-bottom:12px}

/* ═══ MAIN CONTACT LAYOUT ═══ */
.contact-wrap{display:grid;grid-template-columns:1fr 1.5fr;gap:48px;align-items:start}

/* ═══ LEFT PANEL ═══ */
.contact-left{}
.contact-info-card{background:var(--bg2);border:1px solid var(--bdr);border-radius:20px;padding:36px;margin-bottom:20px;position:relative;overflow:hidden}
.contact-info-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--a),transparent)}
.cic-head{display:flex;align-items:center;gap:12px;margin-bottom:28px;padding-bottom:20px;border-bottom:1px solid var(--bdr)}
.cic-icon{width:44px;height:44px;border-radius:12px;background:rgba(59,158,255,.1);border:1px solid rgba(59,158,255,.2);display:flex;align-items:center;justify-content:center;font-size:20px}
.cic-title{font-family:var(--fh);font-size:17px;font-weight:700;color:#fff}
.cic-sub{font-size:12px;color:var(--txm);margin-top:2px}
.contact-detail{display:flex;align-items:flex-start;gap:14px;padding:14px 0;border-bottom:1px solid var(--bdr);transition:all .2s;cursor:default}
.contact-detail:last-child{border-bottom:none}
.contact-detail:hover{padding-left:4px}
.cd-ic{width:36px;height:36px;border-radius:9px;background:rgba(59,158,255,.07);border:1px solid rgba(59,158,255,.12);display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--a);flex-shrink:0;margin-top:2px}
.cd-lbl{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--txm);margin-bottom:3px}
.cd-val{font-size:14px;font-weight:600;color:#fff;margin-bottom:2px}
.cd-sub{font-size:12px;color:var(--txm)}
.cd-link{color:var(--a);text-decoration:none;font-size:14px;font-weight:600;transition:color .2s}
.cd-link:hover{color:#fff}

/* ═══ OFFICES ═══ */
.office-card{background:var(--bg2);border:1px solid var(--bdr);border-radius:16px;padding:24px;margin-bottom:14px;transition:all .25s;position:relative;overflow:hidden}
.office-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--a);opacity:0;transition:opacity .3s}
.office-card:hover{border-color:rgba(59,158,255,.2);background:rgba(59,158,255,.02)}.office-card:hover::before{opacity:1}
.office-card.ca::before{background:var(--b)}
.office-card.ca:hover{border-color:rgba(0,212,200,.2);background:rgba(0,212,200,.015)}
.oc-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:10px}
.oc-flag{font-size:22px;margin-right:10px}
.oc-name{font-family:var(--fh);font-size:15px;font-weight:700;color:#fff;margin-bottom:2px}
.oc-role{font-size:11px;color:var(--txm)}
.oc-badge{font-size:9.5px;font-weight:700;padding:3px 9px;border-radius:999px;letter-spacing:.06em;text-transform:uppercase}
.oc-badge.hq{background:rgba(59,158,255,.12);color:var(--a);border:1px solid rgba(59,158,255,.22)}
.oc-badge.ca{background:rgba(0,212,200,.1);color:var(--b);border:1px solid rgba(0,212,200,.2)}
.oc-addr{font-size:13px;color:var(--txm);line-height:1.6;margin-bottom:10px}
.oc-hours{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--txm)}
.oc-hours i{color:var(--a);font-size:11px}
.oc-map-link{font-size:12px;font-weight:700;color:var(--a);text-decoration:none;display:inline-flex;align-items:center;gap:4px;transition:gap .2s;margin-top:10px}
.oc-map-link:hover{gap:8px}

/* ═══ SOCIAL STRIP ═══ */
.social-card{background:var(--bg2);border:1px solid var(--bdr);border-radius:16px;padding:22px 24px}
.sc-title{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--txm);margin-bottom:14px}
.social-links{display:flex;gap:10px;flex-wrap:wrap}
.sl{display:flex;align-items:center;gap:8px;padding:9px 14px;background:rgba(255,255,255,.03);border:1px solid var(--bdr);border-radius:10px;text-decoration:none;transition:all .2s;font-size:13px;font-weight:600;color:var(--txs)}
.sl i{font-size:14px}
.sl:hover{border-color:rgba(59,158,255,.22);color:var(--a);background:rgba(59,158,255,.05)}
.sl.li:hover{border-color:rgba(10,102,194,.4);color:#0a66c2;background:rgba(10,102,194,.06)}
.sl.gh:hover{border-color:rgba(255,255,255,.2);color:#fff;background:rgba(255,255,255,.05)}

/* ═══ CONTACT FORM ═══ */
.form-card{background:var(--bg2);border:1px solid rgba(59,158,255,.12);border-radius:24px;padding:44px;position:relative;overflow:hidden}
.form-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--a),var(--b),transparent)}
.form-card::after{content:'';position:absolute;bottom:-100px;right:-100px;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(59,158,255,.05),transparent 70%);pointer-events:none}
.form-head{margin-bottom:32px}
.form-head h3{font-family:var(--fh);font-size:24px;font-weight:700;color:#fff;margin-bottom:6px;letter-spacing:-.5px}
.form-head p{font-size:14px;color:var(--txs);line-height:1.7}
.service-type-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:28px}
.stt{padding:8px 16px;background:rgba(255,255,255,.04);border:1px solid var(--bdr);border-radius:8px;font-size:12.5px;font-weight:700;color:var(--txs);cursor:pointer;transition:all .2s}
.stt:hover{border-color:rgba(59,158,255,.2);color:var(--tx)}
.stt.active{background:rgba(59,158,255,.1);border-color:rgba(59,158,255,.3);color:var(--a)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.form-group{margin-bottom:16px;position:relative}
.form-group.full{grid-column:1/-1}
.fl{font-size:11.5px;font-weight:700;color:var(--txs);margin-bottom:7px;letter-spacing:.04em;text-transform:uppercase;display:block}
.fl .req{color:var(--a)}
.fi{width:100%;background:rgba(255,255,255,.04);border:1px solid rgba(59,158,255,.1);border-radius:10px;padding:11px 15px;font-size:14px;color:#fff;outline:none;font-family:var(--fb);transition:all .2s}
.fi::placeholder{color:var(--txm)}.fi:focus{border-color:rgba(59,158,255,.4);background:rgba(59,158,255,.04);box-shadow:0 0 0 3px rgba(59,158,255,.08)}
textarea.fi{min-height:120px;resize:vertical;line-height:1.6}
select.fi{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238892b0' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;cursor:pointer}
select.fi option{background:#10131c;color:#e0e4f5}
.budget-pills{display:flex;gap:8px;flex-wrap:wrap}
.bp{padding:7px 14px;background:rgba(255,255,255,.04);border:1px solid var(--bdr);border-radius:8px;font-size:12.5px;font-weight:600;color:var(--txs);cursor:pointer;transition:all .2s}
.bp:hover{border-color:rgba(59,158,255,.2);color:var(--tx)}
.bp.active{background:rgba(59,158,255,.1);border-color:rgba(59,158,255,.3);color:var(--a)}
.timeline-pills{display:flex;gap:8px;flex-wrap:wrap}
.tp{padding:6px 13px;background:rgba(255,255,255,.04);border:1px solid var(--bdr);border-radius:8px;font-size:12px;font-weight:600;color:var(--txs);cursor:pointer;transition:all .2s}
.tp:hover{border-color:rgba(59,158,255,.2);color:var(--tx)}
.tp.active{background:rgba(59,158,255,.1);border-color:rgba(59,158,255,.3);color:var(--a)}
.checkbox-row{display:flex;align-items:flex-start;gap:10px;cursor:pointer;user-select:none}
.cb-box{width:18px;height:18px;border-radius:5px;background:rgba(255,255,255,.04);border:1px solid rgba(59,158,255,.2);flex-shrink:0;margin-top:1px;display:flex;align-items:center;justify-content:center;transition:all .2s;cursor:pointer}
.cb-box.checked{background:var(--a);border-color:var(--a)}
.cb-box i{font-size:10px;color:#fff;opacity:0;transition:opacity .2s}
.cb-box.checked i{opacity:1}
.cb-text{font-size:13px;color:var(--txs);line-height:1.6}
.cb-text a{color:var(--a);text-decoration:none}
.form-submit{margin-top:24px}
.btn-submit{width:100%;padding:15px;background:var(--a);color:#fff;font-size:15px;font-weight:800;border:none;border-radius:12px;cursor:pointer;transition:all .25s;font-family:var(--fb);display:flex;align-items:center;justify-content:center;gap:10px;box-shadow:0 4px 24px rgba(59,158,255,.3)}
.btn-submit:hover{background:var(--ah);transform:translateY(-2px);box-shadow:0 8px 36px rgba(59,158,255,.45)}
.btn-submit:disabled{opacity:.6;transform:none;cursor:not-allowed}
.form-note{font-size:12px;color:var(--txm);text-align:center;margin-top:12px;display:flex;align-items:center;justify-content:center;gap:6px}
.form-note i{color:var(--a)}

/* ═══ SUCCESS STATE ═══ */
.success-state{display:none;text-align:center;padding:40px 20px}
.success-state.show{display:block}
.ss-icon{font-size:56px;margin-bottom:20px;animation:popIn .4s ease}
@keyframes popIn{0%{transform:scale(0)}80%{transform:scale(1.1)}100%{transform:scale(1)}}
.ss-title{font-family:var(--fh);font-size:24px;font-weight:700;color:#fff;margin-bottom:8px}
.ss-sub{font-size:15px;color:var(--txs);line-height:1.7;max-width:360px;margin:0 auto 24px}
.ss-meta{display:inline-flex;align-items:center;gap:6px;background:rgba(34,208,110,.08);border:1px solid rgba(34,208,110,.2);border-radius:999px;padding:6px 14px;font-size:12.5px;font-weight:700;color:#22d06e;margin-bottom:24px}

/* ═══ WHAT TO EXPECT ═══ */
.expect-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:56px}
.expect-card{background:var(--bg2);border:1px solid var(--bdr);border-radius:14px;padding:26px;text-align:center;transition:all .25s}
.expect-card:hover{border-color:rgba(59,158,255,.2);transform:translateY(-4px)}
.ec-num{font-family:var(--fh);font-size:36px;font-weight:700;color:var(--a);opacity:.25;line-height:1;margin-bottom:12px;letter-spacing:-2px}
.ec-icon{width:44px;height:44px;border-radius:12px;background:rgba(59,158,255,.08);border:1px solid rgba(59,158,255,.15);display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--a);margin:0 auto 14px}
.ec-title{font-family:var(--fh);font-size:15px;font-weight:700;color:#fff;margin-bottom:8px}
.ec-desc{font-size:13px;color:var(--txm);line-height:1.7}

/* ═══ FAQ MINI ═══ */
.faq-mini-item{border-bottom:1px solid var(--bdr);padding:16px 0}
.faq-mini-q{display:flex;align-items:center;justify-content:space-between;cursor:pointer;gap:16px}
.faq-mini-q h5{font-family:var(--fh);font-size:15px;font-weight:600;color:#fff;margin:0}
.faq-toggle{width:26px;height:26px;border-radius:7px;background:rgba(59,158,255,.08);border:1px solid rgba(59,158,255,.15);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--a);font-size:13px;transition:all .3s}
.faq-mini-item.open .faq-toggle{background:var(--a);color:#fff;transform:rotate(45deg)}
.faq-mini-a{max-height:0;overflow:hidden;transition:max-height .4s ease,padding .3s}
.faq-mini-item.open .faq-mini-a{max-height:150px;padding-top:10px}
.faq-mini-a p{font-size:14px;color:var(--txs);line-height:1.75}

/* ═══ CTA BOTTOM ═══ */
.cta-strip{background:var(--bg2);border:1px solid var(--bdr);border-radius:20px;padding:52px 48px;text-align:center;position:relative;overflow:hidden;margin-top:72px}
.cta-strip::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 60% at 50% 0%,rgba(59,158,255,.07),transparent),radial-gradient(ellipse 40% 40% at 50% 100%,rgba(0,212,200,.04),transparent);pointer-events:none}
.btn-main{display:inline-flex;align-items:center;gap:8px;padding:13px 28px;background:var(--a);color:#fff;font-weight:800;font-size:14.5px;border-radius:9px;text-decoration:none;transition:all .25s;box-shadow:0 4px 24px rgba(59,158,255,.28)}
.btn-main:hover{background:var(--ah);transform:translateY(-2px);box-shadow:0 8px 36px rgba(59,158,255,.45);color:#fff}
.btn-sec{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;background:rgba(255,255,255,.05);color:var(--tx);font-weight:600;font-size:14.5px;border:1px solid var(--bdrh);border-radius:9px;text-decoration:none;transition:all .2s}
.btn-sec:hover{border-color:rgba(255,255,255,.25);background:rgba(255,255,255,.08);color:#fff}

/* REVEAL */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:translateY(0)}
@keyframes aUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}

@media(max-width:991px){
  .contact-wrap{grid-template-columns:1fr}
  .expect-row{grid-template-columns:1fr 1fr}
  .f-main{grid-template-columns:1fr 1fr;gap:28px}
}
@media(max-width:768px){
  .nav-mid{display:none}
  .form-row{grid-template-columns:1fr}
  .expect-row{grid-template-columns:1fr}
  .f-main{grid-template-columns:1fr}
  .cta-strip{padding:40px 24px}
}