/* DPMC v2 — secciones de la biblioteca (prefijo dx-). Usa los tokens de site.css. */

/* ---------- encabezado común ---------- */
.dx-head{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(20px,5vw,70px);align-items:end;margin-bottom:clamp(34px,4.5vw,58px)}
.dx-head h2{text-wrap:balance}
.dx-head .lede{margin:0}
.dx-head:has(> div:only-child){grid-template-columns:1fr}
@media(max-width:860px){.dx-head{grid-template-columns:1fr;gap:18px}}

/* ---------- menú: desplegable simple (reemplaza los megamenús) ---------- */
.mega.dpmc-dd{width:auto;min-width:300px;padding:10px 26px;display:block;gap:0}
.mega.dpmc-dd .mega-cols{display:block}
.mega.dpmc-dd a{grid-template-columns:1fr;border-bottom:1px solid var(--line);padding:13px 4px;min-height:0}
.mega.dpmc-dd a:last-child{border-bottom:0}
.mega.dpmc-dd a:hover{padding-left:12px}

/* ---------- hero ---------- */
.dx-hero{position:relative;overflow:hidden;background:var(--ink);color:#fff;isolation:isolate}
.dx-hero__media{position:absolute;inset:0;z-index:0}
.dx-hero__media img{object-position:50% 40%}
.dx-hero__media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.dx-hero__in{position:relative;z-index:2}
.dx-hero h1{max-width:18ch;text-wrap:balance}
.dx-hero .lede{margin-top:24px;color:var(--d1);max-width:56ch}
.dx-hero .hero-actions{margin-top:34px}
.dx-hero--portada{min-height:min(88vh,780px);display:flex;align-items:flex-end}
.dx-hero--portada .dx-hero__in{width:100%;padding-top:clamp(140px,16vw,220px);padding-bottom:clamp(56px,7vw,104px)}
.dx-hero--portada .plate:has(img)::after{background:linear-gradient(to top,rgba(0,25,24,.94) 0%,rgba(0,25,24,.7) 34%,rgba(0,25,24,.28) 70%,rgba(0,25,24,.42) 100%)}
.dx-hero--split .dx-hero__media{left:48%}
.dx-hero--split .plate:has(img)::after{background:linear-gradient(90deg,rgba(0,25,24,1) 0%,rgba(0,25,24,.55) 22%,rgba(0,25,24,.12) 60%,rgba(0,25,24,.2) 100%)}
.dx-hero--split .dx-hero__in{min-height:clamp(380px,40vw,560px);display:flex;align-items:center;padding-top:clamp(60px,7vw,100px);padding-bottom:clamp(60px,7vw,100px)}
.dx-hero--split .dx-hero__copy{max-width:min(560px,48%)}
.dx-hero--split h1{font-size:calc(clamp(34px,4vw,56px) * var(--size-boost))}
@media(max-width:860px){
  .dx-hero--split .dx-hero__media{position:relative;left:0;height:260px}
  .dx-hero--split .plate:has(img)::after{background:linear-gradient(to top,rgba(0,25,24,1) 0%,rgba(0,25,24,.2) 60%)}
  .dx-hero--split .dx-hero__in{min-height:0;padding-top:28px}
  .dx-hero--split .dx-hero__copy{max-width:none}
}

/* ---------- franja de valores ---------- */
.dx-valores{background:var(--paper);border-bottom:1px solid var(--line)}
.dx-valores__list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.dx-valores__list li{padding:clamp(28px,3.4vw,46px) clamp(16px,2vw,28px) clamp(28px,3.4vw,46px) 0;border-right:1px solid var(--line);margin-right:clamp(16px,2vw,28px)}
.dx-valores__list li:last-child{border-right:0;margin-right:0}
.dx-valores h3{font-size:calc(clamp(18px,1.4vw,21px) * var(--size-boost));margin-bottom:10px;color:var(--ink)}
.dx-valores p{margin:0;font-size:15px;line-height:1.55;color:var(--txt-2)}
@media(max-width:900px){.dx-valores__list{grid-template-columns:1fr 1fr}.dx-valores__list li{border-right:0;margin-right:0;border-bottom:1px solid var(--line)}}
@media(max-width:560px){.dx-valores__list{grid-template-columns:1fr}}

/* ---------- tarjetas con foto ---------- */
.dx-tarjetas{padding:clamp(62px,8vw,118px) 0;background:var(--bone)}
.dx-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,28px)}
.dx-card{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);transition:border-color var(--t2) var(--out)}
.dx-card:hover{border-color:var(--ink)}
.dx-card__img{aspect-ratio:4/3}
.dx-card__img img{transition:transform 1.2s var(--in)}
.dx-card:hover .dx-card__img img{transform:scale(1.05)}
.dx-card__body{padding:clamp(20px,2.2vw,30px);display:flex;flex-direction:column;gap:10px;flex:1}
.dx-card h3{color:var(--ink)}
.dx-card p{margin:0;color:var(--txt-2);font-size:15.5px;line-height:1.55;flex:1}
.dx-mas{display:inline-flex;align-items:center;gap:10px;margin-top:10px;font-family:var(--f-disp);font-weight:600;font-size:14.5px;color:var(--blue-d)}
.dx-card:hover .dx-mas svg{transform:translateX(5px)}
.dx-mas svg{transition:transform var(--t4) var(--in)}
@media(max-width:900px){.dx-cards{grid-template-columns:1fr}}

/* ---------- cajas con icono ---------- */
.dx-cajas{padding:clamp(62px,8vw,118px) 0}
.dx-cajas__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line-d)}
.dx-caja{background:var(--ink);padding:clamp(26px,3vw,40px)}
.dx-caja .ic{width:34px;height:34px;color:var(--green-l);margin-bottom:26px;fill:none;stroke:currentColor;stroke-width:1.4}
.dx-caja h3{margin-bottom:12px}
.dx-caja p{margin:0;color:var(--d2);font-size:15.5px;line-height:1.6}
@media(max-width:900px){.dx-cajas__grid{grid-template-columns:1fr}}

/* ---------- encabezado + columnas ---------- */
.dx-columnas{padding:clamp(62px,8vw,118px) 0}
.dx-cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(18px,2.4vw,34px)}
.dx-col{border-top:1px solid var(--ink);padding-top:22px}
.dx-col h3{font-size:calc(clamp(17px,1.3vw,20px) * var(--size-boost));margin-bottom:12px;color:var(--ink)}
.dx-col p{margin:0;color:var(--txt-2);font-size:15.5px;line-height:1.6}
@media(max-width:1000px){.dx-cols{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.dx-cols{grid-template-columns:1fr}}

/* ---------- texto largo ---------- */
.dx-texto{padding:clamp(56px,7vw,104px) 0}
.dx-texto + .dx-texto,.dx-lista + .dx-texto,.dx-rejilla + .dx-texto{border-top:1px solid var(--line)}
.dx-texto__grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(24px,5vw,80px)}
.dx-prosa p{font-size:17px;line-height:1.7;color:var(--txt);max-width:68ch}
.dx-prosa p:last-child{margin-bottom:0}
@media(max-width:860px){.dx-texto__grid{grid-template-columns:1fr}}

/* ---------- lista numerada ---------- */
.dx-lista{padding:clamp(56px,7vw,104px) 0;background:var(--bone)}
.dx-lista__items{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(24px,4vw,60px)}
.dx-lista__items li{display:grid;grid-template-columns:40px 1fr;gap:14px;padding:18px 0;border-top:1px solid var(--line);font-size:16px;line-height:1.55}
.dx-lista__items .k{font-family:var(--f-mono);font-size:11.5px;color:var(--blue-d);letter-spacing:.08em;padding-top:4px}
.dx-nota{margin:clamp(28px,3vw,40px) 0 0;max-width:70ch;font-size:17px;line-height:1.65;color:var(--ink);font-family:var(--f-disp);font-weight:500}
@media(max-width:860px){.dx-lista__items{grid-template-columns:1fr}}

