/* ==========================================================================
   WINAMBA Agency — estilos para la plantilla de Elementor
   Todo está dentro de .dg-shell (el contenedor principal de la plantilla),
   así que no afecta a otras páginas del sitio.

   Estructura que espera (clases puestas en Elementor → Avanzado → Clases CSS):
     .dg-shell                 contenedor principal (fila)
       .dg-sidebar             menú + tarjeta
         .dg-menu              widget HTML con el menú vertical
         .dg-card              tarjeta de perfil
       .dg-pages               contenedor de secciones
         .dg-page  #dg-about   una "página" por sección (ID CSS: dg-about,
         .dg-page  #dg-services dg-services, dg-portfolio, dg-contact)
   ========================================================================== */

body .elementor .dg-shell.dg-shell {
  --dg-accent: #d60075;
  --dg-accent-hover: #ef0a86;
  --dg-accent-soft: rgba(214, 0, 117, 0.14);
  --dg-link: #ff5aa8;
  --dg-bg: #222222;
  --dg-card: #444444;
  --dg-tile: #333333;
  --dg-line: #333333;
  --dg-line-2: #555555;
  --dg-text: #d5d5d5;
  --dg-heading: #f5f5f5;
  --dg-title: #eeeeee;
  --dg-muted: #aaaaaa;
  --dg-menu: #b5b6b7;
  --dg-white: #ffffff;
  --dg-font: 'Poppins', Helvetica, Arial, sans-serif;
  --dg-radius: 10px;
  --dg-pill: 30px;
  --dg-shadow-lift: 0 10px 10px -8px rgba(0, 0, 0, 0.22);
  --dg-menu-w: 86px;
  --dg-card-w: 420px;
  --dg-pad-x: 50px;
  --dg-pad-top: 60px;
  --dg-speed: .6s;

  /* Colores y fuentes globales de Elementor, solo dentro de la plantilla:
     así los widgets usan la paleta de WINAMBA aunque el sitio tenga otra. */
  --e-global-color-primary: #f5f5f5;
  --e-global-color-secondary: #eeeeee;
  --e-global-color-text: #d5d5d5;
  --e-global-color-accent: #d60075;
  --e-global-typography-primary-font-family: 'Poppins';
  --e-global-typography-secondary-font-family: 'Poppins';
  --e-global-typography-text-font-family: 'Poppins';
  --e-global-typography-accent-font-family: 'Poppins';
}

/* En el editor de Elementor: secciones completas una debajo de otra (sin scroll interno),
   con el menú y la tarjeta fijos a la izquierda. */
body.elementor-editor-active .elementor .dg-shell.dg-shell.e-con { height: auto; overflow: visible; align-items: flex-start; }
body.elementor-editor-active .elementor .dg-shell.dg-shell .dg-sidebar.e-con { position: sticky; top: 0; height: 100vh; }
body.elementor-editor-active .elementor .dg-shell.dg-shell .dg-pages.e-con { height: auto; overflow: visible; }

