@charset "UTF-8";/*!
/* DATAZTLÁN mintCSS v3.1 */

/* ===== Variables de marca ===== */
:root{
  --violet: #5e157a;                 /* Principal */
  --offwhite-violet: #F8F5FA;        /* fondos claros */
  --soft-lavender: #F3ECF7;          /* cards/stripes */
  --deep-violet-black: #140A17;      /* fondo oscuro principal */
  --charcoal-violet: #1D1320;        /* contenedores oscuros */
  --text-on-dark: #FFFFFF;           /* contraste */
  --text-muted: #CFC6D6;             /* copy secundario en dark */
  --border: rgba(255,255,255,.08);
  --shadow: 0 8px 24px rgba(0,0,0,.28);
  --blur: saturate(140%) blur(8px);
  --ring: rgba(87,42,121,.35);
  --error: #C0362C;
  --success: #1B8D5C;

  --ink: var(--charcoal-violet);                 /* texto principal sobre claro */
  --ink-muted: #6F5E7B;                          /* tono secundario; puedes ajustar */
  --bg-soft: var(--offwhite-violet);             /* secciones claras */
  --card: #FFFFFF;                               /* cards claras */
  --border-light: rgba(29, 19, 32, .12);         /* borde para claro (de charcoal) */
  
  --radius: 14px;
  --radius-pill: 999px;
  --radius-lg: 14px;

  --fz-12: 0.75rem;
  --fz-14: 0.875rem;
  --fz-16: 1rem;
  --fz-18: 1.125rem;

  --nav-h: 64px;
}

.dz-body{
  background-color: var(--offwhite-violet);
  margin: 0; padding: 0;
}

/* Tipografías corporativas (asegúrate de cargar las fuentes en tu layout base) */
html { font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif; }
h1,h2,h3,.heading { font-family: "Acumin Variable Concept", "Poppins", system-ui, -apple-system, sans-serif; }

.dz-h1{
  font-size: clamp(2.25rem, 5vw, 3.5rem);
  line-height: 1.1;
  margin: 0 0 12px 0;
  color: var(--deep-violet-black);
}

.dz-h2{
  font-size: clamp(1.5rem, 4vw, 2.25rem);
  line-height: 1.15;
  margin: 0 0 10px 0;
  color: var(--deep-violet-black);
}

.dz-h3{
  font-size: clamp(1.25rem, 3vw, 1.75rem);
  line-height: 1.2;
  margin: 0 0 8px 0;
  color: var(--deep-violet-black);
}

.dz-h4{
  font-size: clamp(1.1rem, 2.4vw, 1.5rem);
  line-height: 1.25;
  margin: 0 0 6px 0;
  color: var(--charcoal-violet);
}

.dz-h5{
  font-size: var(--fz-16);
  line-height: 0.8;
  margin: 0 0 4px 0;
  color: var(--deep-violet-black);
}

.dz-lead{
  font-size: var(--fz-18);
  line-height: 1.4;
  margin: 0 0 14px 0;
  color: var(--deep-violet-black);
}

.dz-subtitle{ color: var(--deep-violet-black); }

/* ===== Header sticky “glass” ===== */
.dz-header{
  position: sticky;
  top: 0;
  z-index: 1000;
  backdrop-filter: var(--blur);
  background: color-mix(in oklab, var(--deep-violet-black) 78%, transparent);
  border-bottom: 1px solid var(--border);
}

.dz-nav{
  max-width: 1200px;
  margin: 0 auto;
  height: var(--nav-h);
  padding: 0 clamp(16px, 4vw, 24px);
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  color: var(--text-on-dark);
}

.dz-nav__brand{ display:flex; align-items:center; gap:12px; }
.dz-nav__logo{ display:block; height:28px; width:auto; }

/* ===== Menu container ===== */
.dz-nav__menu{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 24px;
}

/* ===== Primary list ===== */
.dz-nav__list{
  list-style:none;
  display:flex;
  gap: 0px;
  margin: 0;
  padding: 0 0 0 2vw;
}

.dz-nav__item{ position:relative; }

/* ===== Links ===== */
.dz-nav__link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 12px;
  border-radius: var(--radius);
  font-size: var(--fz-14);
  color: var(--text-on-dark);
  text-decoration: none;
  line-height: 1;
  opacity:.96;
  transition: background .2s ease, opacity .2s ease, transform .06s ease;
}

.dz-nav__link:hover{ background: rgba(255,255,255,.06); }
.dz-nav__link:active{ transform: translateY(1px); }

/* caret icon */
.dz-icon{ width: 16px; height: 16px; fill:none; stroke: currentColor; stroke-width: 2; }

/* ===== Dropdowns ===== */
.dz-nav__item--has-dropdown > .dz-nav__link--dropdown{
  cursor: pointer;
  /* quitar borde/fondo nativos del <button> */
  border: 0;
  background: transparent;
  -webkit-appearance: none;
  appearance: none;
  box-shadow: none;
}
.dz-nav__link--dropdown:focus-visible{
  outline: 2px solid color-mix(in oklab, var(--violet) 70%, white);
  outline-offset: 2px;
}

.dz-dropdown{
  position: absolute;
  top: calc(100% + 10px);
  left: 0;
  min-width: 240px;
  padding: 8px;
  background: var(--charcoal-violet);
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: var(--shadow);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s;
  /* quitar bullets/indentación */
  list-style: none;
  margin: 0;
}
.dz-dropdown > li{
  list-style: none;
}
.dz-dropdown > li::marker{
  content: "";
}

.dz-dropdown__link{
  display: flex;
  align-items: center;
  padding: 10px 12px;
  border-radius: 10px;
  color: var(--text-on-dark);
  text-decoration: none;
  font-size: var(--fz-14);
  /* defensa extra por si algún navegador hereda marcador */
  list-style: none;
}
.dz-dropdown__link:hover{
  background: rgba(255,255,255,.06);
}