/* ---------- rejilla de 8 ---------- */
.dx-rejilla{padding:clamp(56px,7vw,104px) 0}
.dx-rejilla__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.dx-item{padding:clamp(20px,2.2vw,30px);border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.dx-item h3{font-size:calc(clamp(16.5px,1.2vw,19px) * var(--size-boost));margin-bottom:10px;color:var(--ink)}
.dx-item p{margin:0;font-size:15px;line-height:1.55;color:var(--txt-2)}
@media(max-width:1000px){.dx-rejilla__grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.dx-rejilla__grid{grid-template-columns:1fr}}

/* ---------- línea de tiempo ---------- */
.dx-tiempo{padding:clamp(62px,8vw,118px) 0;background:var(--bone)}
.dx-tiempo__items{list-style:none;margin:0;padding:0;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(220px,1fr);gap:clamp(18px,2.4vw,34px);overflow-x:auto;padding-bottom:6px}
.dx-tiempo__items li{border-top:2px solid var(--ink);padding-top:20px;position:relative}
.dx-tiempo__items li::before{content:"";position:absolute;top:-7px;left:0;width:12px;height:12px;border-radius:50%;background:var(--green);border:2px solid var(--bone)}
.dx-anio{display:block;font-family:var(--f-disp);font-weight:800;font-size:clamp(26px,2.4vw,34px);letter-spacing:-.02em;color:var(--blue-d);margin-bottom:8px}
.dx-tiempo h3{font-size:calc(clamp(17px,1.3vw,20px) * var(--size-boost));margin-bottom:8px;color:var(--ink)}
.dx-tiempo p{margin:0;font-size:15px;line-height:1.55;color:var(--txt-2)}
@media(max-width:700px){.dx-tiempo__items{grid-auto-flow:row;grid-auto-columns:auto}}

/* ---------- llamado a contacto ---------- */
.dx-cta{padding:clamp(52px,6vw,88px) 0}
.dx-cta__in{display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap}
.dx-cta h2{max-width:22ch}
.dx-cta .lede{margin:14px 0 0}

/* ---------- fondos que el editor puede cambiar ---------- */
.dx-fondo-claro{background:var(--paper)!important}
.dx-fondo-gris{background:var(--bone)!important}
.dx-fondo-oscuro{background:var(--ink)!important;color:var(--d1)}
.dx-fondo-oscuro h2,.dx-fondo-oscuro h3,.dx-fondo-oscuro .dx-anio,.dx-fondo-oscuro .dx-nota{color:#fff}
.dx-fondo-oscuro p,.dx-fondo-oscuro .lede,.dx-fondo-oscuro .dx-prosa p{color:var(--d2)}
.dx-fondo-oscuro .dx-col,.dx-fondo-oscuro .dx-tiempo__items li{border-top-color:var(--line-d2)}
.dx-fondo-oscuro .dx-item,.dx-fondo-oscuro .dx-rejilla__grid,.dx-fondo-oscuro .dx-lista__items li{border-color:var(--line-d)}
.dx-fondo-oscuro .dx-card{background:var(--ink-700);border-color:var(--line-d)}

/* =====================================================================
   v2.1 — limpieza del "estilo IA"
   Una sola familia (Archivo), sin etiquetas en mayúscula espaciada, sin
   flechas, sin numeración decorativa, sin grano ni papel, sin fondo hueso.
   Funciona también sobre contenido viejo que aún tenga esas piezas.
   ===================================================================== */
:root,.solo-archivo{
  --f-body:'Archivo',system-ui,sans-serif;--f-mono:'Archivo',system-ui,sans-serif;--f-hand:'Archivo',system-ui,sans-serif;
  --bone:#EDF1F1;--bone-2:#E2E8E8;--bone-3:#E6ECEC;--line:#D3DCDB}
body{font-family:var(--f-body)}
input,select,textarea,button{font-family:inherit}
body::before{display:none!important}                          /* grano de papel */
.eyebrow,.form-hd,.plate .spec,.stamp,.sign svg,.note svg{display:none!important}
.btn svg,.dx-mas svg{display:none}
.pv .lbl b,.clauses .k,.dx-lista__items .k,.rule-list .k,.field label .nf,.consent .nf,.fgroup>span:first-child:not(:only-child),.row .num b,.hero-strip .k{display:none}
.band .src,
.brand .wm i,
.cap-img,
.case .meta dt,
.certs span,
.clauses .k,
.consent .nf,
.dpmc-pagina .wp-block-post-date,
.draftbar,
.et-grupo,
.et-k b,
.et-k span,
.et-pie,
.eyebrow,
.fgroup,
.field .err,
.field .hint,
.field label .nf,
.folio-stats .l,
.foot h3,
.form-hd,
.fsubmit .fnote,
.hero-strip .k,
.ht-t,
.lang,
.mega a .n,
.mega h4,
.mega-feat .t,
.mega-feat em,
.metrics .l,
.mk .mk-sub,
.org-top .r,
.person .creds,
.person .por span,
.person .role,
.pj .mk-tag,
.pj dt,
.plate .spec,
.post .tag,
.pre .sub,
.pv .lbl,
.row .num,
.rule-list .k,
.search .hint,
.sign .who,
.sres .sec,
.stamp,
.streams .c,
.team-line dd,
.team-line dt{
  font-family:var(--f-disp);text-transform:none;letter-spacing:0}
.foot h3{font-size:15px;font-weight:600;margin-bottom:14px}
.pv .lbl,.pj .mk-tag,.post .tag,.person .role,.mk .mk-sub{font-size:14px;font-weight:600}
.case .meta dt,.pj dt,.folio-stats .l,.metrics .l{font-size:13px;font-weight:500}
.fgroup{font-size:15px;font-weight:600;color:var(--ink)}
.note{font-family:var(--f-body);font-size:16px;color:var(--txt-2);max-width:48ch}
.on-dark .note,.cycle .note,.band .note{color:var(--d2)}
.clauses li{grid-template-columns:1fr}
.dx-lista__items li{grid-template-columns:1fr;position:relative;padding-left:22px}
.dx-lista__items li::before{content:"";position:absolute;left:0;top:27px;width:8px;height:8px;background:var(--green)}
/* fotos: sin retícula de fondo ni tinte; el degradado queda solo donde hay texto encima */
.plate::before{background:var(--ink)}
.plate img{filter:none}
.dx-card__img.plate::after{display:none}
.dx-hero--split .plate:has(img)::after{background:none}
.dx-hero--split .dx-hero__media{left:50%}
.dx-hero--split .dx-hero__media img{filter:none}
@media(max-width:860px){.dx-hero--split .dx-hero__media{left:0}}

/* animaciones de entrada apagadas desde Ajustes > DPMC */
.sin-anim [data-rv]{opacity:1!important;transform:none!important;clip-path:none!important;transition:none!important}

/* texto solo para lectores de pantalla */
.dx-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* enlaces de texto (sin flecha) */
.dx-enlace,.dx-link{font-family:var(--f-disp);font-weight:600;font-size:15px;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
.dx-enlace{color:#fff;text-decoration-color:rgba(255,255,255,.45)}
.dx-enlace:hover{text-decoration-color:#fff}
.dx-link{color:var(--blue-d);text-decoration-color:rgba(27,97,153,.35)}
.dx-link:hover{text-decoration-color:var(--blue-d)}
.dx-mas{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}

/* =====================================================================
   v2.1 — portada con diapositivas (.dx-slider)
   Ajustes en el propio HTML (se cambian desde el panel del editor):
   data-auto="1|0"  data-tiempo="segundos"  data-zoom="1|0"  data-trans="fundido|deslizar"
   ===================================================================== */
.dx-slider{--dx-t:7s;--dx-izq:max(var(--pad),calc((100vw - var(--max)) / 2 + var(--pad)));position:relative;background:var(--ink);color:#fff;overflow:hidden}
.dx-slider__track{display:grid}
.dx-slide{grid-area:1/1;display:grid;grid-template-columns:minmax(0,11fr) minmax(0,13fr);min-height:min(84vh,760px);
  opacity:0;visibility:hidden;transition:opacity .9s var(--ease),visibility 0s linear .9s}
.dx-slide.on{opacity:1;visibility:visible;transition:opacity .9s var(--ease),visibility 0s}
.dx-slider[data-trans="deslizar"] .dx-slide{transform:translateX(6%);transition:opacity .7s var(--ease),transform .9s var(--ease),visibility 0s linear .9s}
.dx-slider[data-trans="deslizar"] .dx-slide.on{transform:none;transition:opacity .7s var(--ease),transform .9s var(--ease),visibility 0s}
.dx-slide__media{grid-column:2;grid-row:1;position:relative;overflow:hidden;background:var(--ink-700)}
.dx-slide__media img,.dx-slide__media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 45%}
.dx-slide__copy{grid-column:1;grid-row:1;display:flex;flex-direction:column;justify-content:center;
  padding:clamp(64px,8vw,112px) clamp(28px,4vw,64px) clamp(150px,14vw,190px) var(--dx-izq)}
.dx-slide__tab{display:none}
.dx-slide__t{margin:0;font-family:var(--f-disp);font-weight:700;font-size:calc(clamp(30px,3.15vw,48px) * var(--size-boost));line-height:1.08;letter-spacing:-.02em;color:#fff;text-wrap:balance}
.dx-slide__copy .lede{margin:22px 0 0;color:var(--d1);max-width:44ch}
.dx-slide__copy .hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:18px 28px;margin-top:34px}
/* el texto entra un instante después de la foto */
.dx-slide__copy>*{transition:opacity .7s var(--ease),transform .7s var(--ease)}
.dx-slider.listo .dx-slide:not(.on) .dx-slide__copy>*{opacity:0;transform:translateY(14px)}
.dx-slider.listo .dx-slide.on .dx-slide__t{transition-delay:.15s}
.dx-slider.listo .dx-slide.on .lede{transition-delay:.25s}
.dx-slider.listo .dx-slide.on .hero-actions{transition-delay:.35s}
/* acercamiento lento de la foto activa */
@keyframes dxZoom{from{transform:scale(1)}to{transform:scale(1.08)}}
.dx-slider[data-zoom="1"] .dx-slide.on .dx-slide__media img{animation:dxZoom calc(var(--dx-t) + 1.5s) linear forwards;transform-origin:55% 45%}
.dx-slider.pausa .dx-slide.on .dx-slide__media img{animation-play-state:paused}
/* controles (los arma secciones.js a partir de las diapositivas) */
.dx-slider__ctl{position:absolute;left:0;bottom:0;z-index:3;width:calc(11 / 24 * 100%);box-sizing:border-box;
  display:flex;align-items:flex-end;gap:20px;padding:0 clamp(28px,4vw,64px) clamp(28px,3.4vw,44px) var(--dx-izq)}
.dx-slider__tabs{flex:1;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:18px}
.dx-slider__tab{position:relative;display:block;text-align:left;padding:16px 0 0;border:0;background:none;cursor:pointer;
  font-family:var(--f-disp);font-size:15px;font-weight:500;line-height:1.3;color:var(--d2)}
.dx-slider__tab::before,.dx-slider__tab::after{content:"";position:absolute;left:0;top:0;height:2px}
.dx-slider__tab::before{right:0;background:rgba(255,255,255,.2)}
.dx-slider__tab::after{width:0;background:var(--green-l)}
.dx-slider__tab:hover,.dx-slider__tab[aria-selected="true"]{color:#fff}
.dx-slider__tab[aria-selected="true"]::after{width:100%}
.dx-slider.corre .dx-slider__tab[aria-selected="true"]::after{animation:dxBarra var(--dx-t) linear forwards}
.dx-slider.corre.pausa .dx-slider__tab[aria-selected="true"]::after{animation-play-state:paused}
@keyframes dxBarra{from{width:0}to{width:100%}}
.dx-slider__tab:focus-visible,.dx-slider__pausa:focus-visible{outline:2px solid var(--blue-l);outline-offset:4px}
.dx-slider__pausa{flex:none;width:44px;height:44px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.3);background:transparent;color:#fff;cursor:pointer}
.dx-slider__pausa:hover{border-color:#fff}
.dx-slider__pausa svg{width:14px;height:14px;fill:currentColor}
@media(max-width:900px){
  .dx-slide{grid-template-columns:1fr;grid-template-rows:auto 1fr;min-height:0}
  .dx-slide__media{grid-column:1;grid-row:1;height:44vh;min-height:260px}
  .dx-slide__copy{grid-column:1;grid-row:2;justify-content:flex-start;padding:32px var(--pad) 128px}
  .dx-slider__ctl{width:100%;padding:0 var(--pad) 28px}
  .dx-slider__tabs{gap:12px}
  .dx-slider__tab{font-size:13.5px}
}
@media(prefers-reduced-motion:reduce){
  .dx-slide,.dx-slide__copy>*{transition:none!important}
  .dx-slide__media img{animation:none!important}
}

/* =====================================================================
   v2.1 — tres columnas con dibujo técnico (.dx-innova)
   data-anim="bucle" (se vuelve a trazar cada 12 s) | "una" (una vez) | "no"
   ===================================================================== */
.dx-innova{padding:clamp(62px,8vw,118px) 0;background:var(--paper)}
.dx-innova__cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--ink)}
.dx-inn{display:flex;flex-direction:column;padding:34px clamp(20px,2.8vw,40px) 0 0}
.dx-inn+.dx-inn{padding-left:clamp(20px,2.8vw,40px);border-left:1px solid var(--line)}
.dx-inn h3{margin:0;color:var(--ink);font-size:calc(clamp(20px,1.6vw,24px) * var(--size-boost));line-height:1.2}
.dx-inn>p{margin:14px 0 0;color:var(--txt-2);font-size:16px;line-height:1.6;max-width:42ch}
.dx-inn__fig{margin:30px 0 0}
.dx-inn__fig svg{display:block;width:100%;height:auto;overflow:visible}
.dx-inn__fig img{display:block;width:100%;height:auto;aspect-ratio:380/220;object-fit:cover}
.dx-inn__fig figcaption{margin-top:12px;font-size:13px;line-height:1.5;color:var(--txt-2)}
.dx-inn .dx-link{margin-top:auto;padding-top:24px;align-self:flex-start}
@media(max-width:900px){
  .dx-innova__cols{grid-template-columns:1fr}
  .dx-inn,.dx-inn+.dx-inn{padding:30px 0 34px;border-left:0}
  .dx-inn+.dx-inn{border-top:1px solid var(--line)}
}
/* trazos */
.dx-innova svg{--c-eje:var(--ink);--c-guia:#DCE3E2;--c-suave:#9DB0AE;--c-acento:var(--blue);--c-txt:var(--txt-2);--c-txt-f:var(--ink);--c-fondo:var(--paper)}
.dx-fondo-gris .dx-innova svg,.dx-innova.dx-fondo-gris svg{--c-fondo:var(--bone)}
.dx-innova.dx-fondo-oscuro svg{--c-eje:#fff;--c-guia:rgba(255,255,255,.14);--c-suave:#5F7370;--c-acento:var(--blue-l);--c-txt:var(--d2);--c-txt-f:#fff;--c-fondo:var(--ink)}
.dx-innova.dx-fondo-oscuro .dx-inn+.dx-inn,.dx-innova.dx-fondo-oscuro .dx-inn{border-color:var(--line-d)}
.dx-innova.dx-fondo-oscuro .dx-innova__cols{border-top-color:rgba(255,255,255,.4)}
.dx-innova.dx-fondo-oscuro figcaption{color:var(--d3)}
.dx-innova.dx-fondo-oscuro .dx-link{color:var(--blue-l);text-decoration-color:rgba(127,195,232,.4)}
.dx-s-eje{stroke:var(--c-eje);stroke-width:1.5;fill:none}
.dx-s-guia{stroke:var(--c-guia);stroke-width:1;fill:none}
.dx-s-suave{stroke:var(--c-suave);stroke-width:1;fill:none}
.dx-s-acento{stroke:var(--c-acento);stroke-width:1;fill:none}
.dx-s-plan{stroke:var(--c-suave);stroke-width:1.5;stroke-dasharray:5 4;fill:none}
.dx-s-real{stroke:var(--c-acento);stroke-width:2.25;fill:none}
.dx-f-acento{fill:var(--c-acento)}
.dx-punto{fill:var(--c-fondo);stroke:var(--c-eje);stroke-width:1.5}
.dx-t{font-family:var(--f-disp);font-size:12px;fill:var(--c-txt)}
.dx-t--f{font-size:12.5px;font-weight:600;fill:var(--c-txt-f)}
.dx-barra{fill:var(--c-suave);transform-box:fill-box;transform-origin:50% 100%}
.dx-barra--alta{fill:var(--c-acento)}
/* estado inicial y trazado (solo cuando secciones.js marcó la sección como animable) */
.dx-innova.anima .dx-trazo{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.6s cubic-bezier(.4,0,.2,1)}
.dx-innova.anima .dx-aparece{opacity:0;transition:opacity .6s ease 1.1s}
.dx-innova.anima .dx-barra{transform:scaleY(0);transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.dx-innova.anima .dx-particula{transform-box:fill-box;transform-origin:center}
.dx-innova.anima .visto .dx-trazo{stroke-dashoffset:0}
.dx-innova.anima .visto .dx-aparece{opacity:1}
.dx-innova.anima .visto .dx-barra{transform:scaleY(1)}
.dx-innova.anima.reinicio *{transition:none!important}
@media(prefers-reduced-motion:reduce){.dx-innova .dx-trazo,.dx-innova .dx-aparece,.dx-innova .dx-barra{transition:none!important;stroke-dashoffset:0!important;opacity:1!important;transform:none!important}}

/* =====================================================================
   v2.1 — bloques de WordPress dentro del diseño (Sección libre y bloques sueltos)
   ===================================================================== */
.dx-libre{padding:clamp(56px,7vw,104px) 0}
.dx-libre>.wrap>*:first-child{margin-top:0}
.dx-libre>.wrap>*:last-child{margin-bottom:0}
.dpmc-main .wp-block-post-content>:where(p,h1,h2,h3,h4,h5,h6,ul,ol,figure,blockquote,table,hr,details,.wp-block-columns,.wp-block-buttons,.wp-block-group,.wp-block-media-text,.wp-block-cover,.wp-block-file,.wp-block-audio,.wp-block-spacer){max-width:var(--max);margin-inline:auto;padding-inline:var(--pad);box-sizing:border-box}
.dpmc-main .wp-block-post-content>:where(p,h2,h3,ul,ol,figure,blockquote,table,.wp-block-columns,.wp-block-buttons,.wp-block-media-text,.wp-block-file,.wp-block-audio){margin-block:clamp(20px,2.4vw,32px)}
.dx-libre h2,.dpmc-main .wp-block-post-content>h2{margin:0 0 .6em}
.dx-libre h3,.dpmc-main .wp-block-post-content>h3{margin:1.2em 0 .5em}
.dx-libre p,.dx-libre li{font-size:17px;line-height:1.7;max-width:70ch}
.dx-libre a:not(.wp-block-button__link){color:var(--blue-d);text-decoration:underline;text-underline-offset:4px}
.dx-libre .wp-block-button__link{border-radius:0;background:var(--blue-d);color:#fff;font-family:var(--f-disp);font-weight:600;font-size:14.5px;padding:15px 26px}
.dx-libre .wp-block-button__link:hover{background:var(--ink)}
.dx-libre .is-style-outline .wp-block-button__link{background:transparent;color:inherit;border:1px solid currentColor}
.dx-libre img{max-width:100%;height:auto}
.dx-libre .wp-block-columns{gap:clamp(20px,3vw,48px)}
.dx-libre table{border-collapse:collapse;width:100%}
.dx-libre td,.dx-libre th{border-bottom:1px solid var(--line);padding:10px 12px;text-align:left}
.dx-libre blockquote{margin:0;padding-left:20px;border-left:3px solid var(--green);font-size:20px;line-height:1.5}

/* v2.2 — iconos propios en el menú (SVG/PNG de un color, toma el color del texto) */
.ic-img{display:inline-block;width:18px;height:18px;flex:none;background:currentColor;-webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat}
.nav>a .ic-img,.nav>.has-menu>button .ic-img{opacity:.45}
.nav>a:hover .ic-img,.nav>.has-menu:hover>button .ic-img,.nav>a.active .ic-img{opacity:1}
.drawer a .ic-img{width:21px;height:21px;color:var(--green-l)}
.mega.dpmc-dd a{display:flex;align-items:center;gap:10px}
.mega.dpmc-dd a .ic{width:17px;height:17px;flex:none;opacity:.55}

/* v2.2.1 — casilla de autorización: la columna del número (quitado en 2.1) dejaba el texto en 22px de ancho */
.consent{grid-template-columns:22px minmax(0,1fr)!important;gap:0 14px}
.consent label{max-width:72ch}

/* v2.2.1 — ajustes responsive */
/* cabecera en celulares pequeños: el logo cede espacio y la hamburguesa no se aplasta */
.site .brand{flex:0 1 auto;min-width:0}
.burger,.site .icon-btn{flex:none}
@media(max-width:374px){
  .site .wrap{gap:10px}
  .brand{gap:9px}
  .brand img{height:34px}
  .brand .wm b{font-size:17px}
  .brand .wm i{display:none}
}
/* selector de idioma: área táctil de 44px */
@media(max-width:900px){.lang a{min-width:36px;min-height:36px;display:inline-grid;place-items:center}}
/* etapas del pozo: sin raya decorativa ni letras espaciadas */
.et-grupo em{letter-spacing:0}
.et-grupo em::before{content:none}
/* filtros de proyectos: una sola fila deslizable en celular */
@media(max-width:700px){
  .filters{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;margin-inline:calc(var(--pad) * -1);padding-inline:var(--pad)}
  .filters::-webkit-scrollbar{display:none}
  .filters button{flex:none;white-space:nowrap}
}
/* tarjetas de soluciones en tableta: dos columnas; en celular la foto más baja */
@media(min-width:601px) and (max-width:900px){.dx-cards{grid-template-columns:1fr 1fr}.dx-cards>:last-child:nth-child(odd){grid-column:1/-1}.dx-cards>:last-child:nth-child(odd) .dx-card__img{aspect-ratio:21/9}}
@media(max-width:600px){.dx-card__img{aspect-ratio:16/9}}
/* innovaciones en una columna: el dibujo no crece más de la cuenta */
@media(max-width:900px){
  .dx-inn__fig{max-width:460px}
  .dx-inn>p{max-width:60ch}
}
@media(min-width:601px) and (max-width:900px){
  .dx-inn{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:32px;align-items:start}
  .dx-inn>h3,.dx-inn>p,.dx-inn>.dx-link{grid-column:1}
  .dx-inn>.dx-inn__fig{grid-column:2;grid-row:1/span 3;margin-top:0}
}
/* botones flotantes: más pequeños en celular para no tapar el texto */
@media(max-width:600px){.fab a,.fab button{width:44px;height:44px}.fab svg{width:42px;height:19px}.fab{gap:6px}}

/* v2.3 — marcas de agua (dibujos técnicos tenues, alternando lado), texto grande de fondo e iconos en tarjetas */
.con-agua,.con-texto-fondo{position:relative;overflow:hidden;isolation:isolate}
.con-agua>.wrap,.con-texto-fondo>.wrap{position:relative;z-index:1}
.dx-agua{position:absolute;z-index:0;top:50%;height:clamp(300px,40vw,640px);width:auto;max-width:48%;pointer-events:none;
  fill:none;stroke:var(--ink);stroke-width:.9;stroke-linecap:round;stroke-linejoin:round;opacity:.075;
  transform:translateY(calc(-50% + var(--py,0px)));will-change:transform}
.dx-agua--der{right:clamp(-60px,-2vw,0px)}
.dx-agua--izq{left:clamp(-60px,-2vw,0px)}
.on-dark .dx-agua,.dx-fondo-oscuro .dx-agua{stroke:#fff;opacity:.07}
.dx-agua--marca{display:block;aspect-ratio:300/258;height:clamp(260px,30vw,480px);background:var(--ink);opacity:.035;
  -webkit-mask:url(../img/marca.png) center/contain no-repeat;mask:url(../img/marca.png) center/contain no-repeat}
.on-dark .dx-agua--marca,.dx-fondo-oscuro .dx-agua--marca{background:#fff;opacity:.04}
@media(max-width:700px){.dx-agua{height:260px;top:auto;bottom:-30px;transform:translateY(var(--py,0px));opacity:.06}.dx-agua--marca{height:200px}}
/* icono grande y tenue en la esquina de las tarjetas; se colorea al pasar el mouse */
.dx-card__body,.dx-caja{position:relative;overflow:hidden}
.dx-card__body>*:not(.dx-icono-fondo),.dx-caja>*:not(.dx-icono-fondo){position:relative;z-index:1}
.dx-icono-fondo{position:absolute;z-index:0;right:-14px;bottom:-18px;width:112px;height:112px;stroke-width:1;color:var(--ink);opacity:.06;
  transition:opacity .4s var(--ease),color .4s var(--ease),transform .6s var(--ease)}
.dx-card:hover .dx-icono-fondo{opacity:.22;color:var(--blue);transform:translate(-6px,-6px) rotate(-6deg)}
.dx-caja .dx-icono-fondo{color:#fff;opacity:.05}
.dx-caja:hover .dx-icono-fondo{opacity:.14;color:var(--green-l)}
@media(prefers-reduced-motion:reduce){.dx-icono-fondo{transition:none}}

/* v2.3.1 — intensidad de las marcas de agua: global (Ajustes > DPMC) y por sección (editor) */
.agua-suave .dx-agua,.dx-agua.dx-agua--suave{opacity:.045}
.agua-fuerte .dx-agua,.dx-agua.dx-agua--fuerte{opacity:.13}
.dx-agua.dx-agua--media{opacity:.075}
.on-dark .dx-agua.dx-agua--suave,.agua-suave .on-dark .dx-agua{opacity:.04}
.on-dark .dx-agua.dx-agua--fuerte,.agua-fuerte .on-dark .dx-agua{opacity:.11}
.agua-suave .dx-agua--marca,.dx-agua--marca.dx-agua--suave{opacity:.025}
.agua-fuerte .dx-agua--marca,.dx-agua--marca.dx-agua--fuerte{opacity:.07}

/* v2.4 — piezas que el editor puede agregar, ocultar por pantalla y espaciado de sección */
@media(max-width:760px){.dx-oculto-movil{display:none!important}}
@media(min-width:761px){.dx-oculto-escritorio{display:none!important}}
section.dx-esp-compacto{padding-top:clamp(36px,4vw,56px)!important;padding-bottom:clamp(36px,4vw,56px)!important}
section.dx-esp-amplio{padding-top:clamp(90px,11vw,160px)!important;padding-bottom:clamp(90px,11vw,160px)!important}
section.dx-esp-cero{padding-top:0!important;padding-bottom:0!important}
.dx-lista-simple{margin:16px 0;padding:0;list-style:none}
.dx-lista-simple li{position:relative;padding:6px 0 6px 20px;line-height:1.6}
.dx-lista-simple li::before{content:"";position:absolute;left:0;top:15px;width:7px;height:7px;background:var(--green)}
.dx-separador{border:0;border-top:1px solid var(--line);margin:28px 0}
.on-dark .dx-separador{border-top-color:var(--line-d)}
.dx-img{display:block;max-width:100%;height:auto;margin:20px 0}
section p+.btn,section p+.dx-link{margin-top:10px}

/* ============================================================
   v2.5 — Portada de paneles con video (.dx-paneles)
   Foto o video de fondo, título arriba y cuatro paneles que se
   abren solos. En celular los paneles se apilan abiertos.
   ============================================================ */
.dx-paneles{position:relative;overflow:hidden;isolation:isolate;background:#000;
  height:max(700px,min(calc(100svh - var(--dx-arriba,120px)),840px));color:#fff}
.dx-paneles__fondo{position:absolute;inset:0;z-index:0;overflow:hidden;background:var(--ink-900,#000F0E)}
.dx-paneles__fondo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:opacity .9s ease}
.dx-paneles__fondo .dx-vid{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  border:0;pointer-events:none;opacity:0;transition:opacity 1.2s ease;max-width:none}
.dx-paneles__fondo .dx-vid.listo{opacity:1}
.dx-paneles::after{content:"";position:absolute;left:0;right:0;top:0;height:52%;z-index:1;
  pointer-events:none;background:linear-gradient(to bottom,rgba(0,15,14,.82) 0%,rgba(0,15,14,.5) 42%,rgba(0,15,14,0) 100%)}
.dx-paneles__cab{position:absolute;z-index:3;left:var(--pad);right:var(--pad);top:clamp(40px,5vw,80px);
  pointer-events:none;max-width:1360px}
.dx-paneles__h1{margin:0;font-family:var(--f-disp);font-weight:300;letter-spacing:-.02em;
  font-size:clamp(28px,3.4vw,50px);line-height:1.08;max-width:24ch;text-wrap:balance;color:#fff}
.dx-paneles__p{margin:16px 0 0;max-width:54ch;font-size:clamp(15px,1.12vw,18px);line-height:1.5;
  color:rgba(255,255,255,.92);text-wrap:pretty;pointer-events:auto}
.dx-paneles__cab .hero-actions{margin-top:22px;pointer-events:auto;display:flex;flex-wrap:wrap;gap:14px 22px;align-items:center}

.dx-paneles__fila{position:absolute;inset:0;z-index:2;display:flex}
.dx-pan{position:relative;flex:1 1 0;min-width:0;overflow:hidden;cursor:pointer;
  border-left:1px solid rgba(255,255,255,.16);background:rgba(0,15,14,.3);
  display:flex;flex-direction:column;justify-content:flex-end;
  transition:flex-grow .8s cubic-bezier(.6,0,.2,1),background .8s ease}
.dx-pan:first-child{border-left:0}
.dx-paneles__fila>.dx-pan{padding-top:var(--dx-cab-alto,200px)}
/* pantallas bajas: se quita el icono y se aprieta el texto para que nada tape el título */
.dx-paneles--compacto .dx-pan__ico{width:36px;height:36px;margin-bottom:10px}
.dx-paneles--compacto .dx-pan__ico svg{width:18px;height:18px}
.dx-paneles--compacto .dx-pan__in{padding-bottom:clamp(16px,2.2vw,26px)}
.dx-paneles--compacto .dx-pan__p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.dx-pan.on{flex-grow:2.4;background:rgba(0,15,14,.4)}
@media (min-width:1151px) and (max-width:1400px){.dx-pan.on{flex-grow:2}}
/* cortina bajo el texto, para que se lea sobre cualquier foto o video */
.dx-pan::before{content:"";position:absolute;left:0;right:0;bottom:0;height:58%;z-index:0;pointer-events:none;
  background:linear-gradient(to top,rgba(0,15,14,.94) 0%,rgba(0,15,14,.66) 40%,rgba(0,15,14,0) 100%)}
.dx-pan.on::before{height:72%;background:linear-gradient(to top,rgba(0,15,14,.95) 0%,rgba(0,15,14,.74) 45%,rgba(0,15,14,0) 100%)}
.dx-pan__in{position:relative;z-index:1}
.dx-pan__in{padding:0 clamp(18px,2.4vw,36px) clamp(22px,3vw,40px);min-width:0}
.dx-pan__ico{width:48px;height:48px;border-radius:50%;border:1px solid rgba(126,211,122,.6);
  display:grid;place-items:center;margin-bottom:14px}
.dx-pan__ico svg{width:24px;height:24px;fill:none;stroke:var(--green-l,#7ED37A);
  stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.dx-pan__t{display:block;font-family:var(--f-disp);font-weight:300;letter-spacing:-.01em;text-wrap:balance;overflow-wrap:break-word;hyphens:auto;
  font-size:clamp(19px,1.9vw,28px);line-height:1.15;color:#fff}
.dx-pan__det{display:grid;grid-template-rows:0fr;transition:grid-template-rows .7s cubic-bezier(.6,0,.2,1)}
.dx-pan.on .dx-pan__det{grid-template-rows:1fr}
.dx-pan__det-in{overflow:hidden;display:block}
.dx-pan__p{display:block;margin:14px 0 0;color:var(--d1,#E4EDEB);max-width:42ch;overflow-wrap:break-word}
.dx-pan__det .dx-enlace{display:inline-block;margin-top:18px}
.dx-pan__barra{position:absolute;left:0;right:0;top:0;height:3px;z-index:2;
  background:var(--green-l,#7ED37A);transform:scaleX(0);transform-origin:left}
.dx-pan.on .dx-pan__barra{animation:dx-pan-barra var(--dx-pan-seg,7s) linear forwards}
.dx-paneles.dx-quieto .dx-pan__barra{animation-play-state:paused}
@keyframes dx-pan-barra{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* editor: título arriba y los cuatro paneles abiertos, para editar todo sin tapar nada */
.editor-styles-wrapper .dx-paneles{height:auto;min-height:0}
.editor-styles-wrapper .dx-paneles::after{height:100%}
.editor-styles-wrapper .dx-paneles__cab{position:relative;left:auto;right:auto;top:auto;max-width:none;
  padding:clamp(28px,5vw,56px) var(--pad) clamp(20px,3vw,32px);pointer-events:auto}
.editor-styles-wrapper .dx-paneles__fila{position:relative;inset:auto;min-height:400px}
.editor-styles-wrapper .dx-pan,
.editor-styles-wrapper .dx-pan.on{flex:1 1 0;background:rgba(0,15,14,.62);justify-content:flex-start}
.editor-styles-wrapper .dx-pan::before{display:none}
.editor-styles-wrapper .dx-pan__in{padding-top:clamp(24px,3vw,40px)}
.editor-styles-wrapper .dx-paneles__fila>.dx-pan{padding-top:0}
.editor-styles-wrapper .dx-pan__det{grid-template-rows:1fr}
.editor-styles-wrapper .dx-pan__barra{animation:none}

@media (max-width:1150px){
  .dx-paneles{height:auto}
  .dx-paneles::after{height:360px}
  .dx-paneles__cab{position:relative;left:auto;right:auto;top:auto;padding:clamp(40px,9vw,64px) var(--pad) clamp(28px,6vw,44px)}
  .dx-paneles__fila{position:relative;inset:auto;flex-direction:column}
  .dx-pan,.dx-pan.on{flex:none;background:rgba(0,15,14,.74)}
  .dx-pan::before,.dx-pan.on::before{display:none}
  .dx-paneles__fila>.dx-pan{padding-top:0}
  .dx-pan{border-left:0;border-top:1px solid rgba(255,255,255,.16)}
  .dx-pan__in{padding:20px var(--pad) 24px}
  .dx-pan__ico{display:none}
  .dx-pan__det{grid-template-rows:1fr}
  .dx-pan__barra{display:none}
}
@media (prefers-reduced-motion:reduce){
  .dx-paneles__fondo .dx-vid{display:none}
  .dx-pan,.dx-pan__det{transition:none}
  .dx-pan__barra{animation:none!important}
}

/* v2.5.11 — sin banda blanca: la sección que sigue a la portada arranca
   pegada al borde y el gris ocupa el bloque completo. */

/* v2.5.8 — detalles de uso en pantalla táctil y largo de línea */
/* Los enlaces de texto son cómodos de tocar con el dedo sin cambiar cómo se ven. */
@media (pointer:coarse){
  .dx-enlace,.dx-link{display:inline-flex;align-items:center;min-height:40px}
}
/* En tableta, la tarjeta que queda sola ocupa todo el ancho: su texto se limita
   para que la línea no pase de lo cómodo de leer. */
@media (min-width:601px) and (max-width:900px){
  .dx-cards>:last-child:nth-child(odd) .dx-card__body{max-width:64ch}
}

/* ============================================================
   v2.6 — Banda de clientes (.dx-clientes)
   Dos modos, que se eligen en el editor:
   - cinta:  los logos avanzan de corrido, en línea recta y a velocidad pareja;
   - tandas: se ven unos pocos y cambian cada tantos segundos.
   ============================================================ */
.dx-clientes{padding:clamp(48px,6vw,86px) 0;background:var(--paper,#fff)}
.dx-clientes .dx-head{margin-bottom:clamp(26px,3.4vw,44px)}
.dx-clientes__cinta{position:relative;overflow:hidden}
.dx-clientes__pista{list-style:none;margin:0;padding:0;display:flex;align-items:center;
  gap:clamp(34px,5vw,78px)}
.dx-cliente{flex:0 0 auto;display:grid;place-items:center;min-width:0}
.dx-cliente img{display:block;width:auto;height:clamp(38px,4.4vw,56px);max-width:190px;
  object-fit:contain}
/* los logos ajenos conviven mejor en un solo tono; al pasar el mouse vuelven a su color */
.dx-clientes[data-gris="1"] .dx-cliente img{filter:grayscale(1);opacity:.78;
  transition:filter .35s ease,opacity .35s ease}
.dx-clientes[data-gris="1"] .dx-cliente:hover img,
.dx-clientes[data-gris="1"] .dx-cliente:focus-within img{filter:none;opacity:1}

/* --- modo cinta --- */
.dx-clientes[data-modo="cinta"] .dx-clientes__pista{width:max-content;
  animation:dx-cinta var(--dx-cinta,44s) linear infinite}
.dx-clientes[data-modo="cinta"] .dx-clientes__cinta:hover .dx-clientes__pista,
.dx-clientes[data-modo="cinta"] .dx-clientes__cinta:focus-within .dx-clientes__pista,
.dx-clientes.dx-quieto .dx-clientes__pista{animation-play-state:paused}
@keyframes dx-cinta{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
/* se difumina en los bordes para que los logos no aparezcan cortados de golpe */
.dx-clientes[data-modo="cinta"] .dx-clientes__cinta{
  -webkit-mask-image:linear-gradient(to right,transparent,#000 6%,#000 94%,transparent);
  mask-image:linear-gradient(to right,transparent,#000 6%,#000 94%,transparent)}

/* --- modo tandas --- */
.dx-clientes[data-modo="tandas"] .dx-clientes__pista{display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(24px,3vw,48px) clamp(20px,3vw,40px);
  transition:opacity .45s ease}
.dx-clientes[data-modo="tandas"].dx-cambiando .dx-clientes__pista{opacity:0}
.dx-clientes[data-modo="tandas"] .dx-cliente{display:none}
.dx-clientes[data-modo="tandas"] .dx-cliente.dx-tanda{display:grid}

/* --- el editor muestra todos los logos quietos, para poder cambiarlos --- */
.editor-styles-wrapper .dx-clientes__pista{animation:none!important;width:auto;
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:26px 30px;opacity:1}
.editor-styles-wrapper .dx-cliente{display:grid!important}
.editor-styles-wrapper .dx-clientes__cinta{-webkit-mask-image:none;mask-image:none}

@media (max-width:900px){
  .dx-clientes[data-modo="tandas"] .dx-clientes__pista{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dx-cliente img{height:clamp(32px,8vw,44px)}
}
@media (prefers-reduced-motion:reduce){
  .dx-clientes__pista{animation:none!important;transition:none!important;width:auto;
    display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px 30px}
  .dx-clientes .dx-cliente{display:grid!important}
  .dx-clientes__cinta{-webkit-mask-image:none;mask-image:none}
}

/* v2.6.1 — encabezado apilado: la bajada va debajo del título, no al lado.
   Se activa con la clase dx-head--bajo en el bloque del encabezado. */
.dx-head.dx-head--bajo,
.cap-head.dx-head--bajo{grid-template-columns:1fr;align-items:start;gap:clamp(12px,1.4vw,18px)}
.dx-head--bajo .lede{margin:0;max-width:72ch}

/* v2.6.2 — la bajada de cada sección va SIEMPRE debajo del título.
   Antes iba al lado derecho, en una rejilla de dos columnas. */
.dx-head,.cap-head{grid-template-columns:1fr;align-items:start;gap:clamp(12px,1.4vw,18px)}
.dx-head .lede,.cap-head .lede,
.dx-head>div>.lede,.cap-head>div>.lede{margin:0;max-width:none;
  /* usa todo el ancho de la columna y evita que sobre una palabra sola al final */
  text-wrap:pretty;text-wrap:balance}

/* ============================================================
   v2.6.4 — Submenús alineados con su propio ítem del menú
   El megamenú original era un panel ancho centrado en la cabecera:
   .has-menu{position:static} + .mega{left:50%;transform:translateX(-50%)}.
   El desplegable que sale de Apariencia › Menús es una lista angosta y
   heredaba ese centrado, así que todos aparecían en el mismo punto de la
   pantalla en vez de debajo del ítem que los abre.
   ============================================================ */
.nav .has-menu--dd{position:relative}
.nav .has-menu--dd>.mega.dpmc-dd{left:0;right:auto;transform:translate(0,10px)}
.nav .has-menu--dd:hover>.mega.dpmc-dd,
.nav .has-menu--dd:focus-within>.mega.dpmc-dd{transform:translate(0,0)}
/* el ítem que queda cerca del borde derecho abre su lista hacia adentro */
.nav .has-menu--dd.dpmc-dd--der>.mega.dpmc-dd{left:auto;right:0}
/* no más ancho que la pantalla, con el margen del sitio a cada lado */
.nav .mega.dpmc-dd{max-width:calc(100vw - 2 * var(--pad))}

/* v2.6.8 — encuadre del fondo (foto o video): qué parte se conserva cuando la
   imagen no cabe entera. Se elige en el editor: 0 arriba · 25 · 50 centro · 75 · 100 abajo. */
[data-encuadre="0"]>img,[data-encuadre="0"]>video{object-position:50% 0%!important}
[data-encuadre="25"]>img,[data-encuadre="25"]>video{object-position:50% 25%!important}
[data-encuadre="50"]>img,[data-encuadre="50"]>video{object-position:50% 50%!important}
[data-encuadre="75"]>img,[data-encuadre="75"]>video{object-position:50% 75%!important}
[data-encuadre="100"]>img,[data-encuadre="100"]>video{object-position:50% 100%!important}

/* v2.6.9 — botón de la portada con icono (el tema esconde los svg de los
   botones; este se muestra a propósito) */
.btn svg.dx-btn-ic{display:block;width:18px;height:18px;flex:none;fill:none;stroke:currentColor;
  stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transform:none}
.btn:hover svg.dx-btn-ic{animation:dx-timbre .6s ease 1}
@keyframes dx-timbre{0%,100%{transform:rotate(0)}20%{transform:rotate(-14deg)}40%{transform:rotate(12deg)}60%{transform:rotate(-8deg)}80%{transform:rotate(5deg)}}
@media (prefers-reduced-motion:reduce){.btn:hover svg.dx-btn-ic{animation:none}}

/* v2.6.9 — clientes más grandes: cada logo en una caja fija (así los cuadrados
   y los alargados pesan parecido), a todo el ancho y en dos cintas opuestas. */
.dx-clientes .dx-cliente{display:flex;align-items:center;justify-content:center;
  width:clamp(150px,15vw,220px);height:clamp(62px,6vw,88px)}
.dx-clientes .dx-cliente img{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain}
.dx-clientes[data-ancho="total"] .dx-clientes__cinta{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}
.dx-clientes[data-filas="2"] .dx-clientes__cinta+.dx-clientes__cinta{margin-top:clamp(22px,3vw,40px)}
.dx-clientes__cinta--rev .dx-clientes__pista{animation-direction:reverse!important}
.dx-clientes[data-modo="cinta"] .dx-clientes__pista{gap:clamp(40px,5vw,80px)}
.dx-clientes[data-ancho="total"][data-modo="cinta"] .dx-clientes__cinta{
  -webkit-mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent);
  mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent)}
.editor-styles-wrapper .dx-clientes__cinta{margin-left:0!important;margin-right:0!important}
.editor-styles-wrapper .dx-clientes .dx-cliente{width:auto;height:72px}
@media (max-width:900px){.dx-clientes .dx-cliente{width:clamp(120px,34vw,170px);height:clamp(52px,14vw,70px)}}
@media (prefers-reduced-motion:reduce){
  .dx-clientes[data-ancho="total"] .dx-clientes__cinta{margin-left:0;margin-right:0}
  .dx-clientes .dx-clientes__pista{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
}

/* v2.6.10 — contacto corto (portada, debajo de Clientes): canales directos y 4 campos */
.dx-cta-corto .lede{margin-top:18px;max-width:46ch}
.dx-cta-corto .offices{margin-top:28px}
.dx-cta-corto .offices a{color:var(--d1,#E4EDEB);text-decoration:none;box-shadow:inset 0 -1px 0 rgba(255,255,255,.25);transition:box-shadow .2s,color .2s}
.dx-cta-corto .offices a:hover{color:#fff;box-shadow:inset 0 -1.5px 0 var(--green-l,#7ED37A)}
.dx-cta-corto .offices .a{font-size:15px}
.dx-cta-corto .consent{grid-template-columns:22px 1fr;gap:0 13px}
.dx-cta-corto .field textarea{min-height:96px}
.dx-cta-corto .fsubmit{margin-top:8px}

/* v2.6.11 — toda la tipografía pasa a Public Sans (el & de Archivo se leía mal).
   Se cambian solo las variables: títulos, texto, formularios y botón flotante la toman solas. */
:root,.solo-archivo{--f-disp:'Public Sans',system-ui,sans-serif;--f-body:'Public Sans',system-ui,sans-serif;
  --f-mono:'Public Sans',system-ui,sans-serif;--f-hand:'Public Sans',system-ui,sans-serif}
body,input,select,textarea,button{font-family:var(--f-body)}

/* ============================================================
   v2.7 — Proyectos: tarjetas, cifras, filtros y página de cada proyecto
   ============================================================ */
.dx-proy-sec{padding:clamp(56px,7vw,104px) 0;background:var(--paper,#fff)}
.dx-proy-sec--pagina{padding-top:clamp(40px,5vw,72px)}
.dx-proy-sec--pagina h1{margin:0;font-size:clamp(34px,4vw,56px);line-height:1.05;letter-spacing:-.02em;font-weight:600}
.dx-proy-caja{margin-top:clamp(26px,3.4vw,44px)}
.editor-styles-wrapper [data-dpmc-proyectos]{min-height:120px;border:1px dashed #9aa9a7;display:grid;place-items:center;background:#F3F6F6}
.editor-styles-wrapper [data-dpmc-proyectos]::before{content:"Aquí se muestran los proyectos. Se editan en el menú Proyectos del administrador.";font-size:14px;color:#50575e;padding:20px;text-align:center}

.dx-proy-total{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 0 clamp(28px,3.4vw,44px);border-top:1px solid var(--line,#D6DFDE);border-bottom:1px solid var(--line,#D6DFDE)}
.dx-proy-total>div{padding:22px 20px;border-left:1px solid var(--line,#D6DFDE)}
.dx-proy-total>div:first-child{border-left:0;padding-left:0}
.dx-proy-total dd{margin:0;font-size:clamp(30px,3.4vw,46px);font-weight:600;letter-spacing:-.02em;line-height:1;color:var(--ink,#001918)}
.dx-proy-total dt{margin-top:8px;font-size:14px;color:var(--txt-2,#4A5654)}
@media (max-width:760px){.dx-proy-total{grid-template-columns:repeat(2,minmax(0,1fr))}.dx-proy-total>div:nth-child(3){border-left:0;padding-left:0}.dx-proy-total>div:nth-child(n+3){border-top:1px solid var(--line,#D6DFDE)}}

.dx-proy-filtros{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.dx-proy-filtros button{font:500 14.5px/1 var(--f-body);padding:11px 16px;border:1px solid var(--line,#C9D3D2);background:#fff;color:var(--ink,#001918);cursor:pointer;transition:background .2s,border-color .2s,color .2s}
.dx-proy-filtros button span{font-size:12.5px;color:var(--txt-2,#4A5654);margin-left:4px}
.dx-proy-filtros button:hover{border-color:var(--ink,#001918)}
.dx-proy-filtros button[aria-pressed="true"]{background:var(--ink,#001918);border-color:var(--ink,#001918);color:#fff}
.dx-proy-filtros button[aria-pressed="true"] span{color:rgba(255,255,255,.7)}
.dx-proy-filtros button:focus-visible{outline:2px solid var(--blue,#2E7FBE);outline-offset:2px}

.dx-proy-rejilla{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,2vw,28px)}
@media (max-width:1024px){.dx-proy-rejilla{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.dx-proy-rejilla{grid-template-columns:1fr}}
.dx-proy[hidden]{display:none}
.dx-proy__a{display:flex;flex-direction:column;height:100%;background:#fff;border:1px solid var(--line,#D6DFDE);color:inherit;text-decoration:none;
  transition:transform .35s var(--ease,ease),box-shadow .35s var(--ease,ease),border-color .35s}
.dx-proy__a:hover{transform:translateY(-4px);box-shadow:0 18px 40px -24px rgba(0,25,24,.45);border-color:#B9C6C4}
.dx-proy__a:focus-visible{outline:2px solid var(--blue,#2E7FBE);outline-offset:3px}
.dx-proy__foto{position:relative;aspect-ratio:16/10;overflow:hidden;background:#0A2826}
.dx-proy__foto>img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s var(--ease,ease)}
.dx-proy__a:hover .dx-proy__foto>img{transform:scale(1.04)}
.dx-proy__ref{position:absolute;left:10px;top:10px;background:rgba(0,15,14,.72);color:#fff;font-size:11.5px;padding:4px 8px}
.dx-proy__logo{position:absolute;left:14px;bottom:-24px;width:124px;height:60px;background:#fff;border:1px solid var(--line,#D6DFDE);display:flex;align-items:center;justify-content:center;padding:8px 12px;box-shadow:0 8px 20px -12px rgba(0,25,24,.4)}
.dx-proy__logo img{display:block;width:auto;height:auto;max-width:100%;max-height:42px;object-fit:contain}
.dx-proy__foto{overflow:visible}
.dx-proy__foto>img{clip-path:inset(0)}
.dx-proy__in{padding:36px 20px 20px;display:flex;flex-direction:column;flex:1}
.dx-proy__tipo{margin:0;font-size:13px;color:var(--blue-d,#1B6199);font-weight:500}
.dx-proy__t{margin:6px 0 4px;font-size:21px;line-height:1.2;font-weight:600;letter-spacing:-.01em}
.dx-proy__lugar{margin:0;font-size:14px;color:var(--txt-2,#4A5654)}
.dx-proy__cifras{display:flex;gap:22px;margin:18px 0 0;padding-top:14px;border-top:1px solid var(--line,#E3E9E8)}
.dx-proy__cifras dt{font-size:12px;color:var(--txt-2,#4A5654)}
.dx-proy__cifras dd{margin:2px 0 0;font-size:18px;font-weight:600;color:var(--ink,#001918)}
.dx-proy__mas{margin-top:auto;padding-top:16px;font-size:14px;font-weight:600;color:var(--blue-d,#1B6199)}
.dx-proy-todos{margin:clamp(28px,3vw,40px) 0 0}

/* página de cada proyecto */
.dx-proy-hero{position:relative;min-height:clamp(380px,52vh,560px);display:flex;align-items:flex-end;background:#001918;overflow:hidden}
.dx-proy-hero__foto{position:absolute;inset:0}
.dx-proy-hero__foto img{width:100%;height:100%;object-fit:cover}
.dx-proy-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,15,14,.92) 0%,rgba(0,15,14,.6) 45%,rgba(0,15,14,.25) 100%)}
.dx-proy-hero__in{position:relative;z-index:2;padding-top:clamp(40px,6vw,80px);padding-bottom:clamp(34px,4vw,56px);color:#fff}
.dx-proy__ref--hero{z-index:3;left:auto;right:16px;top:16px}
.dx-proy-migas{display:flex;gap:8px;font-size:14px;color:rgba(255,255,255,.8);margin-bottom:22px}
.dx-proy-migas a{color:#fff;text-decoration:none;box-shadow:inset 0 -1px 0 rgba(255,255,255,.4)}
.dx-proy-hero__logo{display:inline-flex;align-items:center;justify-content:center;background:#fff;width:160px;height:80px;padding:10px 16px;margin-bottom:18px}
.dx-proy-hero__logo img{display:block;width:auto;height:auto;max-width:100%;max-height:58px;object-fit:contain}
.dx-proy-hero__tipo{margin:0;font-size:15px;color:var(--green-l,#7ED37A);font-weight:500}
.dx-proy-hero h1{margin:6px 0 0;font-size:clamp(34px,4.4vw,60px);line-height:1.04;letter-spacing:-.02em;font-weight:600}
.dx-proy-hero .lede{margin:12px 0 0;max-width:56ch;color:rgba(255,255,255,.88);font-size:clamp(16px,1.3vw,19px)}
.dx-proy-det{padding:clamp(40px,5vw,72px) 0 clamp(56px,7vw,100px)}
.dx-proy-det__in{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:clamp(28px,4vw,64px);align-items:start}
@media (max-width:900px){.dx-proy-det__in{grid-template-columns:1fr}}
.dx-proy-cifras{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin:0 0 32px;background:var(--line,#D6DFDE);border:1px solid var(--line,#D6DFDE)}
.dx-proy-cifras>div{background:#fff;padding:20px 18px}
.dx-proy-cifras dd{margin:0;font-size:clamp(26px,2.8vw,38px);font-weight:600;letter-spacing:-.02em;line-height:1;color:var(--green-d,#3A7A32)}
.dx-proy-cifras dt{margin-top:8px;font-size:13px;color:var(--txt-2,#4A5654)}
@media (max-width:620px){.dx-proy-cifras{grid-template-columns:repeat(2,minmax(0,1fr))}}
.dx-proy-resumen{font-size:18px;line-height:1.6;max-width:62ch;margin-bottom:28px}
.dx-proy-resumen p{margin:0 0 12px}
.dx-proy-datos{margin:0;border-top:1px solid var(--line,#D6DFDE)}
.dx-proy-datos>div{display:grid;grid-template-columns:180px minmax(0,1fr);gap:16px;padding:14px 0;border-bottom:1px solid var(--line,#D6DFDE)}
.dx-proy-datos dt{font-size:14px;color:var(--txt-2,#4A5654)}
.dx-proy-datos dd{margin:0;font-weight:500}
@media (max-width:620px){.dx-proy-datos>div{grid-template-columns:1fr;gap:4px}}
.dx-proy-galeria{list-style:none;margin:32px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.dx-proy-galeria img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.dx-proy-det__lado{display:flex;flex-direction:column;gap:12px}
.dx-proy-det__lado .btn{justify-content:center;text-align:center}
.dx-proy-volver{margin-top:6px;font-size:14px;color:var(--txt-2,#4A5654);text-decoration:none}
.dx-proy-volver:hover{color:var(--ink,#001918)}
@media (max-width:900px){.dx-proy-det__lado{position:static}}

.dx-proy-total>div,.dx-proy-cifras>div{display:flex;flex-direction:column-reverse;justify-content:flex-end}
.dx-proy-total dt,.dx-proy-cifras dt{margin-top:8px}

.dx-proy-hero__in{width:100%}
.dx-proy-det__lado>*{margin-top:0!important}

/* v2.7.1 — recuadro "Ver más" al final de la rejilla y cifras de la ficha sin huecos */
.dx-proy-mas[hidden]{display:none}
.dx-proy-mas>a{display:flex;flex-direction:column;justify-content:center;gap:10px;height:100%;min-height:260px;padding:28px;
  background:var(--ink,#001918);color:#fff;text-decoration:none;border:1px solid var(--ink,#001918);transition:background .3s,transform .35s var(--ease,ease)}
.dx-proy-mas>a:hover{background:#062B29;transform:translateY(-4px)}
.dx-proy-mas>a:focus-visible{outline:2px solid var(--blue,#2E7FBE);outline-offset:3px}
.dx-proy-mas__n{font-size:clamp(44px,5vw,64px);font-weight:600;letter-spacing:-.03em;line-height:1;color:var(--green-l,#7ED37A)}
.dx-proy-mas__t{font-size:22px;font-weight:600}
.dx-proy-mas__s{font-size:14px;color:rgba(255,255,255,.72)}
.dx-proy-mas__t::after{content:" →"}
.dx-proy-total{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.dx-proy-cifras{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
@media (max-width:760px){.dx-proy-total>div{border-left:0;padding-left:0}.dx-proy-total>div+div{border-top:1px solid var(--line,#D6DFDE)}}
.dx-proy-rejilla:has(.dx-proy-mas:not([hidden]))+.dx-proy-todos{display:none}

/* ============================================================
   v2.7.3 — contadores con iconos que se dibujan, visor de fotos y mapa
   ============================================================ */
.dx-cont{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin:0 0 clamp(26px,3vw,40px);
  border-top:1px solid var(--line,#D6DFDE);border-bottom:1px solid var(--line,#D6DFDE)}
.dx-cont>div{display:flex;gap:16px;align-items:flex-start;padding:24px 22px;border-left:1px solid var(--line,#D6DFDE)}
.dx-cont>div:first-child{border-left:0;padding-left:0}
.dx-cont__ic{width:46px;height:46px;flex:none;fill:none;stroke:var(--green,#4A9440);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.dx-cont__tx{display:flex;flex-direction:column-reverse}
.dx-cont dd{margin:0;font-size:clamp(34px,3.4vw,46px);font-weight:600;letter-spacing:-.03em;line-height:1;color:var(--ink,#001918);font-variant-numeric:tabular-nums}
.dx-cont dt{margin-top:7px;font-size:14px;color:var(--txt-2,#4A5654)}
.dx-cont.js .dx-cont__ic *{stroke-dasharray:140;stroke-dashoffset:140}
.dx-cont.js.visto .dx-cont__ic *{animation:dx-dibuja 1.8s cubic-bezier(.2,.8,.2,1) forwards}
.dx-cont.js.visto>div:nth-child(2) .dx-cont__ic *{animation-delay:.15s}
.dx-cont.js.visto>div:nth-child(3) .dx-cont__ic *{animation-delay:.3s}
.dx-cont.js.visto>div:nth-child(4) .dx-cont__ic *{animation-delay:.45s}
@keyframes dx-dibuja{to{stroke-dashoffset:0}}
@media (max-width:760px){.dx-cont{grid-template-columns:repeat(2,minmax(0,1fr))}.dx-cont>div{border-left:0;padding-left:0;flex-direction:column;gap:10px}.dx-cont>div:nth-child(n+3){border-top:1px solid var(--line,#D6DFDE)}.dx-cont__ic{width:36px;height:36px}}
@media (prefers-reduced-motion:reduce){.dx-cont .dx-cont__ic *{animation:none!important;stroke-dashoffset:0!important}}

/* visor de fotos */
.dx-proy-galeria a{display:block;position:relative;cursor:zoom-in;overflow:hidden}
.dx-proy-galeria a::after{content:"";position:absolute;right:10px;bottom:10px;width:30px;height:30px;background:rgba(0,15,14,.72) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M14 4h6v6M10 20H4v-6M20 4l-7 7M4 20l7-7'/%3E%3C/svg%3E") center/16px no-repeat}
.dx-proy-galeria img{transition:transform .6s var(--ease,ease)}
.dx-proy-galeria a:hover img{transform:scale(1.04)}
.dx-proy-hero__ver{position:absolute;z-index:3;right:clamp(16px,3vw,40px);bottom:clamp(20px,3vw,40px);background:rgba(0,15,14,.7);color:#fff;border:1px solid rgba(255,255,255,.3);
  font:500 14px/1 var(--f-body);padding:11px 16px;cursor:zoom-in}
.dx-proy-hero__ver:hover{background:rgba(0,15,14,.9)}
.dx-visor{position:fixed;inset:0;z-index:200;background:rgba(0,12,11,.95);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .25s}
.dx-visor[hidden]{display:none}
.dx-visor.on{opacity:1}
.dx-visor figure{margin:0;text-align:center}
.dx-visor img{max-width:min(1280px,86vw);max-height:80vh;object-fit:contain;box-shadow:0 30px 80px rgba(0,0,0,.5)}
.dx-visor figcaption{margin-top:14px;color:#C9D6D4;font-size:14px}
.dx-visor button{position:absolute;width:52px;height:52px;display:grid;place-items:center;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.22);color:#fff;cursor:pointer;font-size:24px;line-height:1}
.dx-visor button:hover{background:rgba(255,255,255,.18)}
.dx-visor button:focus-visible{outline:2px solid var(--green-l,#7ED37A);outline-offset:2px}
.dx-visor .x{right:20px;top:20px}.dx-visor .prev{left:20px;top:calc(50% - 26px)}.dx-visor .next{right:20px;top:calc(50% - 26px)}
.dx-visor .cont{position:absolute;left:22px;top:34px;color:#fff;font-size:14px}
@media (max-width:620px){.dx-visor .prev,.dx-visor .next{top:auto;bottom:18px}.dx-visor .prev{left:calc(50% - 60px)}.dx-visor .next{right:calc(50% - 60px)}}

/* ubicación */
.dx-proy-mapa{margin-top:28px}
.dx-proy-mapa__caja{margin-top:16px;aspect-ratio:16/9;background:var(--bone,#EDF1F1);border:1px solid var(--line,#D6DFDE);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:20px}
.dx-proy-mapa__caja p{margin:0;font-weight:500}
.dx-proy-mapa__caja small{color:var(--txt-2,#4A5654);font-size:12.5px}
.dx-proy-mapa__caja iframe{width:100%;height:100%;border:0}
.dx-proy-mapa__caja.cargado{padding:0}

/* ==========================================================================
   v2.7.4 — menos "plantilla": contadores sobrios, proyectos sin foto con dibujo técnico, arreglos
   ========================================================================== */
/* contadores: icono fijo, más pequeño y tenue; el número sube una sola vez (JS) */
.dx-cont.js .dx-cont__ic *,.dx-cont.js.visto .dx-cont__ic *{stroke-dasharray:none;stroke-dashoffset:0;animation:none}
.dx-cont__ic{width:30px;height:30px;stroke:var(--txt-2,#4A5654);stroke-width:1.4;opacity:.7;margin-top:6px}
@media (max-width:760px){.dx-cont__ic{width:26px;height:26px}}

/* tarjeta de proyecto sin foto real: fondo liso + dibujo técnico del tipo de trabajo */
.dx-proy__foto--dibujo{background:#0B2624;display:flex;align-items:center;justify-content:flex-end;overflow:visible}
.dx-proy__foto--dibujo .dx-proy__logo{z-index:1}
.dx-proy__dibujo{position:absolute;right:6%;top:6%;height:94%;width:auto;aspect-ratio:3/4;fill:none;stroke:#fff;stroke-width:1.1;stroke-linecap:round;stroke-linejoin:round;opacity:.22}
.dx-proy__dibujo.dx-dibujo--balancin{aspect-ratio:320/220;height:70%;top:auto;bottom:0}
.dx-proy__dibujo.dx-dibujo--pozo{aspect-ratio:160/360}
.dx-proy__dibujo.dx-dibujo--torre{aspect-ratio:200/320}
.dx-proy__dibujo.dx-dibujo--cabezal{aspect-ratio:200/300}
.dx-proy__a:hover .dx-proy__dibujo{opacity:.32}
/* ficha del proyecto sin foto real */
.dx-proy-hero--dibujo{background:#0B2624}
.dx-proy-hero--dibujo::after{display:none}
.dx-proy-hero__dibujo{position:absolute;right:clamp(8px,6vw,120px);top:6%;height:112%;width:auto;aspect-ratio:200/300;fill:none;stroke:#fff;stroke-width:.9;stroke-linecap:round;stroke-linejoin:round;opacity:.16;pointer-events:none}
.dx-proy-hero__dibujo.dx-dibujo--balancin{aspect-ratio:320/220;height:70%;top:auto;bottom:0}
.dx-proy-hero__dibujo.dx-dibujo--pozo{aspect-ratio:160/360}
.dx-proy-hero__dibujo.dx-dibujo--torre{aspect-ratio:200/320}
@media (max-width:700px){.dx-proy-hero__dibujo{opacity:.1;right:-10%}}

/* visor: la × no queda debajo de la barra de administración de WordPress */
.dx-visor .x{top:calc(var(--wp-admin--admin-bar--height,0px) + 20px)}

/* ==========================================================================
   v2.7.6 — correcciones DPMC: iconos de valores, mapa, fotos de innovación, submarcas
   ========================================================================== */
/* lista de valores (Quiénes somos) con icono en círculo verde */
.clauses li:has(.dx-valor-ic){grid-template-columns:52px 1fr;gap:0 18px;align-items:start}
.dx-valor-ic{grid-row:span 2;width:52px;height:52px;border-radius:50%;border:1.5px solid var(--green,#4A9440);display:grid;place-items:center;color:var(--green,#4A9440)}
.dx-valor-ic svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.clauses li:has(.dx-valor-ic) b{padding-top:4px}
@media (max-width:480px){.clauses li:has(.dx-valor-ic){grid-template-columns:42px 1fr;gap:0 14px}.dx-valor-ic{width:42px;height:42px}.dx-valor-ic svg{width:21px;height:21px}}

/* mapa del mundo con el logo (Quiénes somos) */
.dx-mapa-mundo{background:#E4E7EE;padding:0;overflow:hidden}
.dx-mapa-mundo__caja{position:relative;max-width:1360px;margin:0 auto}
.dx-mapa-mundo__lienzo{position:relative}
.dx-mapa-mundo__mapa{display:block;width:100%;height:auto;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 5%,#000 95%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 5%,#000 95%,transparent 100%)}
.dx-mapa-mundo__punto{position:absolute;left:var(--x);top:var(--y);width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;
  background:var(--blue,#2E7FBE);box-shadow:0 0 0 3px #fff,0 2px 6px rgba(0,25,24,.35)}
.dx-mapa-mundo__logo{position:absolute;right:0;top:0;width:clamp(170px,23%,320px);background:#fff;padding:clamp(14px,2vw,28px)}
.dx-mapa-mundo__logo img{display:block;width:100%;height:auto}
@media (max-width:700px){
  .dx-mapa-mundo__punto{width:9px;height:9px;margin:-4.5px 0 0 -4.5px;box-shadow:0 0 0 2px #fff}
  .dx-mapa-mundo__logo{position:static;width:auto;display:flex;justify-content:center;padding:22px 16px}
  .dx-mapa-mundo__logo img{width:170px}
}

/* innovaciones con foto */
.dx-inn__fig--foto img{aspect-ratio:380/240;object-fit:cover;object-position:center 45%}
.dx-inn__fig--foto[data-foto="nanofluidos"] img{object-position:center 40%}

/* cabecera: submarcas (Nanofluids Technologies, Drilling & Completions Equipment) */
.brand--nano .mark,.brand--equipos .mark{object-fit:contain}
.brand--equipos .wm i,.brand--nano .wm i{white-space:nowrap}

/* v2.7.7 — la foto de la tarjeta no estira el recuadro cuando es casi cuadrada o vertical */
.dx-proy__foto>img{position:absolute;inset:0}

/* v2.7.8 — innovaciones con animación en bucle (canvas) */
.dx-inn__fig--anim canvas{display:block;width:100%;height:auto;aspect-ratio:380/260;background:#DDE3E3}

/* v2.7.9 — las tres columnas de innovaciones con el mismo ancho útil: las animaciones quedan del mismo tamaño */
@media(min-width:901px){
  .dx-innova__cols>.dx-inn{--g:clamp(20px,2.8vw,40px)}
  .dx-innova__cols>.dx-inn:first-child{padding-left:0;padding-right:var(--g)}
  .dx-innova__cols>.dx-inn:nth-child(2){padding-left:calc(var(--g) / 2);padding-right:calc(var(--g) / 2)}
  .dx-innova__cols>.dx-inn:last-child{padding-left:var(--g);padding-right:0}
  /* título, texto, animación y enlace alineados entre columnas */
  @supports (grid-template-rows:subgrid){
    .dx-innova__cols>.dx-inn{display:grid;grid-row:span 4;grid-template-rows:subgrid;row-gap:0;align-content:start}
    .dx-innova__cols>.dx-inn>.dx-link{align-self:start}
  }
}

/* v2.8.1 — pie: el © a la derecha; el ícono del botón "Ver proyectos" no timbra */
.legal{justify-content:flex-end;text-align:right}
.btn:hover svg.dx-btn-ic--quieto{animation:none}

/* ==========================================================================
   v2.8.2 — barra de marca sobre los títulos, botón PDF en rojo y "Otros proyectos"
   ========================================================================== */
/* opción B: barra corta verde y azul (colores del logo) sobre el título de cada bloque */
.dx-head>div>h2::before,.dx-head>div>h1::before,.cap-head>div>h2::before,
.dx-texto .wrap>div>h2::before,.cta .wrap>div>h2::before,.dx-cta .wrap>div>h2::before{
  content:"";display:block;width:44px;height:4px;margin:0 0 18px;
  background:linear-gradient(90deg,var(--green,#4A9440) 0 50%,var(--blue,#2E7FBE) 50% 100%)}

/* ficha del proyecto: descarga del PDF en rojo */
.dx-proy-det__lado .btn.dx-proy-pdf{background:#B3261E;border-color:#B3261E;color:#fff}
.dx-proy-det__lado .btn.dx-proy-pdf:hover,.dx-proy-det__lado .btn.dx-proy-pdf:focus-visible{background:#8C1D18;border-color:#8C1D18;color:#fff}

/* ficha del proyecto: lista lateral de otros proyectos */
.dx-proy-otros{margin-top:18px;border-top:1px solid var(--line,#D6DFDE);padding-top:20px}
.dx-proy-otros__t{margin:0 0 10px;font-size:15px;font-weight:600;letter-spacing:0;color:var(--ink,#001918)}
.dx-proy-otros ul{list-style:none;margin:0;padding:0}
.dx-proy-otros li+li{border-top:1px solid var(--line,#E3E9E8)}
.dx-proy-otros li a{display:flex;gap:12px;align-items:center;padding:11px 0;text-decoration:none;color:inherit}
.dx-proy-otros__logo{flex:none;width:64px;height:40px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--line,#D6DFDE);padding:4px 6px}
.dx-proy-otros__logo img{display:block;max-width:100%;max-height:30px;width:auto;height:auto;object-fit:contain}
.dx-proy-otros__tx{display:flex;flex-direction:column;min-width:0}
.dx-proy-otros__tx b{font-size:14.5px;font-weight:600;line-height:1.3;color:var(--ink,#001918)}
.dx-proy-otros__tx small{font-size:12.5px;line-height:1.4;color:var(--txt-2,#4A5654);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dx-proy-otros li a:hover b{color:var(--blue-d,#1B6199)}
.dx-proy-otros li a:focus-visible{outline:2px solid var(--blue,#2E7FBE);outline-offset:2px}
.dx-proy-otros__todos{display:inline-block;margin-top:10px;font-size:14px;font-weight:600;color:var(--blue-d,#1B6199);text-decoration:none}
.dx-proy-otros__todos:hover{text-decoration:underline}

/* ==========================================================================
   v2.8.3 — movimiento: portada por capas, cambio de página nativo, aparición limpia
   ========================================================================== */
/* portada por capas (sin pantalla de carga): la foto o el video se aclara y el texto entra en orden */
@media (prefers-reduced-motion:no-preference){
  .dx-paneles__fondo{animation:dxEntraFondo 1.2s var(--ease) both}
  .dx-paneles__h1{animation:dxEntraTxt .8s var(--ease) .15s both}
  .dx-paneles__p{animation:dxEntraTxt .8s var(--ease) .3s both}
  .dx-paneles__cab .hero-actions{animation:dxEntraTxt .8s var(--ease) .45s both}
  .dx-paneles__fila{animation:dxEntraFila .9s var(--ease) .55s both}
  .home .utility,.home .site{animation:dxEntraCab .6s var(--ease) both}
  html.vt .home .utility,html.vt .home .site{animation:none}
}
@keyframes dxEntraFondo{from{transform:scale(1.06);filter:brightness(.45)}}
@keyframes dxEntraTxt{from{opacity:0;transform:translateY(16px)}}
@keyframes dxEntraFila{from{opacity:0;transform:translateY(24px)}}
@keyframes dxEntraCab{from{transform:translateY(-100%)}}

/* cambio de página: transición nativa del navegador; la cabecera queda fija y el contenido se funde */
@view-transition{navigation:auto}
.utility{view-transition-name:dx-utility}
.site{view-transition-name:dx-cabecera}
::view-transition-group(dx-cabecera),::view-transition-group(dx-utility){animation-duration:0s}
::view-transition-old(root){animation:dxVtSale .2s ease both}
::view-transition-new(root){animation:dxVtEntra .38s var(--ease) both}
@keyframes dxVtSale{to{opacity:0}}
@keyframes dxVtEntra{from{opacity:0;transform:translateY(10px)}}
html.vt .site::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;pointer-events:none;
  background:linear-gradient(90deg,var(--green,#4A9440),var(--blue,#2E7FBE));transform-origin:left;animation:dxVtLinea .6s var(--ease) both}
@keyframes dxVtLinea{0%{transform:scaleX(0);opacity:1}80%{transform:scaleX(1);opacity:1}100%{transform:scaleX(1);opacity:0}}
@media (prefers-reduced-motion:reduce){
  @view-transition{navigation:none}
  ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}
}

/* aparición más limpia: solo títulos y tarjetas se mueven, una vez y en 0,5 s; el resto ya está */
[data-rv]{transform:translateY(12px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
[data-rv]:where(:not(.dx-card,.dx-inn,.dx-col,.dx-item,.dx-caja,.pj,.mk,.person,.post,.mision,.vision,.dx-proy)){opacity:1;transform:none;clip-path:none;transition:none}
.dx-head>[data-rv],.cap-head>[data-rv],.wrap>[data-rv]:has(>h2){opacity:0;transform:translateY(12px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
.dx-head>[data-rv].in,.cap-head>[data-rv].in,.wrap>[data-rv].in:has(>h2){opacity:1;transform:none}
/* la barra de marca se dibuja cuando aparece el título */
[data-rv]>h2::before,[data-rv]>h1::before{transform:scaleX(0);transform-origin:left;transition:transform .7s var(--ease) .2s}
[data-rv].in>h2::before,[data-rv].in>h1::before{transform:scaleX(1)}
@media (prefers-reduced-motion:reduce){[data-rv]>h2::before,[data-rv]>h1::before{transform:none;transition:none}}

/* v2.8.4 — al llegar al formulario de Contacto con #cta, la cabecera fija no lo tapa */
#cta{scroll-margin-top:110px}

/* ---------- v2.8.6: títulos Misión / Visión más grandes y visibles ---------- */
.pv article .lbl{font-family:var(--f-disp);font-size:clamp(24px,2.3vw,34px);font-weight:800;letter-spacing:.06em;text-transform:uppercase;line-height:1.1;color:var(--blue-d);margin-bottom:22px;flex-direction:column;align-items:flex-start;gap:14px}
.pv article .lbl::before{content:"";display:block;width:44px;height:4px;background:linear-gradient(90deg,var(--green,#4A9440) 0 50%,var(--blue,#2E7FBE) 50% 100%)}
.pv .mision .lbl{color:#fff}
