/* ==========================================================================
   Avan21 — classes for the Elementor-built templates.
   Each class goes in a container or widget: Advanced → CSS Classes.
   Spacing, colours and type are set in Elementor itself; these add only what
   Elementor's panels cannot: layered gradients, hover choreography, the
   floating product stage, gradient words in headings.
   ========================================================================== */

/* the editor re-renders widgets over AJAX, after the reveal observer ran */
.elementor-editor-active .a21 [data-a21-reveal], .elementor-editor-preview .a21 [data-a21-reveal] { opacity:1; transform:none; }
.a21-el-dyn { font-size:inherit; line-height:inherit; color:inherit; }
.a21-el-dyn > :first-child { margin-top:0; }

/* ---------- headings ---------- */
.a21-em-grad .elementor-heading-title em, .a21-em-grad em {
  font-style:normal; background:linear-gradient(100deg,#0E8BC2,#1AA6DF 60%,#4DBCE8);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.a21-em-light .elementor-heading-title em, .a21-em-light em {
  font-style:normal; background:linear-gradient(95deg,#fff 0%,#8AD4F2 45%,#4fa3ff 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.a21-el-eyebrow .elementor-heading-title { display:inline-flex; align-items:center; gap:10px; }
.a21-el-eyebrow .elementor-heading-title::before { content:""; width:30px; height:2px; border-radius:2px; background:linear-gradient(90deg,#0E8BC2,#1AA6DF); }
.a21-el-eyebrow.a21-on-dark .elementor-heading-title::before { background:linear-gradient(90deg,#1d6fe0,#4fa3ff); }
.a21-el-eyebrow.a21-center .elementor-heading-title { justify-content:center; }
.a21-el-eyebrow.a21-center .elementor-heading-title::after { content:""; width:30px; height:2px; border-radius:2px; background:linear-gradient(90deg,#1AA6DF,#0E8BC2); }

/* ---------- buttons (Button widget) ---------- */
.elementor-widget-button[class*="a21-el-btn"] .elementor-button { display:inline-flex; align-items:center; gap:10px; min-height:48px; padding:0 22px; border-radius:10px; font-family:'Poppins',sans-serif; font-weight:600; font-size:15px; line-height:1; border:1.5px solid transparent; transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s,background .3s,color .3s,border-color .3s; }
.elementor-widget-button[class*="a21-el-btn"] .elementor-button-content-wrapper { gap:10px; align-items:center; }
.elementor-widget-button.a21-el-btn-red .elementor-button { background:linear-gradient(135deg,#E2363C,#C8262C); color:#fff; }
.elementor-widget-button.a21-el-btn-red .elementor-button:hover { transform:translateY(-2px); box-shadow:0 14px 30px -12px rgba(226,54,60,.75); color:#fff; }
.elementor-widget-button.a21-el-btn-blue .elementor-button { background:linear-gradient(135deg,#4fa3ff,#1d6fe0 55%,#0a3a8c); color:#fff; }
.elementor-widget-button.a21-el-btn-blue .elementor-button:hover { transform:translateY(-2px); box-shadow:0 12px 28px -8px rgba(29,111,224,.7); color:#fff; }
.elementor-widget-button.a21-el-btn-ghost .elementor-button { background:rgba(255,255,255,.04); color:#fff; border-color:rgba(255,255,255,.28); }
.elementor-widget-button.a21-el-btn-ghost .elementor-button:hover { border-color:#fff; background:rgba(255,255,255,.1); color:#fff; }
.elementor-widget-button.a21-el-btn-line .elementor-button { background:#fff; color:#0B2742; border-color:#E1E8EF; }
.elementor-widget-button.a21-el-btn-line .elementor-button:hover { background:#0B2742; color:#fff; border-color:#0B2742; }
.elementor-widget-button.a21-el-btn-text .elementor-button { background:none; padding:0; min-height:0; color:#0E8BC2; font-weight:700; font-size:14px; }
.elementor-widget-button.a21-el-btn-text .elementor-button:hover { color:#0E8BC2; }
.elementor-widget-button.a21-el-btn-text .elementor-button-icon { transition:transform .3s cubic-bezier(.16,1,.3,1); }
.elementor-widget-button.a21-el-btn-text .elementor-button:hover .elementor-button-icon { transform:translateX(4px); }
.elementor-widget-button.a21-el-btn-soft .elementor-button { min-height:38px; padding:0 16px; background:#F4F7FA; color:#071B30; font-size:13px; font-weight:700; }
.elementor-widget-button.a21-el-btn-soft .elementor-button:hover { background:#E2363C; color:#fff; }

/* ---------- top bar + header ---------- */
.a21-el-topbar .elementor-icon-list-text { font-size:12.5px; }
.a21-el-live .elementor-heading-title { display:inline-flex; align-items:center; gap:8px; }
.a21-el-live .elementor-heading-title::before { content:""; width:8px; height:8px; border-radius:50%; background:#22c55e; animation:a21pulse 2s infinite; }
.a21-el-header { transition:box-shadow .3s; }
.a21-el-header.elementor-sticky--effects { box-shadow:0 10px 30px -18px rgba(7,27,48,.35); }
.a21-el-roundbtn .elementor-icon { box-shadow:0 10px 24px -12px rgba(14,139,194,.9); transition:transform .3s cubic-bezier(.16,1,.3,1); }
.a21-el-roundbtn .elementor-icon:hover { transform:scale(1.06) rotate(-8deg); }

/* ---------- hero bands ---------- */
.a21-el-hero {
  position:relative; overflow:hidden; isolation:isolate;
  background:radial-gradient(900px 480px at 82% 0%,rgba(29,111,224,.32),transparent 60%),
             radial-gradient(700px 420px at 0% 100%,rgba(26,166,223,.18),transparent 60%),
             linear-gradient(160deg,#071B30 0%,#050d1c 70%) !important;
}
.a21-el-hero::before { content:""; position:absolute; inset:0; z-index:-1; opacity:.5; pointer-events:none;
  background-image:linear-gradient(rgba(120,170,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(120,170,255,.07) 1px,transparent 1px);
  background-size:56px 56px; -webkit-mask-image:radial-gradient(ellipse at 70% 30%,#000 20%,transparent 75%); mask-image:radial-gradient(ellipse at 70% 30%,#000 20%,transparent 75%);
  animation:a21grid 30s linear infinite; }
.a21-el-hero-photo { position:relative; isolation:isolate; background-size:cover !important; background-position:center !important; }
.a21-el-hero-photo::before { content:""; position:absolute; inset:0; z-index:0; pointer-events:none; background:linear-gradient(90deg,rgba(4,18,33,.95) 0%,rgba(4,18,33,.8) 45%,rgba(4,18,33,.3) 100%); }
.a21-el-hero-photo > .e-con-inner, .a21-el-hero-photo > .elementor-element { position:relative; z-index:1; }
.a21-el-dark {
  background:radial-gradient(1100px 500px at 85% -10%,rgba(29,111,224,.28),transparent 60%),
             radial-gradient(900px 450px at -5% 110%,rgba(10,58,140,.35),transparent 60%),
             linear-gradient(180deg,#061229 0%,#050d1c 100%) !important;
}
.a21-el-dark .a21-crumbs, .a21-el-hero .a21-crumbs, .a21-el-hero-photo .a21-crumbs { margin-bottom:0; }

/* ---------- product stage (hero image / product page gallery) ---------- */
.a21-el-stage { position:relative; overflow:hidden; border-radius:24px; border:1px solid #E1E8EF;
  background:radial-gradient(70% 62% at 50% 58%,#fff 0%,#F2FAFE 55%,#DCEFFA 100%) !important; }
.a21-el-stage::after { content:""; position:absolute; left:22%; right:22%; bottom:9%; height:22px; border-radius:50%; background:radial-gradient(closest-side,rgba(7,27,48,.2),transparent); animation:a21shadow 6s ease-in-out infinite; pointer-events:none; }
.a21-el-stage .elementor-widget-image img, .a21-el-stage img.a21-float { mix-blend-mode:multiply; animation:a21float 6s ease-in-out infinite; }
.a21-el-stage.a21-on-dark { border:0; box-shadow:0 40px 90px -40px rgba(0,0,0,.6); }

/* ---------- product card (Loop Item) ---------- */
.a21-el-pcard { overflow:hidden; transition:transform .5s cubic-bezier(.16,1,.3,1),box-shadow .5s,border-color .5s; height:100%; }
.a21-el-pcard:hover { transform:translateY(-8px); box-shadow:0 30px 80px -30px rgba(7,27,48,.35); border-color:transparent !important; }
.a21-el-pmedia { position:relative; overflow:hidden; background:radial-gradient(80% 70% at 50% 60%,#fff,#F2FAFE 70%,#E8F3FA) !important; }
.a21-el-pmedia::before { content:""; position:absolute; left:50%; bottom:22px; width:62%; height:18px; margin-left:-31%; border-radius:50%; background:radial-gradient(closest-side,rgba(7,27,48,.18),transparent); transition:transform .6s,opacity .6s; }
.a21-el-pmedia .elementor-widget-image img { mix-blend-mode:multiply; transition:transform .7s cubic-bezier(.16,1,.3,1); }
.a21-el-pcard:hover .a21-el-pmedia .elementor-widget-image img { transform:translateY(-10px) scale(1.05); }
.a21-el-pcard:hover .a21-el-pmedia::before { transform:scale(.8); opacity:.6; }
.a21-el-pcard:hover .a21-el-btn-soft .elementor-button { background:#E2363C; color:#fff; }
.a21-el-abs-tl { position:absolute !important; top:14px; left:14px; z-index:2; width:auto !important; }
.a21-el-abs-tr { position:absolute !important; top:14px; right:14px; z-index:2; width:auto !important; }
.a21-el-pcard .elementor-heading-title a:hover { color:#0E8BC2; }

/* ---------- industry card (Loop Item) ---------- */
.a21-el-icard { position:relative; overflow:hidden; isolation:isolate; aspect-ratio:4/5; background-size:cover !important; background-position:center !important;
  transition:border-color .35s,box-shadow .35s,background-size .8s; }
.a21-el-icard::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(5,13,28,.05) 25%,rgba(6,22,52,.75) 60%,rgba(5,13,28,.97) 100%); transition:background .5s; }
.a21-el-icard::before { content:""; position:absolute; left:0; bottom:0; height:3px; width:0; z-index:3; background:linear-gradient(90deg,#0a3a8c,#1d6fe0,#4fa3ff); transition:width .6s ease; }
.a21-el-icard:hover { border-color:rgba(79,163,255,.5) !important; box-shadow:0 24px 50px -20px rgba(29,111,224,.55),0 0 0 1px rgba(79,163,255,.2); }
.a21-el-icard:hover::before { width:100%; }
.a21-el-icard:hover::after { background:linear-gradient(180deg,rgba(5,13,28,.1) 10%,rgba(6,22,52,.85) 50%,rgba(5,13,28,.98) 100%); }
.a21-el-icard-num .elementor-heading-title { display:inline-block; background:rgba(5,13,28,.55); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); border:1px solid rgba(120,170,255,.25); padding:7px 10px; border-radius:10px; line-height:1; }
.a21-el-icard-p { max-height:0; opacity:0; overflow:hidden; transition:max-height .5s ease,opacity .4s ease; }
.a21-el-icard:hover .a21-el-icard-p { max-height:120px; opacity:1; }
@media (hover:none) { .a21-el-icard-p { max-height:120px; opacity:1; } }

/* ---------- service card (Loop Item) ---------- */
.a21-el-scard { position:relative; transition:transform .5s cubic-bezier(.16,1,.3,1),box-shadow .5s,border-color .4s; height:100%; overflow:visible !important; }
.a21-el-scard:hover { transform:translateY(-6px); box-shadow:0 30px 80px -30px rgba(7,27,48,.35); border-color:transparent !important; }
.a21-el-scard .a21-scard__badge { position:absolute; top:-12px; left:0; }
.a21-el-scard .a21-scard__features { margin-top:4px; }
.a21-el-scard:has(.a21-scard__badge) { background:linear-gradient(165deg,#0B2742,#041221) !important; border-color:#0B2742 !important; }
.a21-el-scard:has(.a21-scard__badge) .elementor-heading-title { color:#fff !important; }
.a21-el-scard:has(.a21-scard__badge) .a21-el-muted .elementor-heading-title, .a21-el-scard:has(.a21-scard__badge) .a21-el-muted { color:#9fb3d1 !important; }
.a21-el-scard:has(.a21-scard__badge) .a21-scard__features { border-color:rgba(255,255,255,.1); }
.a21-el-scard:has(.a21-scard__badge) .a21-scard__features li { color:#d6e6ff; }
.a21-el-scard:has(.a21-scard__badge) .a21-scard__features .a21-ico { color:#8AD4F2; }
.a21-el-scard:has(.a21-scard__badge) .a21-scard__icon { background:rgba(26,166,223,.18); color:#8AD4F2; }
.a21-el-scard:has(.a21-scard__badge) .a21-scard__best { background:rgba(255,255,255,.06); }
.a21-el-scard:has(.a21-scard__badge) .a21-scard__best p { color:#fff; }

/* ---------- "get in touch" card + Elementor Pro form ---------- */
.a21-el-enquire { position:relative; overflow:hidden; box-shadow:0 40px 90px -50px rgba(7,27,48,.9);
  background:radial-gradient(700px 400px at 100% 100%,rgba(29,111,224,.55),transparent 60%),linear-gradient(135deg,#0d2340 0%,#0a1a33 45%,#16337a 100%) !important; }
.a21-el-enquire::before { content:""; position:absolute; inset:0; pointer-events:none; background-image:radial-gradient(rgba(255,255,255,.08) 1px,transparent 1px); background-size:22px 22px; -webkit-mask-image:linear-gradient(90deg,#000,transparent 55%); mask-image:linear-gradient(90deg,#000,transparent 55%); }
.a21-el-formcard { box-shadow:0 30px 60px -30px rgba(0,0,0,.6); position:relative; }
.a21-el-form .elementor-field-group .elementor-field:focus { border-color:#1AA6DF !important; background:#fff !important; box-shadow:0 0 0 4px rgba(26,166,223,.14); }
.a21-el-form .elementor-field-textual { min-height:46px; }
.a21-el-form .elementor-button { min-height:52px; background:linear-gradient(135deg,#4fa3ff,#1d6fe0 55%,#0a3a8c) !important; transition:transform .3s,box-shadow .3s; }
.a21-el-form .elementor-button:hover { transform:translateY(-2px); box-shadow:0 12px 28px -8px rgba(29,111,224,.7); }
.a21-el-form .elementor-message-success { color:#0f7a43; background:#e7f8ef; padding:12px; border-radius:8px; }

/* ---------- small cards: contact ways, consumables ---------- */
.a21-el-lift { transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s,border-color .4s; }
.a21-el-lift:hover { transform:translateY(-6px); box-shadow:0 30px 80px -30px rgba(7,27,48,.35); border-color:transparent !important; }
.a21-el-cmedia { background:radial-gradient(80% 70% at 50% 60%,#fff,#F2FAFE 70%,#E8F3FA) !important; overflow:hidden; }
.a21-el-cmedia img { mix-blend-mode:multiply; transition:transform .7s cubic-bezier(.16,1,.3,1); }
.a21-el-lift:hover .a21-el-cmedia img { transform:translateY(-8px) scale(1.05); }
.a21-el-models .elementor-widget-container p { display:flex; flex-wrap:wrap; gap:6px; margin:0; }
.a21-el-models span { font-size:11.5px; font-weight:500; padding:4px 9px; border-radius:8px; background:#F4F7FA; color:#113A5E; }

/* ---------- sticky "on this page" bar ---------- */
.a21-el-subnav .elementor-button { border-radius:0 !important; }
.a21-el-subnav.elementor-sticky--effects { box-shadow:0 10px 30px -20px rgba(7,27,48,.35); }

/* ---------- footer ---------- */
.a21-el-footer { position:relative; overflow:hidden; isolation:isolate;
  background:radial-gradient(circle at 15% 20%,rgba(29,120,255,.10),transparent 32%),radial-gradient(circle at 85% 30%,rgba(56,189,248,.07),transparent 30%),#041221 !important; }
.a21-el-footer::after { content:"DS INKS"; position:absolute; left:50%; bottom:-.24em; transform:translateX(-50%); z-index:-1; font-family:'Poppins',sans-serif; font-size:clamp(90px,19vw,280px); font-weight:800; letter-spacing:-.04em; line-height:1; white-space:nowrap; color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.06); pointer-events:none; }
.a21-el-footer .elementor-icon-list-item a { transition:color .25s,padding-left .25s; }
.a21-el-footer .elementor-icon-list-item a:hover { padding-left:5px; }
.a21-el-footer .elementor-icon-list-item a:hover .elementor-icon-list-text { color:#fff !important; }
.a21-el-footer .elementor-social-icon { transition:transform .3s,background .3s; }
.a21-el-footer .elementor-social-icon:hover { transform:translateY(-4px); background:#1d78ff !important; }

/* ---------- thank you tick ---------- */
.a21-el-tick { width:84px; height:84px; margin:0 auto; }
.a21-el-tick svg { width:100%; height:100%; fill:none; stroke-width:3; stroke-linecap:round; stroke-linejoin:round; }
.a21-el-tick circle { stroke:#1AA6DF; stroke-dasharray:151; stroke-dashoffset:151; animation:a21draw .9s cubic-bezier(.16,1,.3,1) .2s forwards; }
.a21-el-tick path { stroke:#0E8BC2; stroke-dasharray:40; stroke-dashoffset:40; animation:a21draw .5s cubic-bezier(.16,1,.3,1) .9s forwards; }

@media (prefers-reduced-motion:reduce) {
  .a21-el-hero::before, .a21-el-stage img, .a21-el-stage::after { animation:none !important; }
}

/* ---------- helpers used by the generated templates ---------- */
.a21-el-gradtext .elementor-heading-title { background:linear-gradient(95deg,#fff 0%,#8AD4F2 45%,#4fa3ff 100%); -webkit-background-clip:text; background-clip:text; color:transparent !important; }
.a21 .a21-chips-dots { margin:6px 0 0; }
.a21 .a21-chips-dots li::before { content:""; width:8px; height:8px; border-radius:2px; background:#1AA6DF; transform:rotate(45deg); flex:0 0 auto; }
.a21 .a21-chips-light li { color:#3E4C5A; }
.a21-el-arrow .elementor-button-text::after { content:"→"; display:inline-block; margin-left:10px; transition:transform .3s cubic-bezier(.16,1,.3,1); }
.a21-el-arrow .elementor-button:hover .elementor-button-text::after { transform:translateX(4px); }
.a21-el-stage img.a21-float, .a21-el-stage .a21-float img { mix-blend-mode:multiply; animation:a21float 6s ease-in-out infinite; }
.a21-el-crumbs-light .a21-crumbs { color:#6A7988; }
.a21-el-crumbs-light .a21-crumbs a:hover { color:#0E8BC2; }
.a21-el-crumbs-light .a21-crumbs [aria-current] { color:#071B30; }
.a21-el-subnav .elementor-widget-button .elementor-button { padding:16px 14px !important; min-height:0; }
.a21-el-subnav-cta { margin-left:auto; }
.a21-el-subnav-cta .elementor-button { color:#E2363C !important; }
.a21-el-legal h2 { font-size:22px; margin:28px 0 10px; color:#16202B; }
.a21-el-legal ul { list-style:disc; padding-left:20px; }
.a21-el-map iframe { border-radius:24px; }
.a21-el-dyn .a21-quickfacts--flat { position:static; box-shadow:none; border:0; padding:0; }
.a21-el-dark .a21-steps__n { box-shadow:0 0 0 6px #050d1c,0 14px 30px -10px rgba(29,111,224,.8); }

/* ==========================================================================
   1.1 — Elementor reserves ::before on every container for its background
   overlay (content: var(--background-overlay)), and its stylesheet loads after
   this one, so the plain ".a21-el-x::before" rules above lost: no dark wash on
   the industry photo hero (white text vanished), no grid on the dark heroes,
   no dot texture on the enquiry card. These win on specificity + !important.
   ========================================================================== */
.elementor .e-con.a21-el-hero::before {
  content:"" !important; position:absolute; inset:0; z-index:0 !important; opacity:.5; pointer-events:none; mix-blend-mode:normal;
  background-image:linear-gradient(rgba(120,170,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(120,170,255,.07) 1px,transparent 1px) !important;
  background-size:56px 56px !important; background-color:transparent !important;
  -webkit-mask-image:radial-gradient(ellipse at 70% 30%,#000 20%,transparent 75%); mask-image:radial-gradient(ellipse at 70% 30%,#000 20%,transparent 75%);
  animation:a21grid 30s linear infinite;
}
.elementor .e-con.a21-el-hero-photo::before {
  content:"" !important; position:absolute; inset:0; z-index:0 !important; opacity:1 !important; pointer-events:none;
  background:linear-gradient(90deg,rgba(4,18,33,.95) 0%,rgba(4,18,33,.82) 45%,rgba(4,18,33,.35) 100%) !important;
}
.elementor .e-con.a21-el-enquire::before {
  content:"" !important; position:absolute; inset:0; z-index:0 !important; opacity:1 !important; pointer-events:none;
  background:radial-gradient(rgba(255,255,255,.08) 1px,transparent 1px) !important; background-size:22px 22px !important;
  -webkit-mask-image:linear-gradient(90deg,#000,transparent 55%); mask-image:linear-gradient(90deg,#000,transparent 55%);
}
.elementor .e-con.a21-el-hero > *, .elementor .e-con.a21-el-hero > .e-con-inner > *,
.elementor .e-con.a21-el-hero-photo > *, .elementor .e-con.a21-el-hero-photo > .e-con-inner > *,
.elementor .e-con.a21-el-enquire > * { position:relative; z-index:1; }

/* industry card: the photo is an Image widget stretched behind the text
   (Elementor does not render a dynamic background image inside Loop items) */
.elementor .e-con.a21-el-icard { isolation:isolate; }
.elementor .e-con.a21-el-icard::before { content:"" !important; position:absolute; left:0; bottom:0; height:3px; width:0; z-index:3 !important; background:linear-gradient(90deg,#0a3a8c,#1d6fe0,#4fa3ff) !important; transition:width .6s ease; }
.elementor .e-con.a21-el-icard:hover::before { width:100%; }
.a21-el-icard-img { position:absolute !important; inset:0; z-index:-2; margin:0 !important; width:100% !important; height:100%; }
.a21-el-icard-img .elementor-widget-container, .a21-el-icard-img a { display:block; width:100%; height:100%; }
.a21-el-icard-img img { width:100% !important; height:100% !important; max-width:none !important; object-fit:cover; filter:saturate(.9) brightness(.85); transition:transform .8s cubic-bezier(.2,.7,.2,1),filter .5s; }
.a21-el-icard:hover .a21-el-icard-img img { transform:scale(1.08); filter:saturate(1.05) brightness(.95); }
.a21-el-icard > .elementor-element:not(.a21-el-icard-img) { position:relative; z-index:1; }

/* product page: extra images under the stage, opening in Elementor's lightbox */
.a21-el-thumbs { display:flex; flex-wrap:wrap; gap:10px; }
.a21-el-thumbs a { width:76px; height:64px; border-radius:10px; border:1.5px solid #E1E8EF; background:#F2FAFE; padding:6px; display:grid; place-items:center; transition:border-color .25s,transform .25s; }
.a21-el-thumbs a:hover { border-color:#1AA6DF; transform:translateY(-2px); }
.a21-el-thumbs img { max-width:100%; max-height:100%; object-fit:contain; mix-blend-mode:multiply; }

/* about page: branch network */
.a21 .a21-el-network { display:flex; flex-wrap:wrap; gap:10px; }
.a21 .a21-el-network li { display:inline-flex; align-items:center; gap:8px; padding:9px 14px; border-radius:10px; background:rgba(255,255,255,.05); border:1px solid rgba(120,170,255,.16); color:#d6e6ff; font-size:14px; font-weight:500; transition:background .3s,border-color .3s; }
.a21 .a21-el-network li:hover { background:rgba(26,166,223,.14); border-color:rgba(79,163,255,.45); }
.a21 .a21-el-network li .a21-ico { width:15px; height:15px; color:#8AD4F2; }
.a21 .a21-el-network li.is-hub { background:linear-gradient(135deg,#E2363C,#C8262C); border-color:transparent; color:#fff; }
.a21 .a21-el-network li.is-hub .a21-ico { color:#fff; }
.a21-el-pillar .elementor-icon { transition:transform .5s cubic-bezier(.16,1,.3,1); }
.a21-el-pillar:hover .elementor-icon { transform:rotate(-8deg) scale(1.06); }
.elementor .e-con.a21-el-icard::after { content:"" !important; position:absolute; inset:0; z-index:-1 !important; background:linear-gradient(180deg,rgba(5,13,28,.05) 25%,rgba(6,22,52,.75) 60%,rgba(5,13,28,.97) 100%) !important; transition:background .5s; pointer-events:none; }
.elementor .e-con.a21-el-icard:hover::after { background:linear-gradient(180deg,rgba(5,13,28,.1) 10%,rgba(6,22,52,.85) 50%,rgba(5,13,28,.98) 100%) !important; }
.elementor .e-con.a21-el-footer::after { content:"DS INKS" !important; position:absolute; left:50%; bottom:-.24em; transform:translateX(-50%); z-index:0 !important; font-family:'Poppins',sans-serif; font-size:clamp(90px,19vw,280px); font-weight:800; letter-spacing:-.04em; line-height:1; white-space:nowrap; color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.06); pointer-events:none; background:none !important; }
.elementor .e-con.a21-el-footer > * { position:relative; z-index:1; }

/* 1.1.2 — Elementor's container rules win over the plain overflow:hidden above, so the
   oversized "DS INKS" outline word poked ~40px out of the footer: a blank strip under it. */
.elementor .e-con.a21-el-footer { overflow:hidden !important; }

/* ==========================================================================
   1.1.3 — About page v2
   ========================================================================== */
/* photo panels with floating badges */
.elementor .e-con.a21-el-photo { position:relative; overflow:visible !important; box-shadow:0 40px 90px -40px rgba(7,27,48,.55); }
.elementor .e-con.a21-el-photo::before { content:"" !important; position:absolute; inset:0; z-index:0 !important; border-radius:inherit; opacity:1 !important; pointer-events:none;
  background:linear-gradient(180deg,rgba(4,18,33,0) 45%,rgba(4,18,33,.45) 100%) !important; }
.a21-el-photo-wrap { position:relative; }
.a21-el-photo-wrap::before { content:""; position:absolute; inset:-28px -28px auto auto; width:62%; height:62%; border-radius:28px; z-index:0;
  background:radial-gradient(closest-side,rgba(26,166,223,.45),transparent); filter:blur(30px); pointer-events:none; }
.elementor .e-con.a21-el-badge { position:absolute !important; z-index:2; box-shadow:0 24px 50px -18px rgba(7,27,48,.45); animation:a21float 6s ease-in-out infinite; }
.elementor .e-con.a21-el-badge-tl { top:28px; left:-34px; }
.elementor .e-con.a21-el-badge-br { bottom:-26px; right:-22px; animation-delay:-3s; }
.elementor .e-con.a21-el-badge-bl { bottom:26px; left:-30px; width:auto !important; }
.a21-el-gradnum .elementor-heading-title { background:linear-gradient(135deg,#071B30,#0E8BC2); -webkit-background-clip:text; background-clip:text; color:transparent !important; }
.a21-el-photo-tilt { transition:transform .8s cubic-bezier(.16,1,.3,1); }
.a21-el-photo-tilt:hover { transform:rotate(-1deg) scale(1.01); }
@media (max-width:767px) {
  .elementor .e-con.a21-el-badge-tl { left:12px; top:12px; }
  .elementor .e-con.a21-el-badge-br { right:12px; bottom:-20px; }
  .elementor .e-con.a21-el-badge-bl { left:12px; }
}

/* stats bar riding over the hero */
.elementor .e-con.a21-el-statwrap { position:relative; z-index:5; }
.a21-el-statbar { box-shadow:0 30px 70px -36px rgba(7,27,48,.5); }
.a21-el-stat-sep { border-right:1px solid #E1E8EF; }
.a21-el-stat .elementor-counter-number-wrapper { background:linear-gradient(135deg,#071B30,#0E8BC2); -webkit-background-clip:text; background-clip:text; color:transparent !important; }
.a21-el-stat .elementor-counter-number-wrapper * { color:transparent !important; }
@media (max-width:1024px) { .a21-el-stat-sep { border-right:0; } }

/* bento */
.elementor .e-con.a21-el-bento-dark { position:relative; overflow:hidden !important; isolation:isolate; transition:transform .5s cubic-bezier(.16,1,.3,1),box-shadow .5s;
  background:radial-gradient(500px 300px at 100% 100%,rgba(29,111,224,.5),transparent 60%),linear-gradient(160deg,#0B2742,#041221) !important; }
.elementor .e-con.a21-el-bento-dark::before { content:"" !important; position:absolute; inset:0; z-index:-1 !important; opacity:.6 !important; pointer-events:none;
  background-image:linear-gradient(rgba(120,170,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(120,170,255,.07) 1px,transparent 1px) !important; background-size:44px 44px !important;
  -webkit-mask-image:radial-gradient(ellipse at 80% 90%,#000 10%,transparent 70%); mask-image:radial-gradient(ellipse at 80% 90%,#000 10%,transparent 70%); }
.a21-el-bento-dark:hover { transform:translateY(-6px); box-shadow:0 40px 80px -40px rgba(7,27,48,.8); }
.a21-el-bento-img img { filter:drop-shadow(0 30px 40px rgba(0,0,0,.45)); transition:transform .8s cubic-bezier(.16,1,.3,1); }
.a21-el-bento-dark:hover .a21-el-bento-img img { transform:translateY(-8px) rotate(-2deg); }
.a21-el-bento { flex:1 1 auto; }
.a21-el-bento .elementor-icon { transition:transform .5s cubic-bezier(.16,1,.3,1); }
.a21-el-bento:hover .elementor-icon { transform:rotate(-8deg) scale(1.06); }

/* reasons */
.a21-el-reason { transition:transform .4s cubic-bezier(.16,1,.3,1),border-color .4s,background .4s; }
.a21-el-reason:hover { transform:translateY(-4px); border-color:rgba(79,163,255,.45) !important; background:rgba(26,166,223,.08) !important; }

/* red call-to-action */
.elementor .e-con.a21-el-redcta { position:relative; overflow:hidden !important; isolation:isolate; box-shadow:0 30px 60px -30px rgba(226,54,60,.75);
  background:linear-gradient(110deg,#C8252B 0%,#E2363C 55%,#F0545A 100%) !important; }
.elementor .e-con.a21-el-redcta::before { content:"" !important; position:absolute; inset:0; z-index:-1 !important; opacity:1 !important; pointer-events:none;
  background:repeating-linear-gradient(135deg,rgba(255,255,255,.07) 0 2px,transparent 2px 22px) !important; }
.a21-el-redcta .a21-el-btn-line .elementor-button { color:#C8262C; border-color:#fff; }