/* show on hover (desktop) */
@media (hover:hover){
  .dz-nav__item--has-dropdown:hover > .dz-dropdown{
    opacity: 1; visibility: visible; transform: translateY(0);
  }
  .dz-nav__item--has-dropdown:hover > .dz-nav__link--dropdown{
    background: rgba(255,255,255,.06);
  }
}

/* ===== Actions (Lang + CTAs) ===== */
.dz-nav__actions{
  display:flex; align-items:center; gap: 10px;
}

.dz-lang{
  font-size: var(--fz-12);
  letter-spacing:.02em;
  text-decoration:none;
  color: var(--text-muted);
  padding:6px 8px;
  border-radius: 8px;
}
.dz-lang.is-active{ color: var(--text-on-dark); background: rgba(255,255,255,.06); }
.dz-lang__sep{ color: var(--text-muted); margin: 0 2px; }

/* Buttons */
.dz-btn{
  display:inline-flex; align-items:center; gap:8px;
  padding: 10px 14px;
  border-radius: var(--radius-pill);
  font-weight: 600;
  font-size: var(--fz-14);
  text-decoration:none;
  line-height:1;
  border:1px solid transparent;
  transition: transform .06s ease, background .2s ease, border-color .2s;
}
.dz-btn:active{ transform: translateY(1px); }

.dz-btn--primary{
  background: var(--violet);
  color: #fff;
  border-color: color-mix(in oklab, var(--violet) 86%, white);
}
.dz-btn--primary:hover{
  background: color-mix(in oklab, var(--violet) 92%, black 8%);
}

.dz-btn--ghost{
  background: transparent;
  color: var(--text-on-dark);
  border-color: rgba(255,255,255,.18);
}
.dz-btn--ghost:hover{ background: rgba(255,255,255,.06); }

.dz-btn--ghost-dark {
  background: transparent;
  color: var(--deep-violet-black);
  border-color: rgba(0, 0, 0, 0.18);
}
.dz-btn--ghost-dark:hover {
  background: rgba(0, 0, 0, 0.06);
}

/* WhatsApp subtle tweak */
.dz-btn--whatsapp .dz-icon{ width:16px; height:16px; }

/* Forzar relleno para iconos de marca (como WhatsApp) */
.dz-icon--fill{
  fill: currentColor;
  stroke: none;
}

/* ===== Mobile (hamburger) ===== */
.dz-nav__toggle{ display:none; }

.dz-nav__burger{
  --bar-h: 2px;
  --bar-w: 24px;
  width: 36px; height: 28px;
  display: none;                 /* se muestra en mobile */
  align-items: center; 
  justify-content: center;
  padding: 0;                    /* sin padding visible */
  background: transparent;       /* sin fondo */
  border: 0;                     /* sin marco */
  box-shadow: none;              /* sin sombra */
  cursor: pointer;
}

/* barras */
.dz-nav__burger .bar{
  display: block;
  width: var(--bar-w); height: var(--bar-h);
  background: var(--text-on-dark);
  border-radius: 2px;
  transition: transform .22s ease, opacity .18s ease;
  transform-origin: 50% 50%;
}

/* Responsive layout */
@media (max-width: 992px){
  .dz-nav{
    grid-template-columns: 1fr auto;
  }
  .dz-nav__burger{ display:grid; }
  .dz-nav__menu{
    position: fixed;
    inset: calc(var(--nav-h)) 0 auto 0;
    height: calc(100dvh - var(--nav-h));
    background: color-mix(in oklab, var(--deep-violet-black) 92%, black 8%);
    backdrop-filter: var(--blur);
    border-top: 1px solid var(--border);
    display: grid;
    grid-template-rows: auto 1fr auto;
    padding: 16px;
    transform: translateY(-6px);
    opacity:0; visibility:hidden;
    transition: opacity .18s ease, transform .18s ease, visibility .18s;
  }
  .dz-nav__list{
    flex-direction: column;
    gap: 4px;
  }
  .dz-nav__actions{
    flex-direction: column;
    justify-self: end;
    gap: 8px;
  }

  /* Toggle open: anima a "X" y muestra el menú */
  #dz-nav-toggle:checked ~ .dz-nav__burger .bar:nth-child(1){
    transform: translateY(8px) rotate(45deg);
  }
  #dz-nav-toggle:checked ~ .dz-nav__burger .bar:nth-child(2){
    opacity: 0;
  }
  #dz-nav-toggle:checked ~ .dz-nav__burger .bar:nth-child(3){
    transform: translateY(-8px) rotate(-45deg);
  }
  #dz-nav-toggle:checked ~ #dz-nav-menu{
    opacity: 1; visibility: visible; transform: translateY(0);
  }

  /* Dropdown in mobile = accordion style */
  .dz-nav__item--has-dropdown .dz-dropdown{
    position: static;
    transform: none;
    opacity:1; visibility:visible;
    background: transparent;
    border:none; box-shadow:none;
    padding: 0 0 6px 10px;
  }
  .dz-dropdown__link{ padding:10px 8px; border-radius:8px; }
}

/* Accesibilidad: foco visible solo con teclado (no agrega marco permanente) */
.dz-nav__burger:focus-visible{
  outline: 2px solid color-mix(in oklab, var(--violet) 70%, white);
  outline-offset: 3px;
}

/* ===== Reduced-motion ===== */
@media (prefers-reduced-motion: reduce){
  *{ transition: none !important; }
}

/* ===== Footer & CTA bar ===== */
.container{ max-width: 1200px; margin: 0 auto; padding: 0 clamp(16px, 4vw, 24px); }

/* CTA bar */
.dz-cta-bar{
  background: var(--soft-lavender);
  color: var(--deep-violet-black);
  border-block: 1px solid var(--border);
}
.dz-cta-bar__inner{
  display: grid;
  gap: 16px;
  padding: 28px 0;
}
.dz-cta-bar__actions{ display: flex; gap: 10px; flex-wrap: wrap; }
.dz-cta-bar .muted{ color: color-mix(in oklab, var(--deep-violet-black) 72%, white); }

