/* =========================================================
   XGen Solutions · Light theme
   The dark theme is the default (defined in site.css).
   This file only swaps the variables and fixes the few places that used fixed dark colours.
   The theme is set by <html data-theme="light|dark"> (see layout.php and v3.js).
   ========================================================= */
html{transition:background-color .35s}
html[data-theme="light"]{
  color-scheme:light;
  --bg:#f6f4ff; --bg-2:#ede8ff; --surface:#ffffff; --surface-2:#faf8ff; --surface-3:#f1ecff;
  --line:rgba(76,29,149,.12); --line-2:rgba(76,29,149,.22);
  --text:#150b33; --text-2:#3a3160; --muted:#564e75; --dim:#80789d;
  --p-3:#5b12d6; --p-4:#4c1d95;
  --grad-text:linear-gradient(100deg,#4c1d95 0%,#6904F2 50%,#9333ea 100%);
  --mint:#079669; --amber:#b86e00;
  --shadow:0 22px 50px -24px rgba(60,20,140,.32);
  --glow:0 10px 30px -10px rgba(105,4,242,.42);
  --ov:60,20,140; --c-bg:246,244,255; --c-bg2:237,232,255; --c-s1:255,255,255; --c-s2:255,255,255; --c-s3:250,247,255;
  --ftr-end:#ddd3ff; --img-bg:#e9e3ff; --card-grad:linear-gradient(160deg,#ffffff,#f0eaff 75%);
  --modal-grad:linear-gradient(170deg,#ffffff,#f1ecff); --plan-hot:#efe7ff;
}
html[data-theme="light"] body{background:var(--bg)}
html[data-theme="light"] ::selection{background:#c9a7ff;color:#150b33}

/* header + menus */

/* hero */
html[data-theme="light"] .hero-stars:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *),html[data-theme="light"] canvas[data-stars]:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){display:none}
html[data-theme="light"] .o1:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){background:#c9a7ff;opacity:.55}
html[data-theme="light"] .o2:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){background:#a3d2ff;opacity:.5}
html[data-theme="light"] .o3:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){background:#ffc7e3;opacity:.45}
html[data-theme="light"] .orb:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){opacity:.5;filter:blur(100px)}
html[data-theme="light"] .grid-lines:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){background-image:linear-gradient(rgba(76,29,149,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(76,29,149,.07) 1px,transparent 1px)}
html[data-theme="light"] .hero-mesh i:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){opacity:.28}
html[data-theme="light"] .hero-mesh i:nth-child(2):not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){opacity:.2}html[data-theme="light"] .hero-mesh i:nth-child(3):not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){opacity:.14}
html[data-theme="light"] .hv-card:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *),html[data-theme="light"] .hcard:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){box-shadow:0 22px 50px -26px rgba(60,20,140,.4)}
html[data-theme="light"] .hcard:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){background:rgba(255,255,255,.75)}
html[data-theme="light"] .hero-note:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *),html[data-theme="light"] .rating:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){color:var(--muted)}

