/* CTL Prints · sistema visual «pliego de imprenta»: papel blanco, negro tinta y el CMYK de la marca en bloques;
   Archivo ancha para titulares, IBM Plex Mono para etiquetas técnicas; marcas de corte y de registro como detalles.
   Las reglas cuelgan de body.ctl; las de Elementor se neutralizan para que manden las clases de cada bloque. */
:root{--ink:#111114;--ink2:#2B2B31;--paper:#FFFFFF;--mist:#F3F3EF;--line:#E1E1DC;--muted:#5C5C65;--c:#0084FF;--m:#FF027C;--y:#FFE100;
 --g:clamp(20px,4.2vw,64px);--max:1360px;--sec:clamp(72px,9vw,136px);--sans:'Archivo',system-ui,-apple-system,'Segoe UI',sans-serif;--mono:'IBM Plex Mono',ui-monospace,Menlo,Consolas,monospace;--ease:cubic-bezier(.2,.7,.2,1)}
html{scroll-padding-top:110px}
body.ctl{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.62 var(--sans);font-stretch:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
.ctl a,.ctl a:hover,.ctl a:active{color:inherit}
.ctl img{max-width:100%;height:auto}
.ctl ::selection{background:var(--y);color:var(--ink)}
.ctl :focus-visible{outline:2px solid var(--c);outline-offset:3px}
.ctl p{margin:0 0 1em}
/* Hello Elementor pinta botones y enlaces de rosa (#c36): fuera */
.ctl button,.ctl [type=button],.ctl [type=submit]{font-family:var(--sans);border-radius:0}
.ctl button:is(:hover,:focus),.ctl [type=button]:is(:hover,:focus),.ctl [type=submit]:is(:hover,:focus){background-color:inherit;color:inherit}

/* ---------- Elementor neutralizado: espacios y anchos los ponen las clases ctl-* ---------- */
.ctl{--kit-widget-spacing:0px;--widgets-spacing:0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px}
.ctl .elementor-widget:not(:last-child){margin-block-end:0!important;margin-bottom:0!important}
.ctl .e-con{--padding-top:0px;--padding-right:0px;--padding-bottom:0px;--padding-left:0px;--gap:0px;--row-gap:0px;--column-gap:0px;--container-max-width:none;--min-height:0px}
.ctl .e-con>.e-con-inner{max-width:none;padding:0}
.ctl .elementor-heading-title{font:inherit;color:inherit;letter-spacing:inherit;line-height:inherit;text-transform:inherit;margin:0}
.ctl .elementor-widget-text-editor{font:inherit;color:inherit}
.ctl .elementor-widget-text-editor p:last-child{margin-bottom:0}
.ctl .elementor-widget-image img{display:block;width:100%;height:auto;max-width:none}
.ctl .elementor-widget-image .elementor-widget-container{overflow:hidden}

/* ---------- Secciones ---------- */
.ctl .ctl-sec{position:relative;padding:var(--sec) max(var(--g),calc((100% - var(--max))/2))!important}
.ctl .ctl-sec.ctl-corta{padding-top:calc(var(--sec)*.55)!important;padding-bottom:calc(var(--sec)*.55)!important}
.ctl .ctl-dark{background:var(--ink);color:#F4F4F1}
.ctl .ctl-mist{background:var(--mist)}
.ctl .ctl-stack{gap:22px!important}
.ctl .ctl-stack-s{gap:12px!important}
.ctl .ctl-stack-l{gap:clamp(32px,4vw,56px)!important}
.ctl .ctl-row{flex-direction:row!important;flex-wrap:wrap!important;align-items:flex-end;justify-content:space-between;gap:20px 40px!important}
/* Marcas de corte en las cuatro esquinas del pliego (fondos, sin ::before: Elementor usa el ::before de los contenedores) */
.ctl .ctl-marks{--mk:#BDBDB5;--mi:clamp(10px,1.4vw,20px);background-image:linear-gradient(var(--mk),var(--mk)),linear-gradient(var(--mk),var(--mk)),linear-gradient(var(--mk),var(--mk)),linear-gradient(var(--mk),var(--mk)),linear-gradient(var(--mk),var(--mk)),linear-gradient(var(--mk),var(--mk)),linear-gradient(var(--mk),var(--mk)),linear-gradient(var(--mk),var(--mk));background-repeat:no-repeat;background-size:22px 2px,2px 22px,22px 2px,2px 22px,22px 2px,2px 22px,22px 2px,2px 22px;background-position:left var(--mi) top var(--mi),left var(--mi) top var(--mi),right var(--mi) top var(--mi),right var(--mi) top var(--mi),left var(--mi) bottom var(--mi),left var(--mi) bottom var(--mi),right var(--mi) bottom var(--mi),right var(--mi) bottom var(--mi)}
.ctl .ctl-dark.ctl-marks{--mk:rgba(255,255,255,.22)}
.ctl .ctl-mist.ctl-marks{background-color:var(--mist)}
/* Tinta de cada bloque (servicio, tarjeta…) */
.ctl .ctl-t-c,.ctl-t-c{--tinta:var(--c)}.ctl .ctl-t-m,.ctl-t-m{--tinta:var(--m)}.ctl .ctl-t-y,.ctl-t-y{--tinta:var(--y)}.ctl .ctl-t-k,.ctl-t-k{--tinta:var(--ink)}

/* ---------- Tipografía ---------- */
.ctl .ctl-eyebrow{font:500 12px/1.3 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.ctl .ctl-eyebrow .elementor-heading-title{display:inline-flex;align-items:center;gap:12px}
.ctl .ctl-eyebrow .elementor-heading-title::before{content:'';flex:none;width:32px;height:7px;background:linear-gradient(90deg,var(--c) 0 25%,var(--m) 25% 50%,var(--y) 50% 75%,var(--ink) 75%)}
.ctl .ctl-dark .ctl-eyebrow{color:rgba(244,244,241,.66)}
.ctl .ctl-dark .ctl-eyebrow .elementor-heading-title::before{background:linear-gradient(90deg,var(--c) 0 25%,var(--m) 25% 50%,var(--y) 50% 75%,#fff 75%)}
.ctl .ctl-h1{font-weight:880;font-stretch:125%;font-size:clamp(44px,6.6vw,106px);line-height:.92;letter-spacing:-.035em;text-wrap:balance}
.ctl .ctl-h2{font-weight:820;font-stretch:120%;font-size:clamp(34px,4.5vw,68px);line-height:.98;letter-spacing:-.03em;text-wrap:balance;max-width:20ch}
.ctl .ctl-h2.ctl-ancho{max-width:none}
.ctl .ctl-h3{font-weight:760;font-stretch:112%;font-size:clamp(22px,1.9vw,28px);line-height:1.08;letter-spacing:-.015em}
.ctl :is(.ctl-h1,.ctl-h2,.ctl-h3) em{font-style:normal;background:linear-gradient(180deg,transparent 58%,var(--y) 58% 90%,transparent 90%);padding:0 .04em;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.ctl .ctl-dark :is(.ctl-h1,.ctl-h2,.ctl-h3) em{background:none;color:var(--y)}
.ctl .ctl-lead{font-size:clamp(18px,1.45vw,21px);line-height:1.55;color:var(--ink2);max-width:58ch}
.ctl .ctl-dark .ctl-lead,.ctl .ctl-dark .ctl-txt{color:rgba(244,244,241,.8)}
.ctl .ctl-txt{max-width:66ch!important;color:var(--ink2)}
.ctl .ctl-txt strong,.ctl .ctl-lead strong{color:var(--ink);font-weight:650}
.ctl .ctl-dark .ctl-txt strong{color:#fff}
.ctl .ctl-migas{font:500 12px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0}
.ctl .ctl-migas a{text-decoration:none}.ctl .ctl-migas a:hover{text-decoration:underline;color:var(--ink)}

/* ---------- Botones: tinta con sombra de color que «entra en registro» al pasar ---------- */
.ctl .ctl-btns{flex-direction:row!important;flex-wrap:wrap!important;align-items:center;gap:16px 20px!important}
.ctl .ctl-btns>.elementor-widget{width:auto!important}
.ctl .ctl-btn a.elementor-button,.ctl a.ctl-btn-a,.ctl .ctl-btn-f{display:inline-flex;align-items:center;gap:12px;background:var(--ink);color:#fff;font:700 15px/1 var(--sans);font-stretch:110%;letter-spacing:.01em;padding:19px 26px 18px;border:2px solid var(--ink);border-radius:0;box-shadow:6px 6px 0 var(--m);text-decoration:none;cursor:pointer;transition:transform .22s var(--ease),box-shadow .22s var(--ease),background-color .2s}
.ctl .ctl-btn a.elementor-button:hover,.ctl a.ctl-btn-a:hover,.ctl .ctl-btn-f:hover{transform:translate(6px,6px);box-shadow:0 0 0 var(--m);color:#fff;background:var(--ink)}
.ctl .ctl-btn a.elementor-button::after,.ctl a.ctl-btn-a::after{content:'→';font-weight:500;transition:transform .22s var(--ease)}
.ctl .ctl-btn a.elementor-button:hover::after,.ctl a.ctl-btn-a:hover::after{transform:translateX(4px)}
.ctl .ctl-btn-l a.elementor-button,.ctl a.ctl-btn-l{background:#fff;color:var(--ink);box-shadow:6px 6px 0 var(--c)}
.ctl .ctl-btn-l a.elementor-button:hover,.ctl a.ctl-btn-l:hover{background:#fff;color:var(--ink);box-shadow:0 0 0 var(--c)}
.ctl .ctl-btn-y a.elementor-button,.ctl a.ctl-btn-y{background:var(--y);color:var(--ink);border-color:var(--ink)}
.ctl .ctl-btn-y a.elementor-button:hover,.ctl a.ctl-btn-y:hover{background:var(--y);color:var(--ink)}
.ctl .ctl-dark .ctl-btn a.elementor-button{background:#fff;color:var(--ink);border-color:#fff}
.ctl .ctl-dark .ctl-btn a.elementor-button:hover{background:#fff;color:var(--ink)}
.ctl .ctl-dark .ctl-btn-y a.elementor-button,.ctl .ctl-dark .ctl-btn-y a.elementor-button:hover{background:var(--y);border-color:var(--y)}
.ctl a.ctl-btn-o{background:transparent;color:#fff;border-color:#fff;box-shadow:6px 6px 0 var(--c)}
.ctl a.ctl-btn-o:hover{background:transparent;color:#fff;box-shadow:0 0 0 var(--c)}
.ctl a.ctl-link{font:700 15px/1 var(--sans);font-stretch:110%;text-decoration:none;border-bottom:2px solid currentColor;padding-bottom:4px;display:inline-flex;gap:8px}
.ctl a.ctl-link::after{content:'→';transition:transform .22s var(--ease)}
.ctl a.ctl-link:hover::after{transform:translateX(4px)}

/* ---------- Portada: hero con titular que entra en registro ---------- */
.ctl .ctl-hero{display:grid!important;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(36px,5vw,84px)!important;align-items:center;min-height:min(880px,calc(100svh - 118px));padding:clamp(40px,5vw,84px) max(var(--g),calc((100% - var(--max))/2)) clamp(56px,6vw,100px)!important;overflow:hidden}
.ctl .ctl-hero-txt{gap:28px!important}
.ctl .ctl-reg{position:relative;margin:0;font-weight:900;font-stretch:125%;font-size:clamp(44px,7.2vw,122px);line-height:.9;letter-spacing:-.04em;color:var(--ink)}
.ctl .ctl-reg>span{display:block}
.ctl .ctl-reg .ctl-reg-k{position:relative;z-index:2}
.ctl .ctl-reg .ctl-reg-l{position:absolute;inset:0;z-index:1;mix-blend-mode:multiply;pointer-events:none;user-select:none}
.ctl .ctl-reg .l-c{color:var(--c)}.ctl .ctl-reg .l-m{color:var(--m)}.ctl .ctl-reg .l-y{color:var(--y)}
.ctl .ctl-reg em{font-style:normal;display:inline-block}
.ctl .ctl-reg .l-c em{transform:translate(-.04em,.028em)}
.ctl .ctl-reg .l-m em{transform:translate(.044em,.04em)}
.ctl .ctl-reg .l-y em{transform:translate(.024em,-.044em)}
/* Estado de partida (lo anima ctl.js; sin JavaScript se queda «descuadrado», que también se lee bien) */
.ctl-anim .ctl .ctl-reg .l-c{transform:translate(-.16em,-.1em)}
.ctl-anim .ctl .ctl-reg .l-m{transform:translate(.18em,.12em)}
.ctl-anim .ctl .ctl-reg .l-y{transform:translate(.1em,-.16em)}
.ctl .ctl-sellos{display:flex;flex-wrap:wrap;gap:10px 22px;margin:4px 0 0;padding:0;list-style:none;font:500 12.5px/1.3 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.ctl .ctl-sellos li{display:flex;align-items:center;gap:9px}
.ctl .ctl-sellos li::before{content:'';width:9px;height:9px;background:var(--tinta,var(--ink))}
/* Collage de pruebas de impresión sobre bloques de color */
.ctl .ctl-collage{position:relative;width:100%;max-width:660px;aspect-ratio:1/1.04;justify-self:end;margin:0}
.ctl .ctl-collage .blk{position:absolute;display:block}
.ctl .ctl-collage .blk.c{background:var(--c);left:4%;top:6%;width:48%;height:42%}
.ctl .ctl-collage .blk.m{background:var(--m);right:0;top:34%;width:40%;height:46%}
.ctl .ctl-collage .blk.y{background:var(--y);left:16%;bottom:0;width:52%;height:30%}
.ctl .ctl-prueba{position:absolute;margin:0;background:#fff;padding:9px 9px 34px;box-shadow:0 34px 60px -34px rgba(17,17,20,.55),0 2px 8px rgba(17,17,20,.14);transform:rotate(var(--r,0deg));transition:transform .6s var(--ease)}
.ctl .ctl-prueba img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover}
.ctl .ctl-prueba figcaption{position:absolute;left:11px;right:11px;bottom:11px;display:flex;justify-content:space-between;font:500 10.5px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}
.ctl .ctl-prueba figcaption i{font-style:normal;color:var(--muted)}
.ctl .ctl-prueba.p1{left:0;top:14%;width:42%;--r:-5deg;z-index:2}
.ctl .ctl-prueba.p2{right:3%;top:0;width:40%;--r:4deg;z-index:1}
.ctl .ctl-prueba.p3{left:30%;bottom:3%;width:38%;--r:2.5deg;z-index:3}
.ctl .ctl-prueba.p4{right:0;bottom:16%;width:30%;--r:-3deg;z-index:2}
.ctl .ctl-collage:hover .ctl-prueba.p1{transform:rotate(-8deg) translate(-12px,-6px)}
.ctl .ctl-collage:hover .ctl-prueba.p2{transform:rotate(7deg) translate(10px,-10px)}
.ctl .ctl-collage:hover .ctl-prueba.p3{transform:rotate(-1deg) translate(-4px,12px)}
.ctl .ctl-collage:hover .ctl-prueba.p4{transform:rotate(-6deg) translate(12px,6px)}
.ctl .ctl-regmark{position:absolute;width:44px;height:44px;color:var(--ink);z-index:4}
.ctl .ctl-regmark.r1{left:-6px;top:-4px}.ctl .ctl-regmark.r2{right:-8px;bottom:-6px}

/* ---------- Cinta de técnicas ---------- */
.ctl .ctl-mq{background:var(--ink);color:#fff;overflow:hidden;padding:22px 0;user-select:none}
.ctl .ctl-mq-track{display:flex;align-items:center;width:max-content;animation:ctl-mq 42s linear infinite}
.ctl .ctl-mq:hover .ctl-mq-track{animation-play-state:paused}
.ctl .ctl-mq-track span{font:850 clamp(26px,3vw,46px)/1 var(--sans);font-stretch:125%;letter-spacing:-.025em;padding:0 30px;white-space:nowrap}
.ctl .ctl-mq-track i{flex:none;width:16px;height:16px;border-radius:50%}
.ctl .ctl-mq-track i.c{background:var(--c)}.ctl .ctl-mq-track i.m{background:var(--m)}.ctl .ctl-mq-track i.y{background:var(--y)}
@keyframes ctl-mq{to{transform:translateX(-50%)}}

/* ---------- Empresas / particulares ---------- */
.ctl .ctl-duo{display:grid!important;grid-template-columns:1fr 1fr;gap:clamp(16px,2vw,28px)!important}
.ctl .ctl-duo-card{background:var(--mist);overflow:hidden}
.ctl .ctl-duo-card.ctl-dark{background:var(--ink)}
.ctl .ctl-duo-card .elementor-widget-image img{aspect-ratio:16/10;object-fit:cover;transition:transform 1s var(--ease)}
.ctl .ctl-duo-card:hover .elementor-widget-image img{transform:scale(1.04)}
.ctl .ctl-duo-body{padding:clamp(26px,3vw,44px)!important;gap:16px!important;flex:1}
.ctl .ctl-duo-body .ctl-btns{margin-top:auto;padding-top:10px}

/* ---------- Servicios: rejilla con la ilustración de cada técnica ---------- */
.ctl .ctl-servs{display:grid;grid-template-columns:repeat(4,1fr);border-top:2px solid var(--ink);border-left:2px solid var(--ink)}
.ctl .ctl-serv{--tinta:var(--y);position:relative;display:flex;flex-direction:column;gap:10px;min-height:310px;padding:24px 24px 28px;border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);text-decoration:none;color:var(--ink);background:linear-gradient(var(--tinta),var(--tinta)) bottom/100% 0 no-repeat;transition:background-size .5s cubic-bezier(.7,0,.2,1)}
.ctl .ctl-serv:hover,.ctl .ctl-serv:focus-visible{background-size:100% 100%}
.ctl .ctl-serv-k{font:500 11px/1 var(--mono);letter-spacing:.08em;color:var(--muted);transition:color .3s}
.ctl .ctl-serv:hover .ctl-serv-k{color:var(--ink)}
.ctl .ctl-serv-ilu{width:clamp(96px,8vw,124px);aspect-ratio:1;margin:10px 0 auto;transition:transform .6s var(--ease)}
.ctl .ctl-serv-ilu img{width:100%;height:100%;object-fit:contain;display:block}
.ctl .ctl-serv:hover .ctl-serv-ilu{transform:rotate(-7deg) scale(1.08)}
.ctl .ctl-serv-n{font:800 clamp(22px,1.8vw,26px)/1.05 var(--sans);font-stretch:118%;letter-spacing:-.02em;margin-top:18px}
.ctl .ctl-serv-d{font-size:15px;line-height:1.5;color:var(--ink2)}
.ctl .ctl-serv-a{position:absolute;top:20px;right:22px;font:600 20px/1 var(--sans);transition:transform .3s var(--ease)}
.ctl .ctl-serv:hover .ctl-serv-a{transform:translate(4px,-4px)}

/* ---------- Bloques partidos (texto + tarjetas o fotos) ---------- */
.ctl .ctl-split{display:grid!important;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,5vw,90px)!important;align-items:start}
.ctl .ctl-split.ctl-medio{align-items:center}
.ctl .ctl-split.ctl-inv{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}
.ctl .ctl-split>.e-con{gap:22px!important}
.ctl .ctl-cards2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,1.6vw,22px)}
.ctl .ctl-cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.6vw,22px)}
.ctl .ctl-cards4{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(12px,1.4vw,20px)}
.ctl .ctl-mist .ctl-card{background:#fff}
.ctl .ctl-cards3 .ctl-card,.ctl .ctl-cards4 .ctl-card{border:2px solid var(--ink);transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.ctl .ctl-cards3 .ctl-card:hover,.ctl .ctl-cards4 .ctl-card:hover{transform:translate(-4px,-4px);box-shadow:8px 8px 0 var(--tinta,var(--y))}
.ctl .ctl-cards3 .ctl-card-img img{aspect-ratio:4/3}
.ctl .ctl-cards4 .ctl-card-img img{aspect-ratio:1}
.ctl .ctl-card-img.ctl-ilu-bg{display:grid;place-items:center;aspect-ratio:4/3}
.ctl .ctl-card-img.ctl-ilu-bg img{width:58%;height:auto;aspect-ratio:1;object-fit:contain}
.ctl .ctl-card{position:relative;display:flex;flex-direction:column;background:#fff;color:var(--ink);text-decoration:none;overflow:hidden}
.ctl .ctl-dark .ctl-card{background:#1C1C21;color:#fff}
.ctl .ctl-card-img{position:relative;overflow:hidden;background:var(--tinta,var(--mist))}
.ctl .ctl-card-img img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform 1s var(--ease)}
.ctl .ctl-card:hover .ctl-card-img img{transform:scale(1.05)}
.ctl .ctl-card-tag{position:absolute;left:14px;top:14px;background:var(--tinta,var(--y));color:var(--ink);font:600 11px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;padding:8px 10px}
.ctl .ctl-card-b{display:flex;flex-direction:column;gap:8px;padding:22px 22px 26px}
.ctl .ctl-card-b b{font:800 24px/1.05 var(--sans);font-stretch:118%;letter-spacing:-.02em}
.ctl .ctl-card-b span{font-size:15px;line-height:1.5;opacity:.82}
.ctl .ctl-card-b em{font:700 14px/1 var(--sans);font-style:normal;margin-top:8px}
.ctl .ctl-card-b em::after{content:' →';transition:margin .2s}
.ctl .ctl-card:hover .ctl-card-b em::after{margin-left:4px}

/* ---------- Taller: mosaico de máquinas y lista de equipo ---------- */
.ctl .ctl-mosaico{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ctl .ctl-mosaico figure{margin:0;position:relative;overflow:hidden;background:#ddd}
.ctl .ctl-mosaico img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover;transition:transform 1s var(--ease)}
.ctl .ctl-mosaico figure:hover img{transform:scale(1.05)}
.ctl .ctl-mosaico figcaption{position:absolute;left:0;bottom:0;background:var(--ink);color:#fff;font:500 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:9px 11px}
.ctl .ctl-mosaico figure:nth-child(2){margin-top:44px}.ctl .ctl-mosaico figure:nth-child(4){margin-top:44px;margin-bottom:-44px}
.ctl .ctl-spec{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}
.ctl .ctl-spec li{display:grid;grid-template-columns:14px minmax(0,1fr);gap:4px 16px;padding:16px 0;border-bottom:1px solid var(--line)}
.ctl .ctl-spec li::before{content:'';grid-row:1/3;width:12px;height:12px;margin-top:6px;background:var(--tinta,var(--ink))}
.ctl .ctl-spec li:nth-child(4n+1){--tinta:var(--c)}.ctl .ctl-spec li:nth-child(4n+2){--tinta:var(--m)}.ctl .ctl-spec li:nth-child(4n+3){--tinta:var(--y)}.ctl .ctl-spec li:nth-child(4n){--tinta:var(--ink)}
.ctl .ctl-spec b{font:750 18px/1.25 var(--sans);font-stretch:108%}
.ctl .ctl-spec span{font-size:15px;line-height:1.5;color:var(--muted)}

/* ---------- Proceso ---------- */
.ctl .ctl-pasos{display:grid;grid-template-columns:repeat(4,1fr);gap:0 clamp(16px,2vw,28px);list-style:none;margin:0;padding:0;counter-reset:paso}
.ctl .ctl-pasos li{position:relative;padding:22px 0 0;border-top:2px solid var(--ink);counter-increment:paso}
.ctl .ctl-pasos li::before{content:counter(paso,decimal-leading-zero);display:block;font:900 clamp(56px,6vw,96px)/1 var(--sans);font-stretch:125%;letter-spacing:-.04em;color:transparent;-webkit-text-stroke:2px var(--tinta);margin-bottom:18px}
.ctl .ctl-pasos li:nth-child(1){--tinta:var(--c)}.ctl .ctl-pasos li:nth-child(2){--tinta:var(--m)}.ctl .ctl-pasos li:nth-child(3){--tinta:#D9BF00}.ctl .ctl-pasos li:nth-child(4){--tinta:var(--ink)}
.ctl .ctl-pasos b{display:block;font:780 21px/1.15 var(--sans);font-stretch:112%;margin-bottom:8px}
.ctl .ctl-pasos span{font-size:15.5px;line-height:1.55;color:var(--ink2)}

/* ---------- Clientes ---------- */
.ctl .ctl-logos{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.ctl .ctl-logos img{display:block;width:100%;height:auto;border:1px solid rgba(255,255,255,.12)}

/* ---------- Visita / contacto ---------- */
.ctl .ctl-visita{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,4vw,64px)!important;align-items:stretch}
.ctl .ctl-canales{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}
.ctl .ctl-canales li{border-bottom:1px solid var(--line)}
.ctl .ctl-canales a,.ctl .ctl-canales div{display:grid;grid-template-columns:120px minmax(0,1fr) auto;align-items:baseline;gap:16px;padding:18px 0;text-decoration:none}
.ctl .ctl-canales small{font:500 11.5px/1.2 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.ctl .ctl-canales b{font:780 clamp(19px,1.7vw,24px)/1.2 var(--sans);font-stretch:110%;letter-spacing:-.01em}
.ctl .ctl-canales i{font-style:normal;font-weight:600;transition:transform .25s var(--ease)}
.ctl .ctl-canales a:hover i{transform:translateX(5px)}
.ctl .ctl-canales a:hover b{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.ctl .ctl-horario{width:100%;margin:0;border-collapse:collapse;font-variant-numeric:tabular-nums}
.ctl .ctl-horario tbody>tr>td{text-align:right}
.ctl .ctl-horario th,.ctl .ctl-horario td,.ctl .ctl-horario tbody>tr:nth-child(odd)>*{padding:11px 0;border:0;border-bottom:1px solid var(--line);background:none;font-size:16px;line-height:1.4;vertical-align:baseline}
.ctl .ctl-horario th{font-weight:650;text-align:left}
.ctl .ctl-horario td{color:var(--ink2)}
.ctl .ctl-horario tr.cerrado td{color:var(--muted)}
.ctl .ctl-mapa{position:relative;min-height:380px;height:100%;background:var(--mist);border:2px solid var(--ink)}
.ctl .ctl-mapa iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(1) contrast(1.05);transition:filter .5s}
.ctl .ctl-mapa:hover iframe{filter:none}
.ctl .ctl-mapa-tapa{position:absolute;inset:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:14px;padding:24px;background:linear-gradient(0deg,rgba(17,17,20,.86),rgba(17,17,20,.25)),var(--fondo) center/cover;color:#fff}
.ctl .ctl-mapa-tapa b{font:850 clamp(22px,2.2vw,30px)/1.1 var(--sans);font-stretch:115%;letter-spacing:-.02em}
.ctl .ctl-mapa-tapa p{margin:0;font-size:14px;line-height:1.5;color:rgba(255,255,255,.8);max-width:46ch}
.ctl .ctl-mapa-tapa .ctl-mapa-bts{display:flex;flex-wrap:wrap;gap:12px}
.ctl .ctl-mapa-tapa button,.ctl .ctl-mapa-tapa a{font:700 14px/1 var(--sans);padding:13px 16px;border:2px solid #fff;background:#fff;color:var(--ink);cursor:pointer;text-decoration:none}
.ctl .ctl-mapa-tapa a{background:transparent;color:#fff}
.ctl .ctl-mapa-tapa button:hover{background:var(--y);border-color:var(--y);color:var(--ink)}
.ctl .ctl-mapa-tapa a:hover{background:#fff;color:var(--ink)}
.ctl .ctl-mapa .ctl-mapa-pin{position:absolute;left:14px;top:14px;z-index:2;background:var(--ink);color:#fff;font:500 11px/1.3 var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:9px 12px;max-width:calc(100% - 28px)}

/* ---------- Páginas interiores ---------- */
.ctl .ctl-phero{display:grid!important;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(28px,5vw,80px)!important;align-items:center;padding:clamp(36px,5vw,76px) max(var(--g),calc((100% - var(--max))/2)) clamp(48px,6vw,92px)!important;background:var(--mist);overflow:hidden}
.ctl .ctl-phero-txt{gap:24px!important;container-type:inline-size;min-width:0}
/* El titular de la cabecera se mide con su columna (cqi), no con la pantalla: con palabras largas («personalizada»,
   «personalización») ya no se mete en la foto. Si aun así una palabra no cabe, ctl.js reduce la letra lo justo. */
.ctl .ctl-phero .ctl-h1{font-size:clamp(32px,min(6.6vw,11.5cqi),104px)}
.ctl .ctl-phero-ilu{position:relative;aspect-ratio:1;width:100%;max-width:460px;justify-self:end;background:var(--tinta,var(--y));display:grid;place-items:center;margin:0}
.ctl .ctl-phero-ilu img{width:72%;height:72%;object-fit:contain;filter:drop-shadow(10px 12px 0 rgba(17,17,20,.12))}
.ctl .ctl-phero-ilu .ctl-regmark{color:var(--ink)}
.ctl .ctl-phero-foto{position:relative;width:100%;max-width:500px;justify-self:end;margin:0 18px 18px 0;box-shadow:18px 18px 0 var(--tinta,var(--y))}
.ctl .ctl-phero-foto img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover}
.ctl .ctl-phero-foto.ctl-ancha img{aspect-ratio:4/3}
.ctl .ctl-intro{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,80px)!important;align-items:center}
.ctl .ctl-intro .ctl-foto img{aspect-ratio:1;object-fit:cover}
.ctl .ctl-intro-solo>.e-con{max-width:900px}
.ctl .ctl-intro-solo .ctl-spec{margin-top:10px}
.ctl .ctl-foto img{display:block;width:100%}
.ctl .ctl-cv{display:grid!important;grid-template-columns:1fr 1fr;gap:clamp(16px,2vw,28px)!important}
.ctl .ctl-cv-card{border:2px solid var(--ink);padding:clamp(24px,3vw,40px)!important;gap:20px!important;background:#fff}
.ctl .ctl-cv-card.ctl-dark{border-color:var(--ink);background:var(--ink)}
.ctl ul.ctl-check{list-style:none;margin:0;padding:0;display:grid;gap:13px}
.ctl ul.ctl-check li{position:relative;padding-left:30px;line-height:1.5}
.ctl ul.ctl-check li::before{content:'';position:absolute;left:0;top:.36em;width:14px;height:14px;background:var(--tinta,var(--m));box-shadow:3px 3px 0 var(--ink)}
.ctl .ctl-dark ul.ctl-check li::before{box-shadow:3px 3px 0 rgba(255,255,255,.35)}
.ctl ul.ctl-check li strong{font-weight:680}
.ctl .ctl-apps{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.ctl .ctl-apps.n3{grid-template-columns:repeat(3,1fr)}.ctl .ctl-apps.n2{grid-template-columns:repeat(2,1fr)}
.ctl a.ctl-app,.ctl div.ctl-app{display:flex;flex-direction:column;justify-content:space-between;gap:24px;min-height:160px;padding:22px;background:#fff;border:2px solid var(--ink);text-decoration:none;color:var(--ink);transition:background-color .3s,transform .3s var(--ease),box-shadow .3s var(--ease)}
.ctl a.ctl-app:hover{background:var(--tinta,var(--y));transform:translate(-4px,-4px);box-shadow:6px 6px 0 var(--ink)}
.ctl .ctl-app b{font:760 20px/1.15 var(--sans);font-stretch:110%;letter-spacing:-.01em}
.ctl .ctl-app span{font:500 12px/1.3 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.ctl a.ctl-app:hover span{color:var(--ink)}
.ctl .ctl-app small{display:block;font:400 15px/1.5 var(--sans);color:var(--ink2);margin-top:8px}
.ctl .ctl-chips{display:flex;flex-wrap:wrap;gap:10px}
.ctl .ctl-chips a{font:600 14.5px/1 var(--sans);font-stretch:106%;padding:12px 16px;border:2px solid var(--ink);background:#fff;color:var(--ink);text-decoration:none;transition:background-color .2s,color .2s}
.ctl .ctl-chips a:hover,.ctl .ctl-chips a[aria-current]{background:var(--ink);color:#fff}
.ctl .ctl-dark .ctl-chips a{background:transparent;color:#fff;border-color:rgba(255,255,255,.5)}
.ctl .ctl-dark .ctl-chips a:hover{background:#fff;color:var(--ink)}
/* Galería con visor */
.ctl .ctl-gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:12px}
.ctl .ctl-gal a{position:relative;display:block;overflow:hidden;background:var(--mist);aspect-ratio:4/5}
.ctl .ctl-gal.ctl-gal-h a{aspect-ratio:4/3}
.ctl .ctl-gal img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.ctl .ctl-gal a:hover img{transform:scale(1.05)}
.ctl .ctl-gal a span{position:absolute;left:10px;bottom:10px;background:var(--ink);color:#fff;font:500 10.5px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:7px 9px;opacity:0;transform:translateY(6px);transition:opacity .3s,transform .3s}
.ctl .ctl-gal a:hover span,.ctl .ctl-gal a:focus-visible span{opacity:1;transform:none}
.ctl-lb{position:fixed;inset:0;z-index:300;background:rgba(17,17,20,.94);display:none;align-items:center;justify-content:center;padding:56px 16px 24px}
.ctl-lb.is-open{display:flex}
.ctl-lb img{max-width:min(1200px,100%);max-height:100%;object-fit:contain;box-shadow:0 30px 80px rgba(0,0,0,.5)}
.ctl-lb button{position:absolute;background:#fff;color:var(--ink);border:0;width:46px;height:46px;font:600 20px/1 var(--sans);cursor:pointer}
.ctl-lb button:hover{background:var(--y);color:var(--ink)}
.ctl-lb .x{top:14px;right:14px}.ctl-lb .p{left:14px;top:50%}.ctl-lb .n{right:14px;top:50%}
/* Equipo */
.ctl .ctl-equipo{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.ctl .ctl-persona{display:flex;flex-direction:column;gap:14px;padding:22px;border:2px solid var(--ink);background:#fff}
.ctl .ctl-ini{width:76px;height:76px;display:grid;place-items:center;background:var(--tinta,var(--y));font:900 26px/1 var(--sans);font-stretch:125%;letter-spacing:-.03em;box-shadow:5px 5px 0 var(--ink)}
.ctl .ctl-persona b{font:780 20px/1.15 var(--sans);font-stretch:110%}
.ctl .ctl-persona>span:not(.ctl-ini){font:500 12px/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
/* Sol's */
.ctl .ctl-sols img{display:block;width:100%}
/* Formulario */
.ctl .ctl-formsec{display:grid!important;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(28px,5vw,80px)!important;align-items:start}
.ctl .ctl-formsec>.e-con:first-child{gap:20px!important;position:sticky;top:120px}
.ctl .ctl-form{position:relative;background:#fff;border:2px solid var(--ink);padding:clamp(22px,3vw,40px);box-shadow:10px 10px 0 var(--tinta,var(--c))}
.ctl .ctl-form-g{display:grid;grid-template-columns:1fr 1fr;gap:18px 18px}
.ctl .ctl-campo{display:flex;flex-direction:column;gap:8px;margin:0}
.ctl .ctl-campo>span{font:600 11.5px/1.2 var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--ink)}
.ctl .ctl-campo small{font:400 12px/1.2 var(--mono);letter-spacing:0;text-transform:none;color:var(--muted);margin-left:6px}
.ctl .ctl-ancho{grid-column:1/-1}
.ctl :is(.ctl-form,.ctl-perso) :is(input[type=text],input[type=email],input[type=tel],input[type=number],select,textarea){width:100%;font:400 16px/1.4 var(--sans);color:var(--ink);background:#fff;border:2px solid var(--ink);border-radius:0;padding:13px 14px;box-shadow:none;transition:box-shadow .2s}
.ctl :is(.ctl-form,.ctl-perso) :is(input,select,textarea):focus{outline:none;box-shadow:4px 4px 0 var(--c)}
.ctl :is(.ctl-form,.ctl-perso) select:not([multiple]){appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px;background-repeat:no-repeat;padding-right:38px}
.ctl .ctl-acepto{display:flex;gap:12px;align-items:flex-start;margin:20px 0 22px;font-size:14.5px;line-height:1.45;color:var(--ink2)}
.ctl .ctl-acepto input{width:20px;height:20px;margin:1px 0 0;accent-color:var(--ink);flex:none}
.ctl .ctl-acepto a{text-decoration:underline}
.ctl .ctl-hp{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
.ctl .ctl-aviso{padding:16px 18px;border:2px solid var(--ink);margin:0 0 20px;font-size:15.5px;line-height:1.5}
.ctl .ctl-aviso-ok{background:var(--y)}.ctl .ctl-aviso-err{background:#FFE3EF}
.ctl .ctl-aviso a{text-decoration:underline}
.ctl .ctl-contactos{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:10px}
.ctl .ctl-contactos a{display:flex;gap:12px;align-items:center;font:700 17px/1.2 var(--sans);font-stretch:106%;text-decoration:none}
.ctl .ctl-contactos a::before{content:'';width:10px;height:10px;background:var(--tinta,var(--m))}
.ctl .ctl-contactos a:hover{text-decoration:underline}
.ctl .ctl-contactos li:nth-child(1){--tinta:var(--c)}.ctl .ctl-contactos li:nth-child(3){--tinta:var(--y)}
/* Textos legales */
.ctl .ctl-legal{max-width:78ch!important}
.ctl .ctl-legal h2{font:800 26px/1.15 var(--sans);font-stretch:112%;margin:1.6em 0 .5em}
.ctl .ctl-legal h2:first-child{margin-top:0}
.ctl .ctl-legal .ctl-pendiente{background:#FFF3A3;padding:0 .2em}

/* ---------- Cabecera ---------- */
.ctl-top{background:var(--ink);color:#E8E8E4;font:500 12px/1.3 var(--mono);letter-spacing:.04em}
.ctl-top-in{max-width:var(--max);margin:0 auto;padding:9px var(--g);display:flex;justify-content:space-between;gap:12px 28px;flex-wrap:wrap}
.ctl .ctl-top p{margin:0;display:flex;gap:22px}
.ctl .ctl-top a{text-decoration:none}.ctl .ctl-top a:hover{color:var(--y)}
.ctl-head{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.95);-webkit-backdrop-filter:saturate(1.4) blur(12px);backdrop-filter:saturate(1.4) blur(12px);border-bottom:2px solid var(--ink)}
.admin-bar .ctl-head{top:32px}
.ctl-head-in{max-width:var(--max);margin:0 auto;padding:0 var(--g);height:76px;display:flex;align-items:center;gap:26px}
.ctl-logo{flex:none;display:block}
.ctl-logo img{display:block;height:36px;width:auto}
.ctl-nav{margin-left:auto}
.ctl-menu{display:flex;align-items:center;gap:2px;list-style:none;margin:0;padding:0}
.ctl-menu>li{position:relative}
.ctl .ctl-menu>li>a{position:relative;display:block;padding:27px 11px;font:650 15px/1 var(--sans);font-stretch:106%;letter-spacing:-.005em;text-decoration:none;white-space:nowrap}
.ctl-menu>li>a::after{content:'';position:absolute;left:11px;right:11px;bottom:19px;height:3px;background:var(--m);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.ctl-menu>li:hover>a::after,.ctl-menu>li:focus-within>a::after,.ctl-menu>li.current-menu-item>a::after,.ctl-menu>li.current-menu-ancestor>a::after,.ctl-menu>li.current_page_ancestor>a::after{transform:scaleX(1)}
.ctl-menu>li:nth-child(4n+1)>a::after{background:var(--c)}.ctl-menu>li:nth-child(4n+3)>a::after{background:#E6CB00}
.ctl-menu .sub-menu{position:absolute;top:calc(100% - 6px);left:0;min-width:250px;margin:0;padding:8px 0;list-style:none;background:#fff;border:2px solid var(--ink);box-shadow:8px 8px 0 var(--c);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .2s,transform .25s var(--ease),visibility 0s .25s;z-index:5}
.ctl-menu>li:hover>.sub-menu,.ctl-menu>li:focus-within>.sub-menu{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.ctl .ctl-menu .sub-menu a{display:block;padding:10px 20px;font:500 15px/1.3 var(--sans);text-decoration:none}
.ctl .ctl-menu .sub-menu a:hover,.ctl .ctl-menu .sub-menu .current-menu-item>a{background:var(--mist);box-shadow:inset 4px 0 0 var(--m)}
.ctl-nav-extra{display:none}
.ctl .ctl-sub-t{display:none}
.ctl-acc{display:flex;align-items:center;gap:12px;flex:none}
.ctl .ctl-acc-presu{font:700 14px/1 var(--sans);font-stretch:108%;padding:13px 16px;background:var(--y);color:var(--ink);border:2px solid var(--ink);box-shadow:4px 4px 0 var(--ink);text-decoration:none;white-space:nowrap;transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.ctl .ctl-acc-presu:hover{transform:translate(4px,4px);box-shadow:0 0 0 var(--ink)}
.ctl .ctl-acc-cart{position:relative;display:grid;place-items:center;width:46px;height:46px;text-decoration:none}
.ctl .ctl-acc-cart:hover{color:var(--m)}
.ctl-cart-n{position:absolute;top:3px;right:0;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--m);color:#fff;font:700 11px/20px var(--sans);text-align:center}
.ctl-cart-n[data-n="0"]{display:none}
.ctl-cart-n.is-bump{animation:ctl-bump .5s var(--ease)}
@keyframes ctl-bump{40%{transform:scale(1.4)}}
.ctl .ctl-burger{display:none;width:46px;height:46px;padding:12px 10px;background:none;border:2px solid var(--ink);cursor:pointer;flex-direction:column;justify-content:space-between}
.ctl .ctl-burger span{display:block;height:2px;background:var(--ink);transition:transform .3s var(--ease),opacity .2s}
.ctl .ctl-burger[aria-expanded=true] span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.ctl .ctl-burger[aria-expanded=true] span:nth-child(2){opacity:0}
.ctl .ctl-burger[aria-expanded=true] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

/* ---------- Pie ---------- */
.ctl-foot{background:var(--ink);color:#EDEDEA;overflow:hidden}
.ctl-foot-cta{max-width:var(--max);margin:0 auto;padding:clamp(64px,8vw,120px) var(--g) clamp(48px,6vw,80px);display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:28px 40px;border-bottom:1px solid rgba(255,255,255,.14)}
.ctl .ctl-foot-h{margin:0;font:900 clamp(40px,5vw,78px)/.92 var(--sans);font-stretch:125%;letter-spacing:-.035em;max-width:12ch;color:#fff}
.ctl-foot-h em{font-style:normal;color:var(--y)}
.ctl-foot-btns{display:flex;flex-wrap:wrap;gap:16px 20px}
.ctl-foot-g{max-width:var(--max);margin:0 auto;padding:clamp(40px,5vw,64px) var(--g);display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr 1fr;gap:32px}
.ctl-foot-g h2{margin:0 0 14px;font:500 11.5px/1.2 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:rgba(237,237,234,.55)}
.ctl .ctl-foot-g p{margin:0 0 .6em;font-size:15.5px;line-height:1.6}
.ctl-foot-g ul{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:15.5px}
.ctl .ctl-foot-g a{text-decoration:none}.ctl .ctl-foot-g a:hover{color:var(--y)}
.ctl-foot-marca img{display:block;width:190px;height:auto;margin-bottom:18px}
.ctl-foot-marca p{max-width:30ch;color:rgba(237,237,234,.72)}
.ctl .ctl-foot-link{border-bottom:1px solid currentColor}
.ctl .ctl-foot-firma{margin:0 0 -.16em;padding:0;font:900 15.2vw/.8 var(--sans);font-stretch:125%;letter-spacing:-.055em;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.22);white-space:nowrap;text-align:center;user-select:none;overflow:hidden}
.ctl-foot-legal{position:relative;background:var(--ink);max-width:var(--max);margin:0 auto;padding:18px var(--g) 22px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 24px;border-top:1px solid rgba(255,255,255,.14);font:500 12px/1.4 var(--mono);letter-spacing:.04em;color:rgba(237,237,234,.6)}
.ctl .ctl-foot-legal p{margin:0;display:flex;gap:20px}
.ctl .ctl-foot-legal a{text-decoration:none}.ctl .ctl-foot-legal a:hover{color:#fff}
/* WhatsApp fijo */
.ctl .ctl-wa{position:fixed;right:18px;bottom:18px;z-index:90;display:flex;align-items:center;gap:10px;padding:12px 18px 12px 14px;background:#1FAF55;color:#fff;font:700 14.5px/1 var(--sans);text-decoration:none;border:2px solid var(--ink);box-shadow:5px 5px 0 var(--ink);transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.ctl .ctl-wa:hover{color:#fff;transform:translate(5px,5px);box-shadow:0 0 0 var(--ink)}
.ctl .ctl-wa svg{flex:none}

/* ---------- Entradas al hacer scroll (las pone ctl.js; sin JS todo se ve) ---------- */
.ctl-anim .ctl [data-ctl-rv]{opacity:0;transform:translateY(28px)}

/* ---------- Responsive ---------- */
@media (max-width:1320px){.ctl-acc-presu{display:none}}
@media (max-width:1180px){
 .ctl .ctl-burger{display:flex}
 /* Sin el efecto cristal: backdrop-filter convierte la cabecera en el marco de los elementos fijos y el panel del
    menú quedaría medido respecto a ella en vez de a la pantalla */
 .ctl-head{-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff}
 .ctl-head-in{height:68px}
 .ctl-nav{position:fixed;left:0;right:0;top:var(--nav-top,110px);bottom:0;z-index:99;background:#fff;overflow-y:auto;padding:12px var(--g) 40px;border-top:2px solid var(--ink);transform:translateX(100%);visibility:hidden;transition:transform .4s var(--ease),visibility 0s .4s}
 .ctl-nav.is-open{transform:none;visibility:visible;transition-delay:0s}
 .ctl-menu{flex-direction:column;align-items:stretch;gap:0}
 .ctl-menu>li{border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;align-items:center}
 .ctl .ctl-menu>li>a{flex:1;padding:20px 0;font-size:22px;font-weight:780;font-stretch:115%}
 .ctl-menu>li>a::after{display:none}
 .ctl .ctl-sub-t{display:grid;place-items:center;width:46px;height:46px;border:2px solid var(--ink);background:#fff;font:600 20px/1 var(--sans);cursor:pointer;color:var(--ink)}
 .ctl .ctl-sub-t[aria-expanded=true]{background:var(--ink);color:#fff}
 .ctl-menu .sub-menu{position:static;flex-basis:100%;min-width:0;border:0;box-shadow:none;padding:0 0 14px;opacity:1;visibility:visible;transform:none;display:none}
 .ctl-menu .sub-menu.is-open{display:block}
 .ctl .ctl-menu .sub-menu a{padding:10px 0 10px 16px;font-size:17px}
 .ctl-nav-extra{display:flex;flex-direction:column;align-items:flex-start;gap:16px;margin-top:28px}
 .ctl .ctl-nav-extra p{margin:0;font:500 14px/1.4 var(--mono)}
 body.ctl-menu-abierto{overflow:hidden}
 .ctl .ctl-servs{grid-template-columns:repeat(2,1fr)}
 .ctl .ctl-apps{grid-template-columns:repeat(2,1fr)}
 .ctl .ctl-cards4{grid-template-columns:repeat(2,1fr)}
 .ctl .ctl-equipo{grid-template-columns:repeat(3,1fr)}
 .ctl-foot-g{grid-template-columns:1fr 1fr 1fr}
 .ctl-foot-marca{grid-column:1/-1}
}
@media (max-width:1024px){
 .ctl .ctl-hero{grid-template-columns:1fr;min-height:0}
 .ctl .ctl-collage{justify-self:center;max-width:560px}
 .ctl .ctl-split,.ctl .ctl-split.ctl-inv,.ctl .ctl-intro,.ctl .ctl-formsec,.ctl .ctl-visita{grid-template-columns:1fr}
 .ctl .ctl-formsec>.e-con:first-child{position:static}
 .ctl .ctl-phero{grid-template-columns:1fr}
 .ctl .ctl-phero-ilu,.ctl .ctl-phero-foto{justify-self:start;max-width:420px}
 .ctl .ctl-pasos{grid-template-columns:1fr 1fr;gap:34px 22px}
 .ctl .ctl-cards3{grid-template-columns:1fr 1fr}
}
@media (max-width:767px){
 body.ctl{font-size:16px}
 .ctl-top-a{display:none}
 .ctl-top-b{width:100%;justify-content:space-between;gap:10px}
 .ctl-top-b a:last-child{display:none}
 .ctl-logo img{height:30px}
 .ctl .ctl-duo,.ctl .ctl-cards2,.ctl .ctl-cards3,.ctl .ctl-cv,.ctl .ctl-logos{grid-template-columns:1fr}
 .ctl .ctl-servs{grid-template-columns:1fr 1fr}
 .ctl .ctl-serv{min-height:250px;padding:18px 16px 20px}
 .ctl .ctl-serv-d{display:none}
 .ctl .ctl-apps,.ctl .ctl-apps.n3{grid-template-columns:1fr}
 .ctl .ctl-equipo{grid-template-columns:1fr 1fr}
 .ctl .ctl-pasos{grid-template-columns:1fr}
 .ctl .ctl-form-g{grid-template-columns:1fr}
 .ctl .ctl-canales a,.ctl .ctl-canales div{grid-template-columns:1fr auto;gap:4px 12px}
 .ctl .ctl-canales small{grid-column:1/-1}
 .ctl .ctl-mosaico figure:nth-child(2),.ctl .ctl-mosaico figure:nth-child(4){margin:0}
 .ctl-foot-g{grid-template-columns:1fr 1fr}
 .ctl .ctl-wa span{display:none}
 .ctl .ctl-prueba{padding:6px 6px 24px}
 .ctl .ctl-prueba figcaption{left:7px;right:7px;bottom:7px;font-size:9px}
 .ctl .ctl-prueba figcaption i{display:none}
 .ctl-foot-cta{grid-template-columns:1fr}
 .ctl .ctl-wa{padding:12px}
}
@media (prefers-reduced-motion:reduce){
 .ctl *{animation:none!important;transition:none!important}
 .ctl-anim .ctl [data-ctl-rv]{opacity:1;transform:none}
}
