.elementor-kit-6{--e-global-color-primary:#22D3EE;--e-global-color-secondary:#3B82F6;--e-global-color-text:#9AA8BF;--e-global-color-accent:#EAF0FA;--e-global-color-adbg:#04060C;--e-global-color-adbgalt:#080D1A;--e-global-color-adsection:#080D1A94;--e-global-color-adsurf:#0D1526;--e-global-color-adsurf2:#121C33;--e-global-color-admuted:#6B7A92;--e-global-color-adborder:#94A3B829;--e-global-color-adborder2:#94A3B852;--e-global-color-adsoft:#22D3EE1F;--e-global-color-adglow:#22D3EE59;--e-global-color-adonacc:#03141B;--e-global-color-adglass:#04060CB8;--e-global-color-adsuccess:#34D399;--e-global-color-addanger:#F87171;--e-global-color-adchip:#EAF0FA;--e-global-color-adwa:#25D366;--e-global-typography-primary-font-family:"Sora";--e-global-typography-primary-font-size:clamp(2.25rem, 1.4rem + 3.6vw, 4rem);--e-global-typography-primary-font-weight:700;--e-global-typography-primary-line-height:1.02em;--e-global-typography-primary-letter-spacing:-0.03em;--e-global-typography-secondary-font-family:"Sora";--e-global-typography-secondary-font-size:1.25rem;--e-global-typography-secondary-font-weight:600;--e-global-typography-secondary-line-height:1.3em;--e-global-typography-secondary-letter-spacing:-0.01em;--e-global-typography-text-font-family:"Plus Jakarta Sans";--e-global-typography-text-font-size:clamp(1rem, 0.95rem + 0.2vw, 1.0625rem);--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.7em;--e-global-typography-accent-font-family:"Plus Jakarta Sans";--e-global-typography-accent-font-size:0.98rem;--e-global-typography-accent-font-weight:600;--e-global-typography-accent-line-height:1em;--e-global-typography-adhero-font-family:"Unbounded";--e-global-typography-adhero-font-size:clamp(2.9rem, 0.9rem + 6.4vw, 5.4rem);--e-global-typography-adhero-font-weight:700;--e-global-typography-adhero-text-transform:uppercase;--e-global-typography-adhero-line-height:1.02em;--e-global-typography-adhero-letter-spacing:-0.03em;--e-global-typography-adeyebrow-font-family:"Sora";--e-global-typography-adeyebrow-font-size:clamp(0.95rem, 0.8rem + 0.6vw, 1.3rem);--e-global-typography-adeyebrow-font-weight:500;--e-global-typography-adeyebrow-text-transform:uppercase;--e-global-typography-adeyebrow-line-height:1.4em;--e-global-typography-adeyebrow-letter-spacing:0.18em;--e-global-typography-adstatement-font-family:"Sora";--e-global-typography-adstatement-font-size:clamp(1.4rem, 1rem + 1.6vw, 2.1rem);--e-global-typography-adstatement-font-weight:500;--e-global-typography-adstatement-line-height:1.2em;--e-global-typography-adstatement-letter-spacing:-0.02em;--e-global-typography-adlede-font-family:"Plus Jakarta Sans";--e-global-typography-adlede-font-size:clamp(1.05rem, 1rem + 0.3vw, 1.2rem);--e-global-typography-adlede-font-weight:400;--e-global-typography-adlede-line-height:1.7em;--e-global-typography-adlede2-font-family:"Plus Jakarta Sans";--e-global-typography-adlede2-font-size:clamp(1.1rem, 1rem + 0.4vw, 1.25rem);--e-global-typography-adlede2-font-weight:400;--e-global-typography-adlede2-line-height:1.7em;--e-global-typography-adsvc-font-family:"Sora";--e-global-typography-adsvc-font-size:clamp(1.3rem, 1.1rem + 0.8vw, 1.75rem);--e-global-typography-adsvc-font-weight:600;--e-global-typography-adsvc-line-height:1.25em;--e-global-typography-adsvc-letter-spacing:-0.02em;--e-global-typography-adcardlg-font-family:"Sora";--e-global-typography-adcardlg-font-size:1.4rem;--e-global-typography-adcardlg-font-weight:600;--e-global-typography-adcardlg-line-height:1.25em;--e-global-typography-adcardlg-letter-spacing:-0.02em;--e-global-typography-adstat-font-family:"Sora";--e-global-typography-adstat-font-size:clamp(1.5rem, 0.9rem + 1.6vw, 2.4rem);--e-global-typography-adstat-font-weight:600;--e-global-typography-adstat-line-height:1.1em;--e-global-typography-adstat-letter-spacing:-0.03em;--e-global-typography-adquote-font-family:"Sora";--e-global-typography-adquote-font-size:clamp(1.1rem, 1rem + 0.5vw, 1.35rem);--e-global-typography-adquote-font-weight:500;--e-global-typography-adquote-line-height:1.55em;--e-global-typography-adquote-letter-spacing:-0.01em;--e-global-typography-adsmall-font-family:"Plus Jakarta Sans";--e-global-typography-adsmall-font-size:0.92rem;--e-global-typography-adsmall-font-weight:500;--e-global-typography-adsmall-line-height:1.35em;--e-global-typography-adnav-font-family:"Plus Jakarta Sans";--e-global-typography-adnav-font-size:1.06rem;--e-global-typography-adnav-font-weight:600;--e-global-typography-adnav-line-height:1.5em;--e-global-typography-adnav-letter-spacing:-0.005em;--e-global-typography-adbrand-font-family:"Sora";--e-global-typography-adbrand-font-size:1.05rem;--e-global-typography-adbrand-font-weight:600;--e-global-typography-adbrand-line-height:1.2em;--e-global-typography-adbrand-letter-spacing:-0.01em;background-color:var( --e-global-color-adbg );color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );}.elementor-kit-6 button,.elementor-kit-6 input[type="button"],.elementor-kit-6 input[type="submit"],.elementor-kit-6 .elementor-button{background-color:var( --e-global-color-primary );font-family:var( --e-global-typography-accent-font-family ), system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;font-size:var( --e-global-typography-accent-font-size );font-weight:var( --e-global-typography-accent-font-weight );line-height:var( --e-global-typography-accent-line-height );color:var( --e-global-color-adonacc );border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-primary );border-radius:999px 999px 999px 999px;padding:1rem 1.6rem 1rem 1.6rem;}.elementor-kit-6 button:hover,.elementor-kit-6 button:focus,.elementor-kit-6 input[type="button"]:hover,.elementor-kit-6 input[type="button"]:focus,.elementor-kit-6 input[type="submit"]:hover,.elementor-kit-6 input[type="submit"]:focus,.elementor-kit-6 .elementor-button:hover,.elementor-kit-6 .elementor-button:focus{background-color:var( --e-global-color-primary );color:var( --e-global-color-adonacc );}.elementor-kit-6 e-page-transition{background-color:#FFBC7D;}.elementor-kit-6 a{color:var( --e-global-color-primary );}.elementor-kit-6 a:hover{color:var( --e-global-color-accent );}.elementor-kit-6 h1{color:var( --e-global-color-accent );font-family:var( --e-global-typography-adhero-font-family ), system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;font-size:var( --e-global-typography-adhero-font-size );font-weight:var( --e-global-typography-adhero-font-weight );text-transform:var( --e-global-typography-adhero-text-transform );line-height:var( --e-global-typography-adhero-line-height );letter-spacing:var( --e-global-typography-adhero-letter-spacing );}.elementor-kit-6 h2{color:var( --e-global-color-accent );font-family:var( --e-global-typography-primary-font-family ), system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;font-size:var( --e-global-typography-primary-font-size );font-weight:var( --e-global-typography-primary-font-weight );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-kit-6 h3{color:var( --e-global-color-accent );font-family:var( --e-global-typography-secondary-font-family ), system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-kit-6 h4{color:var( --e-global-color-accent );}.elementor-kit-6 h5{color:var( --e-global-color-accent );}.elementor-kit-6 h6{color:var( --e-global-color-accent );}.elementor-kit-6 label{color:var( --e-global-color-accent );font-family:var( --e-global-typography-adsmall-font-family ), system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;font-size:var( --e-global-typography-adsmall-font-size );font-weight:var( --e-global-typography-adsmall-font-weight );line-height:var( --e-global-typography-adsmall-line-height );}.elementor-kit-6 input:not([type="button"]):not([type="submit"]),.elementor-kit-6 textarea,.elementor-kit-6 .elementor-field-textual{font-family:var( --e-global-typography-text-font-family ), system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );color:var( --e-global-color-accent );background-color:var( --e-global-color-adbg );border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-adborder2 );border-radius:10px 10px 10px 10px;padding:0.9rem 1rem 0.9rem 1rem;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1200px;}.e-con{--container-max-width:1200px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){--kit-widget-spacing:0px;}.elementor-element{--widgets-spacing:0px 0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(min-width:1600px){.elementor-kit-6{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-kit-6 h1{font-size:var( --e-global-typography-adhero-font-size );line-height:var( --e-global-typography-adhero-line-height );letter-spacing:var( --e-global-typography-adhero-letter-spacing );}.elementor-kit-6 h2{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-kit-6 h3{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-kit-6 button,.elementor-kit-6 input[type="button"],.elementor-kit-6 input[type="submit"],.elementor-kit-6 .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );}.elementor-kit-6 label{font-size:var( --e-global-typography-adsmall-font-size );line-height:var( --e-global-typography-adsmall-line-height );}.elementor-kit-6 input:not([type="button"]):not([type="submit"]),.elementor-kit-6 textarea,.elementor-kit-6 .elementor-field-textual{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1320px;}.e-con{--container-max-width:1320px;}}@media(max-width:1100px){.elementor-kit-6{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-kit-6 h1{font-size:var( --e-global-typography-adhero-font-size );line-height:var( --e-global-typography-adhero-line-height );letter-spacing:var( --e-global-typography-adhero-letter-spacing );}.elementor-kit-6 h2{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-kit-6 h3{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-kit-6 button,.elementor-kit-6 input[type="button"],.elementor-kit-6 input[type="submit"],.elementor-kit-6 .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );}.elementor-kit-6 label{font-size:var( --e-global-typography-adsmall-font-size );line-height:var( --e-global-typography-adsmall-line-height );}.elementor-kit-6 input:not([type="button"]):not([type="submit"]),.elementor-kit-6 textarea,.elementor-kit-6 .elementor-field-textual{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}}@media(max-width:960px){.elementor-kit-6{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-kit-6 h1{font-size:var( --e-global-typography-adhero-font-size );line-height:var( --e-global-typography-adhero-line-height );letter-spacing:var( --e-global-typography-adhero-letter-spacing );}.elementor-kit-6 h2{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-kit-6 h3{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-kit-6 button,.elementor-kit-6 input[type="button"],.elementor-kit-6 input[type="submit"],.elementor-kit-6 .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );}.elementor-kit-6 label{font-size:var( --e-global-typography-adsmall-font-size );line-height:var( --e-global-typography-adsmall-line-height );}.elementor-kit-6 input:not([type="button"]):not([type="submit"]),.elementor-kit-6 textarea,.elementor-kit-6 .elementor-field-textual{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:640px){.elementor-kit-6{--e-global-typography-adstat-font-size:clamp(1.25rem, 5.6vw, 1.75rem);font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-kit-6 h1{font-size:var( --e-global-typography-adhero-font-size );line-height:var( --e-global-typography-adhero-line-height );letter-spacing:var( --e-global-typography-adhero-letter-spacing );}.elementor-kit-6 h2{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-kit-6 h3{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-kit-6 button,.elementor-kit-6 input[type="button"],.elementor-kit-6 input[type="submit"],.elementor-kit-6 .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );}.elementor-kit-6 label{font-size:var( --e-global-typography-adsmall-font-size );line-height:var( --e-global-typography-adsmall-line-height );}.elementor-kit-6 input:not([type="button"]):not([type="submit"]),.elementor-kit-6 textarea,.elementor-kit-6 .elementor-field-textual{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* =============================================================================
   Arpit Damami — custom CSS
   Only what Elementor's controls cannot express. Colours, fonts, spacing, borders,
   radii, backgrounds and layouts are all set in Elementor (Site Settings → Global
   Colors / Global Fonts, and on each element). Everything here references the
   global colour variables, so changing a Global Color in Elementor updates it too.
   ============================================================================= */

/* 1. Light theme -------------------------------------------------------------
   The header switch sets <html data-theme="light">; these lines swap the Global
   Colors for their light versions. Edit the light palette here. */
html[data-theme="light"] body[class*="elementor-kit-"] {
  --e-global-color-primary: #0E7490;
  --e-global-color-secondary: #1D4ED8;
  --e-global-color-text: #46566E;
  --e-global-color-accent: #0A1222;
  --e-global-color-adbg: #F3F6FB;
  --e-global-color-adbgalt: #FFFFFF;
  --e-global-color-adsection: #FFFFFF94;
  --e-global-color-adsurf: #FFFFFF;
  --e-global-color-adsurf2: #EDF1F8;
  --e-global-color-admuted: #66758C;
  --e-global-color-adborder: #0F172A1F;
  --e-global-color-adborder2: #0F172A42;
  --e-global-color-adsoft: #0E74901A;
  --e-global-color-adglow: #0E74904D;
  --e-global-color-adonacc: #FFFFFF;
  --e-global-color-adglass: #F3F6FBC7;
  --e-global-color-adsuccess: #059669;
  --e-global-color-addanger: #DC2626;
  --e-global-color-adchip: #FFFFFF;
  --ad-grid: rgba(15, 23, 42, 0.06);
  --ad-aurora-1: rgba(14, 165, 233, 0.18);
  --ad-aurora-2: rgba(37, 99, 235, 0.12);
  --ad-aurora-3: rgba(99, 102, 241, 0.12);
}
body[class*="elementor-kit-"] {
  --ad-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
  --ad-nav-h: 76px;
  --ad-grid: rgba(148, 163, 184, 0.07);
  --ad-aurora-1: rgba(34, 211, 238, 0.2);
  --ad-aurora-2: rgba(59, 130, 246, 0.22);
  --ad-aurora-3: rgba(99, 102, 241, 0.18);
  overflow-x: clip;
  transition: background-color 0.4s var(--ad-ease), color 0.4s var(--ad-ease);
}
html[data-theme="light"] .ad-only-dark,
html:not([data-theme="light"]) .ad-only-light { display: none !important; }

/* 2. Base ------------------------------------------------------------------ */
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--ad-nav-h, 76px) + 8px); }
::selection { background: var(--e-global-color-primary); color: var(--e-global-color-adonacc); }
:focus-visible { outline: 2px solid var(--e-global-color-primary); outline-offset: 3px; border-radius: 6px; }
/* Lucide icons are stroke icons (stroke="currentColor"): keep them unfilled whatever colour Elementor gives them */
svg[stroke="currentColor"] { fill: none !important; }
/* Sideways entrance animations and floating chips must never cause sideways scrolling (clip keeps sticky working) */
.ad-site .elementor[data-elementor-type="wp-page"], .ad-site main { overflow-x: clip; }
.ad-sr-only { position: absolute !important; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ad-section-title .elementor-heading-title { text-wrap: balance; }
.ad-lede p, .ad-hero__desc p { text-wrap: pretty; }
.ad-section .elementor-widget-text-editor p:first-child { margin-top: 0; }
.ad-section .elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* 3. Living background: drifting colour glows + particle canvas (from site.js) */
body[class*="elementor-kit-"]::before,
body[class*="elementor-kit-"]::after {
  content: ""; position: fixed; z-index: -2; pointer-events: none; border-radius: 50%;
  width: 62vmax; height: 62vmax; will-change: transform;
}
body[class*="elementor-kit-"]::before {
  top: -24vmax; left: -18vmax;
  background: radial-gradient(closest-side, var(--ad-aurora-1), transparent 72%);
  animation: ad-aurora-a 26s ease-in-out infinite alternate;
}
body[class*="elementor-kit-"]::after {
  top: 14vh; right: -26vmax;
  background: radial-gradient(closest-side, var(--ad-aurora-2), transparent 72%),
              radial-gradient(closest-side, var(--ad-aurora-3), transparent 72%) 0 60vmax / 100% 100% no-repeat;
  animation: ad-aurora-b 32s ease-in-out infinite alternate;
}
.ad-bg-canvas { position: fixed; inset: 0; z-index: -1; width: 100%; height: 100%; pointer-events: none; opacity: 0; transition: opacity 1.4s ease; }
.ad-bg-canvas.is-ready { opacity: 1; }
.ad-cursor-glow {
  position: fixed; top: 0; left: 0; z-index: -1; width: 560px; height: 560px; margin: -280px 0 0 -280px;
  border-radius: 50%; background: radial-gradient(closest-side, var(--e-global-color-adsoft), transparent);
  pointer-events: none; opacity: 0; transition: opacity 0.5s ease; will-change: transform;
}
.ad-cursor-glow.is-active { opacity: 1; }
@media (max-width: 640px) { .ad-cursor-glow { display: none; } }

/* 4. Buttons: shine sweep, lift, icon nudge, magnetic pull --------------------- */
.ad-btn .elementor-button { position: relative; overflow: hidden; isolation: isolate; white-space: nowrap;
  transform: translate(var(--tx, 0px), var(--ty, 0px));
  transition: transform 0.3s var(--ad-ease), background-color 0.3s var(--ad-ease), border-color 0.3s var(--ad-ease), color 0.3s var(--ad-ease), box-shadow 0.3s var(--ad-ease); }
.ad-btn .elementor-button::before { content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(115deg, transparent 30%, rgba(255, 255, 255, 0.35) 50%, transparent 70%);
  transform: translateX(-130%); transition: transform 0.7s var(--ad-ease); }
.ad-btn .elementor-button:hover::before { transform: translateX(130%); }
.ad-btn--primary .elementor-button:hover { transform: translate(var(--tx, 0px), calc(var(--ty, 0px) - 2px)); box-shadow: 0 14px 34px -10px var(--e-global-color-adglow); }
.ad-btn--ghost .elementor-button:hover { transform: translate(var(--tx, 0px), calc(var(--ty, 0px) - 2px)); }
.ad-btn .elementor-button:active { transform: translate(var(--tx, 0px), calc(var(--ty, 0px) + 1px)) scale(0.98); }
.ad-btn .elementor-button-icon svg { width: 1.15rem; height: 1.15rem; transition: transform 0.3s var(--ad-ease); }
.ad-btn .elementor-button:hover .elementor-button-icon svg { transform: translate(2px, -2px); }
.ad-filter .elementor-button::before { display: none; }
.ad-filter.is-active .elementor-button { background-color: var(--e-global-color-primary) !important; border-color: var(--e-global-color-primary) !important; color: var(--e-global-color-adonacc) !important; }
.ad-cta-pulse .elementor-button { animation: ad-cta-pulse 3.2s ease-out 3s infinite; }
.ad-cta-pulse .elementor-button:hover { animation: none; }

/* 5. Header ---------------------------------------------------------------- */
.ad-header { width: 100%;
  transition: background-color 0.4s var(--ad-ease), border-color 0.4s var(--ad-ease), backdrop-filter 0.4s var(--ad-ease);
  /* scroll progress bar along the bottom edge (width set by site.js) */
  background-image: linear-gradient(90deg, var(--e-global-color-primary), var(--e-global-color-secondary));
  background-size: calc(var(--ad-progress, 0) * 100%) 2px; background-position: left bottom; background-repeat: no-repeat; }
.ad-header.is-scrolled { background-color: var(--e-global-color-adglass) !important; border-bottom-color: var(--e-global-color-adborder) !important;
  -webkit-backdrop-filter: blur(18px) saturate(140%); backdrop-filter: blur(18px) saturate(140%); }
.admin-bar .ad-header { top: 32px !important; }
@media (max-width: 782px) { .admin-bar .ad-header { top: 46px !important; } }
@media (max-width: 960px) { body[class*="elementor-kit-"] { --ad-nav-h: 68px; } }
/* Brand mark */
.ad-brand__mark .elementor-heading-title { display: grid; place-items: center; width: calc(2.5rem - 2px); height: calc(2.5rem - 2px); }
.ad-brand__mark { transition: border-color 0.3s var(--ad-ease), box-shadow 0.3s var(--ad-ease); }
.ad-brand:hover .ad-brand__mark { border-color: var(--e-global-color-primary) !important; box-shadow: 0 0 24px -6px var(--e-global-color-adglow); }
.ad-brand__name .elementor-heading-title { white-space: nowrap; }
@media (max-width: 380px) { .ad-header .ad-brand__name { display: none; } }
/* Theme switch: show the moon in dark mode, the sun in light mode */
.ad-theme-toggle { cursor: pointer; transition: border-color 0.3s var(--ad-ease), transform 0.3s var(--ad-ease); }
.ad-theme-toggle:hover { transform: translateY(-2px); }
.ad-theme-toggle:hover .elementor-icon { color: var(--e-global-color-primary); }
.ad-theme-toggle .ad-icon-sun, html[data-theme="light"] .ad-theme-toggle .ad-icon-moon { display: none; }
html[data-theme="light"] .ad-theme-toggle .ad-icon-sun { display: block; }
/* Nav Menu (Elementor Pro): rich About submenu — icon tile + subtitle.
   The subtitle is the menu item's "Title Attribute"; the icon comes from its CSS class (ad-sub--briefcase etc.). */
.ad-nav .elementor-nav-menu--main .sub-menu { min-width: 292px !important; padding: 0.5rem; box-shadow: 0 30px 70px -24px rgba(0, 0, 0, 0.7); }
.ad-nav .elementor-nav-menu--main .ad-sub > a { display: grid !important; grid-template-columns: 2.5rem 1fr; column-gap: 0.9rem; align-items: center; border-radius: 14px; transition: background-color 0.25s var(--ad-ease), transform 0.3s var(--ad-ease); }
.ad-nav .elementor-nav-menu--main .ad-sub > a::before { content: ""; grid-row: 1 / span 2; width: 2.5rem; height: 2.5rem; border-radius: 12px;
  background: var(--e-global-color-adsoft) var(--ad-sub-icon) center / 1.2rem no-repeat; transition: background-color 0.25s, transform 0.35s var(--ad-ease); }
.ad-nav .elementor-nav-menu--main .ad-sub > a[title]::after { content: attr(title); grid-column: 2; font-family: "Plus Jakarta Sans", sans-serif; font-size: 0.85rem; font-weight: 400; color: var(--e-global-color-text); line-height: 1.3; }
.ad-nav .elementor-nav-menu--main .ad-sub > a:hover { transform: translateX(3px); }
.ad-nav .elementor-nav-menu--main .ad-sub > a:hover::before { background-color: var(--e-global-color-primary); transform: rotate(-6deg) scale(1.06); }
.ad-sub--briefcase { --ad-sub-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2322d3ee' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16'/%3E%3Crect width='20' height='14' x='2' y='6' rx='2'/%3E%3C/svg%3E"); }
.ad-sub--layers { --ad-sub-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2322d3ee' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z'/%3E%3Cpath d='m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65'/%3E%3Cpath d='m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65'/%3E%3C/svg%3E"); }
.ad-sub--quote { --ad-sub-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2322d3ee' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z'/%3E%3Cpath d='M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z'/%3E%3C/svg%3E"); }
.ad-sub--building { --ad-sub-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2322d3ee' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z'/%3E%3Cpath d='M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2'/%3E%3Cpath d='M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2'/%3E%3Cpath d='M10 6h4'/%3E%3Cpath d='M10 10h4'/%3E%3Cpath d='M10 14h4'/%3E%3Cpath d='M10 18h4'/%3E%3C/svg%3E"); }
/* Mobile menu (Nav Menu dropdown below 960px): large display type, ruled rows */
@media (max-width: 960px) {
  .ad-nav .elementor-nav-menu--dropdown.elementor-nav-menu__container { padding: 0.5rem var(--ad-gutter, 1.25rem) 1.5rem; border: 0 !important; border-radius: 0 !important; }
  .ad-nav .elementor-nav-menu--dropdown .elementor-item { border-bottom: 1px solid var(--e-global-color-adborder); letter-spacing: -0.03em; }
  .ad-nav .elementor-nav-menu--dropdown .sub-menu .elementor-sub-item { font-size: 1.35rem !important; font-weight: 600 !important; border: 0; }
}

/* 6. Hero --------------------------------------------------------------------- */
.ad-hero { position: relative; isolation: isolate; }
/* drifting blueprint grid + secondary glow (purely decorative) */
.ad-hero::after { content: ""; position: absolute; inset: -64px; z-index: -1; pointer-events: none;
  background-image: linear-gradient(var(--ad-grid) 1px, transparent 1px), linear-gradient(90deg, var(--ad-grid) 1px, transparent 1px);
  background-size: 64px 64px;
  -webkit-mask-image: radial-gradient(ellipse 75% 65% at 68% 45%, #000 15%, transparent 78%);
  mask-image: radial-gradient(ellipse 75% 65% at 68% 45%, #000 15%, transparent 78%);
  animation: ad-grid-drift 45s linear infinite; }
.ad-hero .ad-hero__inner { width: 100%; }
/* Status pill with a live dot */
.ad-status .elementor-heading-title { position: relative; }
.ad-status .elementor-heading-title::before,
.ad-status .elementor-heading-title::after { content: ""; position: absolute; left: -1.05rem; top: 50%; width: 0.55rem; height: 0.55rem; margin-top: -0.275rem; border-radius: 50%; background: var(--e-global-color-adsuccess); }
.ad-status .elementor-heading-title::after { animation: ad-ping 2.4s ease-out infinite; }
/* Name: each line on its own row; letters rise in and a colour wave runs through them (letters wrapped by site.js) */
.ad-hero-name .elementor-heading-title > span { display: block; }
.ad-hero-name .ad-char { display: inline-block; animation: ad-char-in 0.9s var(--ad-ease) both, ad-char-wave 6s ease-in-out infinite both;
  animation-delay: calc(0.25s + var(--ci, 0) * 0.055s), calc(2.2s + var(--ci, 0) * 0.14s); }
/* Role line with a rule in front of it */
.ad-eyebrow .elementor-heading-title { display: flex; align-items: center; gap: 1rem; }
.ad-eyebrow .elementor-heading-title::before { content: ""; flex: none; width: clamp(1.75rem, 4vw, 3rem); height: 1px; background: currentColor; }
.ad-statement .elementor-heading-title { text-wrap: balance; max-width: 30ch; }
/* "Ask me about …" typing line (Elementor Pro Animated Headline) */
.ad-typed .elementor-headline { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 0.6rem; }
.ad-typed .elementor-headline-dynamic-wrapper { font-weight: 600; }
.ad-typed .elementor-headline--style-rotate .elementor-headline-dynamic-wrapper::after,
.ad-typed .elementor-headline.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper::after { background-color: var(--e-global-color-primary); }
.ad-typed--static strong { color: var(--e-global-color-accent); font-weight: 600; }
/* Visual: diagram + floating chips */
.ad-hero__visual { justify-self: end; position: relative; perspective: 1100px; }
.ad-hero__visual > .elementor-widget-image { z-index: 1; }
.ad-hero__visual .ad-diagram img { width: 100%; height: auto; }
.ad-hero__visual::after { content: ""; position: absolute; inset: 8% -6% 4%; z-index: 0; border-radius: 50%; pointer-events: none;
  background: radial-gradient(closest-side, var(--e-global-color-adsoft), transparent); filter: blur(20px); }
@media (max-width: 960px) { .ad-hero__visual { justify-self: center; } }
.ad-chip { -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); overflow: visible !important; transition: border-color 0.3s var(--ad-ease), background-color 0.3s var(--ad-ease); }
.ad-chip > .elementor-widget-icon { animation: ad-chip-float var(--fs, 6s) ease-in-out infinite; animation-delay: var(--fd, 0s); }
.ad-chip:hover { background-color: var(--e-global-color-adsoft) !important; }
.ad-chip .ad-chip__label { position: absolute !important; top: 50%; width: auto !important; transform: translateY(-50%); opacity: 0; pointer-events: none;
  padding: 0.3rem 0.65rem; border: 1px solid var(--e-global-color-adborder2); border-radius: 999px; background: var(--e-global-color-adsurf);
  transition: opacity 0.25s var(--ad-ease); }
.ad-chip .ad-chip__label .elementor-heading-title { font-size: 0.78rem; white-space: nowrap; }
.ad-chip--l .ad-chip__label { right: calc(100% + 0.6rem); }
.ad-chip--r .ad-chip__label { left: calc(100% + 0.6rem); }
.ad-chip:hover .ad-chip__label { opacity: 1; }
.ad-chip--1 { --fd: 0s; --fs: 6s; } .ad-chip--2 { --fd: -2s; --fs: 7.5s; } .ad-chip--3 { --fd: -4s; --fs: 6.5s; }
.ad-chip--4 { --fd: -1s; --fs: 7s; } .ad-chip--5 { --fd: -3s; --fs: 6s; } .ad-chip--6 { --fd: -5s; --fs: 8s; }
.ad-chip--7 { --fd: -1s; --fs: 6.5s; } .ad-chip--8 { --fd: -3s; --fs: 7s; } .ad-chip--9 { --fd: -5s; --fs: 8s; }
/* Scroll cue */
.ad-scroll-cue { transform: translateX(-50%); }
.ad-scroll-cue::after { content: ""; position: absolute; top: 8px; left: 50%; width: 4px; height: 8px; margin-left: -2px; border-radius: 2px;
  background: var(--e-global-color-primary); animation: ad-cue-dot 2.2s ease-in-out infinite; }

/* 7. Vendor marquee (site.js duplicates the logos once so the loop is seamless) */
.ad-marquee__viewport { -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.ad-marquee__track { width: max-content !important; max-width: none !important; }
.ad-marquee__track.is-looping { animation: ad-marquee 48s linear infinite; }
.ad-marquee:hover .ad-marquee__track { animation-play-state: paused; }
.ad-brand-chip { white-space: nowrap; transition: transform 0.35s var(--ad-ease), box-shadow 0.35s var(--ad-ease); }
.ad-brand-chip:hover { transform: translateY(-4px); box-shadow: 0 18px 34px -18px rgba(0, 0, 0, 0.7); }
.ad-brand-chip__logo img { width: 2rem; height: 2rem; object-fit: contain; }

/* 8. Stats ------------------------------------------------------------------ */
.ad-stat .elementor-heading-title, .ad-counter .elementor-counter-number-wrapper { overflow-wrap: anywhere; text-wrap: balance; }
.ad-counter .elementor-counter { justify-content: flex-start; }
.ad-counter .elementor-counter-number-wrapper { justify-content: flex-start; line-height: 1.1; }
.ad-counter .elementor-counter-title:empty { display: none; }

/* 9. About: portrait with turning light ring, slow zoom, light sweep, spinning badge */
.ad-about__media { position: relative; }
.ad-about__media::after { content: ""; position: absolute; inset: -8px; z-index: 0; pointer-events: none; padding: 1.5px; border-radius: 32px;
  background: conic-gradient(from var(--ad-angle, 0deg), transparent 0 50%, var(--e-global-color-primary) 75%, var(--e-global-color-secondary) 90%, transparent 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude;
  animation: ad-spin-angle 9s linear infinite; }
.ad-profile { isolation: isolate; }
.ad-profile .ad-profile__img img { display: block; width: 100%; aspect-ratio: 4 / 5; height: auto !important; object-fit: cover; object-position: 50% 18%; animation: ad-breathe 16s ease-in-out infinite; }
.ad-profile::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(180deg, transparent 55%, rgba(4, 6, 12, 0.55)); }
.ad-profile .ad-profile__img::after { content: ""; position: absolute; top: -20%; bottom: -20%; left: -60%; width: 45%; pointer-events: none;
  background: linear-gradient(100deg, transparent, rgba(255, 255, 255, 0.16), transparent); animation: ad-glare 7s ease-in-out 2s infinite; opacity: 0; }
.ad-profile .ad-profile__img { overflow: hidden; }
.ad-profile__caption { -webkit-backdrop-filter: blur(16px) saturate(140%); backdrop-filter: blur(16px) saturate(140%); width: calc(100% - 1.8rem) !important; }
.ad-pills .elementor-icon-list-items { gap: 0.5rem; }
.ad-pills .elementor-icon-list-item { margin: 0 !important; padding: 0.3rem 0.7rem !important; border: 1px solid var(--e-global-color-adborder2); border-radius: 999px; background: var(--e-global-color-adsoft); }
.ad-pills .elementor-icon-list-item::after { display: none !important; }
.ad-badge { box-shadow: 0 20px 40px -18px rgba(0, 0, 0, 0.7), 0 0 30px -8px var(--e-global-color-adglow) !important; }
.ad-badge .ad-badge__ring { position: absolute !important; inset: 0; display: grid; place-items: center; animation: ad-spin 26s linear infinite; }
.ad-badge .ad-badge__ring svg { overflow: visible; }
.ad-badge__num sup { font-size: 0.55em; color: var(--e-global-color-primary); vertical-align: 0; position: relative; top: -0.55em; margin-left: 1px; }

/* 10. Experience: intro sticks while the list scrolls ------------------------ */
@media (min-width: 961px) { .ad-sticky { position: sticky !important; top: calc(var(--ad-nav-h) + 2rem); } }
.ad-tile .elementor-icon, .ad-tile-host .elementor-icon { transition: background-color 0.3s var(--ad-ease), color 0.3s var(--ad-ease), transform 0.4s var(--ad-ease); }
.ad-focus:hover .elementor-icon { transform: rotate(-6deg) scale(1.05); }
.ad-focus .elementor-icon-box-description { max-width: 52ch; }

/* 11. Cards: cursor spotlight (position fed by site.js) ----------------------- */
.ad-spotlight { position: relative; isolation: isolate; }
.ad-spotlight::before { content: "" !important; position: absolute !important; inset: 0 !important; top: 0 !important; left: 0 !important; width: 100% !important; height: 100% !important; z-index: -1 !important;
  border: 0 !important; border-radius: inherit; pointer-events: none; mix-blend-mode: normal !important;
  background: radial-gradient(360px circle at var(--mx, 50%) var(--my, 0%), var(--e-global-color-adsoft), transparent 65%) !important;
  opacity: 0 !important; transition: opacity 0.4s var(--ad-ease) !important; }
.ad-spotlight:hover::before { opacity: 1 !important; }

/* 12. Skill badges (Icon List shown as pills) -------------------------------- */
.ad-badges .elementor-icon-list-items { gap: 0.6rem; }
.ad-badges .elementor-icon-list-item { margin: 0 !important; padding: 0.55rem 0.95rem 0.55rem 0.8rem !important; border: 1px solid var(--e-global-color-adborder);
  border-radius: 999px; background: var(--e-global-color-adsurf2); line-height: 1.2;
  transition: transform 0.3s var(--ad-ease), border-color 0.3s var(--ad-ease), background-color 0.3s var(--ad-ease); }
.ad-badges .elementor-icon-list-item::after { display: none !important; }
.ad-badges .elementor-icon-list-item:hover { transform: translateY(-3px); border-color: var(--e-global-color-primary); background: var(--e-global-color-adsoft); }
.ad-badges .elementor-icon-list-icon { color: var(--e-global-color-primary); transition: transform 0.3s var(--ad-ease); }
.ad-badges .elementor-icon-list-item:hover .elementor-icon-list-icon { transform: scale(1.15); }
/* brand logos keep their own colours; single-colour logos (Next.js) follow the heading colour */
.ad-badges .elementor-icon-list-icon svg:not([stroke]):not([fill="currentColor"]) { fill: revert-layer; }
.ad-badges .elementor-icon-list-icon svg[fill="currentColor"] { fill: var(--e-global-color-accent) !important; }
.ad-badges--plain .elementor-icon-list-item { padding-left: 0.95rem !important; }
.ad-skill-card { transition: border-color 0.4s var(--ad-ease); }

/* 13. Services rows ------------------------------------------------------------ */
.ad-service { position: relative; transition: padding-left 0.4s var(--ad-ease), background 0.4s var(--ad-ease) !important; }
.ad-service:hover { padding-left: 0.75rem !important; }
.ad-service::after { content: ""; position: absolute; left: 0; top: -1px; width: 100%; height: 1px; background: var(--e-global-color-primary);
  transform: scaleX(0); transform-origin: left; transition: transform 0.6s var(--ad-ease); pointer-events: none; }
.ad-service:hover::after { transform: scaleX(1); }
.ad-service:hover .ad-tile .elementor-icon { background-color: var(--e-global-color-primary) !important; color: var(--e-global-color-adonacc) !important; transform: rotate(-6deg) scale(1.06); }

/* 14. Industries ------------------------------------------------------------- */
.ad-industry { transition: border-color 0.4s var(--ad-ease), transform 0.4s var(--ad-ease) !important; }
.ad-bob:not(:hover) .elementor-icon { animation: ad-bob 5s ease-in-out infinite; }
.ad-bob--1 .elementor-icon { animation-delay: -1s !important; } .ad-bob--2 .elementor-icon { animation-delay: -2s !important; }
.ad-bob--3 .elementor-icon { animation-delay: -3s !important; } .ad-bob--4 .elementor-icon { animation-delay: -4s !important; }
.ad-bob--5 .elementor-icon { animation-delay: -5s !important; } .ad-bob--6 .elementor-icon { animation-delay: -6s !important; }
.ad-bob--7 .elementor-icon { animation-delay: -7s !important; } .ad-bob--8 .elementor-icon { animation-delay: -8s !important; }
.ad-bob--9 .elementor-icon { animation-delay: -9s !important; }
.ad-industry:hover .elementor-icon { transform: rotate(-8deg) scale(1.08); }

/* 15. Projects --------------------------------------------------------------- */
.ad-filters { scrollbar-width: none; }
.ad-filters::-webkit-scrollbar { display: none; }
@media (max-width: 640px) {
  .ad-filters { overflow-x: auto; margin-inline: calc(-1 * clamp(1.25rem, 4vw, 2.5rem)) !important; padding-inline: clamp(1.25rem, 4vw, 2.5rem) !important; width: calc(100% + 2 * clamp(1.25rem, 4vw, 2.5rem)) !important; max-width: none !important; }
  .ad-filters > .elementor-element { flex: none; }
}
.ad-project { cursor: pointer; text-decoration: none; color: inherit;
  transition: transform 0.3s ease-out, border-color 0.4s var(--ad-ease), opacity 0.25s var(--ad-ease) !important; }
.ad-project:hover { border-color: transparent !important; }
.ad-project.is-hiding { opacity: 0; transform: scale(0.97) !important; }
.ad-project.is-hidden { display: none !important; }
/* light ring that circles the card on hover */
.ad-project::after { content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1.5px; pointer-events: none; opacity: 0;
  background: conic-gradient(from var(--ad-angle, 0deg), transparent 0 55%, var(--e-global-color-primary) 78%, var(--e-global-color-secondary) 90%, transparent 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude;
  transition: opacity 0.4s var(--ad-ease); }
.ad-project:hover::after, .ad-project:focus-visible::after { opacity: 1; animation: ad-spin-angle 3.5s linear infinite; }
.ad-project__thumb { aspect-ratio: 16 / 9; position: relative; }
.ad-project__thumb::after { content: ""; position: absolute; inset: 0; pointer-events: none;
  background-image: linear-gradient(var(--ad-grid) 1px, transparent 1px), linear-gradient(90deg, var(--ad-grid) 1px, transparent 1px);
  background-size: 28px 28px; -webkit-mask-image: radial-gradient(closest-side, #000, transparent); mask-image: radial-gradient(closest-side, #000, transparent); }
.ad-project__icon { z-index: 1; }
.ad-project__icon svg[stroke] { stroke-width: 1.4; transition: transform 0.5s var(--ad-ease); }
.ad-project:hover .ad-project__icon svg { transform: scale(1.12); }
.ad-project__arrow svg { transition: transform 0.3s var(--ad-ease); }
.ad-project:hover .ad-project__arrow svg { transform: translate(3px, -3px); }
/* Project popups */
.ad-scope svg[stroke] { fill: currentColor !important; stroke: none; }
.ad-scope .elementor-icon-list-icon { align-self: flex-start; padding-top: 0.55em; }

/* 16. Testimonials (Elementor Pro Testimonial Carousel) --------------------------- */
.ad-testimonials .swiper-slide { height: auto; }
.ad-testimonials .elementor-testimonial { height: 100%; display: flex; flex-direction: column; justify-content: space-between; gap: 2rem; transition: border-color 0.4s var(--ad-ease), transform 0.4s var(--ad-ease); }
.ad-testimonials .elementor-testimonial:hover { transform: translateY(-4px); }
.ad-testimonials .elementor-testimonial__content::before { content: ""; display: block; width: 2.75rem; height: 2.75rem; margin-bottom: 2rem; background: var(--e-global-color-primary);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z'/%3E%3Cpath d='M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z'/%3E%3Cpath d='M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z'/%3E%3C/svg%3E") center / contain no-repeat; }
.ad-testimonials .swiper-pagination-bullet { transition: width 0.4s var(--ad-ease); border-radius: 999px; }
.ad-testimonials .swiper-pagination-bullet-active { width: 1.9rem; }
.ad-t-card { transition: border-color 0.4s var(--ad-ease), transform 0.4s var(--ad-ease) !important; }
.ad-t-card:hover { transform: translateY(-4px); }

/* 17. Contact form (WPForms) — styled with WPForms' own CSS variables ------------- */
.ad-contact-card .wpforms-container {
  --wpforms-field-border-radius: 10px; --wpforms-field-border-size: 1px; --wpforms-field-border-style: solid;
  --wpforms-field-background-color: var(--e-global-color-adbg); --wpforms-field-border-color: var(--e-global-color-adborder2);
  --wpforms-field-text-color: var(--e-global-color-accent); --wpforms-field-menu-color: var(--e-global-color-adsurf);
  --wpforms-label-color: var(--e-global-color-accent); --wpforms-label-sublabel-color: var(--e-global-color-text);
  --wpforms-label-error-color: var(--e-global-color-addanger); --wpforms-button-border-radius: 999px;
  --wpforms-button-background-color: var(--e-global-color-primary); --wpforms-button-text-color: var(--e-global-color-adonacc);
  --wpforms-button-border-color: var(--e-global-color-primary);
  --wpforms-field-size-input-height: 52px; --wpforms-field-size-font-size: 16px; --wpforms-field-size-padding-h: 16px;
  --wpforms-label-size-font-size: 14.7px; --wpforms-button-size-font-size: 15.7px; --wpforms-button-size-height: 50px;
  --wpforms-button-size-padding-h: 25px;
  margin: 0 !important; }
.ad-contact-card .wpforms-container .wpforms-field { padding: 0 0 1.35rem !important; }
.ad-contact-card .wpforms-container .wpforms-field-label { font-weight: 500 !important; margin-bottom: 0.5rem !important; }
.ad-contact-card .wpforms-container input:focus, .ad-contact-card .wpforms-container textarea:focus, .ad-contact-card .wpforms-container select:focus {
  border-color: var(--e-global-color-primary) !important; box-shadow: 0 0 0 4px var(--e-global-color-adsoft) !important; outline: none; }
.ad-contact-card .wpforms-container textarea { min-height: 8.5rem; }
.ad-contact-card .wpforms-container .wpforms-submit { font-family: "Plus Jakarta Sans", sans-serif !important; font-weight: 600 !important; transition: transform 0.3s var(--ad-ease), box-shadow 0.3s var(--ad-ease) !important; }
.ad-contact-card .wpforms-container .wpforms-submit:hover { transform: translateY(-2px); box-shadow: 0 14px 34px -10px var(--e-global-color-adglow); }
@media (max-width: 640px) { .ad-contact-card .wpforms-container .wpforms-submit { width: 100%; } }
.ad-contact-card .wpforms-confirmation-container-full { background: var(--e-global-color-adsoft) !important; border-color: var(--e-global-color-primary) !important; color: var(--e-global-color-accent) !important; border-radius: 10px; }

/* 18. Footer + floating WhatsApp ------------------------------------------- */
.ad-back-to-top, .ad-theme-toggle { transition: border-color 0.3s var(--ad-ease), transform 0.3s var(--ad-ease); }
.ad-back-to-top:hover { transform: translateY(-2px); }
.ad-back-to-top:hover .elementor-icon { color: var(--e-global-color-primary); }
.ad-wa { text-decoration: none; }
.ad-wa__label { box-shadow: 0 12px 30px -14px rgba(0, 0, 0, 0.6); transition: transform 0.35s var(--ad-ease), border-color 0.3s var(--ad-ease); }
.ad-wa__icon .elementor-icon { position: relative; box-shadow: 0 14px 30px -10px rgba(37, 211, 102, 0.65); transition: transform 0.35s var(--ad-ease), box-shadow 0.35s var(--ad-ease); }
.ad-wa__icon .elementor-icon::after { content: ""; position: absolute; inset: 0; z-index: -1; border-radius: 50%; background: #25D366; animation: ad-wa-ring 2.6s ease-out 3s infinite; }
.ad-wa:hover .ad-wa__icon .elementor-icon { transform: scale(1.08) rotate(-6deg); box-shadow: 0 18px 38px -10px rgba(37, 211, 102, 0.8); }
.ad-wa:hover .ad-wa__label { transform: translateX(-4px); border-color: #25D366 !important; }

/* 19. Keyframes ------------------------------------------------------------- */
@property --ad-angle { syntax: "<angle>"; inherits: false; initial-value: 0deg; }
@keyframes ad-spin-angle { to { --ad-angle: 360deg; } }
@keyframes ad-spin { to { transform: rotate(360deg); } }
@keyframes ad-grid-drift { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(64px, 64px, 0); } }
@keyframes ad-ping { 0% { transform: scale(1); opacity: 0.55; } 80%, 100% { transform: scale(3.2); opacity: 0; } }
@keyframes ad-char-in { from { opacity: 0; transform: translateY(70%) rotate(7deg); filter: blur(10px); } to { opacity: 1; transform: none; filter: blur(0); } }
@keyframes ad-char-wave { 0%, 55%, 100% { color: var(--e-global-color-accent); } 25% { color: var(--e-global-color-primary); } }
@keyframes ad-chip-float { 0%, 100% { transform: translateY(0) rotate(-1.5deg); } 50% { transform: translateY(-14px) rotate(1.5deg); } }
@keyframes ad-marquee { to { transform: translateX(-50%); } }
@keyframes ad-cue-dot { 0% { transform: translateY(0); opacity: 0; } 25% { opacity: 1; } 75%, 100% { transform: translateY(14px); opacity: 0; } }
@keyframes ad-cta-pulse { 0% { box-shadow: 0 0 0 0 var(--e-global-color-adglow); } 70%, 100% { box-shadow: 0 0 0 14px transparent; } }
@keyframes ad-aurora-a { from { transform: translate3d(0, 0, 0) scale(1); } to { transform: translate3d(14vmax, 10vmax, 0) scale(1.18); } }
@keyframes ad-aurora-b { from { transform: translate3d(0, 0, 0) scale(1.1); } to { transform: translate3d(-16vmax, -8vmax, 0) scale(0.92); } }
@keyframes ad-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
@keyframes ad-breathe { 0%, 100% { transform: scale(1.03); } 50% { transform: scale(1.09); } }
@keyframes ad-glare { 0%, 62% { transform: skewX(-18deg) translateX(0); opacity: 0; } 70% { opacity: 1; } 100% { transform: skewX(-18deg) translateX(520%); opacity: 0; } }
@keyframes ad-wa-ring { 0% { transform: scale(1); opacity: 0.55; } 75%, 100% { transform: scale(1.65); opacity: 0; } }

/* 20. Reduced motion: keep everything visible, remove movement --------------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  body[class*="elementor-kit-"]::before, body[class*="elementor-kit-"]::after, .ad-hero::after, .ad-status .elementor-heading-title::after,
  .ad-hero-name .ad-char, .ad-chip > .elementor-widget-icon, .ad-scroll-cue::after, .ad-cta-pulse .elementor-button,
  .ad-about__media::after, .ad-profile .ad-profile__img img, .ad-profile .ad-profile__img::after, .ad-badge .ad-badge__ring,
  .ad-bob .elementor-icon, .ad-project::after, .ad-wa__icon .elementor-icon::after { animation: none !important; }
  .ad-marquee__viewport { -webkit-mask-image: none; mask-image: none; }
  .ad-marquee__track { animation: none !important; width: auto !important; flex-wrap: wrap !important; justify-content: center !important; padding-inline: clamp(1.25rem, 4vw, 2.5rem) !important; }
  .ad-marquee__track .ad-clone { display: none !important; }
}/* End custom CSS */