/* marquees / section bands */
html[data-theme="light"] .mq-track span:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){-webkit-text-stroke:1px rgba(76,29,149,.45)}
html[data-theme="light"] .mq-track:first-child span:nth-child(4n+1):not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){-webkit-text-stroke:0}
html[data-theme="light"] .marquee:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *),html[data-theme="light"] .sec-alt:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){background:linear-gradient(180deg,#efeaff,#f6f4ff)}

/* cards that used fixed gradients */
html[data-theme="light"] .case-ph:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){background:radial-gradient(circle at 30% 30%,rgba(139,61,255,.35),transparent 60%),linear-gradient(135deg,#e2d8ff,#f4f0ff)}
html[data-theme="light"] .post-ph:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){background:radial-gradient(circle at 80% 20%,rgba(139,61,255,.4),transparent 55%),radial-gradient(circle at 10% 90%,rgba(105,4,242,.25),transparent 50%),#ece6ff}
html[data-theme="light"] .case-tags span:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){background:rgba(255,255,255,.85);color:var(--text)}
html[data-theme="light"] .stack-card:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){box-shadow:0 -20px 60px -34px rgba(60,20,140,.5);border-color:var(--line-2)}
html[data-theme="light"] .stack-media:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *),html[data-theme="light"] .caps-img:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *),html[data-theme="light"] .sc-img:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *),html[data-theme="light"] .svc-media:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *),html[data-theme="light"] .ind-media:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *),html[data-theme="light"] .work-media:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){background:var(--img-bg)}
html[data-theme="light"] .modal-box:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){box-shadow:0 40px 100px -30px rgba(60,20,140,.5),0 0 0 1px rgba(105,4,242,.12)}
html[data-theme="light"] .field select option:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){background:#fff;color:#150b33}
html[data-theme="light"] .field input:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *),html[data-theme="light"] .field select:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *),html[data-theme="light"] .field textarea:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *),html[data-theme="light"] .news input:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *),html[data-theme="light"] .search input:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){background:#fff}
html[data-theme="light"] .qopt span:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){background:#fff}
html[data-theme="light"] .viz:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *),html[data-theme="light"] .cta-form:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *),html[data-theme="light"] .roi-out:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){background:rgba(255,255,255,.85)}
html[data-theme="light"] .cookie:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *),html[data-theme="light"] .toast:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){background:#fff}
html[data-theme="light"] .mbar:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){background:rgba(255,255,255,.97)}
html[data-theme="light"] .wa-bubble:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){box-shadow:0 20px 50px -20px rgba(60,20,140,.45)}

