/* Native Elementor agency layouts. Scoped to avoid interfering with Elementor controls. */
:root {
  --dmi-el-ink: #11162a;
  --dmi-el-muted: #657089;
  --dmi-el-primary: #6c55ff;
  --dmi-el-primary-dark: #4f3ee0;
  --dmi-el-accent: #18c8a4;
  --dmi-el-line: #e6e8f0;
  --dmi-el-soft: #f7f7fc;
  --dmi-el-dark: #0d1120;
  --dmi-el-radius: 28px;
  --dmi-el-shadow: 0 22px 70px rgba(17, 22, 42, .10);
}

/* Never constrain Elementor's page canvas. */
body.dmi-elementor-page .site-main,
body.elementor-page .dmi-page-shell,
body.elementor-page .elementor,
body.elementor-page .elementor-section-wrap,
body.elementor-page .elementor-location-single {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}
body.dmi-elementor-page .entry-title,
body.dmi-elementor-page .dmi-fallback-header { display: none; }
.dmi-page-shell { overflow: clip; }
.dmi-native-page { width: 100%; max-width: none; overflow: clip; }
.dmi-native-page > .e-con-inner { max-width: none !important; padding: 0 !important; }

/* Elementor class helpers imported with the page data. */
.dmi-el-section {
  position: relative;
  width: 100%;
  padding: clamp(72px, 8vw, 124px) 24px;
}
.dmi-el-wrap {
  width: min(1180px, 100%);
  max-width: 1180px !important;
  margin-inline: auto !important;
}
.dmi-el-stack { display: flex !important; flex-direction: column !important; gap: 20px !important; min-width: 0; }
.dmi-el-stack--hero { gap: 24px !important; }
.dmi-el-grid-2 { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(44px, 6vw, 86px) !important; }
.dmi-el-grid-3 { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px !important; }
.dmi-el-grid-4 { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px !important; }
.dmi-el-align-center { align-items: center !important; }
.dmi-el-align-start { align-items: start !important; }
.dmi-el-card-grid { margin-top: 48px !important; }
.dmi-el-soft-section { background: var(--dmi-el-soft); }
.dmi-el-dark-section { background: var(--dmi-el-dark); color: #fff; }
.dmi-el-testimonial-section { background: linear-gradient(180deg, #fff 0%, #f6f4ff 100%); }

.dmi-el-home-hero {
  min-height: 760px;
  display: flex !important;
  align-items: center;
  background:
    radial-gradient(circle at 80% 16%, rgba(24,200,164,.18), transparent 30%),
    radial-gradient(circle at 10% 72%, rgba(108,85,255,.15), transparent 32%),
    linear-gradient(180deg, #fff 0%, #fbfaff 100%);
}
.dmi-el-page-hero {
  min-height: 610px;
  display: flex !important;
  align-items: center;
  padding-top: clamp(96px, 10vw, 150px);
  background:
    radial-gradient(circle at 84% 18%, rgba(24,200,164,.16), transparent 28%),
    radial-gradient(circle at 12% 84%, rgba(108,85,255,.12), transparent 32%),
    #fbfaff;
}
.dmi-el-page-hero:after,
.dmi-el-home-hero:after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: linear-gradient(rgba(108,85,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(108,85,255,.035) 1px, transparent 1px);
  background-size: 52px 52px;
  mask-image: linear-gradient(to bottom, #000, transparent 88%);
}
.dmi-el-page-hero > *, .dmi-el-home-hero > * { position: relative; z-index: 1; }

.dmi-el-kicker .elementor-heading-title,
.dmi-elementor-kicker {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: 8px 13px;
  border: 1px solid rgba(108,85,255,.22);
  border-radius: 999px;
  color: var(--dmi-el-primary) !important;
  background: rgba(108,85,255,.07);
  font-size: 12px !important;
  line-height: 1.2 !important;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 800 !important;
}
.dmi-el-kicker--light .elementor-heading-title { color: #c9c2ff !important; border-color: rgba(255,255,255,.2); background: rgba(255,255,255,.07); }
.dmi-el-display .elementor-heading-title {
  color: var(--dmi-el-ink) !important;
  font-size: clamp(44px, 5.1vw, 78px) !important;
  line-height: .99 !important;
  letter-spacing: -.055em;
  font-weight: 800 !important;
  max-width: 760px;
}
.dmi-el-title .elementor-heading-title {
  color: var(--dmi-el-ink) !important;
  font-size: clamp(34px, 4vw, 56px) !important;
  line-height: 1.05 !important;
  letter-spacing: -.045em;
  font-weight: 800 !important;
}
.dmi-el-title--light .elementor-heading-title { color: #fff !important; }
.dmi-el-lead .elementor-widget-container,
.dmi-el-copy .elementor-widget-container {
  color: var(--dmi-el-muted);
  font-size: clamp(17px, 1.5vw, 20px);
  line-height: 1.75;
  max-width: 690px;
}
.dmi-el-copy--light .elementor-widget-container { color: #b6bfd4; }
.dmi-el-lead p, .dmi-el-copy p { margin: 0 0 1em; }
.dmi-el-lead p:last-child, .dmi-el-copy p:last-child { margin-bottom: 0; }
.dmi-el-trust-note .elementor-widget-container { color: var(--dmi-el-muted); font-size: 14px; line-height: 1.55; }
.dmi-el-trust-note strong { color: var(--dmi-el-ink); }

.dmi-el-button-row { display: flex !important; flex-direction: row !important; flex-wrap: wrap; gap: 14px !important; align-items: center; }
.dmi-native-button { width: auto !important; max-width: 100%; }
.dmi-native-button .elementor-button-wrapper { width: auto; max-width: 100%; }
.dmi-native-button .elementor-button {
  min-height: 54px;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 10px;
  max-width: 100%;
  padding: 15px 23px !important;
  border-radius: 14px !important;
  line-height: 1.25 !important;
  white-space: normal;
  text-align: center;
  font-weight: 750 !important;
  box-shadow: none;
  transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
}
.dmi-native-button .elementor-button:hover { transform: translateY(-3px); }
.dmi-native-button--primary .elementor-button { color: #fff !important; background: linear-gradient(135deg, var(--dmi-el-primary), #8b70ff) !important; box-shadow: 0 14px 34px rgba(108,85,255,.28); }
.dmi-native-button--secondary .elementor-button { color: var(--dmi-el-ink) !important; background: #fff !important; border: 1px solid var(--dmi-el-line); }
.dmi-native-button--light .elementor-button { color: var(--dmi-el-dark) !important; background: #fff !important; }

.dmi-el-hero-image img,
.dmi-el-feature-image img,
.dmi-el-contact-image img,
.dmi-el-cta-image img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 30px;
}
.dmi-el-hero-image .elementor-widget-container,
.dmi-el-feature-image .elementor-widget-container,
.dmi-el-contact-image .elementor-widget-container { filter: drop-shadow(0 26px 50px rgba(17,22,42,.12)); }
.dmi-el-floating-image { animation: dmiFloat 6s ease-in-out infinite; }
@keyframes dmiFloat { 0%,100%{transform:translateY(0) rotate(.01deg)} 50%{transform:translateY(-14px) rotate(.01deg)} }

.dmi-el-stats-section { padding-block: 0; transform: translateY(-36px); z-index: 2; }
.dmi-el-stats-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 1px !important;
  overflow: hidden;
  border: 1px solid var(--dmi-el-line);
  border-radius: 24px;
  background: var(--dmi-el-line);
  box-shadow: var(--dmi-el-shadow);
}
.dmi-el-stat { background: #fff; padding: 28px 24px; }
.dmi-el-stat .elementor-counter { display: flex; flex-direction: column; align-items: flex-start; gap: 7px; }
.dmi-el-stat .elementor-counter-number-wrapper { color: var(--dmi-el-ink); font-size: clamp(30px, 3vw, 46px); font-weight: 800; line-height: 1; }
.dmi-el-stat .elementor-counter-title { color: var(--dmi-el-muted); font-size: 13px; text-align: left; line-height: 1.4; }

.dmi-el-section-heading { max-width: 760px; display: flex !important; flex-direction: column !important; gap: 18px !important; }
.dmi-el-heading-row { max-width: none; display: grid !important; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 30px !important; }

.dmi-el-card {
  min-width: 0;
  border: 1px solid var(--dmi-el-line);
  border-radius: var(--dmi-el-radius);
  background: #fff;
  box-shadow: 0 14px 44px rgba(17,22,42,.06);
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.dmi-el-card:hover { transform: translateY(-8px); box-shadow: var(--dmi-el-shadow); border-color: rgba(108,85,255,.25); }
.dmi-el-service-card .elementor-widget-container,
.dmi-el-value-card .elementor-widget-container,
.dmi-el-process-card .elementor-widget-container { padding: 30px; }
.dmi-el-service-card .elementor-icon-box-icon,
.dmi-el-value-card .elementor-icon-box-icon,
.dmi-el-process-card .elementor-icon-box-icon { margin-bottom: 22px !important; }
.dmi-el-service-card .elementor-icon,
.dmi-el-value-card .elementor-icon,
.dmi-el-process-card .elementor-icon {
  display: inline-grid;
  place-items: center;
  width: 58px;
  height: 58px;
  border-radius: 17px;
  color: var(--dmi-el-primary) !important;
  background: #f0edff;
  font-size: 24px !important;
}
.dmi-el-card .elementor-icon-box-title,
.dmi-el-card .elementor-image-box-title { margin: 0 0 12px !important; color: var(--dmi-el-ink); font-size: 21px; line-height: 1.25; }
.dmi-el-card .elementor-icon-box-description,
.dmi-el-card .elementor-image-box-description { margin: 0; color: var(--dmi-el-muted); font-size: 15px; line-height: 1.7; }
.dmi-el-dark-section .dmi-el-process-card { border-color: rgba(255,255,255,.1); background: #151a2c; box-shadow: none; }
.dmi-el-dark-section .dmi-el-process-card .elementor-icon-box-title { color: #fff; }
.dmi-el-dark-section .dmi-el-process-card .elementor-icon-box-description { color: #aeb7ce; }

.dmi-el-service-image-card .elementor-widget-container,
.dmi-el-case-card .elementor-widget-container,
.dmi-el-portfolio-card .elementor-widget-container { padding: 14px 14px 27px; }
.dmi-el-service-image-card img,
.dmi-el-case-card img,
.dmi-el-portfolio-card img { width: 100%; border-radius: 20px; aspect-ratio: 1.35/1; object-fit: cover; }
.dmi-el-service-image-card .elementor-image-box-content,
.dmi-el-case-card .elementor-image-box-content,
.dmi-el-portfolio-card .elementor-image-box-content { padding: 16px 12px 0; }
.dmi-el-portfolio-grid { gap: 30px !important; }

.dmi-el-check-list .elementor-icon-list-items { display: grid; gap: 13px; }
.dmi-el-check-list .elementor-icon-list-item { align-items: flex-start; }
.dmi-el-check-list .elementor-icon-list-icon { margin-top: 4px; }
.dmi-el-check-list .elementor-icon-list-icon i { color: var(--dmi-el-accent); }
.dmi-el-check-list .elementor-icon-list-text { color: var(--dmi-el-ink); font-size: 16px; line-height: 1.5; }
.dmi-el-check-list--light .elementor-icon-list-text { color: #e8ebf5; }
.dmi-el-service-deliverables { padding: clamp(28px,4vw,46px) !important; }
.dmi-el-card-title .elementor-heading-title { font-size: 27px !important; color: var(--dmi-el-ink) !important; }
.dmi-el-result .elementor-heading-title { color: var(--dmi-el-primary) !important; font-size: clamp(28px,3vw,44px) !important; }

/* Custom testimonial widget */
.dmi-testimonials-widget { width: 100%; }
.dmi-widget-heading { max-width: 760px; margin-bottom: 42px; }
.dmi-widget-heading h2 { margin: 18px 0 0; color: var(--dmi-el-ink); font-size: clamp(34px,4vw,56px); line-height: 1.05; letter-spacing: -.045em; }
.dmi-testimonial-carousel { position: relative; }
.dmi-testimonial-viewport { overflow: hidden; border-radius: 30px; }
.dmi-testimonial-track { display: flex; width: 100%; transform: translate3d(0,0,0); transition-property: transform; transition-timing-function: cubic-bezier(.22,.61,.36,1); }
.dmi-testimonial-slide { flex: 0 0 100%; min-width: 0; padding: clamp(30px,5vw,62px); border: 1px solid var(--dmi-el-line); border-radius: 30px; background: #fff; box-shadow: var(--dmi-el-shadow); }
.dmi-quote-mark { display: block; color: var(--dmi-el-primary); font: 800 70px/1 Georgia,serif; height: 47px; }
.dmi-testimonial-slide blockquote { max-width: 920px; margin: 14px 0 34px; color: var(--dmi-el-ink); font-size: clamp(23px,3vw,38px); line-height: 1.35; letter-spacing: -.025em; }
.dmi-testimonial-meta { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 16px; align-items: center; }
.dmi-testimonial-avatar { display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#ece8ff;color:var(--dmi-el-primary);font-weight:800; }
.dmi-testimonial-meta p { margin: 0; display: flex; flex-direction: column; min-width: 0; }
.dmi-testimonial-meta strong { color: var(--dmi-el-ink); }
.dmi-testimonial-meta small { color: var(--dmi-el-muted); margin-top: 4px; }
.dmi-testimonial-result { padding: 10px 14px; border-radius: 999px; background: #e9fff9; color: #087d64; font-weight: 750; font-size: 13px; }
.dmi-carousel-arrows { display:flex;gap:10px;position:absolute;right:22px;bottom:22px;z-index:3; }
.dmi-carousel-arrows button { width:44px;height:44px;border:1px solid var(--dmi-el-line);border-radius:50%;background:#fff;color:var(--dmi-el-ink);cursor:pointer;font-size:18px; }
.dmi-carousel-dots { display:flex;gap:8px;justify-content:center;margin-top:24px; }
.dmi-carousel-dots button { width:9px;height:9px;padding:0;border:0;border-radius:50%;background:#c8ccda;cursor:pointer;transition:width .25s ease,background .25s ease; }
.dmi-carousel-dots button.is-active { width:28px;border-radius:99px;background:var(--dmi-el-primary); }

/* Posts widget */
.dmi-posts-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px; }
.dmi-post-card { overflow:hidden;border:1px solid var(--dmi-el-line);border-radius:24px;background:#fff;box-shadow:0 14px 44px rgba(17,22,42,.06);transition:transform .3s ease,box-shadow .3s ease; }
.dmi-post-card:hover { transform:translateY(-7px);box-shadow:var(--dmi-el-shadow); }
.dmi-post-card__image { display:flex;align-items:center;justify-content:center;aspect-ratio:1.5/1;background:linear-gradient(135deg,#eeeaff,#e9fff9);overflow:hidden;color:var(--dmi-el-primary);font-weight:800;text-transform:uppercase;letter-spacing:.1em;font-size:12px; }
.dmi-post-card__image img { width:100%;height:100%;object-fit:cover; }
.dmi-post-card__content { padding:25px; }
.dmi-post-card__content > span { color:var(--dmi-el-primary);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.09em; }
.dmi-post-card h3 { margin:13px 0 12px;font-size:21px;line-height:1.3; }
.dmi-post-card h3 a { color:var(--dmi-el-ink); }
.dmi-post-card p { color:var(--dmi-el-muted);line-height:1.65;font-size:15px; }
.dmi-text-link { color:var(--dmi-el-primary);font-weight:750; }

/* Contact widget */
.dmi-el-contact-grid { display:grid !important;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);gap:54px !important;align-items:start; }
.dmi-contact-widget { padding:clamp(28px,4vw,46px); }
.dmi-contact-widget h2 { margin:0 0 10px;color:var(--dmi-el-ink);font-size:clamp(30px,3vw,42px);letter-spacing:-.035em; }
.dmi-contact-widget > p { margin:0 0 28px;color:var(--dmi-el-muted);line-height:1.65; }
.dmi-contact-form { display:grid;gap:18px; }
.dmi-form-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px; }
.dmi-contact-form label { display:grid;gap:8px;color:var(--dmi-el-ink);font-size:14px;font-weight:700; }
.dmi-contact-form input,.dmi-contact-form select,.dmi-contact-form textarea { width:100%;min-width:0;border:1px solid #dfe2eb;border-radius:12px;background:#fff;color:var(--dmi-el-ink);padding:14px 15px;font:inherit;outline:none;transition:border .2s ease,box-shadow .2s ease; }
.dmi-contact-form input:focus,.dmi-contact-form select:focus,.dmi-contact-form textarea:focus { border-color:var(--dmi-el-primary);box-shadow:0 0 0 4px rgba(108,85,255,.1); }
.dmi-form-submit { min-height:54px;border:0;border-radius:14px;background:linear-gradient(135deg,var(--dmi-el-primary),#8b70ff);color:#fff;padding:14px 22px;font:750 16px/1.2 inherit;cursor:pointer;box-shadow:0 14px 34px rgba(108,85,255,.25); }
.dmi-hp-field { position:absolute!important;left:-9999px!important; }
.dmi-form-notice { padding:13px 15px;border-radius:10px;margin-bottom:18px; }
.dmi-form-notice--success { background:#e9fff9;color:#087d64; }
.dmi-form-notice--error { background:#fff0f2;color:#a72e42; }
.dmi-el-contact-aside { padding-top:12px; }
.dmi-el-contact-details .elementor-widget-container { color:var(--dmi-el-muted);line-height:1.65;overflow-wrap:anywhere; }
.dmi-el-contact-details strong { color:var(--dmi-el-ink); }
.dmi-el-contact-image { max-width:360px; }

/* CTA */
.dmi-el-cta-section { background:#fff; }
.dmi-el-cta-panel { overflow:hidden;padding:clamp(32px,5vw,62px) !important;border-radius:34px;background:linear-gradient(135deg,#11162a,#20284b);box-shadow:0 30px 80px rgba(17,22,42,.18); }
.dmi-el-cta-image img { border-radius:24px; }

/* Legal pages */
.dmi-el-legal-section { padding-top:130px; }
.dmi-el-legal-wrap { max-width:860px !important; }
.dmi-el-legal-heading .elementor-heading-title { margin-top:25px;color:var(--dmi-el-ink)!important;font-size:30px!important; }

/* Scroll reveal: content stays visible without JS and in editor. */
html.dmi-motion-ready:not(.elementor-html) .dmi-reveal { opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.22,.61,.36,1),transform .7s cubic-bezier(.22,.61,.36,1); }
html.dmi-motion-ready:not(.elementor-html) .dmi-reveal.dmi-is-visible { opacity:1;transform:none; }
.elementor-editor-active .dmi-reveal,.elementor-editor-preview .dmi-reveal { opacity:1!important;transform:none!important; }

/* Fallback pages */
.dmi-fallback-page { padding-block:120px; }
.dmi-fallback-page h1 { font-size:clamp(40px,5vw,70px); }

/* Footer fixes, especially long contact details and mobile. */
.site-footer { overflow:hidden; }
.footer-main > * { min-width:0; }
.footer-contact a,.footer-contact span { overflow-wrap:anywhere;word-break:break-word; }
.footer-links { padding:0;margin:0;list-style:none; }

@media (max-width: 1024px) {
  .dmi-el-grid-3 { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .dmi-el-grid-4 { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .dmi-el-stats-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .dmi-posts-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .dmi-el-contact-grid { grid-template-columns:1fr 1fr;gap:34px!important; }
}

@media (max-width: 767px) {
  .dmi-el-section { padding:68px 18px; }
  .dmi-el-home-hero,.dmi-el-page-hero { min-height:0;padding-top:90px;padding-bottom:76px; }
  .dmi-el-grid-2,.dmi-el-grid-3,.dmi-el-grid-4,.dmi-el-contact-grid,.dmi-el-heading-row { grid-template-columns:1fr!important;gap:32px!important; }
  .dmi-el-display .elementor-heading-title { font-size:clamp(40px,12vw,58px)!important;line-height:1.02!important; }
  .dmi-el-title .elementor-heading-title { font-size:clamp(31px,9vw,43px)!important; }
  .dmi-el-lead .elementor-widget-container,.dmi-el-copy .elementor-widget-container { font-size:17px; }
  .dmi-el-button-row { flex-direction:column!important;align-items:stretch!important;width:100%; }
  .dmi-native-button,.dmi-native-button .elementor-button-wrapper,.dmi-native-button .elementor-button { width:100%!important; }
  .dmi-el-stats-section { transform:none;padding:0 18px 55px; }
  .dmi-el-stats-grid { grid-template-columns:1fr; }
  .dmi-el-stat { padding:23px; }
  .dmi-el-card-grid { margin-top:34px!important; }
  .dmi-el-service-card .elementor-widget-container,.dmi-el-value-card .elementor-widget-container,.dmi-el-process-card .elementor-widget-container { padding:25px; }
  .dmi-posts-grid { grid-template-columns:1fr; }
  .dmi-testimonial-slide { padding:28px 24px 84px; }
  .dmi-testimonial-slide blockquote { font-size:23px; }
  .dmi-testimonial-meta { grid-template-columns:auto minmax(0,1fr); }
  .dmi-testimonial-result { grid-column:1/-1;width:fit-content; }
  .dmi-carousel-arrows { right:20px;bottom:20px; }
  .dmi-form-grid { grid-template-columns:1fr; }
  .dmi-el-cta-panel { padding:32px 22px!important; }
  .dmi-el-cta-image { order:-1; }
  .dmi-el-contact-image { max-width:100%; }
  .dmi-el-floating-image { animation:none; }

  .footer-main { display:grid!important;grid-template-columns:1fr!important;gap:34px!important;padding-top:58px!important;padding-bottom:38px!important; }
  .footer-brand,.footer-main > div { width:100%;max-width:100%; }
  .footer-bottom { display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:16px!important;padding-block:22px!important; }
  .footer-legal { display:flex!important;flex-wrap:wrap!important;gap:10px 18px!important;padding:0!important;margin:0!important; }
  .site-footer .brand-mark__text strong { white-space:normal;overflow-wrap:anywhere; }
}

@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important; }
  .dmi-reveal { opacity:1!important;transform:none!important; }
}

/* ========================================================================
   v3.1 — Premium spacing, typography, motion and carousel polish
   ======================================================================== */
:root {
  --dmi-el-section-space: clamp(76px, 7vw, 108px);
  --dmi-el-section-space-compact: clamp(58px, 5vw, 82px);
  --dmi-el-content-gap: clamp(38px, 5vw, 70px);
  --dmi-el-card-gap: 24px;
}

/* A predictable box model inside imported Elementor page data. */
.dmi-native-page,
.dmi-native-page * {
  min-width: 0;
}
.dmi-native-page .elementor-widget,
.dmi-native-page .elementor-widget-container,
.dmi-native-page .elementor-heading-title,
.dmi-native-page .elementor-widget-text-editor,
.dmi-native-page p,
.dmi-native-page li,
.dmi-native-page blockquote,
.dmi-native-page a,
.dmi-native-page span {
  max-width: 100%;
}
.dmi-native-page .elementor-heading-title,
.dmi-native-page .elementor-widget-text-editor,
.dmi-native-page p,
.dmi-native-page li,
.dmi-native-page blockquote,
.dmi-native-page a {
  overflow-wrap: break-word;
  word-break: normal;
}
.dmi-native-page .elementor-widget:not(:last-child) {
  margin-block-end: 0;
}

/* Consistent section rhythm—no section is pulled into another section. */
.dmi-el-section {
  isolation: isolate;
  padding: var(--dmi-el-section-space) clamp(20px, 3vw, 32px);
}
.dmi-el-wrap {
  width: min(1160px, 100%);
  max-width: 1160px !important;
}
.dmi-el-grid-2 {
  gap: var(--dmi-el-content-gap) !important;
}
.dmi-el-grid-3,
.dmi-el-grid-4 {
  gap: var(--dmi-el-card-gap) !important;
}
.dmi-el-stack {
  gap: 18px !important;
}
.dmi-el-stack--hero {
  gap: 21px !important;
}
.dmi-el-card-grid {
  margin-top: clamp(34px, 4vw, 48px) !important;
}
.dmi-el-soft-section + .dmi-el-section,
.dmi-el-dark-section + .dmi-el-section,
.dmi-el-section + .dmi-el-soft-section,
.dmi-el-section + .dmi-el-dark-section {
  margin-top: 0 !important;
}

/* Hero and statistics now occupy their own clean vertical space. */
.dmi-el-home-hero {
  min-height: min(760px, calc(100vh - var(--dmi-header-height, 78px)));
  padding-top: clamp(88px, 8vw, 118px);
  padding-bottom: clamp(86px, 8vw, 116px);
}
.dmi-el-page-hero {
  min-height: 560px;
  padding-top: clamp(92px, 8vw, 126px);
  padding-bottom: clamp(78px, 7vw, 104px);
}
.dmi-el-stats-section {
  z-index: 2;
  transform: none;
  padding-top: 30px;
  padding-bottom: clamp(64px, 6vw, 88px);
  background: #fff;
}
.dmi-el-stats-grid {
  box-shadow: 0 20px 58px rgba(17, 22, 42, .09);
}

/* More refined heading scale and readable line lengths. */
.dmi-el-display .elementor-heading-title {
  max-width: 720px;
  font-size: clamp(42px, 4.7vw, 68px) !important;
  line-height: 1.01 !important;
  letter-spacing: -.048em;
  text-wrap: balance;
}
.dmi-el-title .elementor-heading-title {
  max-width: 720px;
  font-size: clamp(31px, 3.35vw, 48px) !important;
  line-height: 1.09 !important;
  letter-spacing: -.038em;
  text-wrap: balance;
}
.dmi-el-section-heading {
  max-width: 700px;
  gap: 15px !important;
}
.dmi-el-heading-row {
  gap: 26px !important;
}
.dmi-el-lead .elementor-widget-container,
.dmi-el-copy .elementor-widget-container {
  max-width: 650px;
  font-size: clamp(16px, 1.25vw, 19px);
  line-height: 1.72;
}
.dmi-el-card-title .elementor-heading-title {
  font-size: clamp(23px, 2vw, 27px) !important;
  line-height: 1.18 !important;
}
.dmi-el-result .elementor-heading-title {
  font-size: clamp(26px, 2.55vw, 38px) !important;
  line-height: 1.12 !important;
}

/* Cards keep equal visual rhythm without text escaping their borders. */
.dmi-el-card {
  overflow: hidden;
  height: 100%;
}
.dmi-el-card .elementor-widget-container,
.dmi-post-card__content,
.dmi-contact-widget,
.dmi-el-service-deliverables {
  min-width: 0;
}
.dmi-el-service-card .elementor-widget-container,
.dmi-el-value-card .elementor-widget-container,
.dmi-el-process-card .elementor-widget-container {
  height: 100%;
  padding: 28px;
}
.dmi-el-card .elementor-icon-box-title,
.dmi-el-card .elementor-image-box-title {
  font-size: 20px;
  line-height: 1.28;
  text-wrap: balance;
}
.dmi-el-card .elementor-icon-box-description,
.dmi-el-card .elementor-image-box-description {
  font-size: 15px;
  line-height: 1.68;
}
.dmi-el-service-image-card .elementor-widget-container,
.dmi-el-case-card .elementor-widget-container,
.dmi-el-portfolio-card .elementor-widget-container {
  height: 100%;
}
.dmi-el-service-image-card img,
.dmi-el-case-card img,
.dmi-el-portfolio-card img {
  aspect-ratio: 1.45 / 1;
}

/* Buttons remain aligned and contained even with longer labels. */
.dmi-native-button,
.dmi-native-button .elementor-button-wrapper {
  min-width: 0;
}
.dmi-native-button .elementor-button {
  width: auto;
  min-width: 0;
  padding: 14px 21px !important;
  overflow: hidden;
}
.dmi-native-button .elementor-button-content-wrapper,
.dmi-native-button .elementor-button-text {
  min-width: 0;
  max-width: 100%;
}

/* Subtle premium section detail. */
.dmi-el-section-heading::after,
.dmi-widget-heading::after {
  display: block;
  width: 54px;
  height: 3px;
  margin-top: 5px;
  content: "";
  border-radius: 99px;
  background: linear-gradient(90deg, var(--dmi-el-primary), var(--dmi-el-accent));
  transform-origin: left center;
}
.dmi-el-dark-section .dmi-el-section-heading::after {
  background: linear-gradient(90deg, #9e8dff, #43e0c2);
}

/* Three-card testimonial carousel on desktop, two on tablet, one on mobile. */
.dmi-testimonials-widget {
  --dmi-carousel-gap: 22px;
  --dmi-slides-per-view: 3;
}
.dmi-widget-heading {
  max-width: 700px;
  margin-bottom: 34px;
}
.dmi-widget-heading h2 {
  margin: 16px 0 0;
  font-size: clamp(31px, 3.35vw, 48px);
  line-height: 1.09;
  letter-spacing: -.038em;
  text-wrap: balance;
}
.dmi-testimonial-viewport {
  overflow: hidden;
  border-radius: 26px;
}
.dmi-testimonial-track {
  gap: var(--dmi-carousel-gap);
  align-items: stretch;
  will-change: transform;
}
.dmi-testimonial-slide {
  flex: 0 0 calc((100% - (var(--dmi-carousel-gap) * (var(--dmi-slides-per-view) - 1))) / var(--dmi-slides-per-view));
  display: flex;
  min-width: 0;
  min-height: 330px;
  flex-direction: column;
  padding: 28px 26px;
  border-radius: 24px;
  box-shadow: 0 15px 44px rgba(17, 22, 42, .075);
}
.dmi-quote-mark {
  height: 38px;
  font-size: 56px;
}
.dmi-testimonial-slide blockquote {
  flex: 1;
  max-width: none;
  margin: 12px 0 26px;
  font-size: clamp(17px, 1.38vw, 20px);
  line-height: 1.56;
  letter-spacing: -.012em;
}
.dmi-testimonial-meta {
  grid-template-columns: auto minmax(0, 1fr);
  gap: 13px;
  align-items: center;
}
.dmi-testimonial-avatar {
  width: 46px;
  height: 46px;
  font-size: 13px;
}
.dmi-testimonial-meta strong {
  font-size: 14px;
  line-height: 1.3;
}
.dmi-testimonial-meta small {
  font-size: 12px;
  line-height: 1.4;
}
.dmi-testimonial-result {
  grid-column: 1 / -1;
  width: fit-content;
  max-width: 100%;
  padding: 8px 11px;
  font-size: 12px;
  white-space: normal;
}
.dmi-carousel-arrows {
  position: static;
  justify-content: flex-end;
  margin-top: 20px;
}
.dmi-carousel-arrows button {
  transition: transform .22s ease, color .22s ease, background .22s ease, border-color .22s ease;
}
.dmi-carousel-arrows button:hover {
  color: #fff;
  border-color: var(--dmi-el-primary);
  background: var(--dmi-el-primary);
  transform: translateY(-2px);
}
.dmi-carousel-dots {
  margin-top: -36px;
  padding-right: 116px;
  justify-content: flex-start;
}
.dmi-carousel-dots button[hidden] {
  display: none;
}

/* Premium scroll reveal. It is disabled in Elementor editor and remains visible without JS. */
html.dmi-motion-ready:not(.elementor-html) .dmi-reveal {
  opacity: 0;
  filter: blur(5px);
  transform: translate3d(0, 34px, 0) scale(.985);
  transition:
    opacity .78s cubic-bezier(.22, .61, .36, 1),
    transform .86s cubic-bezier(.16, 1, .3, 1),
    filter .78s cubic-bezier(.22, .61, .36, 1);
  transition-delay: var(--dmi-reveal-delay, 0ms);
  will-change: opacity, transform, filter;
}
html.dmi-motion-ready:not(.elementor-html) .dmi-reveal.dmi-reveal--image {
  transform: translate3d(0, 26px, 0) scale(.94);
}
html.dmi-motion-ready:not(.elementor-html) .dmi-reveal.dmi-reveal--left {
  transform: translate3d(-38px, 16px, 0) scale(.985);
}
html.dmi-motion-ready:not(.elementor-html) .dmi-reveal.dmi-reveal--right {
  transform: translate3d(38px, 16px, 0) scale(.985);
}
html.dmi-motion-ready:not(.elementor-html) .dmi-reveal.dmi-is-visible {
  opacity: 1;
  filter: blur(0);
  transform: translate3d(0, 0, 0) scale(1);
}
html.dmi-motion-ready:not(.elementor-html) .dmi-el-section-heading::after,
html.dmi-motion-ready:not(.elementor-html) .dmi-widget-heading::after {
  transform: scaleX(0);
  transition: transform .8s .24s cubic-bezier(.16, 1, .3, 1);
}
html.dmi-motion-ready:not(.elementor-html) .dmi-el-section.dmi-section-in-view .dmi-el-section-heading::after,
html.dmi-motion-ready:not(.elementor-html) .dmi-el-section.dmi-section-in-view .dmi-widget-heading::after {
  transform: scaleX(1);
}
.dmi-el-home-hero::before,
.dmi-el-page-hero::before {
  position: absolute;
  z-index: 0;
  top: 12%;
  right: 5%;
  width: clamp(210px, 30vw, 460px);
  height: clamp(210px, 30vw, 460px);
  content: "";
  border: 1px solid rgba(108, 85, 255, .10);
  border-radius: 50%;
  box-shadow: 0 0 0 42px rgba(108, 85, 255, .025), 0 0 0 86px rgba(24, 200, 164, .018);
  animation: dmiOrbit 16s linear infinite;
  pointer-events: none;
}
@keyframes dmiOrbit {
  to { transform: rotate(360deg); }
}

@media (max-width: 1024px) {
  :root {
    --dmi-el-section-space: clamp(68px, 8vw, 88px);
    --dmi-el-content-gap: 42px;
  }
  .dmi-el-display .elementor-heading-title {
    font-size: clamp(40px, 6.3vw, 58px) !important;
  }
  .dmi-el-title .elementor-heading-title,
  .dmi-widget-heading h2 {
    font-size: clamp(30px, 4.7vw, 43px) !important;
  }
  .dmi-testimonials-widget {
    --dmi-slides-per-view: 2;
    --dmi-carousel-gap: 20px;
  }
  .dmi-testimonial-slide {
    min-height: 310px;
  }
}

@media (max-width: 767px) {
  :root {
    --dmi-el-section-space: 64px;
    --dmi-el-card-gap: 18px;
  }
  .dmi-el-section {
    padding: var(--dmi-el-section-space) 18px;
  }
  .dmi-el-home-hero,
  .dmi-el-page-hero {
    padding-top: 76px;
    padding-bottom: 68px;
  }
  .dmi-el-home-hero {
    min-height: auto;
  }
  .dmi-el-page-hero {
    min-height: auto;
  }
  .dmi-el-stats-section {
    padding: 24px 18px 58px;
  }
  .dmi-el-grid-2,
  .dmi-el-grid-3,
  .dmi-el-grid-4,
  .dmi-el-contact-grid,
  .dmi-el-heading-row {
    gap: 30px !important;
  }
  .dmi-el-display .elementor-heading-title {
    font-size: clamp(37px, 10.8vw, 50px) !important;
    line-height: 1.04 !important;
    letter-spacing: -.042em;
  }
  .dmi-el-title .elementor-heading-title,
  .dmi-widget-heading h2 {
    font-size: clamp(28px, 8.2vw, 38px) !important;
    line-height: 1.12 !important;
  }
  .dmi-el-lead .elementor-widget-container,
  .dmi-el-copy .elementor-widget-container {
    font-size: 16px;
    line-height: 1.68;
  }
  .dmi-el-card-grid {
    margin-top: 30px !important;
  }
  .dmi-el-service-card .elementor-widget-container,
  .dmi-el-value-card .elementor-widget-container,
  .dmi-el-process-card .elementor-widget-container {
    padding: 24px;
  }
  .dmi-el-cta-panel {
    padding: 30px 21px !important;
    border-radius: 26px;
  }
  .dmi-testimonials-widget {
    --dmi-slides-per-view: 1;
    --dmi-carousel-gap: 16px;
  }
  .dmi-widget-heading {
    margin-bottom: 28px;
  }
  .dmi-testimonial-slide {
    min-height: 0;
    padding: 25px 22px;
  }
  .dmi-testimonial-slide blockquote {
    font-size: 17px;
    line-height: 1.58;
  }
  .dmi-carousel-arrows {
    justify-content: flex-end;
  }
  .dmi-carousel-dots {
    min-height: 44px;
    margin-top: -44px;
    padding-right: 108px;
    align-items: center;
  }
  html.dmi-motion-ready:not(.elementor-html) .dmi-reveal,
  html.dmi-motion-ready:not(.elementor-html) .dmi-reveal.dmi-reveal--left,
  html.dmi-motion-ready:not(.elementor-html) .dmi-reveal.dmi-reveal--right,
  html.dmi-motion-ready:not(.elementor-html) .dmi-reveal.dmi-reveal--image {
    transform: translate3d(0, 24px, 0) scale(.985);
  }
  .dmi-el-home-hero::before,
  .dmi-el-page-hero::before {
    right: -24%;
    opacity: .7;
  }
}

@media (prefers-reduced-motion: reduce) {
  .dmi-el-home-hero::before,
  .dmi-el-page-hero::before {
    animation: none !important;
  }
  .dmi-reveal,
  .dmi-reveal.dmi-reveal--left,
  .dmi-reveal.dmi-reveal--right,
  .dmi-reveal.dmi-reveal--image {
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
    transition: none !important;
  }
  .dmi-el-section-heading::after,
  .dmi-widget-heading::after {
    transform: scaleX(1) !important;
    transition: none !important;
  }
}

/* Keep reveal transforms and floating motion from fighting each other. */
.dmi-el-floating-image {
  animation: none;
  transition: transform .28s ease-out;
}
.dmi-el-floating-image img {
  transform: translate3d(0, 0, 0);
}
.dmi-el-floating-image.dmi-is-visible img {
  animation: dmiFloatImage 6s ease-in-out .9s infinite;
}
@keyframes dmiFloatImage {
  0%, 100% { transform: translate3d(0, 0, 0); }
  50% { transform: translate3d(0, -12px, 0); }
}
@media (prefers-reduced-motion: reduce), (max-width: 767px) {
  .dmi-el-floating-image.dmi-is-visible img { animation: none !important; }
}