/* Footer */
.dz-footer{
  background: var(--deep-violet-black);
  color: var(--text-on-dark);
  padding: 32px 0 20px;
  border-top: 1px solid var(--border);
}
.dz-footer__grid{
  display: grid;
  gap: 15vw;
}

.dz-footer__brand .muted{ color: var(--text-muted); margin-top: 8px; }
.dz-footer__social{ display: flex; gap: 10px; margin-top: 14px; }
.dz-social{ display:inline-flex; padding:8px; border:1px solid rgba(255,255,255,.14); border-radius: 10px; text-decoration:none; }
.dz-social:hover{ background: rgba(255,255,255,.06); }
.dz-footer__cols{
  display: grid;
  gap: 1vw;
  align-content: end;
}
.dz-footer__title{
  font-size: var(--fz-14);
  font-weight: 700;
  margin-bottom: 10px;
}
.dz-footer__list{
  list-style: none;
  padding: 0; margin: 0;
  display: grid; gap: 8px;
}
.dz-footer__list a{
  color: var(--text-on-dark);
  text-decoration: none;
  opacity: .92;
}
.dz-footer__list a:hover{ opacity: 1; text-decoration: underline; }

/* Subfooter */
.dz-subfooter{
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  padding-top: 16px;
  margin-top: 8px;
  border-top: 1px solid var(--border);
}
.dz-subfooter nav{ display: flex; gap: 8px; align-items: center; }
.dz-subfooter a{ color: var(--text-muted); text-decoration: none; }
.dz-subfooter a:hover{ color: var(--text-on-dark); text-decoration: underline; }

/* Responsive */
@media (min-width: 720px){
  .dz-cta-bar__inner{ grid-template-columns: 1fr auto; align-items: center; }
  .dz-footer__grid{
    grid-template-columns: 1.8fr 2fr;
  }
  .dz-footer__cols{
    grid-template-columns: 2fr 1fr 1fr;
  }
}

/* ===== Hero con video + cristal opaco ===== */
.dz-hero{
  position: relative;
  top: -50px;
  isolation: isolate;                 /* crea stacking context propio */
  height: 77vh;                       /* altura solicitada */
  min-height: 420px;                  /* asegura buen alto en pantallas pequeñas */
  padding: clamp(24px, 5vw, 56px) 0;  /* margen interno vertical */
  background: var(--deep-violet-black); /* fallback si no carga el video */
}

/* Video de fondo ocupando todo */
.dz-hero__video{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 107%;
  object-fit: cover;
  z-index: -1;                        /* más al fondo */
  filter: saturate(105%) contrast(102%);
  background: var(--deep-violet-black);
}

/* Scrim inferior (oscurece para contraste general) */
.dz-hero::before{
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;                        /* sobre el video, bajo el “cristal” */
  pointer-events: none;
  background:
    radial-gradient(80% 60% at 20% 0%,
      color-mix(in oklab, var(--violet) 22%, transparent) 0%,
      transparent 60%)
    ,
    linear-gradient(180deg,
      color-mix(in oklab, var(--deep-violet-black) 70%, black 30%) 0%,
      color-mix(in oklab, var(--deep-violet-black) 90%, black 10%) 100%);
}

/* Capa “cristal” opaca (blur + tinte) para legibilidad del copy */
.dz-hero::after{
  content: "";
  position: absolute;
  height: 107%;
  inset: 0;
  z-index: 0;                         /* debajo del contenido, encima del scrim */
  pointer-events: none;
  background: color-mix(in oklab, var(--deep-violet-black) 55%, transparent);
  backdrop-filter: blur(8px) saturate(125%);
  /* si quieres menos opacidad, baja el 55% arriba; si quieres más blur, sube a 10–12px */
}

/* Contenido (queda por encima del cristal) */
.dz-hero__grid{
  position: relative;
  z-index: 1;
  display: grid;
  gap: 20px;
  align-items: center;
  height: 100%;                       /* centra verticalmente dentro del hero */
}

.dz-hero__copy{
  display: grid;
  gap: 14px;
  max-width: 720px;
}

/* Tipos del hero (coinciden con tu paleta) */
.dz-hero__title{
  font-size: clamp(1.9rem, 4vw, 3rem);
  line-height: 1.1;
  color: var(--text-on-dark);
}
.dz-hero__subtitle{
  font-size: var(--fz-18);
  color: var(--text-muted);
  max-width: 65ch;
}
.dz-hero__badge{
  color: var(--text-muted);
}
.dz-hero__actions{ display:flex; flex-wrap:wrap; gap:10px; }
.dz-hero__note{ font-size: var(--fz-12); color: var(--text-muted); }

/* Layout responsivo (dos columnas si hay media a la derecha) */
@media (min-width: 920px){
  .dz-hero__grid{
    grid-template-columns: 2fr 0.5fr;
    gap: clamp(20px, 4vw, 48px);
  }
}

/* Accesibilidad: usuarios con reduce motion no ven el video animado */
@media (prefers-reduced-motion: reduce){
  .dz-hero__video{ display: none; }
}

