/*
 * Bridge between the dz-* design classes and native Elementor elements.
 * Generated rules come from design.css (scripts/gen_bridge.py): each single-class rule is repeated
 * for .e-con.<class> and .elementor-widget.<class> so it beats Elementor defaults.
 */
/* ---------------------------------------------------------------------------
   Base: neutralise Elementor's own spacing and colours inside dz sections.
   (Comes first so the generated dz-* rules below win on equal specificity.)
   --------------------------------------------------------------------------- */
.dz .e-con, .dz.e-con { --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-block-start: 0px; --padding-block-end: 0px; --padding-inline-start: 0px; --padding-inline-end: 0px; --gap: 0px; --row-gap: 0px; --column-gap: 0px; --flex-direction: column; }
.dz .elementor-widget, .dz .elementor-widget:not(:last-child) { margin-block-end: 0; }
.dz .elementor-widget-text-editor, .dz .elementor-widget-heading, .dz .elementor-widget-image { color: inherit; font-family: inherit; font-size: inherit; line-height: inherit; }
body[class*="elementor-kit-"] :is(h1, h2, h3, h4, h5, h6, .dz-post-title, .dz-h1, .dz-h2, .dz-h3),
.elementor-kit-5 :is(h1, h2, h3, h4, h5, h6) { color: var(--as-text) !important; text-wrap: inherit; text-transform: none; }
:root[data-theme="dark"] body[class*="elementor-kit-"] :is(h1, h2, h3, h4, h5, h6, .dz-post-title, .dz-h1, .dz-h2, .dz-h3, .elementor-heading-title),
:root[data-theme="dark"] .elementor-kit-5 :is(h1, h2, h3, h4, h5, h6, .dz-post-title, .dz-h1, .dz-h2, .dz-h3) { color: var(--as-text, #f2f4f8) !important; }
.dz .elementor-heading-title, .dz .elementor-widget-heading .elementor-heading-title { margin: 0; padding: 0; font: inherit; letter-spacing: inherit; color: inherit; text-wrap: inherit; text-transform: none; }
.dz .elementor-widget > p, .dz .elementor-widget-container > p { margin: 0; padding: 0; font: inherit; letter-spacing: inherit; color: inherit; }
.dz .elementor-widget > p a, .dz .elementor-widget-container > p a { color: inherit; text-decoration: none; }
.dz .elementor-widget > ul, .dz .elementor-widget-container > ul { margin: 0; }

.e-con.dz-wrap, .elementor-widget.dz-wrap {width: 100%; max-width: calc(var(--as-container, 1200px) + 2 * var(--dz-pad)); margin: 0 auto; padding-inline: var(--dz-pad);}
.e-con.dz-sec, .elementor-widget.dz-sec {padding-block: clamp(40px, 4.5vw, 60px);}
.e-con.dz-sec--tight, .elementor-widget.dz-sec--tight {padding-block: clamp(24px, 2.8vw, 36px);}
.e-con.dz-sec#plugins, [id="plugins"] + .e-con.dz-sec, .e-con.dz-hero + .e-con.dz-sec, .e-con.dz-hero + div > .e-con.dz-sec, .e-con.dz-sec:first-of-type {padding-top: clamp(18px, 2vw, 28px) !important;}
.e-con.dz-page-top,
.elementor-widget.dz-page-top,
.dz-page-top,
section.dz-page-top,
.elementor-element.dz-page-top {
	--padding-top: clamp(72px, 6.5vw, 104px) !important;
	--padding-bottom: 24px !important;
	--padding-block-start: clamp(72px, 6.5vw, 104px) !important;
	--padding-block-end: 24px !important;
	padding-top: clamp(72px, 6.5vw, 104px) !important;
	padding-bottom: 24px !important;
	padding-block: clamp(72px, 6.5vw, 104px) 24px !important;
	border-bottom: none !important;
	background: var(--as-bg);
}
.e-con.dz-mono, .elementor-widget.dz-mono {font-family: var(--as-mono); font-weight: var(--as-mw); }
.e-con.dz-eyebrow, .elementor-widget.dz-eyebrow {font-family: var(--as-mono); font-size: 14px; color: var(--as-accent-ink); margin: 0; font-weight: var(--as-mw); }
.e-con.dz-eyebrow--dim, .elementor-widget.dz-eyebrow--dim {color: var(--as-muted);}
.e-con.dz-h1, .elementor-widget.dz-h1, .e-con.dz-h2, .elementor-widget.dz-h2, .e-con.dz-h3, .elementor-widget.dz-h3 {font-family: var(--as-font-display); font-weight: var(--as-dw); margin: 0; color: var(--as-text); text-wrap: balance;}
.e-con.dz-h1, .elementor-widget.dz-h1 {font-size: clamp(42px, 6vw, 84px); line-height: 1; letter-spacing: -0.036em;}
.e-con.dz-h2, .elementor-widget.dz-h2 {font-size: clamp(32px, 3.6vw, 52px); line-height: 1.05; letter-spacing: -0.03em;}
.e-con.dz-h3, .elementor-widget.dz-h3 {font-size: 24px; line-height: 1.2; font-weight: calc(var(--as-dw) - 100); letter-spacing: -0.01em;}
.e-con.dz-hl, .elementor-widget.dz-hl {color: var(--as-accent);}
.e-con.dz-lead, .elementor-widget.dz-lead {font-size: 20px; line-height: 1.6; color: var(--as-muted); margin: 0; max-width: 720px;}
.e-con.dz-p, .elementor-widget.dz-p {font-size: 15px; line-height: 1.6; color: var(--as-muted); margin: 0;}
.e-con.dz-btn, .elementor-widget:not(.elementor-widget-button).dz-btn, a.e-con.dz-btn {display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 56px; padding: 0 28px; border-radius: 999px; background: var(--as-accent); color: var(--as-on-accent); font: 600 17px/1 var(--as-font); text-decoration: none; border: 1px solid transparent; cursor: pointer; transition: transform .2s var(--as-ease), background .2s, border-color .2s; white-space: nowrap; flex-direction: row;}
.e-con.dz-btn:hover, .elementor-widget:not(.elementor-widget-button).dz-btn:hover {background: var(--as-accent-hover); color: var(--as-on-accent); transform: translateY(-1px);}
.e-con.dz-btn--sm, .elementor-widget.dz-btn--sm {height: 44px; padding: 0 20px; font-size: 16px;}
.e-con.dz-btn--lg, .elementor-widget.dz-btn--lg {height: 56px;}
.e-con.dz-btn--block, .elementor-widget.dz-btn--block {display: flex; width: 100%; flex-direction: row;}
.e-con.dz-btn--ghost, .elementor-widget.dz-btn--ghost, a.e-con.dz-btn--ghost {background: transparent; color: var(--as-text); border-color: var(--as-border);}
.e-con.dz-btn--ghost:hover, .elementor-widget.dz-btn--ghost:hover {background: var(--as-surface); color: var(--as-text); border-color: var(--as-muted);}
.e-con.dz-btn--dark, .elementor-widget:not(.elementor-widget-button).dz-btn--dark, a.e-con.dz-btn--dark {background: #07090f; color: #fff;}
.e-con.dz-btn--dark:hover, .elementor-widget:not(.elementor-widget-button).dz-btn--dark:hover {background: #151b27; color: #fff;}
.e-con.dz-link, .elementor-widget.dz-link {font-size: 16px; font-weight: 600; color: var(--as-text); text-decoration: none; white-space: nowrap;}
.e-con.dz-link:hover, .elementor-widget.dz-link:hover {color: var(--as-accent-ink);}
.e-con.dz-actions, .elementor-widget.dz-actions {display: flex; flex-wrap: wrap; gap: 12px; margin-top: 8px; flex-direction: row;}
.e-con.dz-logo__bg, .elementor-widget.dz-logo__bg {fill: var(--as-surface-2); stroke: var(--as-border);}
.e-con.dz-logo__t, .elementor-widget.dz-logo__t {fill: var(--as-text);}
.e-con.dz-logo__s, .elementor-widget.dz-logo__s {fill: var(--as-accent-ink);}
.e-con.dz-hd, .elementor-widget.dz-hd {position: relative; height: 88px; border-bottom: 1px solid var(--dz-line); background: color-mix(in srgb, var(--as-bg) 88%, transparent); font-family: var(--as-font);}
.e-con.dz-hd__in, .elementor-widget.dz-hd__in {height: 100%; max-width: calc(var(--as-container, 1200px) + 2 * var(--dz-pad)); margin: 0 auto; padding-inline: var(--dz-pad); display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-direction: row;}
.e-con.dz-hd__brand, .elementor-widget.dz-hd__brand {display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--as-text); flex-direction: row;}
.e-con.dz-hd__name, .elementor-widget.dz-hd__name {font-family: var(--as-font-display); font-size: 20px; font-weight: calc(var(--as-dw) - 100); letter-spacing: -0.015em;}
.e-con.dz-hd__nav, .elementor-widget.dz-hd__nav {display: flex; align-items: center; gap: 36px; font-size: 16px; font-weight: 500; flex-direction: row;}
.e-con.dz-hd__link, .elementor-widget.dz-hd__link {color: var(--as-muted); text-decoration: none; padding: 8px 0; border-bottom: 2px solid transparent; transition: color .2s ease, border-color .2s ease;}
.e-con.dz-hd__link:hover, .elementor-widget.dz-hd__link:hover {color: var(--as-text); border-bottom-color: var(--as-accent);}
html body [type=button], html body [type=reset], html body [type=submit], html body button {background-color: transparent; border: none; color: inherit; transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease, opacity 0.15s ease, transform 0.15s ease;}
[type=button]:focus, [type=button]:hover, [type=button]:active, [type=submit]:focus, [type=submit]:hover, [type=submit]:active, button:focus, button:hover, button:active, html body [type=button]:focus, html body [type=button]:hover, html body [type=button]:active, html body [type=submit]:focus, html body [type=submit]:hover, html body [type=submit]:active, html body button:focus, html body button:hover, html body button:active {background-color: var(--as-accent); color: var(--as-on-accent); border-color: var(--as-accent); text-decoration: none;}
button.asx-top, .asx-top, html body button.asx-top, html body [type=button].asx-top {border: none !important; outline: none !important;}
.e-con.dz-hd__burger, .elementor-widget.dz-hd__burger {display: none; width: 44px; height: 44px; padding: 0; border: 1px solid var(--as-border); border-radius: 999px; background: var(--as-surface); align-items: center; justify-content: center; cursor: pointer; color: var(--as-text); transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease !important;}
html body .dz-hd__burger:not(.dz-hd__burger--close), html body button.dz-hd__burger:not(.dz-hd__burger--close), html body [type=button].dz-hd__burger:not(.dz-hd__burger--close), .e-con.dz-hd__burger:not(.dz-hd__burger--close), .elementor-widget.dz-hd__burger:not(.dz-hd__burger--close) {background-color: var(--as-surface) !important; color: var(--as-text) !important; border-color: var(--as-border) !important; transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease !important;}
button.dz-hd__burger:not(.dz-hd__burger--close):hover, button.dz-hd__burger:not(.dz-hd__burger--close):focus, button.dz-hd__burger:not(.dz-hd__burger--close):active, button.dz-hd__burger:not(.dz-hd__burger--close):focus-visible,
.e-con.dz-hd__burger:not(.dz-hd__burger--close):hover, .elementor-widget.dz-hd__burger:not(.dz-hd__burger--close):hover, .dz-hd__burger:not(.dz-hd__burger--close):hover,
.e-con.dz-hd__burger:not(.dz-hd__burger--close):focus, .elementor-widget.dz-hd__burger:not(.dz-hd__burger--close):focus, .dz-hd__burger:not(.dz-hd__burger--close):focus,
.e-con.dz-hd__burger:not(.dz-hd__burger--close):active, .elementor-widget.dz-hd__burger:not(.dz-hd__burger--close):active, .dz-hd__burger:not(.dz-hd__burger--close):active,
.e-con.dz-hd__burger:not(.dz-hd__burger--close):focus-visible, .elementor-widget.dz-hd__burger:not(.dz-hd__burger--close):focus-visible, .dz-hd__burger:not(.dz-hd__burger--close):focus-visible {background-color: var(--as-accent) !important; color: var(--as-on-accent) !important; border-color: var(--as-accent) !important;}
html body .dz-hd__burger--close, html body button.dz-hd__burger--close, html body [type=button].dz-hd__burger--close, .e-con.dz-hd__burger--close, .elementor-widget.dz-hd__burger--close, .dz-menu__bar .dz-hd__burger--close, .dz-menu__bar button.dz-hd__burger--close, .dz-menu__bar [type=button].dz-hd__burger--close {background-color: var(--as-accent) !important; color: var(--as-on-accent) !important; border-color: var(--as-accent) !important; transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease !important;}
button.dz-hd__burger--close:hover, button.dz-hd__burger--close:focus, button.dz-hd__burger--close:active, button.dz-hd__burger--close:focus-visible,
[type=button].dz-hd__burger--close:hover, [type=button].dz-hd__burger--close:focus, [type=button].dz-hd__burger--close:active,
.e-con.dz-hd__burger--close:hover, .elementor-widget.dz-hd__burger--close:hover, .dz-hd__burger--close:hover,
.e-con.dz-hd__burger--close:focus, .elementor-widget.dz-hd__burger--close:focus, .dz-hd__burger--close:focus,
.e-con.dz-hd__burger--close:active, .elementor-widget.dz-hd__burger--close:active, .dz-hd__burger--close:active,
.e-con.dz-hd__burger--close:focus-visible, .elementor-widget.dz-hd__burger--close:focus-visible, .dz-hd__burger--close:focus-visible {background-color: var(--as-accent-hover) !important; color: var(--as-on-accent) !important; border-color: var(--as-accent-hover) !important;}
.e-con.dz-menu, .elementor-widget.dz-menu {position: fixed; inset: 0; z-index: 200; background: var(--as-bg); display: flex; flex-direction: column; overflow-y: auto;}
.e-con.dz-menu__bar, .elementor-widget.dz-menu__bar {height: 64px; flex-shrink: 0; padding: 0 16px 0 20px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--dz-line); flex-direction: row;}
.dz-menu__bar .e-con.dz-hd__burger {display: inline-flex; flex-direction: row;}
.e-con.dz-menu__nav, .elementor-widget.dz-menu__nav {padding: 32px 20px 0; display: flex; flex-direction: column;}
.e-con.dz-menu__foot, .elementor-widget.dz-menu__foot {margin-top: auto; padding: 24px 20px 32px; display: flex; flex-direction: column; gap: 18px;}
.dz-seg, .e-con.dz-seg, .elementor-widget.dz-seg {display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; border-radius: 999px; background: var(--as-surface); border: 1px solid var(--as-border); width: 100%; box-sizing: border-box;}
.dz-seg button, html body .dz-seg button, html body .dz-seg [type=button] {height: 44px; padding: 0 20px; margin: 0; border: 0 !important; border-radius: 999px; background: transparent !important; color: var(--as-muted) !important; font: 500 15px/1 var(--as-font); display: flex; align-items: center; justify-content: center; gap: 8px; cursor: pointer; white-space: nowrap; box-shadow: none !important; width: 100%; box-sizing: border-box; transition: background-color 0.15s ease, color 0.15s ease !important;}
html body .dz-seg button:not([aria-pressed="true"]):hover, html body .dz-seg button:not([aria-pressed="true"]):focus, html body .dz-seg button:not([aria-pressed="true"]):active {background: transparent !important; color: var(--as-text) !important; border: 0 !important; box-shadow: none !important;}
html body .dz-seg button[aria-pressed="true"], html body .dz-seg button[aria-pressed="true"]:focus, html body .dz-seg button[aria-pressed="true"]:hover, html body .dz-seg button[aria-pressed="true"]:active {background: var(--as-accent) !important; color: var(--as-on-accent) !important; font-weight: 600; border: 0 !important; border-radius: 999px; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12) !important;}
.e-con.dz-menu__links, .elementor-widget.dz-menu__links {display: flex; gap: 20px; font-size: 14px; font-weight: 600; flex-direction: row;}
.e-con.dz-ft, .elementor-widget.dz-ft {border-top: 1px solid var(--dz-line); font-size: 14px; color: var(--as-muted); background: var(--as-bg);}
.e-con.dz-ft__in, .elementor-widget.dz-ft__in {max-width: calc(var(--as-container, 1200px) + 2 * var(--dz-pad)); margin: 0 auto; padding: 48px var(--dz-pad); display: flex; align-items: flex-start; justify-content: space-between; gap: 32px; flex-direction: row;}
.e-con.dz-ft__who, .elementor-widget.dz-ft__who {display: flex; align-items: center; gap: 12px; margin-bottom: 10px; flex-direction: row;}
.dz-ft__brand .elementor-widget > p, .dz-ft__brand .elementor-widget-container > p {margin: 0;}
.e-con.dz-ft__nav, .elementor-widget.dz-ft__nav {display: flex; flex-wrap: wrap; gap: 8px 28px; justify-content: flex-end; flex-direction: row;}
.e-con.dz-hero, .elementor-widget.dz-hero {padding: clamp(44px, 5vw, 64px) 0 clamp(18px, 2vw, 28px); background-image: none !important;}
.dz-hero .e-con.dz-wrap {display: flex; flex-direction: column; align-items: flex-start; gap: clamp(16px, 2vw, 22px);}
.dz-hero--split .e-con.dz-wrap {flex-direction: row; align-items: flex-end; justify-content: space-between; gap: 48px;}
.e-con.dz-hero__txt, .elementor-widget.dz-hero__txt {display: flex; flex-direction: column; gap: 20px; max-width: 800px; align-items: flex-start;}
.dz-hero .e-con.dz-h1 {max-width: 1120px;}
.e-con.dz-card, .elementor-widget.dz-card {background: var(--as-surface); border: 1px solid var(--as-border); border-radius: var(--dz-r); padding: 28px; display: flex; flex-direction: column; gap: 14px; color: var(--as-text); text-decoration: none;}
a.e-con.dz-card {transition: transform .25s var(--as-ease), border-color .25s;}
a.e-con.dz-card:hover {transform: translateY(-3px); border-color: color-mix(in srgb, var(--as-accent) 55%, var(--as-border)); color: var(--as-text);}
.e-con.dz-card--accent, .elementor-widget.dz-card--accent {background: var(--as-accent); color: var(--as-on-accent); border-color: var(--as-accent); justify-content: space-between;}
.e-con.dz-card--alt, .elementor-widget.dz-card--alt {background: var(--as-surface-2);}
.e-con.dz-bento, .elementor-widget.dz-bento {display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 16px;}
.e-con.dz-c3, .elementor-widget.dz-c3 {grid-column: span 3;}
.e-con.dz-c4, .elementor-widget.dz-c4 {grid-column: span 4;}
.e-con.dz-c5, .elementor-widget.dz-c5 {grid-column: span 5;}
.e-con.dz-c6, .elementor-widget.dz-c6 {grid-column: span 6;}
.e-con.dz-c7, .elementor-widget.dz-c7 {grid-column: span 7;}
.e-con.dz-c8, .elementor-widget.dz-c8 {grid-column: span 8;}
.e-con.dz-c12, .elementor-widget.dz-c12 {grid-column: span 12;}
.e-con.dz-r2, .elementor-widget.dz-r2 {grid-row: span 2;}
.e-con.dz-cap, .elementor-widget.dz-cap {font-family: var(--as-mono); font-size: 15px; color: var(--as-muted); font-weight: var(--as-mw); }
.dz-card--accent .e-con.dz-cap {color: inherit;}
.e-con.dz-big, .elementor-widget.dz-big {font-family: var(--as-font-display); font-size: 64px; line-height: 1; font-weight: var(--as-dw); letter-spacing: -0.03em;}
.e-con.dz-t24, .elementor-widget.dz-t24 {font-family: var(--as-font-display); font-size: 24px; line-height: 1.2; font-weight: calc(var(--as-dw) - 100);}
.e-con.dz-t22, .elementor-widget.dz-t22 {font-family: var(--as-font-display); font-size: 22px; line-height: 1.25; font-weight: calc(var(--as-dw) - 100);}
.e-con.dz-dot, .elementor-widget.dz-dot {width: 10px; height: 10px; border-radius: 50%; background: var(--as-accent); display: inline-block;}
.e-con.dz-live, .elementor-widget.dz-live {display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 600; flex-direction: row;}
.e-con.dz-chips, .elementor-widget.dz-chips {display: flex; flex-wrap: wrap; gap: 8px; flex-direction: row;}
.e-con.dz-chip, .elementor-widget.dz-chip {font-size: 13px; font-weight: 600; padding: 6px 12px; border-radius: 999px; border: 1px solid var(--as-border); color: var(--as-text);}
.e-con.dz-pl, .elementor-widget.dz-pl {padding: 0; list-style: none; margin: 0; display: flex; flex-direction: column;}
.e-con.dz-pl__head, .elementor-widget.dz-pl__head {display: flex; justify-content: space-between; padding: 0 6px 12px; font-family: var(--as-mono); font-size: 13px; color: var(--as-muted); flex-direction: row; font-weight: var(--as-mw); }
.e-con.dz-pl__ic, .elementor-widget.dz-pl__ic {width: 40px; height: 40px; flex-shrink: 0; border-radius: 12px; background: var(--as-surface-2); color: var(--as-text); display: flex; align-items: center; justify-content: center; font-family: var(--as-font-display); font-weight: var(--as-dw); flex-direction: row;}
.e-con.dz-pl__ic, .elementor-widget.dz-pl__ic {transition: background .2s, color .2s, transform .2s var(--as-ease);}
.e-con.dz-term, .elementor-widget.dz-term {font-family: var(--as-mono); font-size: 14px; gap: 12px; font-weight: var(--as-mw); }
.e-con.dz-logos, .elementor-widget.dz-logos {border-block: 1px solid var(--dz-line); padding-block: 40px;}
.dz-logos .e-con.dz-wrap {display: flex; align-items: center; gap: 48px; flex-direction: row;}
.e-con.dz-logos__lab, .elementor-widget.dz-logos__lab {flex-shrink: 0; font-family: var(--as-mono); font-size: 13px; color: var(--as-muted); font-weight: var(--as-mw); }
.e-con.dz-logos__row, .elementor-widget.dz-logos__row {display: flex; flex-wrap: wrap; column-gap: 40px; row-gap: 12px; font-family: var(--as-font-display); font-size: 22px; font-weight: calc(var(--as-dw) - 100); color: var(--dz-dim); flex-direction: row;}
.e-con.dz-marq, .elementor-widget.dz-marq {overflow: hidden; flex: 1; min-width: 0;}
.e-con.dz-marq__track, .elementor-widget.dz-marq__track {display: flex; width: max-content; gap: 40px; animation: dz-marq 36s linear infinite; flex-direction: row;}
.e-con.dz-head, .elementor-widget.dz-head {display: flex; align-items: flex-end; justify-content: space-between; gap: clamp(20px, 3vw, 32px); margin-bottom: clamp(22px, 2.6vw, 34px); flex-direction: row;}
.e-con.dz-head__txt, .elementor-widget.dz-head__txt {display: flex; flex-direction: column; gap: 16px; max-width: 800px;}
.e-con.dz-grid, .elementor-widget.dz-grid {display: grid; gap: 16px;}
.e-con.dz-g2, .elementor-widget.dz-g2 {grid-template-columns: repeat(2, minmax(0, 1fr));}
.e-con.dz-g3, .elementor-widget.dz-g3 {grid-template-columns: repeat(3, minmax(0, 1fr));}
.e-con.dz-g4, .elementor-widget.dz-g4 {grid-template-columns: repeat(4, minmax(0, 1fr));}
.e-con.dz-svc, .elementor-widget.dz-svc {position: relative; padding: 32px; gap: 16px; cursor: pointer;}
.e-con.dz-card.dz-svc:not(:has(a)), .dz-card.dz-svc:not(:has(a)) {cursor: default;}
.dz-svc .e-con.dz-n {font-family: var(--as-mono); font-size: 14px; color: var(--as-accent-ink); font-weight: var(--as-mw); }
.dz-svc .e-con.dz-go, .dz-svc .dz-go {margin-top: auto; font-size: 15px; font-weight: 600;}
.dz-svc .dz-go a, .dz-svc a.dz-go__link {color: var(--as-text); text-decoration: none; display: inline-flex; align-items: center; gap: 6px; transition: color 0.15s ease, transform 0.15s ease;}
.dz-svc .dz-go a::after, .dz-svc a.dz-go__link::after {content: ""; position: absolute; inset: 0; z-index: 2;}
.dz-svc:hover .dz-go a, .dz-svc:hover a.dz-go__link {color: var(--as-accent); transform: translateX(4px);}
.e-con.dz-card.dz-svc {transition: transform .25s var(--as-ease), border-color .25s ease, box-shadow .25s ease;}
.e-con.dz-card.dz-svc:hover {transform: translateY(-3px); border-color: color-mix(in srgb, var(--as-accent) 55%, var(--as-border)); box-shadow: 0 12px 28px -8px rgba(0, 0, 0, 0.08);}
html[data-hover="off"] .e-con.dz-card.dz-svc:hover {transform: none;}
.e-con.dz-svc .dz-h3 a, .dz-svc .dz-h3 a {color: inherit; text-decoration: none; transition: color .15s ease;}
.e-con.dz-svc:hover .dz-h3 a, .dz-svc:hover .dz-h3 a {color: var(--as-accent);}
.e-con.dz-svc .dz-h3 a::after, .dz-svc .dz-h3 a::after {content: ""; position: absolute; inset: 0; z-index: 1;}
.e-con.dz-svc .dz-links, .e-con.dz-svc .dz-links a, .e-con.dz-svc .dz-chips, .dz-svc .dz-links, .dz-svc .dz-links a, .dz-svc .dz-chips {position: relative; z-index: 2;}
.e-con.dz-svc .dz-links a:hover, .dz-svc .dz-links a:hover {color: var(--as-accent);}
.e-con.dz-work, .elementor-widget.dz-work {padding: 0; overflow: hidden; gap: 0;}
.e-con.dz-work__vis, .elementor-widget.dz-work__vis {height: 260px; background: var(--as-surface-2); display: flex; align-items: center; justify-content: center; gap: 16px; padding: 24px; flex-direction: row;}
.e-con.dz-work__body, .elementor-widget.dz-work__body {padding: 32px; display: flex; flex-direction: column; gap: 10px;}
.dz-work__body .elementor-widget-heading .elementor-heading-title {margin: 0; font-family: var(--as-font-display); font-size: 28px; font-weight: calc(var(--as-dw) - 100);}
.e-con.dz-mini, .elementor-widget.dz-mini {width: 220px; max-width: 100%; background: var(--as-surface); border: 1px solid var(--as-border); border-radius: 16px; padding: 18px; display: flex; flex-direction: column; gap: 10px;}
.e-con.dz-pill, .elementor-widget.dz-pill {display: inline-flex; align-items: center; justify-content: center; height: 34px; padding: 0 14px; border-radius: 999px; background: var(--as-accent); color: var(--as-on-accent); font-size: 13px; font-weight: 600; flex-direction: row;}
.e-con.dz-pill--off, .elementor-widget.dz-pill--off {background: var(--as-surface-2); color: var(--as-muted);}
.e-con.dz-warn, .elementor-widget.dz-warn {color: #d9622a; font-size: 12px; font-weight: 600;}
.e-con.dz-tab, .elementor-widget.dz-tab {display: flex; flex-wrap: wrap; gap: 8px; flex-direction: row;}
.e-con.dz-block, .elementor-widget.dz-block {height: 56px; border-radius: 10px; background: var(--as-surface-2); border: 1px solid var(--as-border);}
.e-con.dz-blocks, .elementor-widget.dz-blocks {display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; width: 100%;}
.e-con.dz-input, .elementor-widget.dz-input {height: 40px; border: 1px solid var(--as-border); border-radius: 8px; background: var(--as-surface); display: flex; align-items: center; padding: 0 12px; font-size: 12px; color: var(--as-muted); flex-direction: row;}
.e-con.dz-post, .elementor-widget.dz-post {padding: 32px; border-radius: 24px; gap: 14px;}
.dz-post .e-con.dz-cat, .dz-post .elementor-widget.dz-cat, .dz-post .dz-cat {font-family: var(--as-mono) !important; font-size: 14px; color: var(--as-accent-ink); font-weight: 600; line-height: 1.4;}
.dz-post .elementor-widget-heading .elementor-heading-title {margin: 0; font-family: var(--as-font-display); font-size: 23px; line-height: 1.3; font-weight: calc(var(--as-dw) - 100);}
.dz-post .e-con.dz-date, .dz-post .elementor-widget.dz-date, .dz-post .dz-date {margin-top: auto; font-family: var(--as-mono) !important; font-size: 14px; color: var(--as-muted); font-weight: var(--as-mw, 400); line-height: 1.4;}
.e-con.dz-feat, .elementor-widget.dz-feat {display: grid; grid-template-columns: 1fr 1fr; padding: 0; overflow: hidden; border-radius: 32px; gap: 0;}
.e-con.dz-feat__vis, .elementor-widget.dz-feat__vis {background: var(--as-surface-2); min-height: 400px; display: flex; align-items: center; justify-content: center; gap: 16px; padding: 40px; flex-direction: row;}
.e-con.dz-feat__txt, .elementor-widget.dz-feat__txt {padding: 56px; display: flex; flex-direction: column; gap: 16px; justify-content: center;}
.dz-feat__txt .elementor-widget-heading .elementor-heading-title {margin: 0; font-family: var(--as-font-display); font-size: 40px; line-height: 1.1; font-weight: var(--as-dw); letter-spacing: -0.03em;}
.e-con.dz-cta, .elementor-widget.dz-cta {background: var(--as-accent); color: var(--as-on-accent); border-radius: 32px; padding: 64px 80px; display: flex; align-items: center; justify-content: space-between; gap: 48px; flex-direction: row;}
.dz-cta .elementor-widget-heading .elementor-heading-title {margin: 0; font-family: var(--as-font-display); font-size: clamp(32px, 3.6vw, 48px); line-height: 1.04; font-weight: var(--as-dw); letter-spacing: -0.03em; max-width: 760px; color: inherit;}
.dz-cta .elementor-widget > p, .dz-cta .elementor-widget-container > p {margin: 12px 0 0; font-size: 17px; font-weight: 500;}
.dz-cta .e-con.dz-mailto {display: block; margin-top: 14px; font-family: var(--as-mono); font-size: 14px; color: inherit; font-weight: var(--as-mw); }
@media (max-width: 1100px) {
.e-con.dz-g4, .elementor-widget.dz-g4 {grid-template-columns: repeat(2, minmax(0, 1fr));}
.e-con.dz-c3, .elementor-widget.dz-c3, .e-con.dz-c4, .elementor-widget.dz-c4 {grid-column: span 6;}
.e-con.dz-c5, .elementor-widget.dz-c5, .e-con.dz-c7, .elementor-widget.dz-c7, .e-con.dz-c8, .elementor-widget.dz-c8 {grid-column: span 12;}
.e-con.dz-r2, .elementor-widget.dz-r2 {grid-row: auto;}
.dz-logos .e-con.dz-wrap {flex-direction: column; align-items: flex-start; gap: 16px;}
.e-con.dz-cta, .elementor-widget.dz-cta {padding: 48px 40px;}
.e-con.dz-feat, .elementor-widget.dz-feat {grid-template-columns: 1fr;}
.e-con.dz-feat__vis, .elementor-widget.dz-feat__vis {min-height: 260px;}
}
@media (max-width: 900px) {
.e-con.dz-hd__nav, .elementor-widget.dz-hd__nav {display: none;}
.e-con.dz-hd, .elementor-widget.dz-hd {height: 64px;}
.e-con.dz-hd__in, .elementor-widget.dz-hd__in {padding-inline: 20px 16px;}
.e-con.dz-hd__name, .elementor-widget.dz-hd__name {font-size: 18px;}
.e-con.dz-hd__burger, .elementor-widget.dz-hd__burger {display: inline-flex; flex-direction: row;}
.e-con.dz-ft__in, .elementor-widget.dz-ft__in {flex-direction: column; padding-inline: 20px;}
.e-con.dz-ft__nav, .elementor-widget.dz-ft__nav {justify-content: flex-start; gap: 8px 20px;}
}
@media (max-width: 720px) {
.e-con.dz-sec, .elementor-widget.dz-sec {padding-block: 56px;}
.e-con.dz-hero, .elementor-widget.dz-hero {padding: 40px 0 32px; background-size: 40px 40px;}
.e-con.dz-page-top,
.elementor-widget.dz-page-top,
.dz-page-top,
section.dz-page-top,
.elementor-element.dz-page-top {
	--padding-top: 36px !important;
	--padding-bottom: 24px !important;
	--padding-block-start: 36px !important;
	--padding-block-end: 24px !important;
	padding-top: 36px !important;
	padding-bottom: 24px !important;
	padding-block: 36px 24px !important;
}
.dz-hero--split .e-con.dz-wrap {flex-direction: column; align-items: stretch; gap: 24px;}
.e-con.dz-lead, .elementor-widget.dz-lead {font-size: 17px;}
.e-con.dz-h1, .elementor-widget.dz-h1 {letter-spacing: -0.034em;}
.e-con.dz-actions, .elementor-widget.dz-actions {flex-direction: column; align-self: stretch;}
.dz-actions .e-con.dz-btn {width: 100%; height: 52px; font-size: 16px;}
.e-con.dz-g2, .elementor-widget.dz-g2, .e-con.dz-g3, .elementor-widget.dz-g3, .e-con.dz-g4, .elementor-widget.dz-g4 {grid-template-columns: 1fr;}
.e-con.dz-bento, .elementor-widget.dz-bento {grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px;}
.e-con.dz-card, .elementor-widget.dz-card {padding: 20px; border-radius: 20px;}
.e-con.dz-big, .elementor-widget.dz-big {font-size: 36px;}
.e-con.dz-head, .elementor-widget.dz-head {flex-direction: column; align-items: flex-start; gap: 16px; margin-bottom: 32px;}
.e-con.dz-work__vis, .elementor-widget.dz-work__vis {height: 170px; padding: 16px; gap: 10px;}
.e-con.dz-work__body, .elementor-widget.dz-work__body {padding: 20px;}
.dz-work__body .elementor-widget-heading .elementor-heading-title {font-size: 21px;}
.e-con.dz-mini, .elementor-widget.dz-mini {padding: 12px; width: 50%;}
.e-con.dz-post, .elementor-widget.dz-post {padding: 20px; border-radius: 20px;}
.dz-post .elementor-widget-heading .elementor-heading-title {font-size: 19px;}
.e-con.dz-feat__txt, .elementor-widget.dz-feat__txt {padding: 22px;}
.dz-feat__txt .elementor-widget-heading .elementor-heading-title {font-size: 24px;}
.e-con.dz-feat__meta, .elementor-widget.dz-feat__meta, .dz-feat__meta {gap: 6px 10px;}
.dz-feat .dz-cat, .dz-feat .dz-feat-tag, .dz-feat .dz-date {font-size: 13.5px !important;}
.e-con.dz-cta, .elementor-widget.dz-cta {flex-direction: column; align-items: stretch; padding: 32px 24px; border-radius: 24px; gap: 16px;}
.dz-cta .e-con.dz-btn {width: 100%; height: 52px; font-size: 16px;}
.e-con.dz-logos, .elementor-widget.dz-logos {padding-block: 32px;}
.e-con.dz-logos__row, .elementor-widget.dz-logos__row {column-gap: 18px; row-gap: 8px; font-size: 17px;}
}
@media (prefers-reduced-motion: reduce) {
.e-con.dz-marq__track, .elementor-widget.dz-marq__track {animation: none;}
.e-con.dz-btn, .elementor-widget.dz-btn, a.e-con.dz-card {transition: none;}
}
.e-con.dz-search, .elementor-widget.dz-search {display: flex; flex-direction: column; gap: 8px; width: 360px; max-width: 100%;}
.dz-posts .e-con.dz-search {margin-bottom: 24px;}
.e-con.dz-filter, .elementor-widget.dz-filter {display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 48px; flex-direction: row;}
.e-con.dz-fchip, .elementor-widget.dz-fchip {display: inline-flex; align-items: center; height: 44px; padding: 0 18px; border-radius: 999px; border: 1px solid var(--as-border); color: var(--as-text); text-decoration: none; font-size: 15px; font-weight: 600; transition: border-color .2s, background .2s; flex-direction: row;}
.e-con.dz-fchip:hover, .elementor-widget.dz-fchip:hover {border-color: var(--as-muted);}
.dz-posts .e-con.dz-feat {margin-bottom: 16px;}
.e-con.dz-feat__vis, .elementor-widget.dz-feat__vis, .dz-feat__vis {padding: 0 !important; position: relative; overflow: hidden; display: flex; align-items: stretch; justify-content: center; background: var(--as-surface-2); min-height: 400px;}
.dz-feat__vis img, .e-con.dz-feat__vis img, .elementor-widget.dz-feat__vis img {width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);}
.dz-feat:hover .dz-feat__vis img, .e-con.dz-feat:hover .dz-feat__vis img {transform: scale(1.03);}
.e-con.dz-feat__mark, .elementor-widget.dz-feat__mark {font-family: var(--as-font-display); font-weight: var(--as-dw); font-size: 36px; color: var(--as-accent-ink); letter-spacing: -0.03em; padding: 24px; text-align: center;}
.e-con.dz-feat__meta, .elementor-widget.dz-feat__meta, .dz-feat__meta {display: flex; gap: 12px; align-items: center; flex-direction: row; flex-wrap: wrap; font-family: var(--as-mono);}
.dz-feat .e-con.dz-cat, .dz-feat .elementor-widget.dz-cat, .dz-feat .dz-cat {font-family: var(--as-mono) !important; font-size: 14px; color: var(--as-accent-ink); font-weight: 600; line-height: 1.4; letter-spacing: -0.01em;}
.dz-feat .e-con.dz-feat-tag, .dz-feat .elementor-widget.dz-feat-tag, .dz-feat .dz-feat-tag, .dz-feat .e-con.dz-date, .dz-feat .elementor-widget.dz-date, .dz-feat .dz-date {font-family: var(--as-mono) !important; font-size: 14px; color: var(--as-muted); font-weight: var(--as-mw, 400); line-height: 1.4; letter-spacing: -0.01em; display: inline-flex; align-items: center;}
.dz-feat .e-con.dz-lead {font-size: 17px; line-height: 1.65;}
.e-con.dz-more, .elementor-widget.dz-more {font-size: 16px; font-weight: 600;}
a.e-con.dz-feat:hover {transform: none;}
.e-con.dz-pager, .elementor-widget.dz-pager {display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 48px; font-size: 15px; font-weight: 600; flex-wrap: wrap; flex-direction: row;}
.e-con.dz-pager__side, .elementor-widget.dz-pager__side {display: inline-flex; align-items: center; height: 44px; padding: 0 18px; border-radius: 999px; border: 1px solid var(--as-border); color: var(--as-text); text-decoration: none; flex-direction: row;}
.e-con.dz-pager__nums, .elementor-widget.dz-pager__nums {display: flex; gap: 8px; flex-direction: row;}
.e-con.dz-pager__n, .elementor-widget.dz-pager__n {display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 999px; border: 1px solid var(--as-border); color: var(--as-text); text-decoration: none; flex-direction: row;}
.e-con.dz-pager__count, .elementor-widget.dz-pager__count {display: none; font-family: var(--as-mono); font-size: 13px; color: var(--as-muted); font-weight: var(--as-mw); }
.dz-form .elementor-widget > p, .dz-form .elementor-widget-container > p {margin: 0 0 18px;}
.e-con.dz-form__row, .elementor-widget.dz-form__row {display: grid; grid-template-columns: 1fr 1fr; gap: 16px;}
.dz-form .e-con.dz-btn {height: 52px;}
.e-con.dz-hp, .elementor-widget.dz-hp {position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden;}
.e-con.dz-note, .elementor-widget.dz-note {margin: 0 0 20px; padding: 14px 18px; border-radius: 14px; font-size: 15px; font-weight: 500; border: 1px solid var(--as-border);}
.e-con.dz-note--ok, .elementor-widget.dz-note--ok {border-color: var(--as-success, #3ddc84); background: color-mix(in srgb, var(--as-success, #3ddc84) 12%, transparent);}
.e-con.dz-note--err, .elementor-widget.dz-note--err {border-color: #e5484d; background: color-mix(in srgb, #e5484d 12%, transparent);}
.e-con.dz-check, .elementor-widget.dz-check {list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; font-size: 15px; color: var(--as-text);}
.e-con.dz-price, .elementor-widget.dz-price {margin-top: auto; padding-top: 20px; border-top: 1px solid var(--dz-line); display: flex; justify-content: space-between; font-size: 14px; color: var(--as-muted); flex-direction: row;}
.e-con.dz-svc--lg, .elementor-widget.dz-svc--lg, #website-development, #plugin-development, #woocommerce, #speed-optimization {padding: 40px; scroll-margin-top: 96px;}
.dz-svc--lg .e-con.dz-h3 {font-size: 28px;}
.e-con.dz-step, .elementor-widget.dz-step {padding: 24px; gap: 10px; border-radius: 20px;}
.dz-step .e-con.dz-n {font-family: var(--as-mono); font-size: 13px; color: var(--as-accent-ink); font-weight: var(--as-mw); }
.dz-step .elementor-widget-heading .elementor-heading-title {margin: 0; font-family: var(--as-font-display); font-size: 20px; font-weight: calc(var(--as-dw) - 100);}
.e-con.dz-band, .elementor-widget.dz-band {border-block: 1px solid var(--dz-line);}
.e-con.dz-split, .elementor-widget.dz-split {display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 64px; align-items: start;}
.e-con.dz-faq__item, .elementor-widget.dz-faq__item {padding: 22px 0; border-top: 1px solid var(--dz-line);}
.dz-faq__item .elementor-widget-heading .elementor-heading-title {margin: 0 0 8px; font-family: var(--as-font-body, var(--as-font)); font-size: 17px; font-weight: 600;}
.dz-faq__item .elementor-widget > p, .dz-faq__item .elementor-widget-container > p {margin: 0; font-size: 15px; line-height: 1.6; color: var(--as-muted);}
.e-con.dz-contact, .elementor-widget.dz-contact {background: var(--as-surface); border: 1px solid var(--as-border); border-radius: 32px; padding: 64px; display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 64px;}
.e-con.dz-contact__txt, .elementor-widget.dz-contact__txt {display: flex; flex-direction: column; gap: 16px; align-items: flex-start;}
.e-con.dz-row, .elementor-widget.dz-row {display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 6fr) minmax(0, 3fr); gap: 32px; padding: 28px 0; border-top: 1px solid var(--dz-line); align-items: start;}
.dz-row .elementor-widget-heading .elementor-heading-title {margin: 0; font-family: var(--as-font-display); font-size: 22px; font-weight: calc(var(--as-dw) - 100);}
.dz-row .elementor-widget > p, .dz-row .elementor-widget-container > p {margin: 0; font-size: 16px; line-height: 1.6; color: var(--as-muted);}
.dz-row .e-con.dz-tags {font-family: var(--as-mono); font-size: 13px; color: var(--as-muted); font-weight: var(--as-mw); }
.e-con.dz-row--exp, .elementor-widget.dz-row--exp {grid-template-columns: minmax(0, 3fr) minmax(0, 8fr);}
.dz-row--exp .elementor-widget-heading .elementor-heading-title {font-size: 20px;}
.dz-row--exp .e-con.dz-tags {font-size: 13px;}
.e-con.dz-badge, .elementor-widget.dz-badge, .dz-badge, span.dz-badge {display: inline-block; margin-left: 8px; padding: 2px 8px; border-radius: 6px; background: var(--as-accent) !important; color: var(--as-on-accent) !important; font: 600 12px/1.4 var(--as-font); vertical-align: middle;}
.e-con.dz-tcard, .elementor-widget.dz-tcard {display: grid; grid-template-columns: 5fr 7fr; padding: 0; overflow: hidden; border-radius: 32px; gap: 0;}
.e-con.dz-tcard__vis, .elementor-widget.dz-tcard__vis {background: var(--as-surface-2); padding: 48px; display: flex; flex-direction: column; gap: 12px; justify-content: center; font-family: var(--as-mono); font-size: 14px; font-weight: var(--as-mw); }
.e-con.dz-tcard__txt, .elementor-widget.dz-tcard__txt {padding: 48px; display: flex; flex-direction: column; gap: 14px; justify-content: center;}
.e-con.dz-links, .elementor-widget.dz-links {display: flex; gap: 20px; font-size: 14px; font-weight: 600; flex-wrap: wrap; flex-direction: row;}
.e-con.dz-photo, .elementor-widget.dz-photo {border: 2px dashed var(--as-border); border-radius: 32px; aspect-ratio: 3 / 4; background: var(--as-surface); display: flex; align-items: center; justify-content: center; color: var(--as-muted); font-size: 14px; width: 100%; overflow: hidden; flex-direction: row;}
.e-con.dz-skills, .elementor-widget.dz-skills {display: grid; grid-template-columns: 1fr 1fr; gap: 16px;}
.e-con.dz-skill, .elementor-widget.dz-skill {padding: 28px; border-radius: 24px; gap: 14px;}
.dz-hero--about .e-con.dz-wrap {flex-direction: row; align-items: center; justify-content: space-between; gap: 64px;}
.dz-hero--about .e-con.dz-hero__txt {max-width: 760px;}
.dz-hero--about .e-con.dz-photo {max-width: 416px; flex-shrink: 0;}
.e-con.dz-pcard-head, .elementor-widget.dz-pcard-head {display: flex; align-items: center; gap: 14px; flex-direction: row;}
.e-con.dz-plugs-2, .elementor-widget.dz-plugs-2 {display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px;}
.e-con.dz-readbar, .elementor-widget.dz-readbar, .dz-readbar, #asx-site-header .dz-readbar {position: absolute; bottom: 0; left: 0; right: 0; height: 2.5px; width: 100%; background: var(--as-accent); transform: scaleX(0); transform-origin: 0 50%; z-index: 30; pointer-events: none;}
body:not(.single-post) .dz-readbar {display: none !important;}
.e-con.dz-postmeta, .elementor-widget.dz-postmeta {display: flex; align-items: center; gap: 12px; margin-top: 18px; font-size: 14px; color: var(--as-muted); flex-direction: row;}
.dz-postmeta .e-con.dz-av {width: 32px; height: 32px; border-radius: 50%; background: var(--as-accent); color: var(--as-on-accent); display: inline-flex; align-items: center; justify-content: center; font: 700 12px var(--as-font); flex-direction: row;}
.e-con.dz-postcta, .elementor-widget.dz-postcta {max-width: calc(var(--as-container, 1200px) + 2 * var(--dz-pad)); margin: 64px auto 0; padding: 0 var(--dz-pad) 96px;}
@media (max-width: 1100px) {
.e-con.dz-split, .elementor-widget.dz-split {grid-template-columns: 1fr; gap: 32px;}
.e-con.dz-contact, .elementor-widget.dz-contact {grid-template-columns: 1fr; padding: 40px; gap: 32px;}
.e-con.dz-row, .elementor-widget.dz-row {grid-template-columns: 1fr; gap: 10px;}
.e-con.dz-tcard, .elementor-widget.dz-tcard {grid-template-columns: 1fr;}
.dz-hero--about .e-con.dz-wrap {flex-direction: column; align-items: flex-start; gap: 32px;}
.dz-hero--about .e-con.dz-photo {max-width: 360px;}
}
@media (max-width: 720px) {
.e-con.dz-search, .elementor-widget.dz-search {width: 100%;}
.e-con.dz-form__row, .elementor-widget.dz-form__row {grid-template-columns: 1fr; gap: 0;}
.e-con.dz-filter, .elementor-widget.dz-filter {flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(-1 * var(--dz-pad)); padding-inline: var(--dz-pad); margin-bottom: 28px; scrollbar-width: none;}
.e-con.dz-fchip, .elementor-widget.dz-fchip {flex-shrink: 0; padding: 0 16px; font-size: 14px;}
.e-con.dz-pager, .elementor-widget.dz-pager {justify-content: space-between;}
.e-con.dz-pager__nums, .elementor-widget.dz-pager__nums {display: none;}
.e-con.dz-pager__count, .elementor-widget.dz-pager__count {display: inline;}
.e-con.dz-skills, .elementor-widget.dz-skills, .e-con.dz-plugs-2, .elementor-widget.dz-plugs-2 {grid-template-columns: 1fr;}
.e-con.dz-contact, .elementor-widget.dz-contact {padding: 24px; border-radius: 24px;}
.e-con.dz-tcard__vis, .elementor-widget.dz-tcard__vis, .e-con.dz-tcard__txt, .elementor-widget.dz-tcard__txt {padding: 24px;}
.e-con.dz-svc--lg, .elementor-widget.dz-svc--lg {padding: 24px;}
}
.e-con.dz-sec--blog, .elementor-widget.dz-sec--blog {padding-top: 0;}
.e-con.dz-marq, .elementor-widget.dz-marq {width: 100%;}
@media (max-width: 720px) {
.e-con.dz-marq__track, .elementor-widget.dz-marq__track {width: auto; flex-wrap: wrap; animation: none !important; transform: none !important; gap: 8px 18px;}
}
@media (max-width: 720px) {
.e-con.dz-work__vis, .elementor-widget.dz-work__vis {height: auto; min-height: 170px; overflow: hidden;}
.e-con.dz-t24, .elementor-widget.dz-t24 {font-size: 20px;}
.e-con.dz-t22, .elementor-widget.dz-t22 {font-size: 19px;}
.e-con.dz-tab, .elementor-widget.dz-tab {gap: 6px;}
.dz-tab .e-con.dz-pill {height: 30px; padding: 0 10px; font-size: 12px;}
.e-con.dz-block, .elementor-widget.dz-block {height: 36px;}
}
.dz-hero .e-con.dz-filter {margin-inline: 0; padding-inline: 0; width: 100%; margin-bottom: 0;}
.e-con.dz-postmeta, .elementor-widget.dz-postmeta {flex-wrap: wrap; row-gap: 4px;}
.e-con.dz-after-post, .elementor-widget.dz-after-post {padding-top: 72px;}

/* ---------------------------------------------------------------------------
   Widgets: small extras that need Elementor's markup
   --------------------------------------------------------------------------- */
.dz .elementor-hl, .dz .dz-hl { color: var(--as-accent); }
a.e-con.dz-card { text-decoration: none; }
.dz-jsb { justify-content: space-between; }
.dz-h1--about { font-size: clamp(40px, 5.4vw, 76px); }
.elementor-widget.dz-live > p, .elementor-widget.dz-live .elementor-widget-container > p { display: flex; align-items: center; gap: 10px; }
.elementor-widget.dz-linkw { font-size: 16px; font-weight: 600; color: var(--as-text); }
.elementor-widget.dz-linkw a:hover { color: var(--as-accent-ink); }
.dz .elementor-widget-image img { display: block; width: 100%; }

/* Work card visual: the image fills the slot edge to edge. */
.e-con.dz-work__vis { padding: 0; overflow: hidden; align-items: stretch; justify-content: stretch; position: relative; }
.dz-work__vis .elementor-widget-image { width: 100%; height: 100%; }
.dz-work__vis .elementor-widget-image .elementor-widget-container { height: 100%; }
.dz-work__vis .elementor-widget-image img { width: 100%; height: 100%; object-fit: cover; object-position: top center; transition: transform .4s var(--as-ease); }
a.dz-card:hover .dz-work__vis img { transform: scale(1.04); }

/* Buttons (Elementor Button widget carrying class dzb) */
.elementor-widget-button.dzb .elementor-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 56px; padding: 0 28px; border-radius: 999px; background: var(--as-accent); color: var(--as-on-accent); font: 600 17px/1 var(--as-font); text-decoration: none; border: 1px solid transparent; box-shadow: none; fill: currentColor; transition: background .2s, transform .2s, border-color .2s; }
.elementor-widget-button.dzb .elementor-button:hover, .elementor-widget-button.dzb .elementor-button:focus { background: var(--as-accent-hover); color: var(--as-on-accent); transform: translateY(-1px); }
.elementor-widget-button.dzb--ghost .elementor-button { background: transparent; color: var(--as-text); border-color: var(--as-border); }
.elementor-widget-button.dzb--ghost .elementor-button:hover, .elementor-widget-button.dzb--ghost .elementor-button:focus { background: var(--as-surface); color: var(--as-text); border-color: var(--as-muted); }
.elementor-widget-button.dzb, .elementor-widget-button.dzb--dark, .dz-cta .elementor-widget-button, .dz-cta .dzb, .dz-cta .dzb--dark { background: transparent !important; background-color: transparent !important; border: none !important; box-shadow: none !important; transform: none !important; padding: 0 !important; }
.elementor-widget-button.dzb:hover, .elementor-widget-button.dzb--dark:hover, .dz-cta .elementor-widget-button:hover, .dz-cta .dzb:hover, .dz-cta .dzb--dark:hover { background: transparent !important; background-color: transparent !important; border: none !important; box-shadow: none !important; transform: none !important; }
.elementor-widget-button.dzb--dark .elementor-button, .dz-cta .elementor-widget-button .elementor-button, .dz-cta .elementor-widget-button.dzb--dark .elementor-button, .dz-cta .dzb--dark .elementor-button, .dz-cta a.dz-btn, .dz-cta a.dz-btn--dark, .dz-cta .dz-btn--dark { background: #07090f !important; color: #ffffff !important; font-weight: 700 !important; border-radius: 999px !important; box-shadow: 0 6px 20px rgba(0, 0, 0, 0.16) !important; }
.elementor-widget-button.dzb--dark .elementor-button:hover, .elementor-widget-button.dzb--dark .elementor-button:focus, .dz-cta .elementor-widget-button .elementor-button:hover, .dz-cta .elementor-widget-button .elementor-button:focus, .dz-cta .elementor-widget-button.dzb--dark .elementor-button:hover, .dz-cta .elementor-widget-button.dzb--dark .elementor-button:focus, .dz-cta .dzb--dark .elementor-button:hover, .dz-cta .dzb--dark .elementor-button:focus, .dz-cta a.dz-btn:hover, .dz-cta a.dz-btn--dark:hover, .dz-cta .dz-btn--dark:hover { background: #151b27 !important; color: #ffffff !important; transform: translateY(-2px) !important; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25) !important; }
@media (max-width: 720px) {
	.dz-actions .elementor-widget-button, .dz-cta .elementor-widget-button { width: 100%; }
	.elementor-widget-button.dzb .elementor-button { width: 100%; height: 52px; font-size: 16px; }
	.e-con.dz-work__vis { min-height: 170px; }
}
@media (prefers-reduced-motion: reduce) {
	.elementor-widget-button.dzb .elementor-button { transition: none; }
}
.dz-card--accent .elementor-widget.dz-cap, .dz-cta .elementor-widget { color: inherit; }
.elementor-widget-button.dzb .elementor-button { white-space: nowrap; }
/* Work card without an image yet: hide Elementor's grey placeholder on the live site (the editor still shows it). */
body:not(.elementor-editor-active) .dz-work__vis img[src*="placeholder"] { display: none; }
.dz-photo .elementor-widget-image { width: 100%; height: 100%; }
.dz-photo .elementor-widget-image img { width: 100%; height: 100%; object-fit: cover; }
body:not(.elementor-editor-active) .dz-photo img[src*="placeholder"] { display: none; }

/* Bento on phones: two columns; wide cards take both. */
@media (max-width: 720px) {
	.e-con.dz-bento > .e-con, .e-con.dz-bento > .elementor-widget { grid-column: span 1; }
	.e-con.dz-bento > .e-con.dz-c5, .e-con.dz-bento > .e-con.dz-c7, .e-con.dz-bento > .e-con.dz-c8, .e-con.dz-bento > .e-con.dz-c12, .e-con.dz-bento > .e-con.dz-term { grid-column: span 2; }
}

/* Featured (full-width) work card */
.dz .e-con.dz-work.dz-work--wide { grid-column: 1 / -1; }
@media (min-width: 901px) {
	.dz .e-con.dz-work.dz-work--wide { flex-direction: row; align-items: stretch; }
	.dz .e-con.dz-work.dz-work--wide > .e-con.dz-work__vis, .dz .e-con.dz-work.dz-work--wide > .e-con.dz-work__body { flex: 1 1 50%; width: 50%; max-width: 50%; }
	.dz .e-con.dz-work.dz-work--wide > .e-con.dz-work__vis { height: auto; min-height: 280px; }
	.dz .e-con.dz-work.dz-work--wide > .e-con.dz-work__body { justify-content: center; }
}

/* Chip hover */
.dz-chip { transition: background-color .2s var(--as-ease, ease), border-color .2s var(--as-ease, ease), color .2s var(--as-ease, ease), transform .2s var(--as-ease, ease); cursor: default; }
.dz-chip:hover { background: var(--as-accent); border-color: var(--as-accent); color: var(--as-on-accent); transform: translateY(-2px); }

.dz .dz-row h3 a, .dz .dz-row .elementor-heading-title a { color: inherit; text-decoration: none; background: linear-gradient(var(--as-accent), var(--as-accent)) 0 100% / 0 3px no-repeat; transition: background-size .25s var(--as-ease, ease); }
.dz .dz-row h3 a:empty, .dz .dz-row .elementor-heading-title a:empty { display: none !important; }
.dz .dz-row h3 a::after, .dz .dz-row .elementor-heading-title a::after { content: "\00a0\2197"; font-size: .7em; color: var(--as-muted); }
.dz .dz-row h3 a.dz-link--internal::after { content: "\00a0\2192" !important; }
.dz .dz-row h3 a:hover, .dz .dz-row .elementor-heading-title a:hover { background-size: 100% 3px; }
.dz .dz-row p a, .dz .dz-row .elementor-widget-container p a { color: var(--as-text); text-decoration: underline; text-decoration-color: var(--as-border); text-underline-offset: 4px; text-decoration-thickness: 2px; transition: text-decoration-color .2s; }
.dz .dz-row p a:hover, .dz .dz-row .elementor-widget-container p a:hover { text-decoration-color: var(--as-accent); }
.dz .dz-row .dz-links a { display: inline-flex; align-items: center; gap: 4px; font-size: 14px; font-weight: 500; color: var(--as-text); text-decoration: none !important; background: none !important; transition: color .2s ease, transform .2s ease; }
.dz .dz-row .dz-links a:hover { color: var(--as-accent); transform: translateX(3px); }

/* Body text weight (Settings > Fonts) */
:where(.dz .elementor-widget-text-editor) { font-weight: var(--as-bw, 400); }

/* Readable states in light mode (neon accent is too pale for text) */
body .dz-fchip { color: var(--as-text); }
body .dz-fchip:hover { color: var(--as-text); border-color: var(--as-text); }
body .dz-fchip[aria-current="true"], body .dz-fchip[aria-current="true"]:hover { color: var(--as-on-accent); border-color: var(--as-accent); }
body .dz-fchip[aria-current="true"]:hover { background: var(--as-accent-hover); }
body .dz-hd__brand, body .dz-hd__brand:hover { color: var(--as-text); }
body .dz-hd__link { color: var(--as-muted); }
body .dz-hd__link:hover, body .dz-hd__link[aria-current="page"] { color: var(--as-text); border-bottom-color: var(--as-accent); }

/* ---------- Single Post TOC Sidebar ---------- */
.dz-toc a, .e-con .dz-toc a, .elementor-widget .dz-toc a {
	text-decoration: none !important;
	color: var(--as-muted) !important;
	font-size: 14px;
	line-height: 1.45;
	padding: 7px 12px 7px 14px;
	border-left: 2px solid var(--as-border);
	border-radius: 0 8px 8px 0;
	background: transparent;
	display: block;
	transition: color 0.18s ease, border-color 0.18s ease, background 0.18s ease, transform 0.18s ease;
}
.dz-toc a:hover:not(.active), body .dz-toc a:hover:not(.active), .e-con .dz-toc a:hover:not(.active), .elementor-widget .dz-toc a:hover:not(.active) {
	color: var(--as-text) !important;
	border-left-color: var(--as-accent-ink, var(--as-accent)) !important;
	background: color-mix(in srgb, var(--as-surface-2, #ebeef3) 70%, transparent) !important;
	transform: translateX(2px);
}
.dz-toc a.active, body .dz-toc a.active, .e-con .dz-toc a.active, .elementor-widget .dz-toc a.active {
	color: var(--as-on-accent) !important;
	border-left-color: transparent !important;
	background: var(--as-accent) !important;
	font-weight: 600 !important;
	border-radius: 8px !important;
	transform: translateX(3px);
}
:root[data-theme="dark"] .dz-toc a.active,
:root[data-theme="dark"] body .dz-toc a.active,
:root[data-theme="dark"] .e-con .dz-toc a.active,
:root[data-theme="dark"] .elementor-widget .dz-toc a.active {
	color: var(--as-on-accent) !important;
	border-left-color: transparent !important;
	background: var(--as-accent) !important;
}
:root[data-theme="dark"] .dz-toc a:hover:not(.active),
:root[data-theme="dark"] body .dz-toc a:hover:not(.active),
:root[data-theme="dark"] .e-con .dz-toc a:hover:not(.active),
:root[data-theme="dark"] .elementor-widget .dz-toc a:hover:not(.active) {
	color: var(--as-text, #f2f4f8) !important;
	border-left-color: var(--as-accent, #b8f34a) !important;
	background: color-mix(in srgb, var(--as-surface-2, #182030) 75%, transparent) !important;
}

/* ---------- Fluent Forms, styled like .dz-form ---------- */
:is(.dz-ff, .dz-contact) .fluentform { font-family: var(--as-font); color: var(--as-text); }
:is(.dz-ff, .dz-contact) .fluentform .ff-t-container { display: flex; gap: 16px; margin: 0; }
:is(.dz-ff, .dz-contact) .fluentform .ff-t-cell { flex: 1 1 0 !important; min-width: 0; padding: 0; }
:is(.dz-ff, .dz-contact) .fluentform .ff-el-group { margin: 0 0 18px; }
:is(.dz-ff, .dz-contact) .fluentform .ff-el-input--label { margin: 0 0 8px; padding: 0; }
:is(.dz-ff, .dz-contact) .fluentform .ff-el-input--label label { display: block; margin: 0; font: 600 14px/1.4 var(--as-font); color: var(--as-text); }
:is(.dz-ff, .dz-contact) .fluentform .ff-el-input--label.ff-el-is-required label::after { content: none; }
:is(.dz-ff, .dz-contact) .fluentform .ff-el-form-control { width: 100%; height: 48px; padding: 0 18px; border: 1px solid var(--as-border); border-radius: 14px; background: var(--as-surface); color: var(--as-text); font: 400 16px var(--as-font); box-shadow: none; line-height: normal; }
:is(.dz-ff, .dz-contact) .fluentform select.ff-el-form-control:not([size]):not([multiple]) { height: 48px; }
:is(.dz-ff, .dz-contact) .fluentform select.ff-el-form-control { padding-right: 40px; }
:is(.dz-ff, .dz-contact) .fluentform textarea.ff-el-form-control { height: auto; min-height: 140px; padding: 14px 18px; resize: vertical; }
:is(.dz-ff, .dz-contact) .fluentform .ff-el-form-control::placeholder { color: var(--as-muted); }
:is(.dz-ff, .dz-contact) .fluentform .ff-el-form-control:focus { outline: 2px solid var(--as-accent-ink); outline-offset: 2px; border-color: transparent; background: var(--as-surface); color: var(--as-text); box-shadow: none; }
:is(.dz-ff, .dz-contact) .fluentform .ff-el-is-error .ff-el-form-control { border-color: #e5484d; }
:is(.dz-ff, .dz-contact) .fluentform .ff-el-is-error .text-danger, .dz-ff .fluentform .error.text-danger { margin-top: 6px; font-size: 13px; font-weight: 500; color: #e5484d; }
:is(.dz-ff, .dz-contact) .fluentform .ff_submit_btn_wrapper { margin: 6px 0 0; }
:is(.dz-ff, .dz-contact) .fluentform form.frm-fluent-form .ff-btn-submit.ff-btn-submit { display: inline-flex; align-items: center; justify-content: center; height: 52px; padding: 0 28px; margin: 0; border: 1px solid transparent; border-radius: 999px; background: var(--as-accent); color: var(--as-on-accent); font: 600 17px/1 var(--as-font); box-shadow: none; text-decoration: none; cursor: pointer; transition: transform .2s var(--as-ease), background .2s; }
:is(.dz-ff, .dz-contact) .fluentform form.frm-fluent-form .ff-btn-submit.ff-btn-submit:hover, :is(.dz-ff, .dz-contact) .fluentform form.frm-fluent-form .ff-btn-submit.ff-btn-submit:focus { background: var(--as-accent-hover); color: var(--as-on-accent); transform: translateY(-1px); opacity: 1; }
:is(.dz-ff, .dz-contact) .fluentform .ff-message-success { margin: 0 0 20px; padding: 14px 18px; border: 1px solid var(--as-success, #3ddc84); border-radius: 14px; background: color-mix(in srgb, var(--as-success, #3ddc84) 12%, transparent); box-shadow: none; color: var(--as-text); font-size: 15px; font-weight: 500; }
:is(.dz-ff, .dz-contact) .fluentform .ff-message-success p { margin: 0; }
:is(.dz-ff, .dz-contact) .fluentform .ff-errors-in-stack { border-radius: 14px; }
@media (max-width: 720px) { :is(.dz-ff, .dz-contact) .fluentform .ff-t-container { flex-direction: column; gap: 0; } }

/* ==========================================================================
   Elementor Bridge: Refinements for Responsive Order, Contrast & Hovers
   ========================================================================== */

/* 1. About Page Hero: Responsive ordering configured natively via Elementor Container JSON (flex_direction_tablet: column-reverse, order_tablet: start) */

/* 2. Experience Dates Font Size */
.dz-row--exp .dz-tags,
.dz-row--exp div.dz-tags,
.dz-row--exp .elementor-widget-text-editor .dz-tags,
.dz-row--exp .e-con.dz-tags {
	font-family: var(--as-mono) !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	line-height: 1.4 !important;
	color: var(--as-text) !important;
	letter-spacing: -0.01em !important;
}

/* 3. "How I work", Services & Plugin Cards Hover Lift Effect */
.dz-step,
.e-con.dz-step {
	transition: transform 0.28s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.28s ease, border-color 0.28s ease !important;
}
.dz-svc,
.e-con.dz-svc,
.dz-card.dz-svc,
.dz-svc--lg,
.e-con.dz-svc--lg,
.dz-tcard,
.e-con.dz-tcard,
.dz-card.dz-tcard {
	transition: transform 0.28s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.28s ease, border-color 0.28s ease !important;
	cursor: pointer;
	position: relative;
}
.dz-step:hover,
.e-con.dz-step:hover,
.dz-svc:hover,
.e-con.dz-svc:hover,
.dz-card.dz-svc:hover,
.dz-svc--lg:hover,
.e-con.dz-svc--lg:hover,
.dz-tcard:hover,
.e-con.dz-tcard:hover,
.dz-card.dz-tcard:hover {
	transform: translateY(-6px) !important;
	border-color: var(--as-border-strong, var(--as-accent, rgba(255, 255, 255, 0.25))) !important;
	box-shadow: 0 16px 36px -10px rgba(0, 0, 0, 0.4), 0 0 0 1px color-mix(in srgb, var(--as-accent) 30%, transparent) !important;
}
.dz-card.dz-svc .dz-h3 a,
.dz-card.dz-svc .elementor-heading-title a,
.dz-svc .dz-h3 a,
.dz-svc .elementor-heading-title a,
.dz-card.dz-tcard .dz-h3 a,
.dz-card.dz-tcard .elementor-heading-title a,
.dz-tcard .dz-h3 a,
.dz-tcard .elementor-heading-title a {
	color: inherit;
	text-decoration: none !important;
	transition: color 0.2s ease;
}
.dz-card.dz-svc:hover .dz-h3 a,
.dz-card.dz-svc:hover .elementor-heading-title a,
.dz-svc:hover .dz-h3 a,
.dz-svc:hover .elementor-heading-title a,
.dz-svc--lg:hover .dz-h3 a,
.dz-svc--lg:hover .elementor-heading-title a,
.dz-card.dz-tcard:hover .dz-h3 a,
.dz-card.dz-tcard:hover .elementor-heading-title a,
.dz-tcard:hover .dz-h3 a,
.dz-tcard:hover .elementor-heading-title a {
	color: var(--as-accent) !important;
}
.dz-card.dz-tcard .dz-h3 a::after,
.dz-tcard .dz-h3 a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}
.dz-card.dz-tcard .dz-links,
.dz-card.dz-tcard .dz-links a,
.dz-tcard .dz-links,
.dz-tcard .dz-links a {
	position: relative;
	z-index: 2;
}




/* 4. "Teams I've built with" Label */
.dz-logos__lab,
.e-con.dz-logos__lab,
.elementor-widget.dz-logos__lab,
.elementor-widget.dz-logos__lab p {
	font-family: var(--as-font-body, var(--as-font)) !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	letter-spacing: -0.01em !important;
	color: var(--as-muted) !important;
	flex-shrink: 0 !important;
}

/* 5. Accent Cards & Metrics Contrast Invariant (8+ yrs, Experience, WordPress in production) */
.dz-card--accent,
.e-con.dz-card--accent,
body .dz-card--accent,
body .e-con.dz-card--accent {
	background: var(--as-accent) !important;
	color: var(--as-on-accent) !important;
	border-color: var(--as-accent) !important;
}

.dz-card--accent :is(p, span, div, h1, h2, h3, h4, .dz-cap, .dz-big, .elementor-heading-title, .elementor-widget-text-editor p),
.e-con.dz-card--accent :is(p, span, div, h1, h2, h3, h4, .dz-cap, .dz-big, .elementor-heading-title, .elementor-widget-text-editor p) {
	color: var(--as-on-accent) !important;
}

.dz-card--accent .dz-cap,
.e-con.dz-card--accent .dz-cap {
	opacity: 0.82 !important;
	font-weight: 600 !important;
}

/* 6. CTA Sections High Contrast ("Let's build something" B.Tech line & "Hire a WordPress developer who ships") */
.dz-cta,
.e-con.dz-cta,
body .dz-cta,
body .e-con.dz-cta {
	background: var(--as-accent) !important;
	color: var(--as-on-accent) !important;
}

.dz-cta :is(h2, h3, .elementor-heading-title),
body .dz-cta :is(h2, h3, .elementor-heading-title) {
	color: var(--as-on-accent) !important;
}

.dz-cta :is(p, .dz-mailto, a.dz-mailto, .elementor-widget-text-editor p),
body .dz-cta :is(p, .dz-mailto, a.dz-mailto, .elementor-widget-text-editor p) {
	color: var(--as-on-accent) !important;
	opacity: 0.9 !important;
}

.dz-cta :is(.dz-mailto:hover, a.dz-mailto:hover) {
	opacity: 1 !important;
	text-decoration: underline !important;
}

/* Hide floating controls when full-screen mobile menu is open */
html.dz-menu-open button.asx-top,
html.dz-menu-open .asx-top,
html.dz-menu-open .asx-wa-float-wrap,
body.dz-menu-open button.asx-top,
body.dz-menu-open .asx-top,
body.dz-menu-open .asx-wa-float-wrap,
body:has(#asx-menu:not([hidden])) button.asx-top,
body:has(#asx-menu:not([hidden])) .asx-top,
body:has(#asx-menu:not([hidden])) .asx-wa-float-wrap,
html:has(#asx-menu:not([hidden])) button.asx-top,
html:has(#asx-menu:not([hidden])) .asx-top,
html:has(#asx-menu:not([hidden])) .asx-wa-float-wrap {
	display: none !important;
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
}