.elementor-kit-2148{--e-global-color-primary:#7C5CFC;--e-global-color-secondary:#16161F;--e-global-color-text:#F4F4F8;--e-global-color-accent:#9A80FF;--e-global-color-bg:#0D0D12;--e-global-color-muted:#A2A2B4;--e-global-color-border:#292935;--e-global-typography-primary-font-family:"Inter";--e-global-typography-primary-font-weight:700;--e-global-typography-secondary-font-family:"Inter";--e-global-typography-secondary-font-weight:600;--e-global-typography-text-font-family:"Inter";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"JetBrains Mono";--e-global-typography-accent-font-weight:500;color:#c9cced;font-family:"Inter", Sans-serif;}.elementor-kit-2148 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1800px;}.e-con{--container-max-width:1800px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS */@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;700&display=swap');
/* === Nesrine Cherrabi — design system layer (Elementor kit custom CSS) === */
:root{
  --color-primary:#5865f2; --color-primary-hover:#6b77f5;
  --color-green:#35ed7e; --color-green-hover:#4ff591;
  --color-magenta:#ec48bd; --color-cyan:#00b0f4;
  --color-canvas:#0a0d3a; --color-surface:#12173f; --color-surface-2:#1e2353;
  --color-surface-3:#272c63; --color-black:#05061c;
  --color-line:rgba(255,255,255,.09); --color-line-strong:rgba(255,255,255,.16);
  --color-ink:#fff; --color-ink-soft:#c9cced; --color-ink-muted:#8a8fbf;
  --font-display:'Space Grotesk',system-ui,sans-serif;
  --font-body:'Plus Jakarta Sans',system-ui,sans-serif;
  --font-mono:'JetBrains Mono',ui-monospace,monospace;
  --radius-sm:12px; --radius-md:16px; --radius-lg:24px; --radius-xl:40px; --radius-pill:999px;
  --gradient-brand:
    radial-gradient(120% 120% at 12% 8%, rgba(88,101,242,.55) 0%, transparent 52%),
    radial-gradient(120% 120% at 88% 14%, rgba(123,63,242,.42) 0%, transparent 50%),
    radial-gradient(150% 150% at 72% 96%, rgba(236,72,189,.30) 0%, transparent 55%),
    var(--color-canvas);
  --gradient-blurple:linear-gradient(135deg,#5865f2 0%,#4149c9 100%);
}

/* Base — force the design system over the Astra theme defaults (Inter/purple) */
body{ background:var(--color-canvas)!important; color:var(--color-ink-soft); font-family:var(--font-body); }
.elementor-widget-heading .elementor-heading-title{ font-family:var(--font-display)!important; color:var(--color-ink)!important; letter-spacing:-.02em!important; line-height:1.12!important; font-weight:600; }
.elementor-widget-text-editor,.elementor-widget-text-editor p{ color:var(--color-ink-soft); font-family:var(--font-body)!important; line-height:1.6; }
.elementor-widget-text-editor a, a.ec-link{ color:var(--color-cyan)!important; }
.ec-lead .elementor-heading-title, .ec-lead p, .ec-lead{ color:var(--color-ink-soft)!important; font-size:1.15rem; }

/* FULL-SCREEN content: main section wrappers span the viewport with side padding
   (nested max-width wrappers like hero text / FAQ keep their own caps) */
.e-con-full > .e-con.e-con-boxed > .e-con-inner{ max-width:100%!important; padding-left:clamp(20px,3.5vw,64px)!important; padding-right:clamp(20px,3.5vw,64px)!important; }

/* Surfaces / bands */
.ec-canvas{ background:var(--color-canvas)!important; }
.ec-surface{ background:var(--color-surface)!important; }
.ec-black{ background:var(--color-black)!important; }
.ec-gradient{ background:var(--gradient-brand)!important; }
.ec-gradient-soft-cyan{ background:linear-gradient(180deg,rgba(0,176,244,.10),transparent 70%),var(--color-canvas)!important; }
.ec-gradient-soft-magenta{ background:linear-gradient(180deg,rgba(236,72,189,.12),transparent 72%),var(--color-canvas)!important; }

/* Eyebrow */
.ec-eyebrow .elementor-heading-title{
  font-family:var(--font-mono)!important; font-size:.78rem!important; font-weight:500!important; letter-spacing:.18em!important;
  text-transform:uppercase; color:var(--color-cyan)!important; display:inline-flex; align-items:center; gap:8px;
}
.ec-eyebrow .elementor-heading-title::before{ content:""; width:26px; height:2px; background:currentColor; opacity:.7; display:inline-block; }

/* Badges (heading/text widget) */
.ec-badge .elementor-heading-title, .ec-badge > .elementor-widget-container{
  display:inline-flex; align-items:center; gap:7px; font-family:var(--font-mono)!important; font-size:.78rem!important;
  font-weight:500!important; letter-spacing:.04em!important; padding:6px 12px; border-radius:var(--radius-pill);
  background:rgba(88,101,242,.14); color:#b9c0ff!important; border:1px solid rgba(88,101,242,.3);
}
.ec-badge-green .elementor-heading-title{ background:rgba(53,237,126,.12)!important; color:#7ff5ab!important; border-color:rgba(53,237,126,.32)!important; }
.ec-badge-muted .elementor-heading-title{ background:rgba(255,255,255,.05)!important; color:var(--color-ink-muted)!important; border-color:var(--color-line)!important; }
.ec-cta-band .elementor-heading-title{ color:#fff!important; }
.ec-wordmark .elementor-heading-title{ color:transparent!important; }
.ec-stat-k .elementor-heading-title{ color:var(--color-ink)!important; font-family:var(--font-mono)!important; }
.ec-mono .elementor-heading-title{ font-family:var(--font-mono)!important; }
.ec-muted .elementor-heading-title{ color:var(--color-ink-muted)!important; }
.ec-green .elementor-heading-title{ color:var(--color-green)!important; }

/* Cards */
.ec-card{ background:var(--color-surface); border:1px solid var(--color-line); border-radius:var(--radius-lg); transition:border-color .2s,transform .2s; }
.ec-card:hover{ border-color:var(--color-line-strong); transform:translateY(-3px); }
.ec-card .elementor-heading-title{ color:var(--color-ink); }
.ec-card-cyan{ border-color:rgba(0,176,244,.22); background:linear-gradient(180deg,rgba(0,176,244,.06),var(--color-surface)); }
.ec-card-blurple{ border-color:rgba(88,101,242,.22); background:linear-gradient(180deg,rgba(88,101,242,.06),var(--color-surface)); }
.ec-card-magenta{ border-color:rgba(236,72,189,.22); background:linear-gradient(180deg,rgba(236,72,189,.06),var(--color-surface)); }
.ec-card-green{ border-color:rgba(53,237,126,.22); background:linear-gradient(180deg,rgba(53,237,126,.06),var(--color-surface)); }

/* Icon-box (service/feature) */
.ec-iconbox .elementor-icon-box-icon{ width:52px;height:52px;border-radius:var(--radius-md);display:grid;place-items:center;
  background:rgba(88,101,242,.14);border:1px solid rgba(88,101,242,.28);margin-bottom:20px; }
.ec-iconbox .elementor-icon{ color:var(--color-cyan)!important;font-size:24px; }
.ec-iconbox .elementor-icon-box-title{ font-family:var(--font-display)!important;color:var(--color-ink)!important;font-size:1.45rem;margin-bottom:12px; }
.ec-iconbox .elementor-icon-box-description{ color:var(--color-ink-soft)!important; }

/* Per-service accent colors — each service card is visually distinct */
.ec-card-cyan .ec-iconbox .elementor-icon-box-icon{ background:rgba(0,176,244,.14); border-color:rgba(0,176,244,.32); }
.ec-card-cyan .ec-iconbox .elementor-icon{ color:#7fd8ff!important; }
.ec-card-cyan .ec-iconbox .elementor-icon-box-title{ color:#7fd8ff!important; }
.ec-card-blurple .ec-iconbox .elementor-icon-box-icon{ background:rgba(88,101,242,.16); border-color:rgba(88,101,242,.34); }
.ec-card-blurple .ec-iconbox .elementor-icon{ color:#b9c0ff!important; }
.ec-card-blurple .ec-iconbox .elementor-icon-box-title{ color:#b9c0ff!important; }
.ec-card-magenta .ec-iconbox .elementor-icon-box-icon{ background:rgba(236,72,189,.14); border-color:rgba(236,72,189,.32); }
.ec-card-magenta .ec-iconbox .elementor-icon{ color:#f7a3e0!important; }
.ec-card-magenta .ec-iconbox .elementor-icon-box-title{ color:#f7a3e0!important; }
.ec-card-green .ec-iconbox .elementor-icon-box-icon{ background:rgba(53,237,126,.14); border-color:rgba(53,237,126,.32); }
.ec-card-green .ec-iconbox .elementor-icon{ color:#7ff5ab!important; }
.ec-card-green .ec-iconbox .elementor-icon-box-title{ color:#7ff5ab!important; }
/* stronger, more visible card tints */
.ec-card-cyan{ border-color:rgba(0,176,244,.32)!important; background:linear-gradient(180deg,rgba(0,176,244,.10),var(--color-surface))!important; }
.ec-card-blurple{ border-color:rgba(88,101,242,.34)!important; background:linear-gradient(180deg,rgba(88,101,242,.10),var(--color-surface))!important; }
.ec-card-magenta{ border-color:rgba(236,72,189,.32)!important; background:linear-gradient(180deg,rgba(236,72,189,.10),var(--color-surface))!important; }
.ec-card-green{ border-color:rgba(53,237,126,.32)!important; background:linear-gradient(180deg,rgba(53,237,126,.10),var(--color-surface))!important; }
.ec-iconbox .elementor-icon-box-wrapper{ text-align:left!important; }
.ec-iconbox .elementor-icon-box-icon{ margin-left:0!important; margin-right:auto!important; }
.ec-iconbox .elementor-icon-box-title, .ec-iconbox .elementor-icon-box-description{ text-align:left!important; }

/* Buttons */
.elementor-button{ border-radius:var(--radius-sm); font-family:var(--font-body); font-weight:700; letter-spacing:.01em; transition:transform .2s,background .2s,filter .2s; padding:15px 26px; }
.elementor-button:active{ transform:scale(.97); }
.ec-btn-primary .elementor-button{ background-color:var(--color-green)!important; color:var(--color-black)!important; fill:var(--color-black)!important; }
.ec-btn-primary .elementor-button:hover{ background-color:var(--color-green-hover)!important; color:var(--color-black)!important; }
.ec-btn-blurple .elementor-button{ background-color:var(--color-primary)!important; color:#fff!important; border:1px solid var(--color-line-strong)!important; }
.ec-btn-blurple .elementor-button:hover{ background-color:var(--color-primary-hover)!important; }
.ec-btn-ghost .elementor-button{ background-color:rgba(255,255,255,.06)!important; color:var(--color-ink)!important; border:1px solid var(--color-line-strong)!important; }
.ec-btn-ghost .elementor-button:hover{ background-color:rgba(255,255,255,.12)!important; border-color:var(--color-primary)!important; }
.ec-btn-lg .elementor-button{ padding:18px 32px!important; font-size:1.05rem!important; }
.ec-form .elementor-button, .ec-form button[type=submit]{ background-color:var(--color-green)!important; color:var(--color-black)!important; }

/* Icon list (checklist) */
.ec-check .elementor-icon-list-icon i, .ec-check .elementor-icon-list-icon svg{ color:var(--color-green)!important; fill:var(--color-green)!important; }
.ec-check .elementor-icon-list-text{ color:var(--color-ink-soft)!important; }
.elementor-widget-icon-list .elementor-icon-list-text{ color:var(--color-ink-soft); }

/* CTA band */
.ec-cta-band{ position:relative; background:var(--gradient-blurple); border-radius:var(--radius-xl); overflow:hidden; }
.ec-cta-band::before{ content:""; position:absolute; inset:0; background:radial-gradient(120% 120% at 80% 0%, rgba(236,72,189,.45), transparent 55%); pointer-events:none; }
.ec-cta-band > .elementor-widget-wrap, .ec-cta-band > .e-con-inner{ position:relative; z-index:1; }
.ec-cta-band .elementor-heading-title{ color:#fff; }
.ec-cta-band .elementor-widget-text-editor{ color:rgba(255,255,255,.88); }

/* Terminal (hero visual) */
.ec-terminal{ border-radius:var(--radius-lg); background:var(--color-black); border:1px solid var(--color-line-strong); box-shadow:0 24px 68px rgba(5,6,28,.55); overflow:hidden; }
.ec-terminal .ec-term-bar{ display:flex;align-items:center;gap:8px;padding:12px 16px;background:rgba(255,255,255,.03);border-bottom:1px solid var(--color-line); }
.ec-terminal .ec-term-bar .elementor-heading-title{ font-family:var(--font-mono);color:var(--color-ink-muted);font-size:.72rem;letter-spacing:.05em; }
.ec-term-body .elementor-widget-container, .ec-term-body{ font-family:var(--font-mono); font-size:.82rem; line-height:1.85; color:#b9c0ff; }
.ec-term-body p{ margin:0; white-space:pre-wrap; }
.ec-term-body .g{ color:var(--color-green); } .ec-term-body .m{ color:var(--color-magenta); }
.ec-term-body .c{ color:var(--color-ink-muted); } .ec-term-body .w{ color:#fff; } .ec-term-body .b{ color:#8b9bff; }
.ec-dot3 i{ width:11px;height:11px;border-radius:50%;display:inline-block;margin-right:6px;background:#3a3f6b; }

/* Wordmark */
.ec-wordmark .elementor-heading-title{ font-family:var(--font-display); font-weight:600; font-size:clamp(2.2rem,7vw,5rem); line-height:.95; letter-spacing:-.03em; color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.12); }

/* Mono / meta */
.ec-mono .elementor-heading-title, .ec-mono .elementor-heading-title *{ font-family:var(--font-mono); }
.ec-stat-k .elementor-heading-title{ font-family:var(--font-mono); font-size:1.5rem; font-weight:700; color:var(--color-ink); }
.ec-muted .elementor-heading-title, .ec-muted.elementor-widget-text-editor{ color:var(--color-ink-muted); }

/* Brand mark (logo box) */
.ec-brandmark{ width:40px!important; height:40px!important; min-width:40px!important; flex:0 0 40px!important;
  border-radius:11px!important; background:var(--gradient-blurple)!important; padding:0!important; overflow:hidden;
  display:flex!important; align-items:center!important; justify-content:center!important; }
.ec-brandmark > .e-con-inner{ display:flex!important; align-items:center!important; justify-content:center!important; width:100%; height:100%; padding:0!important; }
.ec-brandmark .elementor-widget-icon{ width:auto!important; margin:0!important; }
.ec-brandmark .elementor-widget-icon .elementor-widget-container{ display:flex; align-items:center; justify-content:center; }
.ec-brandmark .elementor-icon{ color:#fff!important; font-size:20px!important; line-height:1!important; width:auto!important; height:auto!important; padding:0!important; }
.ec-brandmark .elementor-icon svg{ width:20px!important; height:20px!important; fill:#fff!important; }

/* Header / nav */
.ec-header{ position:sticky; top:0; z-index:100; background:rgba(10,13,58,.82); backdrop-filter:blur(14px); border-bottom:1px solid var(--color-line); }
.ec-nav .elementor-nav-menu .elementor-item{ color:var(--color-ink-soft); font-family:var(--font-body); font-weight:500; font-size:.95rem; }
.ec-nav .elementor-nav-menu .elementor-item:hover{ color:var(--color-ink); }

/* Footer link cols */
.ec-fcol .elementor-icon-list-item a, .ec-fcol .elementor-icon-list-text{ color:var(--color-ink-soft)!important; font-size:.95rem; }
.ec-fcol .elementor-icon-list-item a:hover, .ec-fcol .elementor-icon-list-item a:hover .elementor-icon-list-text{ color:var(--color-ink)!important; }
.ec-fhead .elementor-heading-title{ font-family:var(--font-mono); font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; color:var(--color-ink-muted); font-weight:500; }

/* Mega menu dropdown */
.ec-mega .elementor-item{ color:var(--color-ink-soft)!important; font-weight:500; }
.ec-mega-panel{ background:var(--color-surface)!important; border:1px solid var(--color-line-strong); border-radius:var(--radius-lg); }

/* Blog archive — real posts styled as the design's dark cards */
.ec-posts .elementor-post{ background:var(--color-surface); border:1px solid var(--color-line); border-radius:var(--radius-lg); overflow:hidden; transition:border-color .2s,transform .2s; }
.ec-posts .elementor-post:hover{ border-color:var(--color-line-strong); transform:translateY(-3px); }
.ec-posts .elementor-post__text{ padding:24px; }
.ec-posts .elementor-post__title, .ec-posts .elementor-post__title a{ font-family:var(--font-display)!important; color:var(--color-ink)!important; font-size:1.25rem; line-height:1.2; }
.ec-posts .elementor-post__title a:hover{ color:var(--color-cyan)!important; }
.ec-posts .elementor-post__excerpt p{ color:var(--color-ink-soft)!important; font-size:.9rem; }
.ec-posts .elementor-post__meta-data, .ec-posts .elementor-post__meta-data span{ font-family:var(--font-mono)!important; color:var(--color-ink-muted)!important; font-size:.78rem; }
.ec-posts .elementor-post__read-more{ color:var(--color-cyan)!important; font-weight:700; }
.ec-posts .elementor-post__card{ background:var(--color-surface); border:1px solid var(--color-line); }
.ec-posts .elementor-post__badge{ background:var(--color-primary); color:#fff; }
.ec-posts .page-numbers{ color:var(--color-ink-soft); border-color:var(--color-line); }
.ec-posts .page-numbers.current{ background:var(--color-primary); color:#fff; border-color:var(--color-primary); }/* End custom CSS */