/* ===== Featured / Logos carousel ===== */
.dz-featured{
  background: var(--soft-lavender);
  color: var(--deep-violet-black);
  padding: 5vw 0 0 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.dz-featured__title{
  font-size: clamp(1.1rem, 2.4vw, 1.6rem);
  margin: 0 0 6px;
}
.dz-featured__subtitle{
  margin: 0 0 18px;
  color: color-mix(in oklab, var(--deep-violet-black) 75%, white);
  font-size: var(--fz-14);
}

/* ===== Featured / Logos carousel (tamaño uniforme) ===== */
.dz-logos{
  position: relative;
  overflow: hidden;
  mask-image: linear-gradient(to right, transparent 0, black 8%, black 9%, transparent 100%);
  -webkit-mask-image: linear-gradient(to right, transparent 0, black 8%, black 92%, transparent 100%);
}

/* Control centralizado del tamaño de logo */
.dz-logos{
  --logo-h: 15vh;          /* altura de los logos en móvil */
  --logo-max-w: 20vw;     /* límite de ancho para logos panorámicos */
  --gap: clamp(24px, 1vw, 72px);
  --speed: 26s;
}
@media (min-width: 720px){
  .dz-logos{ --logo-h: 9vh; --logo-max-w: 40vw; }
}
@media (min-width: 1100px){
  .dz-logos{ --logo-h: 10vh; --logo-max-w: 50vw; }
}

.dz-logos__track{
  display: flex;
  align-items: center;
  gap: var(--gap);
  min-width: max-content;
  padding: 6px 0;
  animation: dz-scroll var(--speed) linear infinite;
}
.dz-logos__track--clone{ animation-delay: calc(var(--speed) / -2); }

@keyframes dz-scroll{
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* Cada ítem es una “caja” con altura fija; las imágenes se centran dentro */
.dz-logos__item{
  display: grid;
  place-items: center;
  height: calc(var(--logo-h) + 8px); /* leve padding vertical */
  padding: 4px 25px;
}

/* Forzamos alto fijo, ancho auto con límite para panorámicos */
.dz-logos__item img{
  display: block;
  height: var(--logo-h);
  width: auto;
  max-width: var(--logo-max-w);
  object-fit: contain;
  filter: grayscale(1) contrast(1.1) opacity(.85);
  transition: filter .2s ease, opacity .2s ease, transform .2s ease;
}

.dz-logos__item img:hover{
  filter: none;
  opacity: 1;
  transform: translateY(-1px);
}

/* ===== Services ===== */
.dz-services{
  background: var(--soft-lavender);
  color: var(--deep-violet-black);
  padding: 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.dz-services__head{ display:grid; margin-bottom: clamp(16px, 3vw, 24px); }
.dz-services__sub{ color: var(--deep-violet-black); }

.dz-services__grid{
  display: grid;
  gap: 14px;
}

@media (min-width: 780px){
  .dz-services__grid{
    grid-template-columns: repeat(3, minmax(0,1fr)); /* 2 servicios actuales */
    gap: clamp(14px, 3vw, 22px);
  }
}

/* Card base */
.dz-card{
  position: relative;
  display: grid;
  align-content: baseline;
  gap: 10px;
  padding: clamp(16px, 3.2vw, 22px);
  border: 1px solid var(--border);
  border-radius: 16px;
  background: #fff;
  background: color-mix(in oklab, white 86%, var(--offwhite-violet) 14%);
  border-color: color-mix(in oklab, var(--charcoal-violet) 12%, #0000);
  color: var(--deep-violet-black);
  box-shadow: var(--shadow);
  min-height: 80px;
}

.dz-card--service:hover{
  background: color-mix(in oklab, var(--violet) 20%, var(--offwhite-violet) 10%);
}

/* Número grande en esquina superior, estilo Liquid-like */
.dz-card__num{
  position: absolute;
  top: 12px; right: 14px;
  font-weight: 700;
  font-size: clamp(1.1rem, 4vw, 1.6rem);
  color: color-mix(in oklab, var(--charcoal-violet) 34%, transparent);
  letter-spacing: .04em;
}

.dz-card__desc{
  color: var(--deep-violet-black);
  margin: 0 0 6px 0;
  max-width: 70ch;
}

/* CTA dentro de la card */
.dz-card__cta{
  width: fit-content;
  justify-self: start;
  margin-top: 4px;
  margin-bottom: 5px;
  font-size: var(--fz-14);
  color: #6F5E7B;
  line-height: 1.2;
}

/* CTA “inline” dentro de secciones (como Services) */
.dz-cta-bar--inline{
  margin-top: clamp(16px, 3vw, 28px);
  border-radius: 16px;
  overflow: hidden;
}
.dz-cta-bar--inline .dz-cta-bar__inner{
  padding: clamp(18px, 3.5vw, 28px) 0;
}

/* ===== Products ===== */
.dz-products{
  background: var(--soft-lavender);
  color: var(--deep-violet-black);
  padding: 0 0 5vw 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.dz-products__head{ display:grid; margin-bottom: clamp(16px, 3vw, 24px); }
.dz-products__sub{ color: color-mix(in oklab, var(--deep-violet-black) 72%, white); }

.dz-products__grid{
  display: grid;
  gap: 14px;
}
@media (min-width: 780px){
  .dz-products__grid{
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: clamp(14px, 3vw, 22px);
  }
}
@media (min-width: 1040px){
  .dz-products__grid{
    grid-template-columns: repeat(3, minmax(0,1fr));
  }
}

/* Card base */
.dz-card{
  position: relative;
  display: grid;
  gap: 10px;
  padding: clamp(14px, 2.4vw, 18px);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  background: color-mix(in oklab, white 86%, var(--offwhite-violet) 14%);
  color: var(--deep-violet-black);
}

/* Bloque de media DENTRO de la tarjeta (arriba del texto) */
.dz-card__media{
  position: relative;
  border-radius: calc(var(--radius) - 2px);
  overflow: hidden;
  border: 1px solid color-mix(in oklab, var(--charcoal-violet) 10%, #0000);
  background: color-mix(in oklab, var(--offwhite-violet) 82%, white 18%);
  /* relación por defecto; ajusta abajo con modifiers si necesitas */
  aspect-ratio: 16 / 9;
}
.dz-card__media img{
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover; /* usa 'contain' si tus PNG tienen mucho padding transparente */
  filter: saturate(104%) contrast(102%);
  transition: transform .3s ease;
}

/* Contenido textual */
.dz-card__body{ display: grid; gap: 8px; }
.dz-card__num{
  position: absolute;
  top: 10px; right: 12px;
  font-weight: 700;
  font-size: clamp(1rem, 3.2vw, 1.2rem);
  color: color-mix(in oklab, var(--deep-violet-black) 24%, transparent);
  letter-spacing: .04em;
}
.dz-card__title{ 
  font-size: clamp(1rem, 2.2vw, 1.2rem); 
  margin: 12px 0 0; 
}
.dz-card__desc{ color: color-mix(in oklab, var(--deep-violet-black) 74%, white); 
  margin: 0; 
  max-width: 70ch; 
}

/* Card especial para industrias (icono + texto, sin media) */
.dz-industries{
  background:var(--soft-lavender);
  color:var(--deep-violet-black);
  padding:clamp(28px,7vw,72px) 0;
  border-top:1px solid var(--border)
}

.dz-card--industry {
  background: var(--soft-lavender);
  border-radius: 1.5rem;
  box-shadow: var(--shadow);
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 1.5rem;
  align-items: start;
  padding: 1.5rem;
  transition: transform 0.3s ease;
}

.dz-card--industry:hover {
  transform: translateY(-4px);
}

.dz-card__icon svg {
  width: 30px;
  height: 30px;
  stroke: var(--violet);
  opacity: 0.9;
  transition: opacity 0.3s ease;
}

.dz-card--industry h3 {
  margin-top: 0;
  color: var(--);
}

.dz-card--industry p {
  color: var(--deep-violet-black);
  font-weight: 500;
}

/* Hover */
.dz-card:hover{ background: color-mix(in oklab, white 92%, var(--offwhite-violet) 8%); }
.dz-card:hover .dz-card__media img{ transform: scale(1.02); }

/* Modificadores opcionales de aspecto para imágenes especiales */
.dz-media--square{ aspect-ratio: 1 / 1; }
.dz-media--tall{ aspect-ratio: 3 / 4; }
.dz-media--wide{ aspect-ratio: 21 / 9; }

/* ===== Utilidades ===== */
.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}

.dz-section { padding: clamp(28px, 7vw, 72px) 0; }

/* ===== Encabezado de sección (título + subtítulo) ===== */
.dz-section__head{
  display:grid;
  gap:8px;
  margin-bottom:clamp(16px,3vw,24px)
}
.dz-section__head .muted{color:var(--text-muted)}

/* ===== BENEFICIOS (tarjetas métricas + mini-gráficas) ===== */
.dz-benefits{
  background:var(--soft-lavender);
  color:var(--deep-violet-black);
  padding:clamp(28px,7vw,72px) 0;
  border-top:1px solid var(--border)
}
.dz-cards{
  display:grid;
  gap:14px
}

.dz-cards--2 {
  display: grid; /* por si .dz-cards base no lo declara */
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-6, 1.5rem);
}

.dz-cards--3 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-4, 1.5rem);
}

.dz-cards--4 {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-3, 1.5rem);
}

@media (max-width: 900px) {
  .dz-cards--2 {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 780px) {
  .dz-cards--4 {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:clamp(14px,3vw,22px)
  }
  .dz-cards--3 {
    grid-template-columns: 1fr;
  }
}

@media (min-width:780px){
  .dz-cards--3{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:clamp(14px,3vw,22px)
  }
  .dz-cards--4{
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:clamp(14px,3vw,22px)
  }
}

.dz-card--metric{
  position:relative;
  display:grid;
  gap:10px;
  padding:clamp(16px,3.2vw,22px);
  border:1px solid var(--border);
  border-radius:16px;
  background:color-mix(in oklab,var(--charcoal-violet) 86%, black 14%);
  box-shadow:var(--shadow);
}
.dz-card--metric:hover{background:color-mix(in oklab,var(--charcoal-violet) 80%, black 20%)}
.dz-card--metric .dz-card__title{font-size:clamp(1rem,2.2vw,1.25rem);margin:0}
.dz-card--metric .dz-card__desc{margin:0;color:var(--text-muted)}

/* Mini-charts (heredan currentColor) */
.dz-chart{
  --chart-h: 160px;
  margin-top:6px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.02);
  padding:8px
}
.dz-chart svg{display:block;
  width:100%;
  height:auto;
  color:var(--violet)
}

/* Alturas sugeridas (puedes ajustar por card) */
.dz-chart{ --chart-h: 160px; }
.dz-chart--spark{ --chart-h: 110px; }
.dz-chart--bars{  --chart-h: 160px; }
.dz-chart--donut{ --chart-h: 200px; }

/* Evita que width/height del canvas se animen por herencia de 'all' */
.dz-chart,
.dz-chart canvas {
  transition-property: opacity, transform; /* nada de width/height */
  transition-duration: .45s;
  transition-timing-function: ease;
}

/* El efecto de aparición solo aplica a opacidad/transform */
.dz-chart {
  opacity: 0;
  transform: translateY(6px);
}
.dz-chart.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Seguridad extra por si alguna regla global pone 'transition: all' */
.dz-chart * {
  transition-property: opacity, transform !important;
}

/* Métrica destacada */
.dz-metric{display:flex;
  align-items:baseline;
  gap:8px;
  margin-top:6px
}
.dz-metric__value{
  font-weight:700;
  font-size:clamp(1.1rem,3vw,1.6rem)
}
.dz-metric__label{
  color:var(--text-muted);
  font-size:var(--fz-12)
}

/* ===== METODOLOGÍA (pasos) ===== */
.dz-approach{
  background:var(--soft-lavender);
  color:var(--deep-violet-black);
  padding:clamp(28px,7vw,72px) 0;
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border)
}
.dz-steps{
  counter-reset:step;
  display:grid;
  gap:12px;
  margin:0;
  padding:0;
  list-style:none
}
@media (min-width:840px){
.dz-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(12px,3vw,20px)}}
.dz-step{background:color-mix(
  in oklab,white 86%, var(--offwhite-violet) 14%);
  border:1px solid color-mix(in oklab,var(--charcoal-violet) 12%, #0000);
  border-radius:16px;
  padding:clamp(14px,2.6vw,18px)
}
.dz-step__num{font-weight:700;color:color-mix(in oklab,var(--deep-violet-black) 30%, transparent)}
.dz-step__title{margin:2px 0 4px 0;font-size:clamp(1rem,2.2vw,1.2rem)}
.dz-step__desc{margin:0;color:color-mix(in oklab,var(--deep-violet-black) 74%, white)}

/* ===== RESULTADOS (KPIs) ===== */
.dz-outcomes{
  background:var(--soft-lavender);
  color:var(--deep-violet-black);
  padding:clamp(28px,7vw,72px) 0;
  border-top:1px solid var(--border)
}
.dz-kpis{display:grid;gap:10px}
@media (min-width:720px){
  .dz-kpis{
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:clamp(10px,2.4vw,16px)
  }
}
.dz-kpi{
  border:1px solid var(--border);
  border-radius:16px;
  padding:18px;
  background:color-mix(in oklab, white 86%, var(--offwhite-violet) 14%);
  text-align:center
}
.dz-kpi__value{font-weight:800;font-size:clamp(1.1rem,3vw,1.6rem)}
.dz-kpi__label{color:var(--deep-violet-black);font-size:var(--fz-12)}

/* ===== HERO variante servicio (opcional, si quieres más contraste) ===== */
.dz-hero--service{background:linear-gradient(180deg,color-mix(in oklab,var(--deep-violet-black) 92%, black 8%), var(--deep-violet-black))}

/* ===== Charts ===== */
.dz-chart{
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.10);
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.02));
  padding: 8px;
  overflow: hidden; /* evita bleed en reescala */
}

