@font-face{font-family:Archivo;font-style:normal;font-weight:300 900;font-display:swap;src:url(../fonts/archivo-latin.woff2) format('woff2')}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400 500;font-display:swap;src:url(../fonts/jetbrains-mono-latin.woff2) format('woff2')}
@font-face{font-family:'Zalando Sans Expanded';font-style:normal;font-weight:400 900;font-display:swap;src:url(../fonts/zalando-sans-expanded-latin.woff2) format('woff2')}
[hidden]{display:none!important}.gulupa-skip{position:fixed;top:8px;left:8px;z-index:1000;padding:12px 18px;background:#fff;color:#1c1c1c;transform:translateY(-180%)}.gulupa-skip:focus{transform:none}
:focus-visible{outline:2px solid #ff3300;outline-offset:4px}.gulupa-form{display:flex;flex-direction:column;gap:24px;color:inherit;flex:1}.gulupa-form label:not(.gulupa-consent){display:flex;flex-direction:column;gap:8px}.gulupa-form label>span{font-family:'JetBrains Mono',monospace;font-size:11px;text-transform:uppercase}.gulupa-form input:not([type=checkbox]),.gulupa-form textarea{width:100%;font:19px/1.3 Archivo,sans-serif;color:inherit;border:0;border-bottom:2px solid currentColor;padding:6px 0 10px;background:transparent;border-radius:0}.gulupa-form textarea{resize:vertical}.gulupa-form button{all:unset;box-sizing:border-box;cursor:pointer;align-self:flex-start;min-height:54px;padding:0 26px;display:flex;align-items:center;gap:10px;border-radius:50px;background:#ff3300;color:#fff;font:14px 'JetBrains Mono',monospace}.gulupa-form button:hover{background:#ff6a00}.gulupa-form button:disabled{opacity:.6;cursor:wait}.gulupa-consent{display:flex;gap:10px;align-items:flex-start}.gulupa-form-error{font:14px/1.4 Archivo,sans-serif;color:#b52a00}.gulupa-form-success{font:16px/1.5 Archivo,sans-serif}.gulupa-trap{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.gulupa-link-unavailable{pointer-events:none}
@media(max-width:899px){[data-g-key="header"] [data-g-desktop]{display:none!important}[data-g-key="header"] [data-g-mobile]{display:contents}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}[data-rv]{opacity:1!important;transform:none!important}}
/* El resaltado palabra a palabra avanza con el desplazamiento del usuario, no es movimiento automático: en móvil se conserva con movimiento reducido. */
@media(prefers-reduced-motion:reduce) and (min-width:900px){[data-hw]{opacity:1!important;transform:none!important}}
@media(prefers-reduced-motion:reduce) and (max-width:899px){[data-hw]{transform:none!important}}
html{overflow-x:clip}
/* Los CSS de diseño declaran body{overflow-x:hidden}. Con html en clip ese valor ya no sube al viewport y el body pasaría a ser contenedor de scroll, lo que anula position:sticky (scroll horizontal, pines). clip no crea contenedor de scroll. */
html body{overflow-x:clip;overflow-y:visible}
.gulupa-generic{font-family:Archivo,sans-serif;color:#fff}
[data-g-viewport=mobile]{display:none!important}
@media(max-width:899px){[data-g-viewport=desktop]{display:none!important}[data-g-viewport=mobile]{display:var(--g-display,block)!important}}

/* Anillo de pulso del lanzador de WhatsApp. wp_kses elimina inset y animation del span que viene del diseño y quedaba como un punto de 2 px: se restituyen aquí y se oculta con el chat abierto. */
[data-g-key="whatsapp"] a[data-g-launcher]>span[aria-hidden="true"][style*="box-shadow:0 0 0 2px #ff3300"]{inset:0;animation:gwaPulse 2.2s cubic-bezier(.22,1,.36,1) infinite}
[data-g-key="whatsapp"] a[data-g-launcher][aria-expanded="true"]>span[aria-hidden="true"][style*="box-shadow:0 0 0 2px #ff3300"]{display:none}
@media(prefers-reduced-motion:reduce){[data-g-key="whatsapp"] a[data-g-launcher]>span[aria-hidden="true"][style*="box-shadow:0 0 0 2px #ff3300"]{display:none}}

/* Dock flotante en móvil: ocupa todo el ancho y el lanzador de WhatsApp sube por encima mientras el dock está visible. */
@media(max-width:899px){[data-g-key="whatsapp"] .gswhatsapp0{transition:bottom .5s cubic-bezier(.22,1,.36,1)}body:has([data-a="dock"][style*="opacity: 1"]) [data-g-key="whatsapp"] .gswhatsapp0{bottom:96px!important}}

/* Formulario multipaso "Cuéntanos tu reto / Cotiza" del diseño (.dc.html). Se carga solo en las composiciones de servicio.
   Sin JavaScript todos los pasos se ven apilados; forms.js añade .is-wizard y los presenta de uno en uno. */
.gulupa-form.gulupa-form--wizard{gap:28px;flex:1}
.gulupa-form--wizard .gf-head{display:flex;flex-direction:column;gap:12px}
.gulupa-form--wizard .gf-head[hidden]{display:none}
.gulupa-form--wizard .gf-meta{display:flex;justify-content:space-between;font:12px/1 'JetBrains Mono',monospace;color:#1c1c1c}
.gulupa-form--wizard .gf-meta-t{color:#ff3300}
.gulupa-form--wizard .gf-bars{display:grid;grid-template-columns:repeat(var(--gf-total,4),1fr);gap:6px}
.gulupa-form--wizard .gf-bars span{height:4px;border-radius:4px;background:#e4e4e4;transition:background .4s ease}
.gulupa-form--wizard .gf-bars span.is-on{background:#ff3300}

.gulupa-form--wizard .gf-steps{flex:1;display:flex;flex-direction:column;justify-content:center;gap:34px;transition:opacity .3s ease,transform .3s ease}
.gulupa-form--wizard .gf-step{display:flex;flex-direction:column;gap:22px;border:0;margin:0;padding:0;min-width:0}
.gulupa-form--wizard.is-wizard .gf-steps{gap:0}
.gulupa-form--wizard.is-wizard .gf-step[hidden]{display:none}
.gulupa-form.gulupa-form--wizard .gf-q{display:block;padding:0;font:600 clamp(22px,2.4vw,32px)/1.05 'Zalando Sans Expanded',sans-serif;color:#1c1c1c;text-transform:uppercase}
.gulupa-form.gulupa-form--wizard .gf-field{display:flex;align-items:center;gap:12px;border-bottom:2px solid #1c1c1c;padding-bottom:10px}
.gulupa-form--wizard .gf-prefix{font:600 22px/1 'Zalando Sans Expanded',sans-serif;color:#ff3300;text-transform:uppercase}
/* Indicativo de WhatsApp: el select transparente cubre el prefijo visible y abre la lista de países. */
.gulupa-form--wizard .gf-cc{position:relative;display:flex;align-items:center;gap:6px;flex-shrink:0}
.gulupa-form--wizard .gf-cc::after{content:'';width:7px;height:7px;border-right:2px solid #ff3300;border-bottom:2px solid #ff3300;transform:translateY(-3px) rotate(45deg)}
.gulupa-form.gulupa-form--wizard .gf-cc select{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;opacity:0;cursor:pointer;font-size:16px}
.gulupa-form--wizard .gf-cc:has(select:focus-visible){outline:2px solid #ff3300;outline-offset:4px}
.gulupa-form.gulupa-form--wizard .gf-field input{flex:1;min-width:0;width:auto;border:0;padding:0;margin:0;outline:0;background:transparent;font:22px/1.3 Archivo,sans-serif;color:#1c1c1c;border-radius:0}
.gulupa-form--wizard .gf-field input::placeholder{color:rgba(28,28,28,.4)}
.gulupa-form--wizard .gf-field:focus-within{border-bottom-color:#ff3300}

.gulupa-form--wizard .gf-opts{display:flex;flex-direction:column;gap:8px}
.gulupa-form.gulupa-form--wizard label.gf-opt{position:relative;flex-direction:row;justify-content:space-between;align-items:center;gap:12px;min-height:52px;padding:0 22px;border-radius:50px;background:transparent;color:#1c1c1c;box-shadow:inset 0 0 0 1px #1c1c1c;cursor:pointer;transition:background .3s ease,color .3s ease}
.gulupa-form.gulupa-form--wizard label.gf-opt:hover,.gulupa-form.gulupa-form--wizard label.gf-opt:has(input:checked),.gulupa-form.gulupa-form--wizard label.gf-opt:has(input:focus-visible){background:#1c1c1c;color:#fff}
.gulupa-form.gulupa-form--wizard .gf-opt input[type=radio]{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;opacity:0;cursor:pointer}
.gulupa-form.gulupa-form--wizard .gf-opt-t{font:16px/1.25 Archivo,sans-serif;text-transform:none;color:inherit}
.gulupa-form.gulupa-form--wizard .gf-opt-a{font:12px/1 'JetBrains Mono',monospace;color:inherit}
.gulupa-form--wizard .gf-step--choice .gulupa-consent{margin:4px 0 0;font:14px/1.4 Archivo,sans-serif;color:#1c1c1c}
.gulupa-form--wizard .gf-step--choice .gulupa-consent a{color:#ff3300}

.gulupa-form--wizard .gulupa-form-error{min-height:14px;margin:0;font:12px/1 'JetBrains Mono',monospace;color:#ff3300}
.gulupa-form--wizard.is-wizard .gulupa-form-error[hidden]{display:block;visibility:hidden}

.gulupa-form--wizard .gf-foot{display:flex;justify-content:space-between;align-items:center;gap:12px}
.gulupa-form.gulupa-form--wizard .gf-back{all:unset;box-sizing:border-box;cursor:pointer;font:13px/1.2 'JetBrains Mono',monospace;color:#1c1c1c;opacity:1;transition:color .3s ease,opacity .3s ease}
.gulupa-form.gulupa-form--wizard .gf-back:hover,.gulupa-form.gulupa-form--wizard .gf-back:focus-visible{color:#ff3300}
.gulupa-form.gulupa-form--wizard .gf-back[aria-disabled=true]{opacity:.25;cursor:default;pointer-events:none}
.gulupa-form.gulupa-form--wizard .gf-next{all:unset;box-sizing:border-box;cursor:pointer;height:54px;padding:0 26px;border-radius:50px;background:#ff3300;display:flex;align-items:center;gap:10px;font:14px/1 'JetBrains Mono',monospace;color:#fff;margin-left:auto;transition:background .3s ease,opacity .3s ease}
.gulupa-form.gulupa-form--wizard .gf-next:hover,.gulupa-form.gulupa-form--wizard .gf-next:focus-visible{background:#ff6a00}
.gulupa-form.gulupa-form--wizard .gf-next:disabled{opacity:.6;cursor:wait}
.gulupa-form.gulupa-form--wizard .gf-next.is-empty{opacity:.5}
.gulupa-form.gulupa-form--wizard .gf-next span{width:14px;height:14px;background:#fff;mask:url(../img/design/icons/arrow.svg) center/contain no-repeat;-webkit-mask:url(../img/design/icons/arrow.svg) center/contain no-repeat}
.gulupa-form.gulupa-form--wizard.is-wizard .gf-next[hidden]{display:none}
/* all:unset anula el atributo hidden */
.gulupa-form.gulupa-form--wizard .gf-back[hidden]{display:none}
@media(prefers-reduced-motion:reduce){.gulupa-form--wizard .gf-steps,.gulupa-form--wizard .gf-bars span{transition:none}}
/* Menú móvil: un icono heredado (fuente de iconos de Elementor/Hello) se pintaba encima de las dos líneas del diseño. */
.icon-menu:before{content:''!important}
/* Menú editable (Ajustes → Menú del header): un desplegable largo se desplaza dentro de la pantalla en lugar de salirse. */
.gsheader4>li>ul{max-height:calc(100vh - 120px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
/* Corchetes decorativos de rótulos y titulares: el carácter vive en CSS, no en el texto del documento (gulupa_render_nodes). */
[data-g-bracket=open]::before{content:"["}
[data-g-bracket=close]::after{content:"]"}
/* Etiqueta IA junto al logo del header: enlace a Servicios IA (/ia/, /ia/en/). */
.brand{display:flex;align-items:center;gap:10px;flex-shrink:0}
.brand .tag{font-family:'Zalando Sans Expanded',system-ui,sans-serif;font-weight:600;font-size:13px;line-height:1;padding:7px 10px 6px;border-radius:30px;background:#ff3300;color:#fff;position:relative;display:inline-flex;align-items:center;white-space:nowrap;flex-shrink:0;transition:background .25s ease}
.brand .tag:hover,.brand .tag:focus-visible{background:#ff6a00;color:#fff}
.brand .tag:focus-visible{outline:2px solid #fff;outline-offset:3px}
.brand .tag::after{content:"";position:absolute;inset:-3px;border-radius:inherit;box-shadow:0 0 0 1px rgba(255,51,0,.6);pointer-events:none;animation:tagPing 2.6s cubic-bezier(.22,1,.36,1) infinite}
@keyframes tagPing{0%{opacity:.9;transform:scale(1)}70%,100%{opacity:0;transform:scale(1.35)}}
/* Escritorio estrecho: sin este ajuste, entre 920 y 1010 px la etiqueta partía en dos líneas «Diseño web» y «Marketing digital». */
@media(min-width:900px) and (max-width:1099px){.gsheader1.gsheader1[data-gh=pill]{gap:12px}.gsheader4.gsheader4[data-g-viewport=desktop]{gap:10px}.brand{gap:8px}.brand .tag{font-size:12px;padding:6px 9px 5px}}
@media(max-width:899px){.brand{gap:8px}.brand .tag{font-size:11px;padding:6px 8px 5px}}
/* Móviles estrechos: la etiqueta ocupa ~37 px; se recuperan compactando huecos del pill para que la hamburguesa no se corte. */
@media(max-width:379px){.gsheader1.gsheader1[data-gh=pill]{gap:10px;padding:0 14px}.gsheader12.gsheader12{gap:10px}.brand{gap:6px}.brand .tag{font-size:10px;padding:5px 7px 4px}}
@media(max-width:339px){.brand .gsheader3.gsheader3{width:78px}}
@media(prefers-reduced-motion:reduce){.brand .tag::after{animation:none;opacity:.6}}