/* ---------- base de la página ---------- */
body.dg-shell-page { margin: 0; background: #222222; }
html.dg-js body.dg-shell-page { overflow: hidden; }

body .elementor .dg-shell.dg-shell {
  font: 400 15px/1.75 var(--dg-font);
  color: var(--dg-text);
  background: var(--dg-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body .elementor .dg-shell.dg-shell *, body .elementor .dg-shell.dg-shell *::before, body .elementor .dg-shell.dg-shell *::after { box-sizing: border-box; }
body .elementor .dg-shell.dg-shell a { color: inherit; text-decoration: none; }
body .elementor .dg-shell.dg-shell p { margin: 0; }
body .elementor .dg-shell.dg-shell :focus-visible { outline: 2px solid var(--dg-link); outline-offset: 3px; border-radius: 4px; }
body .elementor .dg-shell.dg-shell .screen-reader-text {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
body .elementor .dg-shell.dg-shell .dg-ico { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; flex: 0 0 auto; }
body .elementor .dg-shell.dg-shell .elementor-heading-title,
body .elementor .dg-shell.dg-shell h1, body .elementor .dg-shell.dg-shell h2, body .elementor .dg-shell.dg-shell h3 {
  margin: 0; font-family: var(--dg-font) !important; font-weight: 600; line-height: 1.2; color: var(--dg-heading) !important;
}
body .elementor .dg-shell.dg-shell .elementor-widget-text-editor { color: var(--dg-text) !important; font-family: var(--dg-font) !important; font-size: 15px; line-height: 1.75; }

/* Elementor pone padding y espacios por defecto a los contenedores: aquí los quitamos
   y cada bloque define los suyos. */
body .elementor .dg-shell.dg-shell.e-con,
body .elementor .dg-shell.dg-shell .e-con {
  padding: 0; margin: 0; gap: 0;
  min-height: 0;
  --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px;
  --margin-top: 0px; --margin-right: 0px; --margin-bottom: 0px; --margin-left: 0px;
  --gap: 0px 0px; --row-gap: 0px; --column-gap: 0px;
  --widgets-spacing: 0px 0px; --widgets-spacing-row: 0px; --widgets-spacing-column: 0px;
}
body .elementor .dg-shell.dg-shell .elementor-widget { margin: 0; }
body .elementor .dg-shell.dg-shell .elementor-widget-container { margin: 0; padding: 0; }

/* ---------- marco: menú + tarjeta + secciones ---------- */
body .elementor .dg-shell.dg-shell.e-con {
  display: flex; flex-direction: row; flex-wrap: nowrap;
  width: 100%; max-width: none; height: 100vh; height: 100dvh;
  overflow: hidden; position: relative;
}
/* con sesión iniciada, WordPress agrega su barra negra arriba (32px; 46px en pantallas chicas) */
body.admin-bar .elementor .dg-shell.dg-shell.e-con { height: calc(100vh - 32px); height: calc(100dvh - 32px); }
body .elementor .dg-shell.dg-shell .dg-sidebar.e-con {
  display: flex; flex-direction: row; flex-wrap: nowrap;
  flex: 0 0 calc(var(--dg-menu-w) + var(--dg-card-w)); width: calc(var(--dg-menu-w) + var(--dg-card-w));
  height: 100%; position: relative; z-index: 5;
}

/* menú vertical */
body .elementor .dg-shell.dg-shell .dg-menu { flex: 0 0 var(--dg-menu-w); width: var(--dg-menu-w); height: 100%; background: var(--dg-bg); }
.dg-menu ul { margin: 0; padding: 0; list-style: none; }
.dg-menu a {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
  height: 78px; border-bottom: 1px solid var(--dg-line);
  color: var(--dg-menu); font-size: 15px; line-height: 1.2;
  transition: color .2s ease;
}
.dg-menu li:first-child a { height: 93px; padding-top: 15px; }
body .elementor .dg-shell.dg-shell .dg-menu .dg-ico { width: 30px; height: 30px; stroke-width: 1.4; }
.dg-menu a:hover, .dg-menu a[aria-current="page"] { color: var(--dg-accent); }

/* tarjeta de perfil */
body .elementor .dg-shell.dg-shell .dg-card.e-con {
  display: flex; flex-direction: column; flex-wrap: nowrap;
  flex: 0 0 var(--dg-card-w); width: var(--dg-card-w); height: 100%;
  background: var(--dg-card); box-shadow: 0 0 100px -5px rgba(0, 0, 0, .25);
  text-align: center; overflow-y: auto; position: relative;
}
body .elementor .dg-shell.dg-shell .dg-card-head.e-con { display: flex; flex-direction: column; align-items: center; width: 100%; padding: 65px 30px 45px; }
body .elementor .dg-shell.dg-shell .dg-photo { position: relative; width: 150px; margin: 0 auto 30px; }
.dg-photo::after {
  content: ""; position: absolute; right: -14px; bottom: -14px; width: 96px; height: 96px; border-radius: 50%;
  background-image: radial-gradient(rgba(255,255,255,.45) 1px, transparent 1.4px); background-size: 5px 5px;
  -webkit-mask-image: linear-gradient(315deg, #000 30%, transparent 65%); mask-image: linear-gradient(315deg, #000 30%, transparent 65%);
}
body .elementor .dg-shell.dg-shell .dg-photo img {
  position: relative; z-index: 1; display: block; width: 150px; height: 150px; max-width: none; object-fit: cover;
  border-radius: 50%; border: 3px solid #fff; background: #fff;
}
body .elementor .dg-shell.dg-shell .dg-name .elementor-heading-title { font-size: 36px; line-height: 43px; color: #fff !important; }
body .elementor .dg-shell.dg-shell .dg-role .elementor-heading-title { margin-top: 7px; font-size: 18px; line-height: 22px; font-weight: 300; color: #fff !important; }
.dg-quick { display: flex; justify-content: center; gap: 4px; margin: 20px 0 0; padding: 0; list-style: none; }
.dg-quick a { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; color: #fff; transition: color .2s; }
.dg-quick a:hover { color: var(--dg-accent); }
body .elementor .dg-shell.dg-shell .dg-quick .dg-ico { width: 18px; height: 18px; stroke-width: 1.8; }
body .elementor .dg-shell.dg-shell .dg-card-cta { margin-top: 22px; }
body .elementor .dg-shell.dg-shell .dg-card-cta .elementor-button {
  height: 40px; padding: 0 22px; display: inline-flex; align-items: center;
  border-radius: var(--dg-pill); background: var(--dg-accent) !important; color: #fff !important; font: 600 14px/1 var(--dg-font);
  transition: background .2s;
}
body .elementor .dg-shell.dg-shell .dg-card-cta .elementor-button:hover { background: var(--dg-accent-hover) !important; color: #fff !important; }
body .elementor .dg-shell.dg-shell .dg-card-foot { margin-top: auto; padding: 0 30px 15px; }
body .elementor .dg-shell.dg-shell .dg-card-foot, body .elementor .dg-shell.dg-shell .dg-card-foot p { font-size: 11px; line-height: 1.4; font-weight: 600; color: var(--dg-title); }

/* selector de idioma (lo rellena winamba.js con los enlaces de Polylang) */
.dg-lang { display: flex; align-items: center; gap: 2px; padding: 3px; border-radius: 20px; font-size: 12px; font-weight: 600; letter-spacing: .04em; line-height: 1; }
.dg-lang:empty { display: none; }
.dg-lang a, .dg-lang span { display: inline-flex; align-items: center; justify-content: center; min-width: 34px; padding: 7px 9px; border-radius: 20px; }
.dg-lang span { background: var(--dg-accent); color: #fff; }
.dg-lang a { color: var(--dg-text); transition: color .2s, background .2s; }
.dg-lang a:hover { color: #fff; background: var(--dg-accent-soft); }
.dg-card .dg-lang { position: absolute; top: 16px; right: 16px; z-index: 2; background: rgba(0, 0, 0, .2); }

/* contenedor de secciones */
body .elementor .dg-shell.dg-shell .dg-pages.e-con {
  display: block; flex: 1 1 auto; min-width: 0; width: auto; height: 100%;
  position: relative; overflow-x: hidden; overflow-y: auto;
  perspective: 1200px;
}
html.dg-js body .elementor .dg-shell.dg-shell .dg-pages.e-con { overflow: hidden; }

/* cada sección ("página") */
body .elementor .dg-shell.dg-shell .dg-page.e-con {
  display: block; width: 100%; max-width: none;
  padding: var(--dg-pad-top) var(--dg-pad-x) 90px;
  background: var(--dg-bg);
}
body .elementor .dg-shell.dg-shell .dg-page.e-con > * { max-width: 1140px; }
html.dg-js body .elementor .dg-shell.dg-shell .dg-page.e-con {
  position: absolute; inset: 0; height: 100%;
  overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain;
  visibility: hidden; z-index: 0;
  backface-visibility: hidden; transform-style: preserve-3d;
}
html.dg-js body .elementor .dg-shell.dg-shell .dg-page.e-con.is-active,
html.dg-js body .elementor .dg-shell.dg-shell .dg-page.e-con.dg-animating { visibility: visible; z-index: 1; }
html.dg-js body .elementor .dg-shell.dg-shell .dg-page.e-con.dg-ontop { z-index: 3; }
html.dg-js body .elementor .dg-shell.dg-shell .dg-page.e-con:focus { outline: none; }
/* en el editor (o sin JavaScript) las secciones se ven una debajo de otra */
html:not(.dg-js) body .elementor .dg-shell.dg-shell .dg-page.e-con + .dg-page.e-con { border-top: 1px dashed var(--dg-line-2); }

/* ---------- piezas comunes ---------- */
body .elementor .dg-shell.dg-shell .dg-page-title .elementor-heading-title,
body .elementor .dg-shell.dg-shell .dg-block-title .elementor-heading-title { position: relative; isolation: isolate; }
body .elementor .dg-shell.dg-shell .dg-page-title .elementor-heading-title::before,
body .elementor .dg-shell.dg-shell .dg-block-title .elementor-heading-title::before {
  content: ""; position: absolute; left: -10px; top: -4px; width: 18px; height: 18px; z-index: -1;
  background-image: radial-gradient(rgba(214,0,117,.75) 1px, transparent 1.3px); background-size: 4px 4px;
}
body .elementor .dg-shell.dg-shell .dg-page-title { margin: 0 10px 30px; }
body .elementor .dg-shell.dg-shell .dg-page-title .elementor-heading-title { font-size: 32px; line-height: 38px; color: var(--dg-title) !important; }
body .elementor .dg-shell.dg-shell .dg-page-lead { margin: 10px 10px 50px; max-width: 760px; }
body .elementor .dg-shell.dg-shell .dg-page-lead, body .elementor .dg-shell.dg-shell .dg-page-lead p { font-size: 22px; line-height: 1.4; font-weight: 600; color: #fff; }
body .elementor .dg-shell.dg-shell .dg-block-title { margin: 20px 10px 30px; }
body .elementor .dg-shell.dg-shell .dg-block-title .elementor-heading-title { font-size: 21px; line-height: 25px; }
body .elementor .dg-shell.dg-shell .dg-block-title .elementor-heading-title span { color: var(--dg-accent) !important; }

/* botones (widget Botón con clase dg-btn-primary o dg-btn-outline) */
body .elementor .dg-shell.dg-shell .dg-btn-row.e-con { display: flex; flex-direction: row; flex-wrap: wrap; gap: 12px; width: 100%; }
body .elementor .dg-shell.dg-shell :is(.dg-btn-primary, .dg-btn-outline) { width: auto; }
body .elementor .dg-shell.dg-shell :is(.dg-btn-primary, .dg-btn-outline) .elementor-button {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  height: 46px; padding: 0 24px; border-radius: var(--dg-pill); border: 2px solid transparent;
  font: 400 15px/1 var(--dg-font); white-space: nowrap; cursor: pointer;
  transition: background .2s, border-color .2s, color .2s, transform .2s;
}
body .elementor .dg-shell.dg-shell :is(.dg-btn-primary, .dg-btn-outline) .elementor-button:active { transform: translateY(1px); }
body .elementor .dg-shell.dg-shell .dg-btn-primary .elementor-button { background: var(--dg-accent) !important; border-color: var(--dg-accent) !important; color: #fff !important; font-weight: 600; }
body .elementor .dg-shell.dg-shell .dg-btn-primary .elementor-button:hover { background: var(--dg-accent-hover) !important; border-color: var(--dg-accent-hover) !important; color: #fff !important; }
body .elementor .dg-shell.dg-shell .dg-btn-outline .elementor-button { background: transparent !important; border-color: var(--dg-text) !important; color: var(--dg-heading) !important; }
body .elementor .dg-shell.dg-shell .dg-btn-outline .elementor-button:hover { border-color: var(--dg-accent) !important; background: var(--dg-accent-soft) !important; color: #fff !important; }
body .elementor .dg-shell.dg-shell .dg-btn-hero .elementor-button { padding: 0 33px; }
body .elementor .dg-shell.dg-shell .dg-btn-hero .elementor-button:hover { background: var(--dg-accent) !important; border-color: var(--dg-accent) !important; }

/* caja de llamada a la acción */
body .elementor .dg-shell.dg-shell .dg-cta.e-con {
  display: flex; flex-direction: column; width: auto; margin: 60px 10px 0; padding: 30px;
  border-radius: var(--dg-radius); background: var(--dg-tile); border: 1px solid var(--dg-line-2); box-shadow: var(--dg-shadow-lift);
}
body .elementor .dg-shell.dg-shell .dg-cta .elementor-heading-title { font-size: 21px; line-height: 1.3; }
body .elementor .dg-shell.dg-shell .dg-cta .elementor-widget-text-editor { margin: 8px 0 20px; }

/* ---------- Acerca de: portada ---------- */
body .elementor .dg-shell.dg-shell .dg-hero.e-con { display: grid; grid-template-columns: 45% 55%; align-items: center; min-height: 443px; width: 100%; }
body .elementor .dg-shell.dg-shell .dg-hero-logo { position: relative; width: 81%; max-width: 310px; margin: 0 auto 0 7.6%; }
.dg-hero-logo::before {
  content: ""; position: absolute; left: -6%; top: -3%; width: 42%; height: 68%;
  background-image: radial-gradient(circle, #333333 1.6px, transparent 2.2px); background-size: 18px 18px;
}
.dg-hero-logo svg { position: relative; display: block; width: 100%; height: auto; border-radius: 50%; box-shadow: 0 0 30px 0 rgba(0,0,0,.35); }
body .elementor .dg-shell.dg-shell .dg-hero-text.e-con { display: flex; flex-direction: column; align-items: flex-start; padding: 0 25px 11px 0; width: 100%; }
body .elementor .dg-shell.dg-shell .dg-rotator { width: 100%; margin-bottom: 10px; }
body .elementor .dg-shell.dg-shell .dg-rotator .elementor-heading-title { position: relative; height: 19px; font-size: 16px; line-height: 19px; font-weight: 300; color: var(--dg-muted) !important; }
.dg-rotator .dg-word { position: absolute; left: 0; top: 0; white-space: nowrap; opacity: 0; transform: translateY(6px); transition: opacity .45s ease, transform .45s ease; }
.dg-rotator .dg-word.is-active { opacity: 1; transform: none; }
body .elementor .dg-shell.dg-shell .dg-hero-title { margin-bottom: 20px; }
body .elementor .dg-shell.dg-shell .dg-hero-title .elementor-heading-title { font-size: 48px; line-height: 56px; }
body .elementor .dg-shell.dg-shell .dg-hero-lead { margin-bottom: 27px; }

/* ---------- Acerca de: lo que hacemos ---------- */
body .elementor .dg-shell.dg-shell .dg-features.e-con { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 25px 20px; width: auto; margin: 0 10px; }
body .elementor .dg-shell.dg-shell .dg-feature { padding-top: 10px; }
body .elementor .dg-shell.dg-shell .dg-feature .elementor-icon-box-wrapper { display: block; text-align: left; }
body .elementor .dg-shell.dg-shell .dg-feature .elementor-icon-box-icon { display: block; margin: 0 0 19px; line-height: 0; }
body .elementor .dg-shell.dg-shell .dg-feature .elementor-icon { font-size: 40px; color: var(--dg-accent) !important; fill: var(--dg-accent) !important; }
body .elementor .dg-shell.dg-shell .dg-feature .elementor-icon svg { width: 40px; height: 40px; fill: var(--dg-accent) !important; }
body .elementor .dg-shell.dg-shell .dg-feature .elementor-icon-box-title { margin: 0 0 9px; font-size: 16px; line-height: 19px; color: var(--dg-heading) !important; }
body .elementor .dg-shell.dg-shell .dg-feature .elementor-icon-box-description { margin: 0; font-size: 14.25px; line-height: 25px; color: var(--dg-text) !important; }
body .elementor .dg-shell.dg-shell .dg-more-link { margin: 24px 10px 0; }
body .elementor .dg-shell.dg-shell .dg-more-link a { display: inline-flex; align-items: center; gap: 8px; color: var(--dg-link); font-weight: 600; }
body .elementor .dg-shell.dg-shell .dg-more-link a:hover { text-decoration: underline; }

/* ---------- Acerca de: testimonios (3 widgets Testimonio en fila) ---------- */
body .elementor .dg-shell.dg-shell .dg-testimonials.e-con {
  display: flex; flex-direction: row; flex-wrap: nowrap; gap: 20px; width: auto; margin: 0 10px;
  overflow-x: auto; scroll-snap-type: x mandatory; padding: 50px 2px 6px; scrollbar-width: none;
}
.dg-testimonials::-webkit-scrollbar { display: none; }
body .elementor .dg-shell.dg-shell .dg-t-card {
  position: relative; flex: 0 0 calc((100% - 40px) / 3); scroll-snap-align: start;
  padding: 60px 22px 24px; background: var(--dg-tile); border: 1px solid var(--dg-line-2);
  border-radius: var(--dg-radius); box-shadow: var(--dg-shadow-lift);
}
body .elementor .dg-shell.dg-shell .dg-t-card .elementor-testimonial-wrapper { display: flex; flex-direction: column; height: 100%; text-align: left; }
body .elementor .dg-shell.dg-shell .dg-t-card .elementor-testimonial-content { order: 2; flex: 1; margin: 0 0 18px; font-size: 15px; line-height: 1.75; font-style: italic; color: var(--dg-text) !important; }
body .elementor .dg-shell.dg-shell .dg-t-card .elementor-testimonial-meta { order: 3; margin: 0; }
body .elementor .dg-shell.dg-shell .dg-t-card .elementor-testimonial-meta-inner { display: block; }
body .elementor .dg-shell.dg-shell .dg-t-card .elementor-testimonial-image { position: absolute; top: -45px; left: 50%; transform: translateX(-50%); padding: 0; margin: 0; }
body .elementor .dg-shell.dg-shell .dg-t-card .elementor-testimonial-image img { width: 90px; height: 90px; max-width: none; border-radius: 50%; object-fit: cover; border: 3px solid var(--dg-card); background: var(--dg-card) !important; }
body .elementor .dg-shell.dg-shell .dg-t-card .elementor-testimonial-details { text-align: left; }
body .elementor .dg-shell.dg-shell .dg-t-card .elementor-testimonial-name { display: block; font-size: 15px; line-height: 18px; font-weight: 600; color: var(--dg-heading) !important; }
body .elementor .dg-shell.dg-shell .dg-t-card .elementor-testimonial-job { display: block; margin-top: 2px; font-size: 13px; line-height: 19px; font-weight: 300; color: var(--dg-link) !important; }
body .elementor .dg-shell.dg-shell .dg-t-note { margin: 12px 10px 0; }
body .elementor .dg-shell.dg-shell .dg-t-note p { font-size: 12px; line-height: 1.5; color: var(--dg-muted); font-style: italic; }

/* ---------- Acerca de: clientes (cinta de logos) ---------- */
.dg-clients {
  overflow: hidden; margin: 0 10px;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.dg-clients ul { display: flex; gap: 40px; width: max-content; margin: 0; padding: 0; list-style: none; animation: dg-marquee 45s linear infinite; }
.dg-clients:hover ul, .dg-clients:focus-within ul { animation-play-state: paused; }
.dg-clients li { flex: 0 0 auto; }
.dg-clients img { display: block; width: 271px; height: 121px; max-width: none; object-fit: contain; opacity: .85; transition: opacity .2s; }
.dg-clients a:hover img { opacity: 1; }
@keyframes dg-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ---------- Servicios ---------- */
body .elementor .dg-shell.dg-shell .dg-service-groups.e-con { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 20px; width: auto; margin: 0 10px; }
body .elementor .dg-shell.dg-shell .dg-service-group.e-con { display: flex; flex-direction: column; width: 100%; }
body .elementor .dg-shell.dg-shell .dg-group-title { margin-bottom: 20px; }
body .elementor .dg-shell.dg-shell .dg-group-title .elementor-icon-box-wrapper { display: flex; align-items: center; gap: 10px; text-align: left; }
body .elementor .dg-shell.dg-shell .dg-group-title .elementor-icon-box-icon { margin: 0; line-height: 0; }
body .elementor .dg-shell.dg-shell .dg-group-title .elementor-icon { font-size: 24px; color: var(--dg-accent) !important; fill: var(--dg-accent) !important; }
body .elementor .dg-shell.dg-shell .dg-group-title .elementor-icon svg { width: 24px; height: 24px; fill: var(--dg-accent) !important; }
body .elementor .dg-shell.dg-shell .dg-group-title .elementor-icon-box-title { margin: 0; font-size: 16px; line-height: 19px; text-transform: uppercase; letter-spacing: .02em; color: var(--dg-heading) !important; }
body .elementor .dg-shell.dg-shell .dg-group-title .elementor-icon-box-description { display: none; }
body .elementor .dg-shell.dg-shell .dg-checklist .elementor-icon-list-items { margin: 0; padding: 0; list-style: none; }
body .elementor .dg-shell.dg-shell .dg-checklist .elementor-icon-list-item { display: flex; align-items: flex-start; gap: 11px; padding: 0; line-height: 26px; }
body .elementor .dg-shell.dg-shell .dg-checklist .elementor-icon-list-icon { flex: 0 0 15px; padding-top: 5px; line-height: 0; }
body .elementor .dg-shell.dg-shell .dg-checklist .elementor-icon-list-icon i { font-size: 15px; color: var(--dg-accent) !important; }
body .elementor .dg-shell.dg-shell .dg-checklist .elementor-icon-list-icon svg { width: 15px; height: 15px; fill: var(--dg-accent) !important; }
body .elementor .dg-shell.dg-shell .dg-checklist .elementor-icon-list-text { padding: 0; color: var(--dg-text) !important; font-size: 15px; }

/* ---------- Portafolio ---------- */
.dg-filters { display: flex; flex-wrap: wrap; gap: 8px 6px; margin: 10px 10px 36px; }
.dg-filters button {
  padding: 4px 12px; border: 1px solid transparent; border-radius: 20px; background: transparent;
  font: 400 14px/20px var(--dg-font); color: var(--dg-muted); cursor: pointer; transition: color .2s, background .2s, border-color .2s;
}
.dg-filters button:hover { color: #fff; border-color: var(--dg-line-2); background: transparent; }
.dg-filters button[aria-pressed="true"] { background: var(--dg-accent); color: #fff; }
body .elementor .dg-shell.dg-shell .dg-projects.e-con { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px 16px; width: auto; margin: 0 10px; }
body .elementor .dg-shell.dg-shell .dg-project.e-con { display: flex; flex-direction: column; width: 100%; }
body .elementor .dg-shell.dg-shell .dg-project.e-con[hidden] { display: none; }
body .elementor .dg-shell.dg-shell .dg-project-img a, body .elementor .dg-shell.dg-shell .dg-project-img .elementor-widget-container { display: block; }
body .elementor .dg-shell.dg-shell .dg-project-img a { overflow: hidden; border-radius: var(--dg-radius); aspect-ratio: 3 / 2; background: var(--dg-tile); box-shadow: 0 0 30px -5px rgba(0, 0, 0, .15); }
body .elementor .dg-shell.dg-shell .dg-project-img img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: top center; border-radius: 0; transition: transform .5s ease; }
body .elementor .dg-shell.dg-shell .dg-project:hover .dg-project-img img { transform: scale(1.05); }
body .elementor .dg-shell.dg-shell .dg-project-title { margin-top: 15px; }
body .elementor .dg-shell.dg-shell .dg-project-title .elementor-heading-title { font-size: 16px; line-height: 19px; }
body .elementor .dg-shell.dg-shell .dg-project-meta { margin-top: 4px; }
body .elementor .dg-shell.dg-shell .dg-project-meta p { font-size: 13px; line-height: 19px; color: var(--dg-muted); }
body .elementor .dg-shell.dg-shell .dg-project-meta a { display: inline-flex; align-items: center; gap: 6px; margin-top: 6px; color: var(--dg-link); font-weight: 600; }
body .elementor .dg-shell.dg-shell .dg-project-meta a:hover { text-decoration: underline; }
body .elementor .dg-shell.dg-shell .dg-project-meta .dg-ico { width: 14px; height: 14px; stroke-width: 2; }

/* ---------- Contacto ---------- */
body .elementor .dg-shell.dg-shell .dg-contact-intro { margin: 40px 10px 50px; }
body .elementor .dg-shell.dg-shell .dg-contact-intro .elementor-heading-title { font-size: 18px; line-height: 1.4; color: #fff !important; }
body .elementor .dg-shell.dg-shell .dg-contact-intro .elementor-heading-title span { display: block; }
body .elementor .dg-shell.dg-shell .dg-map { margin: 0 10px; }
body .elementor .dg-shell.dg-shell .dg-map iframe { display: block; width: 100%; height: 200px; border: 0; border-radius: 5px; filter: grayscale(.15); }
body .elementor .dg-shell.dg-shell .dg-info-cards.e-con { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; width: auto; margin: 20px 10px 0; }
body .elementor .dg-shell.dg-shell .dg-info-card { height: 100%; }
body .elementor .dg-shell.dg-shell .dg-info-card .elementor-icon-box-wrapper {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; height: 100%;
  min-height: 110px; padding: 18px 12px; text-align: center;
  background: var(--dg-tile) !important; border: 2px solid var(--dg-card); border-radius: var(--dg-radius);
  transition: border-color .2s, transform .2s;
}
body .elementor .dg-shell.dg-shell .dg-info-card .elementor-icon-box-wrapper:hover { border-color: var(--dg-accent) !important; transform: translateY(-2px); }
body .elementor .dg-shell.dg-shell .dg-info-card .elementor-icon-box-icon { margin: 0; line-height: 0; }
body .elementor .dg-shell.dg-shell .dg-info-card .elementor-icon { font-size: 28px; color: var(--dg-accent) !important; fill: var(--dg-accent) !important; }
body .elementor .dg-shell.dg-shell .dg-info-card .elementor-icon svg { width: 28px; height: 28px; fill: var(--dg-accent) !important; }
body .elementor .dg-shell.dg-shell .dg-info-card .elementor-icon-box-title { margin: 0; font-size: 15px; line-height: 18px; color: var(--dg-heading) !important; white-space: nowrap; }
body .elementor .dg-shell.dg-shell .dg-form-title { margin: 40px 10px 20px; }
body .elementor .dg-shell.dg-shell .dg-form-title .elementor-heading-title { font-size: 21px; line-height: 25px; }
body .elementor .dg-shell.dg-shell .dg-form { margin: 0 10px; }
body .elementor .dg-shell.dg-shell .dg-form .elementor-field-group { margin-bottom: 21px; }
body .elementor .dg-shell.dg-shell .dg-form .elementor-field-label { color: var(--dg-text) !important; font-size: 13px; }
body .elementor .dg-shell.dg-shell .dg-form .elementor-field-textual {
  background: transparent !important; color: var(--dg-title) !important; font: 400 15px/1.4 var(--dg-font);
  border: 2px solid var(--dg-line-2); border-radius: 5px; padding: 10px 13px; min-height: 42px; width: 100%;
}
body .elementor .dg-shell.dg-shell .dg-form .elementor-field-textual:focus { outline: none; border-color: var(--dg-accent) !important; box-shadow: none; }
body .elementor .dg-shell.dg-shell .dg-form .elementor-field-textual::placeholder { color: #a5a6a7 !important; }
body .elementor .dg-shell.dg-shell .dg-form .elementor-button {
  min-width: 179px; height: 46px; padding: 0 24px; border-radius: var(--dg-pill);
  background: var(--dg-accent) !important; color: #fff !important; font: 600 15px/1 var(--dg-font); transition: background .2s;
}
body .elementor .dg-shell.dg-shell .dg-form .elementor-button:hover { background: var(--dg-accent-hover) !important; }
body .elementor .dg-shell.dg-shell .dg-form .elementor-message { font-size: 14px; }
body .elementor .dg-shell.dg-shell .dg-form .elementor-message-success { color: #6fe3a5 !important; }
body .elementor .dg-shell.dg-shell .dg-form .elementor-message-danger, body .elementor .dg-shell.dg-shell .dg-form .elementor-error .elementor-field-textual { color: #ff7aa8 !important; border-color: #ff7aa8 !important; }

/* ---------- flechas anterior / siguiente (las crea winamba.js) ---------- */
.dg-pager {
  position: fixed; right: 10px; bottom: 10px; z-index: 12;
  display: flex; flex-direction: column; width: 48px; height: 110px;
  background: #444444; border: 2px solid #d60075; border-radius: 35px; overflow: hidden;
}
.dg-pager a { flex: 1; display: grid; place-items: center; color: #cfcfcf; transition: color .2s, background .2s; }
.dg-pager a:hover { color: #fff; background: rgba(214, 0, 117, .14); }
.dg-pager .dg-ico { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }

/* ---------- precargador (círculo girando al abrir la página) ---------- */
.dg-preloader {
  position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; background: #222222;
  transition: opacity .4s ease, visibility 0s linear .4s;
  animation: dg-preloader-fallback .01s linear 5s forwards; /* por si el script no carga */
}
.dg-preloader::after {
  content: ""; width: 50px; height: 50px; border-radius: 50%;
  border: 3px solid rgba(255, 255, 255, .12); border-top-color: #d60075;
  animation: dg-spin .9s linear infinite;
}
.dg-preloader.is-done { opacity: 0; visibility: hidden; }
@keyframes dg-spin { to { transform: rotate(360deg); } }
@keyframes dg-preloader-fallback { to { opacity: 0; visibility: hidden; } }
html.dg-editing .dg-preloader { display: none; }

/* ---------- barra superior en móvil (la crea winamba.js) ---------- */
.dg-mobile-bar { display: none; }

/* ==========================================================================
   Transiciones entre secciones
   Cada número es una pareja entrada/salida. winamba.js elige una al azar
   (o la que indiques con la clase dg-anim-N en el contenedor dg-shell).
   ========================================================================== */
.dg-page.dg-animating { animation-duration: var(--dg-speed); animation-fill-mode: both; animation-timing-function: ease; }
.dg-moveToLeft { animation-name: dg-moveToLeft; }
.dg-moveFromRight { animation-name: dg-moveFromRight; }
.dg-moveToRight { animation-name: dg-moveToRight; }
.dg-moveFromLeft { animation-name: dg-moveFromLeft; }
.dg-moveToTop { animation-name: dg-moveToTop; }
.dg-moveFromBottom { animation-name: dg-moveFromBottom; }
.dg-moveToBottom { animation-name: dg-moveToBottom; }
.dg-moveFromTop { animation-name: dg-moveFromTop; }
.dg-fade { animation-name: dg-fade; animation-timing-function: ease-in !important; }
.dg-moveToLeftFade { animation-name: dg-moveToLeftFade; animation-timing-function: ease-in !important; }
.dg-moveFromRightFade { animation-name: dg-moveFromRightFade; }
.dg-scaleDown { animation-name: dg-scaleDown; animation-timing-function: ease-in !important; }
.dg-scaleUp { animation-name: dg-scaleUp; }
.dg-scaleUpDown { animation-name: dg-scaleUpDown; animation-delay: .3s; }
.dg-rotatePushLeft { animation-name: dg-rotatePushLeft; transform-origin: 0% 50%; }
.dg-rotatePullRight { animation-name: dg-rotatePullRight; transform-origin: 100% 50%; animation-delay: .18s; }
.dg-rotateFall { animation-name: dg-rotateFall; transform-origin: 0% 0%; animation-duration: 1s !important; animation-timing-function: ease-in !important; }
.dg-flipOutRight { animation-name: dg-flipOutRight; animation-timing-function: ease-in !important; animation-duration: .5s !important; }
.dg-flipInLeft { animation-name: dg-flipInLeft; animation-timing-function: ease-out !important; animation-duration: .5s !important; animation-delay: .5s; }

@keyframes dg-moveToLeft { to { transform: translateX(-100%); } }
@keyframes dg-moveFromRight { from { transform: translateX(100%); } }
@keyframes dg-moveToRight { to { transform: translateX(100%); } }
@keyframes dg-moveFromLeft { from { transform: translateX(-100%); } }
@keyframes dg-moveToTop { to { transform: translateY(-100%); } }
@keyframes dg-moveFromBottom { from { transform: translateY(100%); } }
@keyframes dg-moveToBottom { to { transform: translateY(100%); } }
@keyframes dg-moveFromTop { from { transform: translateY(-100%); } }
@keyframes dg-fade { to { opacity: .3; } }
@keyframes dg-moveToLeftFade { to { opacity: .3; transform: translateX(-100%); } }
@keyframes dg-moveFromRightFade { from { opacity: .3; transform: translateX(100%); } }
@keyframes dg-scaleDown { to { opacity: 0; transform: scale(.8); } }
@keyframes dg-scaleUp { from { opacity: 0; transform: scale(.8); } }
@keyframes dg-scaleUpDown { from { opacity: 0; transform: scale(1.2); } }
@keyframes dg-rotatePushLeft { to { opacity: 0; transform: rotateY(90deg); } }
@keyframes dg-rotatePullRight { from { opacity: 0; transform: rotateY(-90deg); } }
@keyframes dg-rotateFall {
  0% { transform: rotateZ(0deg); }
  20% { transform: rotateZ(10deg); animation-timing-function: ease-out; }
  40% { transform: rotateZ(17deg); }
  60% { transform: rotateZ(16deg); }
  100% { transform: translateY(100%) rotateZ(17deg); }
}
@keyframes dg-flipOutRight { to { opacity: .2; transform: translateZ(-1000px) rotateY(90deg); } }
@keyframes dg-flipInLeft { from { opacity: .2; transform: translateZ(-1000px) rotateY(-90deg); } }

/* ==========================================================================
   Tableta y teléfono: barra superior + menú desplegable
   ========================================================================== */
@media (max-width: 1024px) {
  body .elementor .dg-shell.dg-shell { --dg-pad-x: 30px; --dg-pad-top: 85px; }

  /* sin JavaScript (o en el editor): todo una columna normal */
  html:not(.dg-js) body .elementor .dg-shell.dg-shell.e-con { flex-direction: column; height: auto; overflow: visible; }
  html:not(.dg-js) body .elementor .dg-shell.dg-shell .dg-sidebar.e-con { flex: 0 0 auto; width: 100%; height: auto; flex-direction: column; }
  html:not(.dg-js) body .elementor .dg-shell.dg-shell .dg-menu { width: 100%; height: auto; }
  html:not(.dg-js) body .elementor .dg-shell.dg-shell .dg-card.e-con { width: 100%; height: auto; flex: 0 0 auto; }
  html:not(.dg-js) body .elementor .dg-shell.dg-shell .dg-pages.e-con { height: auto; overflow: visible; }

  .dg-mobile-bar {
    display: block; position: fixed; inset: 0 0 auto 0; height: 66px; z-index: 30;
    background: rgba(34, 34, 34, .8); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
    font-family: 'Poppins', Helvetica, Arial, sans-serif;
  }
  .dg-mobile-brand { position: absolute; left: 20px; top: 10px; height: 46px; padding: 12px 10px; font-size: 18px; line-height: 22px; font-weight: 600; color: #f5f5f5; text-decoration: none; }
  .dg-mobile-bar .dg-lang { position: absolute; right: 72px; top: 15px; background: rgba(255, 255, 255, .07); color: #d5d5d5; }
  .dg-mobile-bar .dg-lang span { background: #d60075; color: #fff; }
  .dg-mobile-bar .dg-lang a { color: #d5d5d5; text-decoration: none; }
  .dg-menu-toggle {
    position: absolute; right: 10px; top: 8px; width: 50px; height: 50px; padding: 0; border: 0; border-radius: 50%;
    background: #d60075; cursor: pointer; display: grid; place-items: center;
  }
  .dg-menu-toggle:hover, .dg-menu-toggle:focus { background: #ef0a86; }
  .dg-menu-toggle span { position: relative; display: block; width: 22px; height: 16px; }
  .dg-menu-toggle i { position: absolute; left: 0; width: 100%; height: 3px; border-radius: 2px; background: #fff; transition: transform .25s, opacity .25s, top .25s; }
  .dg-menu-toggle i:nth-child(1) { top: 0; }
  .dg-menu-toggle i:nth-child(2) { top: 6.5px; }
  .dg-menu-toggle i:nth-child(3) { top: 13px; }
  .dg-nav-open .dg-menu-toggle i:nth-child(1) { top: 6.5px; transform: rotate(45deg); }
  .dg-nav-open .dg-menu-toggle i:nth-child(2) { opacity: 0; }
  .dg-nav-open .dg-menu-toggle i:nth-child(3) { top: 6.5px; transform: rotate(-45deg); }

  html.dg-js body .elementor .dg-shell.dg-shell .dg-sidebar.e-con {
    position: fixed; inset: 66px 0 0 0; z-index: 25; flex-direction: column; width: auto; height: auto;
    background: var(--dg-card); overflow-y: auto;
    visibility: hidden; opacity: 0; transform: translateY(-12px);
    transition: opacity .25s ease, transform .25s ease, visibility 0s linear .25s;
  }
  html.dg-js.dg-nav-open body .elementor .dg-shell.dg-shell .dg-sidebar.e-con { visibility: visible; opacity: 1; transform: none; transition: opacity .25s ease, transform .25s ease; }
  body .elementor .dg-shell.dg-shell .dg-menu { flex: 0 0 auto; width: 100%; height: auto; }
  .dg-menu ul { display: grid; grid-template-columns: repeat(4, 1fr); }
  .dg-menu li:first-child a { height: 78px; padding-top: 0; }
  .dg-menu a { border-bottom: 0; border-right: 1px solid var(--dg-line); }
  .dg-menu li:last-child a { border-right: 0; }
  body .elementor .dg-shell.dg-shell .dg-card.e-con { flex: 1 0 auto; width: 100%; height: auto; box-shadow: none; overflow: visible; }
  body .elementor .dg-shell.dg-shell .dg-card-head.e-con { padding: 40px 20px 30px; }
  .dg-card .dg-lang { display: none; }

  html.dg-js body .elementor .dg-shell.dg-shell .dg-pages.e-con { position: fixed; inset: 0; width: auto; height: auto; }
  body.admin-bar .dg-mobile-bar { top: 32px; }
  html.dg-js body.admin-bar .elementor .dg-shell.dg-shell .dg-sidebar.e-con { top: calc(66px + 32px); }
  html.dg-js body.admin-bar .elementor .dg-shell.dg-shell .dg-pages.e-con { top: 32px; }
  body .elementor .dg-shell.dg-shell .dg-page-title .elementor-heading-title { font-size: 26px; line-height: 31px; }
  body .elementor .dg-shell.dg-shell .dg-page-lead, body .elementor .dg-shell.dg-shell .dg-page-lead p { font-size: 19px; }
  body .elementor .dg-shell.dg-shell .dg-page-lead { margin-bottom: 40px; }
  body .elementor .dg-shell.dg-shell .dg-hero.e-con { min-height: 438px; }
  body .elementor .dg-shell.dg-shell .dg-t-card { flex-basis: calc((100% - 20px) / 2); }
  body .elementor .dg-shell.dg-shell .dg-projects.e-con { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body .elementor .dg-shell.dg-shell .dg-info-card .elementor-icon-box-wrapper { padding-inline: 6px; }
}

@media (max-width: 782px) {
  body.admin-bar .dg-mobile-bar { top: 46px; }
  html.dg-js body.admin-bar .elementor .dg-shell.dg-shell .dg-sidebar.e-con { top: calc(66px + 46px); }
  html.dg-js body.admin-bar .elementor .dg-shell.dg-shell .dg-pages.e-con { top: 46px; }
}

@media (min-width: 1025px) and (max-width: 1279px) {
  body .elementor .dg-shell.dg-shell { --dg-pad-x: 30px; }
  body .elementor .dg-shell.dg-shell .dg-projects.e-con { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body .elementor .dg-shell.dg-shell .dg-t-card { flex-basis: calc((100% - 20px) / 2); }
}

@media (max-width: 767px) {
  body .elementor .dg-shell.dg-shell .dg-hero.e-con { grid-template-columns: 1fr; text-align: center; min-height: 0; }
  body .elementor .dg-shell.dg-shell .dg-hero-logo { width: 100%; max-width: 250px; margin: 55px auto 34px; }
  .dg-hero-logo::before { left: -14%; top: -16%; width: 46%; height: 82%; }
  body .elementor .dg-shell.dg-shell .dg-hero-text.e-con { align-items: center; padding: 0 25px; margin-bottom: 35px; }
  body .elementor .dg-shell.dg-shell .dg-hero-lead { text-align: left; }
  .dg-rotator .dg-word { left: 50%; transform: translate(-50%, 6px); }
  .dg-rotator .dg-word.is-active { transform: translateX(-50%); }
  body .elementor .dg-shell.dg-shell .dg-hero-title { margin-bottom: 23px; }
  body .elementor .dg-shell.dg-shell .dg-hero-title .elementor-heading-title { font-size: 36px; line-height: 37.5px; }
  body .elementor .dg-shell.dg-shell .dg-btn-row.e-con { justify-content: center; }
  body .elementor .dg-shell.dg-shell .dg-cta.e-con { text-align: center; padding: 26px 20px; }
  body .elementor .dg-shell.dg-shell :is(.dg-features, .dg-service-groups).e-con { grid-template-columns: 1fr; }
  body .elementor .dg-shell.dg-shell .dg-t-card { flex-basis: 100%; }
  body .elementor .dg-shell.dg-shell .dg-projects.e-con { grid-template-columns: 1fr; }
  body .elementor .dg-shell.dg-shell .dg-info-cards.e-con { grid-template-columns: 1fr; gap: 36px; }
}

@media (max-width: 360px) {
  body .elementor .dg-shell.dg-shell { --dg-pad-x: 15px; }
  body .elementor .dg-shell.dg-shell :is(.dg-btn-primary, .dg-btn-outline) .elementor-button { white-space: normal; text-align: center; height: auto; min-height: 46px; padding: 10px 18px; }
}

/* quien pide "reducir movimiento" en su sistema ve los cambios sin animación */
@media (prefers-reduced-motion: reduce) {
  .dg-page.dg-animating { animation: none !important; }
  .dg-clients ul { animation: none; flex-wrap: wrap; width: auto; justify-content: center; }
  .dg-clients li[aria-hidden="true"] { display: none; }
  .dg-clients { -webkit-mask-image: none; mask-image: none; }
  .dg-rotator .dg-word { transition: none; }
}

/* ==========================================================================
   v1.1 — Ritmo, tamaños y letra (después de revisar el sitio en vivo)
   Una sola escala de espacios y letra que se adapta al ancho de pantalla.
   ========================================================================== */
body .elementor .dg-shell.dg-shell {
  --dg-gap-section: 72px;   /* entre bloques de una sección */
  --dg-gap-title: 24px;     /* de un título a su contenido */
  --dg-pad-top: 64px;
  --dg-pad-x: 56px;
  --dg-pad-bottom: 120px;   /* deja libre la zona de las flechas */
  --dg-btn-h: 48px;
}
body .elementor .dg-shell.dg-shell .dg-page.e-con { padding: var(--dg-pad-top) var(--dg-pad-x) var(--dg-pad-bottom); }
/* barra de scroll fina y oscura dentro de cada sección y de la tarjeta */
body .elementor .dg-shell.dg-shell :is(.dg-page, .dg-card).e-con { scrollbar-width: thin; scrollbar-color: #555 transparent; }
.dg-page::-webkit-scrollbar, .dg-card::-webkit-scrollbar { width: 6px; }
.dg-page::-webkit-scrollbar-thumb, .dg-card::-webkit-scrollbar-thumb { background: #555; border-radius: 3px; }
.dg-page::-webkit-scrollbar-track, .dg-card::-webkit-scrollbar-track { background: transparent; }

/* --- tarjeta de perfil --- */
body .elementor .dg-shell.dg-shell .dg-card-head.e-con { padding: 64px 30px 40px; }
body .elementor .dg-shell.dg-shell .dg-photo { margin: 0 auto 24px; }
body .elementor .dg-shell.dg-shell .dg-name .elementor-heading-title { font-size: 34px; line-height: 1.2; letter-spacing: -.01em; }
body .elementor .dg-shell.dg-shell .dg-role .elementor-heading-title { margin-top: 6px; font-size: 17px; line-height: 1.35; }
body .elementor .dg-shell.dg-shell .dg-quick-wrap { margin-top: 16px; }
.dg-quick { gap: 6px; margin-top: 0; }
.dg-quick a { width: 40px; height: 40px; }
.dg-quick a:hover, .dg-quick a:focus-visible { background: rgba(255, 255, 255, .08); }
body .elementor .dg-shell.dg-shell .dg-card-cta { margin-top: 18px; }
body .elementor .dg-shell.dg-shell .dg-card-cta .elementor-button { height: 44px; padding: 0 26px; font-size: 14px; }
body .elementor .dg-shell.dg-shell .dg-card-foot { padding: 0 30px 20px; }
.dg-lang a, .dg-lang span { min-width: 38px; min-height: 30px; }

/* --- botones --- */
body .elementor .dg-shell.dg-shell :is(.dg-btn-primary, .dg-btn-outline) .elementor-button { height: var(--dg-btn-h); padding: 0 28px; font-size: 15px; letter-spacing: .01em; }
body .elementor .dg-shell.dg-shell .dg-btn-outline .elementor-button { font-weight: 500; }
body .elementor .dg-shell.dg-shell .dg-btn-row.e-con { gap: 14px 16px; }

/* --- títulos de sección --- */
body .elementor .dg-shell.dg-shell .dg-block-title { margin: var(--dg-gap-section) 10px var(--dg-gap-title); }
body .elementor .dg-shell.dg-shell .dg-hero + .dg-block-title { margin-top: 48px; }
body .elementor .dg-shell.dg-shell .dg-block-title .elementor-heading-title { font-size: clamp(21px, 0.9rem + 0.6vw, 26px); line-height: 1.25; }
body .elementor .dg-shell.dg-shell .dg-page-title { margin: 0 10px 14px; }
body .elementor .dg-shell.dg-shell .dg-page-title .elementor-heading-title { font-size: clamp(28px, 1.1rem + 1.2vw, 36px); line-height: 1.15; }
body .elementor .dg-shell.dg-shell .dg-page-lead { margin: 0 10px 48px; max-width: 720px; }
body .elementor .dg-shell.dg-shell .dg-page-lead p { font-size: clamp(18px, 0.85rem + 0.6vw, 23px); line-height: 1.45; }

/* --- portada (Acerca de) --- */
body .elementor .dg-shell.dg-shell .dg-hero.e-con { grid-template-columns: minmax(0, 42%) minmax(0, 58%); column-gap: 36px; min-height: 0; padding: 20px 0 0; }
body .elementor .dg-shell.dg-shell .dg-hero-logo { width: 100%; max-width: 300px; margin: 0 auto; }
body .elementor .dg-shell.dg-shell .dg-hero-text.e-con { padding: 0 10px 0 0; }
body .elementor .dg-shell.dg-shell .dg-rotator { margin-bottom: 10px; }
body .elementor .dg-shell.dg-shell .dg-rotator .elementor-heading-title { font-size: 16px; height: 20px; line-height: 20px; letter-spacing: .02em; }
body .elementor .dg-shell.dg-shell .dg-hero-title { margin-bottom: 16px; }
body .elementor .dg-shell.dg-shell .dg-hero-title .elementor-heading-title { font-size: clamp(34px, 1.1rem + 2.4vw, 54px); line-height: 1.1; letter-spacing: -.015em; }
body .elementor .dg-shell.dg-shell .dg-hero-lead { margin-bottom: 28px; max-width: 540px; }
body .elementor .dg-shell.dg-shell .dg-hero-lead p { font-size: 16px; line-height: 1.7; }

/* --- lo que hacemos --- */
body .elementor .dg-shell.dg-shell .dg-features.e-con { gap: 40px 36px; }
body .elementor .dg-shell.dg-shell .dg-feature { padding-top: 0; }
body .elementor .dg-shell.dg-shell .dg-feature .elementor-icon-box-icon { margin-bottom: 16px; }
body .elementor .dg-shell.dg-shell .dg-feature .elementor-icon-box-title { margin-bottom: 10px; font-size: 17px; line-height: 1.3; }
body .elementor .dg-shell.dg-shell .dg-feature .elementor-icon-box-description { font-size: 15px; line-height: 1.7; }
body .elementor .dg-shell.dg-shell .dg-more-link { margin: 32px 10px 0; }
body .elementor .dg-shell.dg-shell .dg-more-link a { min-height: 40px; }

/* --- testimonios: ancho mínimo; la siguiente tarjeta asoma para indicar que hay más --- */
body .elementor .dg-shell.dg-shell .dg-testimonials.e-con { gap: 20px; padding: 52px 2px 8px; }
body .elementor .dg-shell.dg-shell .dg-t-card { flex: 0 0 calc((100% - 40px) / 3); padding: 60px 24px 26px; }
@media (max-width: 1359px) {
  /* menos espacio: se ven dos tarjetas y asoma un cuarto de la tercera */
  body .elementor .dg-shell.dg-shell .dg-t-card { flex-basis: calc((100% - 40px) / 2.25); }
}
body .elementor .dg-shell.dg-shell .dg-t-card .elementor-testimonial-content { font-size: 15px; line-height: 1.7; margin-bottom: 20px; }

/* --- clientes: logos más chicos y parejos --- */
.dg-clients { margin: 0 10px; }
.dg-clients ul { gap: 56px; align-items: center; }
.dg-clients img { width: 180px; height: 80px; }

/* --- caja de llamada a la acción --- */
body .elementor .dg-shell.dg-shell .dg-cta.e-con { margin: var(--dg-gap-section) 10px 0; padding: 36px 40px; }
body .elementor .dg-shell.dg-shell .dg-cta .elementor-heading-title { font-size: clamp(20px, 0.9rem + 0.7vw, 26px); line-height: 1.25; }
body .elementor .dg-shell.dg-shell .dg-cta .elementor-widget-text-editor { margin: 10px 0 24px; max-width: 640px; }

/* --- servicios --- */
body .elementor .dg-shell.dg-shell .dg-service-groups.e-con { gap: 48px 36px; }
body .elementor .dg-shell.dg-shell .dg-group-title { margin-bottom: 18px; }
body .elementor .dg-shell.dg-shell .dg-group-title .elementor-icon svg { width: 26px; height: 26px; }
body .elementor .dg-shell.dg-shell .dg-checklist .elementor-icon-list-items { display: grid; gap: 8px; }
body .elementor .dg-shell.dg-shell .dg-checklist .elementor-icon-list-item { line-height: 1.6; }

/* --- portafolio --- */
.dg-filters { gap: 8px; margin: 0 10px 36px; }
.dg-filters button { min-height: 38px; padding: 8px 16px; }
body .elementor .dg-shell.dg-shell .dg-projects.e-con { gap: 40px 24px; }
body .elementor .dg-shell.dg-shell .dg-project-title { margin-top: 16px; }
body .elementor .dg-shell.dg-shell .dg-project-title .elementor-heading-title { font-size: 17px; line-height: 1.3; }
body .elementor .dg-shell.dg-shell .dg-project-meta { margin-top: 4px; }
body .elementor .dg-shell.dg-shell .dg-project-meta p { font-size: 14px; line-height: 1.5; }
body .elementor .dg-shell.dg-shell .dg-project-meta a { margin-top: 8px; min-height: 32px; }

/* --- contacto --- */
body .elementor .dg-shell.dg-shell .dg-contact-intro { margin: 0 10px 32px; }
body .elementor .dg-shell.dg-shell .dg-contact-intro .elementor-heading-title { font-size: clamp(17px, 0.85rem + 0.4vw, 20px); line-height: 1.5; font-weight: 500; }
body .elementor .dg-shell.dg-shell .dg-map { width: auto; }
body .elementor .dg-shell.dg-shell .dg-map iframe { height: 260px; border-radius: 10px; }
body .elementor .dg-shell.dg-shell .dg-info-cards.e-con { gap: 20px; margin-top: 24px; }
body .elementor .dg-shell.dg-shell .dg-info-card .elementor-icon-box-wrapper { min-height: 120px; gap: 10px; align-items: center !important; /* Elementor fuerza "unset !important" */ }
body .elementor .dg-shell.dg-shell .dg-info-card .elementor-icon-box-icon { line-height: 0; }
body .elementor .dg-shell.dg-shell .dg-info-card .elementor-icon-box-content { display: flex; flex-direction: column; justify-content: center; }
body .elementor .dg-shell.dg-shell .dg-info-card .elementor-icon-box-description:empty { display: none; }
body .elementor .dg-shell.dg-shell .dg-form-title { margin: 56px 10px 20px; }
body .elementor .dg-shell.dg-shell .dg-form .elementor-field-group { margin-bottom: 20px; }
body .elementor .dg-shell.dg-shell .dg-form .elementor-field-textual { min-height: 48px; padding: 12px 14px; }
body .elementor .dg-shell.dg-shell .dg-form .elementor-button { height: var(--dg-btn-h); }

/* --- flechas --- */
.dg-pager { right: 14px; bottom: 14px; box-shadow: 0 6px 18px rgba(0, 0, 0, .35); }

/* ---------- laptop (1025–1439): tarjeta más angosta para dar aire al contenido ---------- */
@media (min-width: 1025px) and (max-width: 1439px) {
  body .elementor .dg-shell.dg-shell { --dg-card-w: 360px; --dg-pad-x: 40px; --dg-pad-top: 56px; }
  body .elementor .dg-shell.dg-shell .dg-photo, body .elementor .dg-shell.dg-shell .dg-photo img { width: 132px; height: 132px; }
  body .elementor .dg-shell.dg-shell .dg-name .elementor-heading-title { font-size: 30px; }
  body .elementor .dg-shell.dg-shell .dg-role .elementor-heading-title { font-size: 16px; }
  body .elementor .dg-shell.dg-shell .dg-hero-logo { max-width: 260px; }
}
@media (min-width: 1025px) and (max-width: 1199px) {
  body .elementor .dg-shell.dg-shell { --dg-card-w: 320px; --dg-pad-x: 32px; }
  body .elementor .dg-shell.dg-shell .dg-hero.e-con { grid-template-columns: 1fr; row-gap: 32px; }
  body .elementor .dg-shell.dg-shell .dg-hero-logo { max-width: 220px; margin: 0; }
}

/* ---------- tableta ---------- */
@media (max-width: 1024px) {
  body .elementor .dg-shell.dg-shell { --dg-gap-section: 60px; --dg-pad-top: 96px; --dg-pad-x: 32px; --dg-pad-bottom: 128px; }
  body .elementor .dg-shell.dg-shell .dg-hero-logo { max-width: 240px; }
  body .elementor .dg-shell.dg-shell .dg-hero.e-con { column-gap: 28px; }
  body .elementor .dg-shell.dg-shell .dg-card-head.e-con { padding: 40px 24px 28px; }
  .dg-mobile-bar .dg-lang a, .dg-mobile-bar .dg-lang span { min-height: 32px; }
}

/* ---------- teléfono ---------- */
@media (max-width: 767px) {
  body .elementor .dg-shell.dg-shell { --dg-gap-section: 52px; --dg-gap-title: 20px; --dg-pad-top: 90px; --dg-pad-x: 20px; --dg-pad-bottom: 132px; }
  body .elementor .dg-shell.dg-shell .dg-hero.e-con { grid-template-columns: 1fr; row-gap: 28px; padding-top: 8px; text-align: center; }
  body .elementor .dg-shell.dg-shell .dg-hero-logo { width: 62%; max-width: 230px; margin: 0 auto; }
  body .elementor .dg-shell.dg-shell .dg-hero-text.e-con { padding: 0 6px; margin: 0; align-items: center; }
  body .elementor .dg-shell.dg-shell .dg-hero-lead { margin-left: auto; margin-right: auto; text-align: center; }
  body .elementor .dg-shell.dg-shell .dg-hero-lead p { font-size: 15.5px; }
  body .elementor .dg-shell.dg-shell .dg-hero + .dg-block-title { margin-top: 44px; }
  body .elementor .dg-shell.dg-shell .dg-features.e-con { gap: 32px; }
  body .elementor .dg-shell.dg-shell .dg-service-groups.e-con { gap: 36px; }
  body .elementor .dg-shell.dg-shell .dg-page-lead { margin-bottom: 36px; }
  /* botones de una misma fila: mismo ancho, uno debajo del otro */
  body .elementor .dg-shell.dg-shell .dg-btn-row.e-con { flex-direction: column; align-items: stretch; gap: 12px; }
  body .elementor .dg-shell.dg-shell .dg-btn-row :is(.elementor-widget-button, .elementor-button-wrapper, .elementor-button) { width: 100%; }
  body .elementor .dg-shell.dg-shell .dg-btn-hero .elementor-button { padding: 0 24px; }
  body .elementor .dg-shell.dg-shell .dg-cta.e-con { padding: 28px 20px; text-align: left; }
  body .elementor .dg-shell.dg-shell .dg-t-card { flex-basis: 82%; }
  .dg-clients ul { gap: 36px; }
  .dg-clients img { width: 140px; height: 64px; }
  /* filtros en una sola fila que se desliza hacia el costado */
  .dg-filters { flex-wrap: nowrap; gap: 6px; margin: 0 -20px 28px 10px; padding-right: 20px; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .dg-filters::-webkit-scrollbar { display: none; }
  .dg-filters button { flex: 0 0 auto; white-space: nowrap; padding: 7px 14px; font-size: 13.5px; }
  body .elementor .dg-shell.dg-shell .dg-map iframe { height: 220px; }
  body .elementor .dg-shell.dg-shell .dg-info-cards.e-con { gap: 14px; }
  body .elementor .dg-shell.dg-shell .dg-info-card .elementor-icon-box-wrapper { min-height: 72px; flex-direction: row; justify-content: flex-start; padding: 14px 20px; gap: 16px; }
  body .elementor .dg-shell.dg-shell .dg-info-card .elementor-icon-box-content { flex: 1 1 auto; }
  body .elementor .dg-shell.dg-shell .dg-info-card .elementor-icon-box-title { white-space: normal; text-align: left; }
  body .elementor .dg-shell.dg-shell .dg-form-title { margin-top: 44px; }
  body .elementor .dg-shell.dg-shell .dg-name .elementor-heading-title { font-size: 30px; }
  .dg-pager { right: 10px; bottom: 10px; width: 44px; height: 96px; }
  .dg-pager .dg-ico { width: 22px; height: 22px; }
  .dg-quick a { width: 44px; height: 44px; }
}