/* Alturas fijas por tipo (puedes ajustar) */
.dz-chart--spark{ --chart-h: 110px; }
.dz-chart--bars{  --chart-h: 160px; }
.dz-chart--donut{ --chart-h: 180px; }

/* El canvas ocupa todo el ancho; altura fija vía variable */
.dz-chart canvas{
  display: block;
  width: 100%;
  height: var(--chart-h);
}

/* ===================== CASE / DZ-CASE ===================== */
.dz-case {
  position: relative;
  padding-block: clamp(3rem, 6vw, 6rem);
  background:
    /* wash violeta muy sutil en diagonal */
    linear-gradient(135deg, rgba(87, 42, 121, 0.07) 0%, rgba(87, 42, 121, 0) 60%);
  border-top: 1px solid rgba(87, 42, 121, 0.12);
  border-bottom: 1px solid rgba(87, 42, 121, 0.12);
  background-color: var(--surface, #fff);
}

/* Encabezado y título */
.dz-case .dz-section__head {
  margin-bottom: clamp(1.5rem, 3vw, 2rem);
}

.dz-case .heading {
  color: var(--title, var(--ink, #1b1b1f));
  line-height: 1.2;
  position: relative;
}

/* Subrayado decorativo bajo el título */
.dz-case .heading::after {
  content: "";
  display: block;
  width: 64px;
  height: 4px;
  margin-top: 0.75rem;
  border-radius: 999px;
  background: var(--violet, #572A79);
  box-shadow: 0 0 0 2px rgba(87, 42, 121, 0.08);
}

/* Subtítulo / cuerpo del caso */
.dz-case .dz-subtitle {
  max-width: 68ch;
  font-size: clamp(1rem, 1.2vw + 0.9rem, 1.125rem);
  line-height: 1.7;
  color: var(--text-2, rgba(0, 0, 0, 0.68));
}

/* Pequeño adorno en la esquina superior derecha */
.dz-case::before {
  content: "";
  position: absolute;
  inset: -40px 0 auto auto; /* top:-40; right:0 */
  width: min(38vw, 520px);
  height: 180px;
  background: radial-gradient(
    60% 120% at 100% 0%,
    rgba(87, 42, 121, 0.14),
    rgba(87, 42, 121, 0.0) 70%
  );
  pointer-events: none;
  z-index: 0;
}

/* Asegura que el contenido quede por encima del adorno */
.dz-case .container,
.dz-case .dz-section__head,
.dz-case .dz-subtitle {
  position: relative;
  z-index: 1;
}

/* Animación opcional de aparición suave */
.dz-case.reveal [data-reveal] {
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .5s ease, transform .5s ease;
}
.dz-case.reveal.is-visible [data-reveal] {
  opacity: 1;
  transform: translateY(0);
}

.dz-footnote {
  margin-top: var(--space-4, 1rem);
  font-size: 0.85rem;
  line-height: 1.4;
  color: var(--charcoal-violet, #55516b); /* tono suave legible */
  text-align: center;
}

.dz-footnote a {
  color: var(--brand-accent, #572a79); /* usa el color principal de marca */
  text-decoration: underline;
}

.dz-footnote a:hover {
  text-decoration: none;
  color: var(--brand-accent-hover, #6d3796);
}

/* Cards: mantenerlas “en papel” blanco para elevar sobre el offwhite */
.dz-card,
.dz-card--soft,
.dz-card--person,
.dz-card--lift{
  background: var(--surface);
}

/* Listas y checks sobre fondo claro */
.dz-list__item{
  color: var(--text);
}
.dz-list--checks .dz-list__item::before{
  /* si usas pseudo-elemento para el check, asegúrate que contraste bien */
  border-color: var(--charcoal-violet);
}

/* ========= Base ========= */
.dz-list{
  /* Tokens configurables por lista */
  --list-gap: .6rem;
  --list-marker-size: 1.25rem;
  --list-marker-color: var(--charcoal-violet);
  --list-text-color: var(--text);

  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: var(--list-gap);
}

.dz-list__item{
  position: relative;
  list-style: none;
  color: var(--list-text-color);
  line-height: 1.55;
  padding-left: calc(var(--list-marker-size) + .5rem);
}

/* ========= Bullets ========= */
.dz-list--bullets .dz-list__item::before{
  content: "";
  position: absolute;
  left: .25rem;
  top: .7em; /* alinea al texto */
  width: .42rem;
  height: .42rem;
  border-radius: 999px;
  background: var(--list-marker-color);
}

/* ========= Checks ========= */
.dz-list--checks .dz-list__item{
  padding-left: calc(var(--list-marker-size) + .6rem);
  color: var(--deep-violet-black);
}

.dz-list--checks .dz-list__item::before{
  /* Caja del check */
  content: "";
  position: absolute;
  left: 0;
  top: .2em;
  width: var(--list-marker-size);
  height: var(--list-marker-size);
  border: 2px solid var(--list-marker-color);
  border-radius: .4rem;
  background: transparent;
}

.dz-list--checks .dz-list__item::after{
  /* Palomita */
  content: "";
  position: absolute;
  left: .38rem;
  top: .38rem;
  width: .38rem;
  height: .72rem;
  border-right: 2px solid var(--list-marker-color);
  border-bottom: 2px solid var(--list-marker-color);
  transform: rotate(45deg);
}

/* ========= Números ========= */
.dz-list--numbers{
  counter-reset: dz-counter;
}
.dz-list--numbers .dz-list__item{
  counter-increment: dz-counter;
}
.dz-list--numbers .dz-list__item::before{
  content: counter(dz-counter) ".";
  position: absolute;
  left: 0;
  top: 0;
  width: calc(var(--list-marker-size) + .2rem);
  text-align: right;
  color: var(--list-marker-color);
  font-weight: 700;
}

/* ========= Inline / Chips ========= */
.dz-list--inline{
  flex-direction: row;
  flex-wrap: wrap;
  gap: .5rem 1rem;
}
.dz-list--inline .dz-list__item{
  padding-left: 0;
}
.dz-list--inline.dz-list--checks .dz-list__item{
  /* En caso de usar checks en línea */
  padding-left: calc(var(--list-marker-size) + .5rem);
}

/* ========= Densidad y estados útiles ========= */
.dz-list--dense{ --list-gap: .35rem; }
.dz-list--loose{ --list-gap: .9rem; }
.dz-list--muted .dz-list__item{ color: var(--charcoal-violet); }

/* ========= Accesibilidad de contraste (opcional) ========= */
/* Si el fondo es claro (p. ej., --offwhite-violet), asegúrate de tener buen contraste */
.theme-offwhite .dz-list__item{
  color: var(--text);
}

/* ================== PERSON CARD ================== */
.dz-card{
  --card-bg: var(--surface, #FFF);
  --card-fg: var(--text, #0F0B14);
  --card-muted: var(--charcoal-violet, #3A2F45);
  --card-radius: 1rem;
  --card-pad: 1rem;
  --card-shadow: 0 6px 20px rgba(0,0,0,.06);
  --card-shadow-hover: 0 10px 28px rgba(0,0,0,.10);

  background: var(--card-bg);
  color: var(--card-fg);
  border-radius: var(--card-radius);
  box-shadow: var(--card-shadow);
  overflow: hidden;
  transition: box-shadow .25s ease, transform .25s ease, background-color .25s ease;
  display: flex;
  flex-direction: column;
}

.dz-card--person{
  /* tokens específicos para persona */
  --avatar-size: 140px;
  --avatar-ring: 2px;
  --avatar-bg: #F3EEF8;                 /* sutil violeta de fondo */
  --ring-color: color-mix(in srgb, var(--charcoal-violet), white 45%);
  --eyebrow-color: var(--charcoal-violet);
  --bio-color: var(--text);

  align-items: center;
  text-align: center;
  padding: calc(var(--card-pad) + .25rem) var(--card-pad) var(--card-pad);
}

.dz-card--person:hover{
  transform: translateY(-2px);
  box-shadow: var(--card-shadow-hover);
}

/* ========== Media (Avatar) ========== */
.dz-card--person .dz-card__media{
  margin-bottom: .85rem;
}

.dz-card--person .dz-avatar{
  width: var(--avatar-size);
  height: var(--avatar-size);
  border-radius: 999px;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--avatar-bg);
  box-shadow:
    0 1px 0 rgba(0,0,0,.03) inset,
    0 0 0 var(--avatar-ring) var(--ring-color); /* anillo */
  overflow: hidden;
}

.dz-card--person .dz-avatar img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Fallback si no hay imagen */
.dz-card--person .dz-avatar:not(:has(img)),
.dz-card--person .dz-avatar img[src=""],
.dz-card--person .dz-avatar img[alt=""]{
  background:
    radial-gradient(60% 60% at 35% 30%, rgba(255,255,255,.55), transparent 60%),
    var(--avatar-bg);
}

/* ========== Body / Textos ========== */
.dz-card--person .dz-card__body{
  padding: 0 var(--card-pad);
}

.dz-card--person .dz-h5{
  font-weight: 700;
  letter-spacing: .2px;
  margin: 0 0 .15rem;
}

.dz-card--person .dz-eyebrow{
  color: var(--eyebrow-color);
  font-size: .9rem;
  font-weight: 600;
  text-transform: none;
  opacity: .9;
  margin: 0 0 .5rem;
}

.dz-card--person .dz-paragraph{
  color: var(--bio-color);
  font-size: .95rem;
  line-height: 1.55;
  margin: 0;
}

/* ========== Densidad y variantes ========== */
.dz-card--person.dz-card--soft{
  box-shadow: 0 1px 0 rgba(0,0,0,.04), 0 8px 24px rgba(0,0,0,.05);
}

.dz-card--person.dz-card--lift:hover{
  transform: translateY(-4px);
}

/* ========== Responsive ========== */
@media (min-width: 768px){
  .dz-grid--4 > .dz-card--person{
    /* asegura consistencia en grillas de equipo */
    height: 100%;
  }
}

/* ========== Modo con fondo claro global (ej. offwhite) ========== */
.theme-offwhite .dz-card--person{
  --card-bg: #FFF;
  --ring-color: color-mix(in srgb, var(--charcoal-violet), white 45%);
}

/* ========== Accesibilidad de movimiento ========== */
@media (prefers-reduced-motion: reduce){
  .dz-card--person{
    transition: none;
  }
  .dz-card--person:hover{
    transform: none;
  }
}

/* ===== Secciones claras ===== */
.dz-section--soft{ background: var(--bg-soft); }

/* ===== Card ===== */
.dz-card--soft{
  background: var(--card);
  border: 1px solid var(--border-light);
  border-radius: var(--radius-lg);
}
.dz-card--elevated{ box-shadow: var(--shadow); }

/* 2 columnas principales */
.dz-contact{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
}
@media (max-width: 992px){
  .dz-contact{ grid-template-columns: 1fr; }
}

/* Columna izquierda */
.dz-contact__left .dz-section__title{ color: var(--charcoal-violet); }
.dz-contact__left .dz-section__subtitle{ color:#6F5E7B; }

/* Tarjeta compacta: icono izquierda, texto derecha */
.dz-card--row{
  display: grid;
  grid-template-columns: 36px 1fr;     /* icono | texto */
  align-items: center;
  gap: .6rem;
  padding: .55rem .7rem;               /* más pequeña */
  min-height: 44px;                     /* reduce la altura total */
  border: 1px solid rgba(29,19,32,.12);
  border-radius: var(--radius-lg);
  background: #fff;
}

/* Icono compacto */
.dz-card__icon{
  width: 36px;
  height: 36px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  background: var(--soft-lavender);
  color: var(--violet);
  font-size: 1rem;
  line-height: 1;
}

/* Texto compacto */
.dz-card__body{
  display: grid;
  gap: .1rem;
}
.dz-card__title{
  margin: 0;
  font-size: var(--fz-14);
  font-weight: 700;
  color: var(--charcoal-violet);
  line-height: 1.2;
}

/* Hover sutil (opcional) */
.dz-card--row:hover{ box-shadow: var(--shadow); }

/* Variante aún más densa (opcional) */
.dz-card--row.dz-card--dense{
  padding: .45rem .6rem;
  min-height: 40px;
  grid-template-columns: 32px 1fr;
}
.dz-card--row.dz-card--dense .dz-card__icon{
  width: 32px; height: 32px; border-radius: 8px; font-size: .95rem;
}

/* Responsive: mantiene dos columnas, solo ajusta gap */
@media (max-width: 480px){
  .dz-card--row{ gap: .5rem; }
}

.dz-contact__social-title{ margin-top: 1.25rem; color: var(--charcoal-violet); }
.dz-contact__social{ display:grid; gap:.7rem; }
.dz-contact__social .dz-card--row{ transition: box-shadow .2s; }
.dz-contact__social .dz-card--row:hover{ box-shadow: var(--shadow); }

/* Columna derecha */
.dz-contact__panel{
  background: var(--soft-lavender);
  border: 1px solid rgba(29,19,32,.08);
  border-radius: 28px;
  padding: 1.25rem;
  box-shadow: var(--shadow);
}
.dz-panel__title{
  color: var(--charcoal-violet);
  font-size: 1.35rem;
  margin-bottom: .5rem;
}

/* Inputs */
.dz-input,.dz-select,.dz-textarea{
  width:93%;
  background:#fff;
  color:var(--charcoal-violet);
  border:1px solid rgba(29,19,32,.12);
  border-radius: var(--radius-lg);
  padding:.9rem 1rem;
  line-height:1.35;
  transition:border-color .2s, box-shadow .2s;
}
.dz-input:focus,.dz-select:focus,.dz-textarea:focus{
  outline: none;
  border-color: var(--violet);
  box-shadow: 0 0 0 .18rem var(--ring);
}
.is-invalid,[aria-invalid="true"]{
  border-color: var(--error) !important;
  box-shadow: 0 0 0 .18rem color-mix(in srgb, var(--error) 22%, transparent);
}
.dz-label{ font-weight: 600; color: var(--charcoal-violet); }
.dz-error{ color: var(--error); font-size: var(--fz-14); margin-top:.3rem; }

.dz-select{
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 24 24' fill='%235e157a' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 10l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .9rem center;background-size:18px;padding-right:2.4rem;
}

.dz-form__grid{ gap: 1rem; }
@media (max-width:768px){ .dz-form__grid{ grid-template-columns:1fr !important; } }

/* Botón principal */
.btn.btn--primary{
  background: var(--violet);
  color: var(--text-on-dark);
  border: 1px solid transparent;
  padding:.9rem 1.15rem;
  border-radius: var(--radius);
  font-weight:600;
  transition: transform .06s, box-shadow .2s, filter .2s;
}
.btn.btn--primary:hover{ filter: brightness(.96); box-shadow: 0 10px 24px color-mix(in srgb, var(--violet) 35%, transparent); transform: translateY(-1px); }
.btn.btn--primary:active{ transform: translateY(0); }

/* Mapa debajo del panel */
.dz-contact__map{
  margin-top: 1rem;
  padding: .75rem;
  border: 1px solid rgba(29,19,32,.08);
  border-radius: 20px;
  background: #fff;
}
.dz-contact__map iframe{ border-radius: 12px; }

/* Flashes */
.dz-alert{
  padding:.85rem 1rem; border-radius: var(--radius); font-weight:600; margin:1rem 0;
}
.dz-alert--success{ background: color-mix(in srgb, var(--success) 10%, #fff); color: color-mix(in srgb, var(--success) 55%, #000); border:1px solid color-mix(in srgb, var(--success) 30%, transparent); }
.dz-alert--error,.dz-alert--danger{ background: color-mix(in srgb, var(--error) 10%, #fff); color: color-mix(in srgb, var(--error) 55%, #000); border:1px solid color-mix(in srgb, var(--error) 30%, transparent); }

/* Títulos de sección */
.dz-section__title{ color: var(--ink); }
.dz-section__subtitle{ color: var(--ink-muted); }