/* live demos */
html[data-theme="light"] .demo-tag:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){background:rgba(255,255,255,.9)}
html[data-theme="light"] .dm-tabs span.on:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){background:var(--p);color:#fff}
html[data-theme="light"] .dm-q:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){color:var(--text-2)}
html[data-theme="light"] .dm-float:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){background:#fff}

/* footer */

/* v3 components */
html[data-theme="light"] .mock:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){box-shadow:0 22px 50px -26px rgba(60,20,140,.55)}
html[data-theme="light"] .pstat:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){background:linear-gradient(160deg,rgba(139,61,255,.1),#fff)}
html[data-theme="light"] .dash-card:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){background:linear-gradient(165deg,#ffffff,#f4efff)}
html[data-theme="light"] .lc-tip:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){background:#fff}
html[data-theme="light"] .prod-media:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){background:radial-gradient(circle at 70% 0%,rgba(139,61,255,.18),transparent 60%)}
html[data-theme="light"] .explain-box:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){background:linear-gradient(160deg,rgba(139,61,255,.1),#fff)}
html[data-theme="light"] .say-it:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){background:rgba(7,150,105,.08);border-color:rgba(7,150,105,.3)}
html[data-theme="light"] .live-pill:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){background:rgba(7,150,105,.08)}
html[data-theme="light"] .pill-up:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){background:rgba(7,150,105,.12)}
html[data-theme="light"] .cmp-row .us:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){background:rgba(139,61,255,.07)}
html[data-theme="light"] .grad-anim:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){background-image:linear-gradient(100deg,#4c1d95,#6904F2,#0ea5e9,#6904F2,#4c1d95);background-size:300% 100%}
html[data-theme="light"] .eyebrow:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){background:rgba(105,4,242,.07)}
html[data-theme="light"] .tag:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){background:rgba(105,4,242,.1);color:var(--p-4)}
html[data-theme="light"] .btn-ghost:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){background:#fff}
html[data-theme="light"] .btn-ghost:hover:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){background:rgba(105,4,242,.07)}
html[data-theme="light"] .scroll-progress span:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){filter:none}
html[data-theme="light"] .stat:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *),html[data-theme="light"] .metric:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *),html[data-theme="light"] .ben:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *),html[data-theme="light"] .why:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *),html[data-theme="light"] .step:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *),html[data-theme="light"] .deliv:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){box-shadow:0 14px 34px -26px rgba(60,20,140,.35)}
html[data-theme="light"] .tcard:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){background:#fff}

/* smooth switch (only while toggling) */
html.theme-anim *,html.theme-anim *::before,html.theme-anim *::after{transition:background-color .35s,border-color .35s,color .25s,box-shadow .35s!important}

/* logo swap + elements that sit on a permanently dark band */

/* ---- contrast fixes found by the light-theme audit ---- */
html[data-theme="light"]:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){--amber:#9a5b00}
html[data-theme="light"] .svc li:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *),html[data-theme="light"] .dm-serp li b:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){color:var(--text-2)}
html[data-theme="light"] .dm-serp li small:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *),html[data-theme="light"] .hv-pin small:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){color:var(--muted)}
html[data-theme="light"] .cmp-head .us:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){color:var(--p-4)}
html[data-theme="light"] .pill-up:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *),html[data-theme="light"] .live-pill:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){color:#047857}
html[data-theme="light"] .job-meta li:not(:is(.zone-dark,.hdr,.ftr,.topbar,.mnav) *){background:#fff}

/* =========================================================
   Dark zones inside the light theme
   Header, footer, the mobile menu and any element with class "zone-dark"
   use the dark palette. Everything inside them (text, icons, cards, buttons)
   automatically picks the dark colours, so contrast stays high.
   ========================================================= */
html[data-theme="light"] :is(.hdr,.ftr,.topbar,.mnav,.zone-dark){
  color-scheme:dark;
  --bg:#07040f; --bg-2:#0b0717; --surface:#110a22; --surface-2:#170e2e; --surface-3:#1f1440;
  --line:rgba(190,160,255,.12); --line-2:rgba(190,160,255,.22);
  --text:#f3f0fb; --text-2:#ddd6ef; --muted:#aaa2c2; --dim:#8b82a8;
  --p-3:#b48cff; --p-4:#d9c6ff;
  --grad-text:linear-gradient(100deg,#d9c6ff 0%,#a66bff 45%,#7a2bff 100%);
  --mint:#3df5b0; --amber:#ffc35c;
  --shadow:0 20px 60px -20px rgba(0,0,0,.7); --glow:0 10px 40px -10px rgba(105,4,242,.65);
  --ov:255,255,255; --c-bg:7,4,15; --c-bg2:11,7,23; --c-s1:17,10,34; --c-s2:23,14,46; --c-s3:31,20,64;
  --ftr-end:#05030b; --img-bg:#0b0717; --card-grad:linear-gradient(160deg,#1a1036,#0e0820 70%);
  --modal-grad:linear-gradient(170deg,#1d1240,#0f0820); --plan-hot:#24124d;
  color:var(--text);
}
html[data-theme="light"] .zone-dark.zone-dark.zone-dark{background:linear-gradient(180deg,var(--bg),var(--bg-2));position:relative}
html[data-theme="light"] .zone-dark.zone-dark.zone-dark.marquee{background:var(--bg-2)}
html[data-theme="light"] .hdr{background:rgba(7,4,15,.94);backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);border-bottom-color:var(--line);box-shadow:0 10px 30px -20px rgba(20,8,60,.6)}
html[data-theme="light"] .hdr.scrolled{background:rgba(7,4,15,.97)}
/* white logo on dark bands, colour logo on light areas */
html[data-theme="light"] .logo-d{display:none}
html[data-theme="light"] .logo-l{display:block}
html[data-theme="light"] :is(.hdr,.ftr,.mnav,.zone-dark) .logo-d{display:block}
html[data-theme="light"] :is(.hdr,.ftr,.mnav,.zone-dark) .logo-l{display:none}
html[data-theme="light"] .ftr-cta .btn-primary{background:#fff;color:#2a0870}
html[data-theme="light"] .topbar,html[data-theme="light"] .topbar *{color:#fff}
/* smooth switch (only while toggling) */
html.theme-anim *,html.theme-anim *::before,html.theme-anim *::after{transition:background-color .35s,border-color .35s,color .25s,box-shadow .35s!important}

/* a11y fixes: skip link + WhatsApp button contrast */
.skip{color:#fff}
.wa-btn{background:#13a152}
