/* =========================================================
   We Sol — estilos de la landing (Elementor + Elementor Pro)  v1.1
   Las clases we-* se asignan en Avanzado > Clases CSS de cada
   elemento. Lo que cambies desde el panel de Elementor tiene
   prioridad sobre estas reglas.
   ========================================================= */
:root{
  --we-orange:#EF7F2D;
  --we-orange-dark:#d96c1d;
  --we-black:#000;
  --we-text:#474747;
  --we-line:#D9D9D9;
  --we-tint:rgba(68,107,164,.04);
  --we-serif:"Nanum Myeongjo",Georgia,serif;
  --we-sans:"Albert Sans",Helvetica,Arial,sans-serif;
  --we-nav:"Raleway",Helvetica,Arial,sans-serif;
  --we-radius-lg:50px;
  --we-radius-md:40px;
  /* 1 píxel del diseño de 1600px, escalado al ancho de la página (máx. 1px) */
  --we-cw:100vw;
  --u:min(1px, calc(var(--we-cw) / 1600));
  --we-gutter:max(calc(65 * var(--u)), calc((var(--we-cw) - 1470px) / 2));
}
@supports (width:1cqw){
  :root{--we-cw:100cqw}
  .elementor:has(.we-hero){container-type:inline-size}
}
html{scroll-behavior:smooth}
.elementor [id]{scroll-margin-top:20px}
/* Suavizado de letra fino (como en Figma); sin esto macOS dibuja las letras más gruesas */
body,.elementor{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}

/* Tipografías del diseño en todo el contenido (evita la fuente global de Elementor, p. ej. Roboto) */
.elementor .e-con .elementor-widget-text-editor,
.elementor .e-con .elementor-widget-text-editor p,
.elementor .e-con .elementor-heading-title,
.elementor .e-con .elementor-button,
.elementor .e-con .elementor-field,
.elementor .e-con .elementor-message{font-family:var(--we-sans)}
.elementor .e-con .we-serif{font-family:var(--we-serif);font-weight:400}
.elementor .e-con .we-xlight{font-family:var(--we-sans);font-weight:200}
.elementor .e-con .we-reg{font-family:var(--we-sans);font-weight:400}

@media (min-width:768px){
/* ===== ESCRITORIO Y TABLET (≥768px) =====
   Todas las medidas salen del diseño de 1600px de ancho y se escalan
   proporcionalmente con el ancho de la pantalla (igual que el prototipo de Figma).
   (n * var(--u)) = n píxeles del diseño. */

/* ---------- reset de contenedores we-* ---------- */
.elementor .e-con[class*="we-"]{--padding-top:0px;--padding-right:0px;--padding-bottom:0px;--padding-left:0px;--gap:0px;--row-gap:0px;--column-gap:0px;--width:auto;--min-height:0;--margin-top:0px;--margin-bottom:0px;--display:flex}
.elementor .e-con[class*="we-"] > .elementor-widget{margin:0}

/* Ninguna sección se encoge por debajo de su contenido (evita cortes abajo) */
.elementor .e-con.e-parent[class*="we-"],.elementor > .e-con[class*="we-"]{flex-shrink:0 !important;max-height:none}

/* ---------- tipografía base ---------- */
.elementor .we-h2 .elementor-heading-title{font-family:var(--we-sans);font-weight:200;font-size:max(24px, calc(50 * var(--u)));line-height:1.24;letter-spacing:.01em;color:var(--we-black)}
.elementor .we-body,.elementor .we-body p{font-family:var(--we-sans);font-weight:300;font-size:max(12px, calc(15 * var(--u)));line-height:1.7334;letter-spacing:.1em;color:var(--we-text)}
.elementor .we-body p{margin:0 0 1.7334em}
.elementor .we-body p:last-child{margin-bottom:0}
.elementor .we-body strong{font-weight:600}
.elementor .we-center .elementor-heading-title{text-align:center}

.elementor .we-accent .elementor-divider{padding:0 !important;line-height:0}
.elementor .we-accent .elementor-divider-separator{display:block;width:calc(60 * var(--u)) !important;min-width:30px;border-top:2px solid var(--we-orange) !important;margin:0}
.elementor .we-accent-center .elementor-divider-separator{margin:0 auto}

/* botones */
.elementor .we-btn .elementor-button{white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;min-height:max(42px,calc(68 * var(--u)));padding:0 calc(30 * var(--u));border-radius:100px;font-family:var(--we-sans);font-weight:500;font-size:max(12px, calc(18 * var(--u)));letter-spacing:.1em;text-transform:uppercase;line-height:1.15;text-align:center;transition:background-color .3s,color .3s,border-color .3s}
.elementor .we-btn-solid .elementor-button{background-color:var(--we-orange) !important;color:#fff !important;border:1px solid var(--we-orange)}
.elementor .we-btn-solid .elementor-button:hover,.elementor .we-btn-solid .elementor-button:focus{background-color:var(--we-orange-dark) !important;border-color:var(--we-orange-dark);color:#fff !important}
.elementor .we-btn-outline .elementor-button{background-color:transparent !important;color:#fff !important;border:1px solid #fff}
.elementor .we-btn-outline .elementor-button:hover,.elementor .we-btn-outline .elementor-button:focus{background-color:#fff !important;color:#111 !important}
.elementor .we-btn-arrow .elementor-button{padding:0 calc(28 * var(--u))}
.elementor .we-btn-arrow .elementor-button-text::after{content:"";display:inline-block;width:calc(9 * var(--u));height:calc(9 * var(--u));min-width:6px;min-height:6px;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;transform:rotate(45deg);margin-left:calc(22 * var(--u));position:relative;top:-1px;transition:transform .3s}
.elementor .we-btn-arrow .elementor-button:hover .elementor-button-text::after{transform:translateX(4px) rotate(45deg)}
.elementor .we-btn-center{align-self:center}

/* =================== HEADER =================== */
.elementor .e-con.we-header{--flex-direction:row;--justify-content:space-between;--align-items:center;height:max(60px,calc(98 * var(--u)));padding:0 var(--we-gutter);background:#fff;position:relative;z-index:50}
.elementor .we-logo img{width:max(96px,calc(186 * var(--u)));height:auto;display:block}
.elementor .we-nav{display:flex;align-items:center}
.elementor .we-nav ul{list-style:none;margin:0;padding:0}
.elementor .we-menu{display:flex;align-items:center;gap:calc(100 * var(--u))}
.elementor .we-menu > li{position:relative;display:flex;align-items:center;gap:calc(8 * var(--u))}
.elementor .we-menu a{font-family:var(--we-nav);font-weight:500;font-size:max(12px, calc(19 * var(--u)));letter-spacing:.07em;text-transform:uppercase;color:#000;text-decoration:none;transition:color .25s}
.elementor .we-menu a:hover,.elementor .we-menu a.is-current{color:rgba(0,0,0,.5)}
.elementor .we-sub-toggle{background:none;border:0;padding:4px;cursor:pointer;color:#000;display:flex;line-height:0}
.elementor .we-sub-toggle svg{width:max(12px,calc(18 * var(--u)));height:auto}
.elementor .we-sub-toggle:hover,.elementor .we-sub-toggle:focus{background:none;color:var(--we-orange)}
.elementor .we-sub{position:absolute;top:calc(100% + calc(18 * var(--u)));left:calc(-24 * var(--u));min-width:max(200px,calc(260 * var(--u)));background:#fff;box-shadow:0 18px 40px rgba(0,0,0,.08);padding:calc(14 * var(--u)) 0 !important;opacity:0;visibility:hidden;transform:translateY(8px);transition:all .25s}
.elementor .we-sub li a{display:block;padding:calc(10 * var(--u)) calc(24 * var(--u));font-size:max(12px, calc(15 * var(--u)))}
.elementor .we-has-sub:hover .we-sub,.elementor .we-has-sub.is-open .we-sub{opacity:1;visibility:visible;transform:none}
.elementor .we-burger{display:none}

/* =================== HERO =================== */
.elementor .e-con.we-hero{position:relative;height:min(calc(880 * var(--u)), calc(100vh - max(60px,calc(98 * var(--u)))));min-height:max(420px,calc(600 * var(--u)));overflow:hidden;--justify-content:center;background:#222}
.elementor .e-con.we-hero-slides{position:absolute;inset:0;z-index:0}
.elementor .we-hero-slides .we-hero-slide{position:absolute;inset:0;opacity:0;transition:opacity 1.4s ease}
.elementor .we-hero-slides .we-hero-slide:first-child,.elementor .we-hero-slides .we-hero-slide.is-active{opacity:1}
.elementor .we-hero-slides.is-ready .we-hero-slide:first-child:not(.is-active){opacity:0}
.elementor .we-hero-slide .elementor-widget-container{height:100%}
.elementor .we-hero-slide img{width:100%;height:100%;object-fit:cover;display:block}
.elementor .e-con.we-hero-slides::after{content:"";position:absolute;inset:0;background:linear-gradient(to left,rgba(0,0,0,.3) 40%,rgba(0,0,0,.6) 80%);pointer-events:none;z-index:2}
.elementor .we-hero-lines-w{position:absolute !important;left:calc(50% + calc(99 * var(--u)));top:calc(5 * var(--u));width:calc(659 * var(--u));height:calc(926 * var(--u));z-index:1;pointer-events:none;margin:0}
.elementor .we-hero-lines-w .elementor-widget-container,.elementor .we-hero-lines-w .elementor-shortcode{height:100%}
.we-hero-lines{width:100%;height:100%;mix-blend-mode:screen}
.we-hero-lines svg{display:block;width:100%;height:100%;overflow:visible}
.we-hero-lines.is-figma{opacity:.1}
.we-hero-lines.is-fallback{opacity:.2}
.elementor .e-con.we-hero-content{position:relative;z-index:3;width:calc(720 * var(--u));margin-left:calc(var(--we-gutter) + calc(95 * var(--u)))}
.elementor .we-hero-title .elementor-heading-title{font-family:var(--we-sans);color:#fff;text-transform:uppercase;font-size:max(30px, calc(80 * var(--u)));letter-spacing:.07em}
.elementor .we-hero-title .we-serif{display:block;max-width:8.2em;line-height:1}
.elementor .we-hero-title .we-xlight{display:block;font-weight:200;font-size:.925em;line-height:1.081}
.elementor .we-hero-sub,.elementor .we-hero-sub p{font-family:var(--we-sans);color:#fff;font-weight:300;font-size:max(13px, calc(24 * var(--u)));letter-spacing:.07em;line-height:1.2;margin:0}
.elementor .we-hero-sub{margin-top:calc(40 * var(--u)) !important}
.elementor .we-hero-content .we-btn{margin-top:calc(50 * var(--u)) !important}
.we-dots{position:absolute;z-index:4;right:calc(var(--we-gutter) - calc(15 * var(--u)));bottom:calc(50 * var(--u));display:flex;gap:calc(18 * var(--u))}
.we-dots button{width:max(10px,calc(20 * var(--u)));height:max(10px,calc(20 * var(--u)));border-radius:50%;border:1px solid rgba(255,255,255,.8);background:transparent;padding:0;cursor:pointer;transition:background .3s}
.we-dots button.is-active,.we-dots button:hover,.we-dots button:focus{background:#fff}

/* =================== DESCRIPCIÓN =================== */
.elementor .e-con.we-desc{background:var(--we-tint);padding:calc(100 * var(--u)) var(--we-gutter);--align-items:center;--justify-content:center;min-height:calc(334 * var(--u))}
.elementor .we-desc-text{width:calc(817 * var(--u))}
.elementor .we-desc-text,.elementor .we-desc-text p{font-family:var(--we-sans);font-weight:300;font-size:max(14px, calc(24 * var(--u)));line-height:1.875;letter-spacing:.1em;color:#000;text-align:center;margin:0}

/* =================== BLOQUES TEXTO + IMAGEN =================== */
.elementor .e-con.we-split{--flex-direction:row;--align-items:center;--justify-content:flex-start;--gap:calc(70 * var(--u));--row-gap:calc(70 * var(--u));--column-gap:calc(70 * var(--u));flex-wrap:nowrap}
.elementor .e-con.we-textcol{--gap:calc(24 * var(--u));--row-gap:calc(24 * var(--u));--column-gap:calc(24 * var(--u));flex:0 0 calc(625 * var(--u));width:calc(625 * var(--u));max-width:none}
.elementor .e-con.we-right{--align-items:flex-end}
.elementor .we-right .elementor-heading-title,.elementor .we-right .we-body,.elementor .we-right .we-body p{text-align:right}
.elementor .we-right .we-accent .elementor-divider-separator{margin-left:auto}
.elementor .e-con.we-media{flex:0 0 calc(680 * var(--u));width:calc(680 * var(--u));aspect-ratio:1/1;border-radius:max(20px,calc(50 * var(--u)));overflow:hidden}
.elementor .we-media .we-media-img,.elementor .we-media .we-media-img .elementor-widget-container{height:100%;width:100%}
.elementor .we-media .we-media-img img{width:100%;height:100%;object-fit:cover;display:block;border-radius:max(20px,calc(50 * var(--u)))}

/* Info 1: collage 680×680 (foto 560 + foto 338 con borde blanco de 20) */
.elementor .e-con.we-info1{padding:calc(100 * var(--u)) calc(var(--we-gutter) + calc(95 * var(--u))) 0 var(--we-gutter)}
.elementor .e-con.we-collage{position:relative;flex:0 0 calc(680 * var(--u));width:calc(680 * var(--u));aspect-ratio:1/1}
.elementor .we-collage-main{position:absolute !important;left:0;top:0;width:82.353%;height:82.353%}
.elementor .we-collage-main .elementor-widget-container,.elementor .we-collage-small .elementor-widget-container{height:100%}
.elementor .we-collage-main img{width:100%;height:100%;object-fit:cover;border-radius:max(20px,calc(50 * var(--u)));display:block;transition:transform .4s ease-out}
.elementor .we-collage-small{position:absolute !important;right:0;bottom:0;width:49.706%;height:49.706%;z-index:2}
.elementor .we-collage-small img{width:100%;height:100%;object-fit:cover;border-radius:max(20px,calc(50 * var(--u)));border:calc(20 * var(--u)) solid #fff;box-sizing:border-box;display:block}

/* Info 2 */
.elementor .e-con.we-info2{padding:calc(100 * var(--u)) var(--we-gutter) calc(100 * var(--u)) calc(var(--we-gutter) + calc(95 * var(--u)))}

/* One connected experience (imagen 680×550) */
.elementor .e-con.we-connected{padding:calc(100 * var(--u)) calc(var(--we-gutter) + calc(95 * var(--u))) calc(100 * var(--u)) var(--we-gutter)}
.elementor .e-con.we-media-wide{aspect-ratio:680/550}
.elementor .we-connected .we-title .elementor-heading-title{max-width:calc(577 * var(--u))}

/* =================== SERVICIOS =================== */
.elementor .e-con.we-services{padding:calc(100 * var(--u)) var(--we-gutter);overflow:hidden}
.elementor .e-con.we-services-head{--flex-direction:row;--justify-content:space-between;--align-items:flex-end}
.elementor .we-kicker .elementor-heading-title{font-family:var(--we-serif);font-size:max(12px, calc(20 * var(--u)));letter-spacing:.4em;color:var(--we-orange);font-weight:400;line-height:1.35;margin:0}
.elementor .we-services .we-h2 .elementor-heading-title{max-width:calc(375 * var(--u))}
.elementor .we-arrows-w{padding-bottom:calc(8 * var(--u))}
.we-arrows{display:flex;gap:calc(50 * var(--u))}
.we-arrows button,.we-who-arrow{width:max(32px,calc(50 * var(--u)));height:max(32px,calc(50 * var(--u)));border-radius:50%;border:1px solid var(--we-orange);background:transparent;color:var(--we-orange);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:background .25s,color .25s,opacity .25s}
.we-arrows button:hover,.we-who-arrow:hover{background:var(--we-orange);color:#fff}
.we-arrows button:focus,.we-who-arrow:focus{background:transparent;color:var(--we-orange);outline:2px solid rgba(239,127,45,.35);outline-offset:2px}
.we-arrows button[disabled]{opacity:.35;cursor:default}
.we-arrows svg,.we-who-arrow svg{width:calc(12 * var(--u));height:calc(20 * var(--u));min-width:8px;min-height:14px}

.elementor .e-con.we-track{--flex-direction:row;--flex-wrap:nowrap;--gap:calc(30 * var(--u));--row-gap:calc(30 * var(--u));--column-gap:calc(30 * var(--u));flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.elementor .e-con.we-track::-webkit-scrollbar{display:none}
.elementor .e-con.we-track-services{margin-top:calc(40 * var(--u))}
.elementor .e-con.we-card{flex:0 0 calc(345 * var(--u));width:calc(345 * var(--u));height:calc(480 * var(--u));border-radius:max(18px,calc(40 * var(--u)));overflow:hidden;position:relative;--justify-content:flex-end;padding:0 calc(20 * var(--u)) calc(30 * var(--u));scroll-snap-align:start;background:#c9cdd3}
.elementor .we-card-img{position:absolute !important;inset:0;z-index:0;margin:0}
.elementor .we-card-img .elementor-widget-container{height:100%}
.elementor .we-card-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s ease}
.elementor .e-con.we-card::before{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,0) 40%,rgba(0,0,0,.4) 80%);transition:background .45s;z-index:1;border-radius:inherit;pointer-events:none}
.elementor .e-con.we-card > .elementor-widget:not(.we-card-img){position:relative;z-index:2}
.elementor .we-card-title .elementor-heading-title{font-family:var(--we-serif);font-size:max(17px, calc(30 * var(--u)));line-height:1.15;color:#fff;font-weight:400}
.elementor .we-card-text,.elementor .we-card-text p{font-family:var(--we-sans);color:#fff;font-size:max(12px, calc(15 * var(--u)));line-height:1.7334;font-weight:400;letter-spacing:0;margin:0}
.elementor .we-card-text{max-height:0;opacity:0;overflow:hidden;transform:translateY(12px);transition:max-height .5s ease,opacity .4s ease,transform .4s ease,margin .4s}
@media (hover:hover){
  .elementor .e-con.we-card:hover::before{background:linear-gradient(to bottom,rgba(0,0,0,.05) 15%,rgba(0,0,0,.72) 75%)}
  .elementor .e-con.we-card:hover .we-card-img img{transform:scale(1.04)}
  .elementor .e-con.we-card:hover .we-card-text{max-height:calc(200 * var(--u));opacity:1;transform:none;margin-top:calc(20 * var(--u)) !important}
}
@media (hover:none){
  .elementor .we-card-text{max-height:none;opacity:1;transform:none;margin-top:calc(20 * var(--u)) !important}
}
.we-track-dots{display:flex;justify-content:center;gap:calc(18 * var(--u));margin-top:calc(50 * var(--u))}
.we-track-dots button{width:max(10px,calc(20 * var(--u)));height:max(10px,calc(20 * var(--u)));border-radius:50%;border:1px solid var(--we-line);background:transparent;padding:0;cursor:pointer}
.we-track-dots button.is-active,.we-track-dots button:hover,.we-track-dots button:focus{background:var(--we-line)}
.elementor .we-services .we-btn-center{margin-top:calc(50 * var(--u)) !important}
.elementor .we-services .we-btn-center .elementor-button{padding:0 calc(24 * var(--u))}

/* =================== CORE TECHNOLOGIES =================== */
/* Medidas exactas del diseño: recuadro 410×978, lista 905 de ancho,
   cada tecnología: título 30 · 5 · descripción (2 líneas de 26) · 11 · línea · ~10 */
.elementor .e-con.we-core{--flex-direction:row;--align-items:stretch;--justify-content:flex-start;--gap:calc(60 * var(--u));--row-gap:calc(60 * var(--u));--column-gap:calc(60 * var(--u));padding:calc(100 * var(--u)) calc(var(--we-gutter) + calc(95 * var(--u))) calc(100 * var(--u)) var(--we-gutter)}
/* El recuadro de la foto siempre mide lo mismo que la lista (978 en el diseño) */
.elementor .e-con.we-core{align-items:stretch !important;height:auto !important;max-height:none !important;overflow:visible !important;flex-wrap:nowrap !important;flex-shrink:0 !important;min-height:calc(calc(978 * var(--u)) + calc(200 * var(--u))) !important}
.elementor .e-con.we-core > .e-con{align-self:stretch !important;height:auto !important;max-height:none !important;flex-shrink:0 !important}
.elementor .e-con.we-core-list{overflow:visible !important}
.elementor .e-con.we-core-visual{min-height:calc(978 * var(--u));flex:0 0 calc(410 * var(--u));width:calc(410 * var(--u));position:relative;border-radius:max(18px,calc(40 * var(--u)));overflow:hidden;padding:calc(20 * var(--u));--gap:calc(24 * var(--u));--row-gap:calc(24 * var(--u));background:#3a3a3a}
.elementor .we-core-stage-w{position:absolute !important;inset:0;z-index:0;margin:0}
.elementor .we-core-stage-w .elementor-widget-container{height:100%}
.elementor .we-core-stage{position:absolute;inset:0}
.elementor .we-core-stage img{position:absolute;inset:0;width:100% !important;height:100% !important;max-width:none !important;object-fit:cover;object-position:center;border-radius:0;opacity:0;transition:opacity .8s ease}
.elementor .we-core-stage img.is-active{opacity:1}
.elementor .we-core-stage::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,.4) 20%,rgba(0,0,0,0) 60%)}
.elementor .e-con.we-core-visual > .elementor-widget:not(.we-core-stage-w){position:relative;z-index:1}
.elementor .we-core-title .elementor-heading-title{font-family:var(--we-sans);font-weight:200;font-size:max(24px, calc(50 * var(--u)));line-height:1.21;letter-spacing:.01em;color:#fff}
.elementor .we-core-btn{align-self:stretch}
.elementor .we-core-btn .elementor-button{width:100%}
.elementor .e-con.we-core-list{flex:0 0 calc(905 * var(--u));width:calc(905 * var(--u));--justify-content:flex-start}
.elementor .e-con.we-tech{border-bottom:1px solid var(--we-line);padding:calc(10.4 * var(--u)) 0 calc(11 * var(--u));cursor:pointer;--gap:calc(5 * var(--u));--row-gap:calc(5 * var(--u));flex:0 0 auto}
.elementor .e-con.we-tech:first-child{padding-top:calc(4 * var(--u))}
.elementor .we-tech-img,.elementor .we-tech-icon{display:none}
.elementor-editor-active .elementor .we-tech-img{display:block;width:70px;position:absolute !important;right:0;top:0;opacity:.8}
.elementor-editor-active .elementor .e-con.we-tech{position:relative}
.elementor .we-tech-title .elementor-heading-title{font-family:var(--we-serif);font-size:max(15px, calc(25 * var(--u)));letter-spacing:.07em;color:#000;font-weight:400;line-height:1.2;transition:color .3s}
.elementor .we-tech.is-active .we-tech-title .elementor-heading-title{color:var(--we-orange)}
.elementor .we-tech-text,.elementor .we-tech-text p{font-family:var(--we-sans);font-weight:300;font-size:max(12px, calc(15 * var(--u)));line-height:1.7334;letter-spacing:.1em;color:var(--we-text);margin:0}

/* =================== WHO =================== */
.elementor .e-con.we-who{padding:calc(100 * var(--u)) var(--we-gutter);position:relative}
.elementor .e-con.we-who-head{--align-items:center;--gap:calc(24 * var(--u));--row-gap:calc(24 * var(--u))}
.elementor .we-who .we-h2 .elementor-heading-title{letter-spacing:.07em;line-height:1}
.elementor .we-who-sub,.elementor .we-who-sub p{font-family:var(--we-sans);text-align:center;font-weight:300;font-size:max(12px, calc(16 * var(--u)));line-height:1.625;letter-spacing:.1em;color:var(--we-text);margin:0}
.elementor .e-con.we-track-who{overflow:visible;scroll-snap-type:none;margin-top:calc(50 * var(--u))}
.elementor .e-con.we-who-card{flex:1 1 0;--align-items:center}
.elementor .we-who-img{width:100%}
.elementor .we-who-img img{width:100%;aspect-ratio:470/320;object-fit:cover;border-radius:max(18px,calc(40 * var(--u)));display:block}
.elementor .we-who-title{margin-top:calc(40 * var(--u)) !important}
.elementor .we-who-title .elementor-heading-title{font-family:var(--we-serif);font-size:max(15px, calc(25 * var(--u)));line-height:1.2;letter-spacing:.07em;color:#000;text-align:center;font-weight:400}
.elementor .we-who-text{margin-top:calc(20 * var(--u)) !important;max-width:calc(470 * var(--u))}
.elementor .we-who-text,.elementor .we-who-text p{font-family:var(--we-sans);text-align:center;font-weight:300;font-size:max(12px, calc(16 * var(--u)));line-height:1.625;letter-spacing:.1em;color:var(--we-text);margin:0}
.we-who-arrow{display:none}

/* =================== CONTACTO =================== */
.elementor .e-con.we-contact{--uc:var(--u);padding:calc(100 * var(--uc, var(--u))) var(--we-gutter);--justify-content:flex-start;--gap:calc(65 * var(--u));--row-gap:calc(65 * var(--u));--column-gap:calc(65 * var(--u))}
.elementor .e-con.we-contact-col{flex:0 0 calc(595 * var(--u));width:calc(595 * var(--u));--gap:calc(24 * var(--uc, var(--u)));--row-gap:calc(24 * var(--uc, var(--u)))}
.elementor .we-contact .we-h2 .elementor-heading-title{font-size:max(24px, calc(50 * var(--uc, var(--u))))}
.elementor .we-contact-title .elementor-heading-title{letter-spacing:.07em;line-height:1.03}
.elementor .we-contact-title .we-serif{letter-spacing:.07em}
.elementor .we-contact-sub{margin-top:calc(2 * var(--uc, var(--u))) !important}
.elementor .we-contact-sub,.elementor .we-contact-sub p{font-family:var(--we-sans);font-weight:300;font-size:max(12px, calc(16 * var(--uc, var(--u))));line-height:1.625;letter-spacing:.1em;color:var(--we-text);margin:0}
.elementor .e-con.we-media-contact{flex:0 0 calc(810 * var(--u));width:calc(810 * var(--u))}
.elementor .we-form{margin-top:0 !important}
.elementor .we-form .elementor-form-fields-wrapper{margin:0 !important}
.elementor .we-form .elementor-field-group{padding:0 !important;margin:0 !important}
.elementor .we-form .elementor-field-group:not(.elementor-field-type-submit):not(.elementor-field-type-textarea) .elementor-field{border:0;border-bottom:1px solid var(--we-line);border-radius:0;background:transparent;height:max(40px,calc(49 * var(--uc, var(--u))));min-height:0;padding:0 calc(14 * var(--uc, var(--u)));font-family:var(--we-sans);font-weight:300;font-size:max(12px, calc(15 * var(--uc, var(--u))));letter-spacing:.1em;color:#000;box-shadow:none}
.elementor .we-form .elementor-field-type-textarea{margin-top:calc(10 * var(--uc, var(--u))) !important}
.elementor .we-form textarea.elementor-field{border:1px solid var(--we-line);border-radius:0;background:transparent;height:calc(196 * var(--uc, var(--u)));min-height:110px;padding:calc(11 * var(--uc, var(--u))) calc(14 * var(--uc, var(--u)));font-family:var(--we-sans);font-weight:300;font-size:max(12px, calc(15 * var(--uc, var(--u))));line-height:1.7334;letter-spacing:.1em;color:#000;box-shadow:none;resize:vertical}
.elementor .we-form .elementor-field-group .elementor-field,.elementor .we-form .elementor-field-group .elementor-field:not(.elementor-select-wrapper){background-color:transparent !important;box-shadow:none !important}
.elementor .we-form .elementor-field-group:not(.elementor-field-type-textarea):not(.elementor-field-type-submit) .elementor-field{border-width:0 0 1px 0 !important;border-style:solid !important;border-color:var(--we-line) !important;border-radius:0 !important}
.elementor .we-form textarea.elementor-field{border:1px solid var(--we-line) !important;border-radius:0 !important}
.elementor .we-form .elementor-field:focus{outline:none;border-color:var(--we-orange) !important}
.elementor .we-form .elementor-field::placeholder{color:#000;opacity:1}
.elementor .we-form .elementor-field-type-recaptcha,.elementor .we-form .elementor-field-type-recaptcha_v3{margin-top:calc(20 * var(--uc, var(--u))) !important}
.elementor .we-form .elementor-field-type-submit{margin-top:calc(20 * var(--uc, var(--u))) !important;width:max(150px,calc(224 * var(--uc, var(--u)))) !important;flex:0 0 auto !important;max-width:100%}
.elementor .we-form .elementor-button,.elementor .elementor-widget-form.we-form .elementor-button[type="submit"]{width:100%;min-height:max(42px,calc(68 * var(--uc, var(--u))));border-radius:100px;background-color:var(--we-orange) !important;color:#fff !important;font-family:var(--we-sans);font-weight:500;font-size:max(12px, calc(18 * var(--uc, var(--u))));letter-spacing:.1em;text-transform:uppercase;border:0;transition:background-color .3s}
.elementor .we-form .elementor-button:hover,.elementor .we-form .elementor-button:focus{background-color:var(--we-orange-dark) !important;color:#fff !important}
.elementor .we-form .elementor-message{font-family:var(--we-sans);font-size:max(12px, calc(15 * var(--uc, var(--u))));margin-top:calc(14 * var(--uc, var(--u)))}

/* =================== FOOTER =================== */
.elementor .e-con.we-footer{padding:calc(64 * var(--u)) 0 0}
.elementor .e-con.we-footer-cols{--flex-direction:row;--align-items:center;padding:0 var(--we-gutter) calc(65 * var(--u))}
.elementor .e-con.we-fcol{flex:1 1 0;--align-items:center;--justify-content:center;min-height:calc(246 * var(--u))}
.elementor .e-con.we-fcol-brand{border-left:1px solid var(--we-line);border-right:1px solid var(--we-line);--gap:calc(20 * var(--u));--row-gap:calc(20 * var(--u))}
.elementor .e-con.we-fcol-touch{--gap:calc(30 * var(--u));--row-gap:calc(30 * var(--u))}
.elementor .we-addr,.elementor .we-addr p{font-family:var(--we-sans);text-align:center;font-weight:300;font-size:max(12px, calc(16 * var(--u)));line-height:1.625;letter-spacing:.1em;color:var(--we-text);margin:0 0 1.625em}
.elementor .we-addr p:last-child{margin:0}
.elementor .we-flogo img{width:max(120px,calc(220 * var(--u)));mix-blend-mode:multiply;display:block}
.elementor .we-flogo{margin-bottom:calc(10 * var(--u)) !important}
.elementor .we-flink,.elementor .we-lang a{font-family:var(--we-nav);font-weight:500;font-size:max(12px, calc(15 * var(--u)));letter-spacing:.07em;text-transform:uppercase;color:#000;text-decoration:none}
.elementor .we-flink:hover,.elementor .we-lang a:hover{color:var(--we-orange)}
.elementor .we-lang a{display:inline-flex;align-items:center;gap:calc(8 * var(--u))}
.elementor .we-lang img{width:max(16px,calc(20 * var(--u)));height:auto;display:block}
.elementor .we-foot-title .elementor-heading-title{font-family:var(--we-serif);font-size:max(15px, calc(25 * var(--u)));letter-spacing:.07em;line-height:1.2;color:#000;text-align:center;font-weight:400}
.elementor .we-foot-btn .elementor-button{width:calc(400 * var(--u));max-width:100%}
.elementor .e-con.we-footer-bar{--flex-direction:row;--justify-content:space-between;--align-items:center;border-top:1px solid var(--we-line);padding:calc(19 * var(--u)) var(--we-gutter) calc(20 * var(--u))}
.elementor .we-copy,.elementor .we-copy p{font-family:var(--we-sans);font-weight:300;font-size:max(12px, calc(16 * var(--u)));letter-spacing:.1em;color:var(--we-text);margin:0}
.elementor .we-totop{display:inline-flex;align-items:center;gap:calc(10 * var(--u));font-family:var(--we-sans);font-weight:300;font-size:max(12px, calc(16 * var(--u)));letter-spacing:.1em;color:var(--we-text);text-decoration:none}
.elementor .we-totop svg{width:max(14px,calc(20 * var(--u)));height:auto}
.elementor .we-totop:hover{color:var(--we-orange)}

/* ===== Solo escritorio (≥1025px): hero y contacto a pantalla completa ===== */
@media (min-width:1025px){
  /* Hero (#home): la sección por sí sola mide el 100% del alto de la pantalla */
  .elementor .e-con.we-hero{height:100vh;max-height:none;min-height:520px}

  /* Servicios: título, tarjetas, puntos y botón caben juntos en 100vh (60px arriba y abajo).
     Las tarjetas conservan el ancho del diseño y ajustan su alto a la pantalla. */
  .elementor .e-con.we-services{--us:min(var(--u), calc((100vh - 120px) / 885));min-height:100vh;padding-top:60px;padding-bottom:60px;--justify-content:center}
  .elementor .we-services .we-kicker .elementor-heading-title{font-size:max(12px, calc(20 * var(--us)))}
  .elementor .we-services .we-h2 .elementor-heading-title{font-size:max(24px, calc(50 * var(--us)));max-width:7.5em}
  .elementor .e-con.we-track-services{margin-top:calc(40 * var(--us))}
  .elementor .e-con.we-card{height:max(220px, calc(480 * var(--us)))}
  .elementor .we-services .we-track-dots{margin-top:calc(50 * var(--us))}
  .elementor .we-services .we-btn-center{margin-top:calc(50 * var(--us)) !important}
  .elementor .we-services .we-btn-center .elementor-button{min-height:max(42px, calc(68 * var(--us)))}
  .elementor .we-services .we-arrows button{width:max(32px, calc(50 * var(--us)));height:max(32px, calc(50 * var(--us)))}

  /* Contacto: 100vh con 60px arriba y abajo. Se mantiene la composición del diseño
     (columna 595 · 65 · imagen 810 a todo el ancho); en pantallas bajas el formulario
     se ajusta al alto y la imagen se recorta en horizontal en lugar de encogerse. */
  .elementor .e-con.we-contact{--uc:min(var(--u), calc((100vh - 120px) / 830));min-height:100vh;padding-top:60px;padding-bottom:60px;--align-items:center;--justify-content:flex-start}
  .elementor .e-con.we-media-contact{aspect-ratio:auto;height:min(calc(810 * var(--u)), calc(100vh - 120px));min-height:360px}
}

}

/* ===== MÓVIL (≤767px) ===== */
@media (max-width:767px){
html{scroll-behavior:smooth}
body{font-family:var(--we-sans);color:var(--we-text);-webkit-font-smoothing:antialiased}
.elementor [id]{scroll-margin-top:20px}

/* ---------- reset de contenedores we-* ---------- */
.elementor .e-con[class*="we-"]{--padding-top:0px;--padding-right:0px;--padding-bottom:0px;--padding-left:0px;--gap:0px;--row-gap:0px;--column-gap:0px;--width:auto;--min-height:0;--margin-top:0px;--margin-bottom:0px}
.elementor .e-con[class*="we-"] > .elementor-widget{margin:0}
.elementor .e-con[class*="we-"]{--display:flex}

/* ---------- tipografía base ---------- */
.elementor .we-serif{font-family:var(--we-serif);font-weight:400}
.elementor .we-xlight{font-family:var(--we-sans);font-weight:200}
.elementor .we-reg{font-family:var(--we-sans);font-weight:400}
.elementor .we-h2 .elementor-heading-title{font-family:var(--we-sans);font-weight:200;font-size:clamp(34px,3.2vw,50px);line-height:1.22;letter-spacing:.5px;color:var(--we-black)}
.elementor .we-body,.elementor .we-body p{font-family:var(--we-sans);font-weight:300;font-size:15px;line-height:26px;letter-spacing:1.5px;color:var(--we-text)}
.elementor .we-body p{margin:0 0 26px}
.elementor .we-body p:last-child{margin-bottom:0}
.elementor .we-body strong{font-weight:600}
.elementor .we-center .elementor-heading-title{text-align:center}

/* línea naranja */
.elementor .we-accent .elementor-divider{padding:0 !important;line-height:0}
.elementor .we-accent .elementor-divider-separator{display:block;width:60px !important;border-top:2px solid var(--we-orange) !important;margin:0}
.elementor .we-accent-center .elementor-divider-separator{margin:0 auto}

/* botones */
.elementor .we-btn .elementor-button{display:inline-flex;align-items:center;justify-content:center;min-height:68px;padding:0 34px;border-radius:100px;font-family:var(--we-sans);font-weight:500;font-size:18px;letter-spacing:1.8px;text-transform:uppercase;line-height:1.15;text-align:center;transition:background-color .3s,color .3s,border-color .3s,transform .3s}
.elementor .we-btn-solid .elementor-button{background:var(--we-orange);color:#fff;border:1px solid var(--we-orange)}
.elementor .we-btn-solid .elementor-button:hover{background:var(--we-orange-dark);border-color:var(--we-orange-dark);color:#fff}
.elementor .we-btn-outline .elementor-button{background:transparent;color:#fff;border:1px solid #fff}
.elementor .we-btn-outline .elementor-button:hover{background:#fff;color:#111}
.elementor .we-btn-arrow .elementor-button-text::after{content:"";display:inline-block;width:9px;height:9px;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;transform:rotate(45deg);margin-left:22px;position:relative;top:-1px;transition:transform .3s}
.elementor .we-btn-arrow .elementor-button:hover .elementor-button-text::after{transform:translateX(4px) rotate(45deg)}
.elementor .we-btn-center{align-self:center}

/* =================== HEADER =================== */
.elementor .e-con.we-header{--flex-direction:row;--justify-content:space-between;--align-items:center;height:98px;padding:0 var(--we-gutter);background:#fff;position:relative;z-index:50}
.elementor .we-logo img{width:186px;height:auto;display:block}
.elementor .we-nav{display:flex;align-items:center}
.elementor .we-nav ul{list-style:none;margin:0;padding:0}
.elementor .we-menu{display:flex;align-items:center;gap:clamp(36px,6.2vw,100px)}
.elementor .we-menu > li{position:relative;display:flex;align-items:center;gap:8px}
.elementor .we-menu a{font-family:var(--we-nav);font-weight:500;font-size:clamp(15px,1.2vw,19px);letter-spacing:1.33px;text-transform:uppercase;color:#000;text-decoration:none;transition:color .25s}
.elementor .we-menu a:hover,.elementor .we-menu a.is-current{color:rgba(0,0,0,.5)}
.elementor .we-sub-toggle{background:none;border:0;padding:4px;cursor:pointer;color:#000;display:flex;line-height:0}
.elementor .we-sub-toggle:hover,.elementor .we-sub-toggle:focus{background:none;color:var(--we-orange)}
.elementor .we-sub{position:absolute;top:calc(100% + 18px);left:-24px;min-width:260px;background:#fff;box-shadow:0 18px 40px rgba(0,0,0,.08);padding:14px 0 !important;opacity:0;visibility:hidden;transform:translateY(8px);transition:all .25s}
.elementor .we-sub li a{display:block;padding:10px 24px;font-size:14px}
.elementor .we-has-sub:hover .we-sub,.elementor .we-has-sub.is-open .we-sub{opacity:1;visibility:visible;transform:none}
.elementor .we-burger{display:none;background:none;border:0;padding:6px;cursor:pointer;width:32px;height:26px;position:relative}
.elementor .we-burger:hover,.elementor .we-burger:focus{background:none}
.elementor .we-burger span{position:absolute;left:6px;right:6px;height:1.5px;background:#000;transition:transform .3s,opacity .3s}
.elementor .we-burger span:nth-child(1){top:6px}.we-burger span:nth-child(2){top:12px}.we-burger span:nth-child(3){top:18px}
.elementor .we-nav.is-open .we-burger span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.elementor .we-nav.is-open .we-burger span:nth-child(2){opacity:0}
.elementor .we-nav.is-open .we-burger span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

/* =================== HERO =================== */
.elementor .e-con.we-hero{position:relative;height:880px;max-height:calc(100vh - 98px);min-height:620px;overflow:hidden;--justify-content:center;background:#222}
.elementor .e-con.we-hero-slides{position:absolute;inset:0;z-index:0}
.elementor .we-hero-slides .we-hero-slide{position:absolute;inset:0;opacity:0;transition:opacity 1.4s ease}
.elementor .we-hero-slides .we-hero-slide.is-active{opacity:1}
.elementor .we-hero-slides .we-hero-slide:first-child{opacity:1}
.elementor .we-hero-slides.is-ready .we-hero-slide:first-child:not(.is-active){opacity:0}
.elementor .we-hero-slide img{width:100%;height:100%;object-fit:cover;display:block}
.elementor .we-hero-slide .elementor-widget-container{height:100%}
.elementor .e-con.we-hero-slides::after{content:"";position:absolute;inset:0;background:linear-gradient(to left,rgba(0,0,0,.3) 40%,rgba(0,0,0,.6) 80%);pointer-events:none;z-index:2}
.elementor .e-con.we-hero-content{position:relative;z-index:3;max-width:720px;margin-left:clamp(24px,10vw,160px)}
.elementor .we-hero-title .elementor-heading-title{color:#fff;text-transform:uppercase;font-size:clamp(46px,5vw,80px);line-height:1;letter-spacing:.07em}
.elementor .we-hero-title .we-serif{display:inline-block;margin-bottom:.1em}
.elementor .we-hero-title .we-xlight{font-size:.925em;letter-spacing:.07em}
.elementor .we-hero-sub,.elementor .we-hero-sub p{color:#fff;font-weight:300;font-size:clamp(18px,1.5vw,24px);letter-spacing:.07em;line-height:1.2;margin:0}
.elementor .we-hero-sub{margin-top:40px !important}
.elementor .we-hero-content .we-btn{margin-top:50px !important}
.elementor .we-dots{position:absolute;z-index:4;right:var(--we-gutter);bottom:50px;display:flex;gap:12px}
.elementor .we-dots button{width:20px;height:20px;border-radius:50%;border:1px solid rgba(255,255,255,.8);background:transparent;padding:0;cursor:pointer;transition:background .3s}
.elementor .we-dots button.is-active,.elementor .we-dots button:hover{background:#fff}

/* =================== DESCRIPCIÓN =================== */
.elementor .e-con.we-desc{background:var(--we-tint);padding:100px var(--we-gutter);--align-items:center}
.elementor .we-desc-text{max-width:817px}
.elementor .we-desc-text,.elementor .we-desc-text p{font-weight:300;font-size:clamp(19px,1.5vw,24px);line-height:1.875;letter-spacing:.1em;color:#000;text-align:center;margin:0}

/* =================== SPLITS (info / conectado / contacto) =================== */
.elementor .e-con.we-split{--flex-direction:row;--align-items:center;--justify-content:space-between;--gap:clamp(40px,5vw,90px);--row-gap:clamp(40px,5vw,90px);--column-gap:clamp(40px,5vw,90px);padding:100px var(--we-gutter)}
.elementor .e-con.we-textcol{--width:625px;max-width:625px;flex:0 1 625px;--gap:24px;--row-gap:24px;--column-gap:24px}
.elementor .we-textcol .we-body{margin-top:2px !important}
.elementor .e-con.we-right{--align-items:flex-end}
.elementor .we-right .elementor-heading-title,.elementor .we-right .we-body,.elementor .we-right .we-body p{text-align:right}
.elementor .we-right .we-accent .elementor-divider-separator{margin-left:auto}

/* Info 1: collage */
.elementor .e-con.we-collage{position:relative;--width:680px;flex:0 1 680px;aspect-ratio:1/1;max-width:680px}
.elementor .we-collage-main{position:absolute;left:0;top:0;width:82.35%;height:82.35%}
.elementor .we-collage-main .elementor-widget-container,.elementor .we-collage-small .elementor-widget-container{height:100%}
.elementor .we-collage-main img{width:100%;height:100%;object-fit:cover;border-radius:var(--we-radius-lg);display:block;transition:transform .4s ease-out}
.elementor .we-collage-small{position:absolute;right:0;bottom:0;width:49.7%;height:49.7%;z-index:2}
.elementor .we-collage-small img{width:100%;height:100%;object-fit:cover;border-radius:var(--we-radius-lg);border:20px solid #fff;box-sizing:border-box;display:block}
.elementor .we-info1 .e-con.we-textcol{padding-top:40px}

/* Info 2 */
.elementor .e-con.we-info2{padding-left:calc(var(--we-gutter) + 95px)}
.elementor .e-con.we-media{--width:680px;flex:0 1 680px;max-width:680px;aspect-ratio:1/1;border-radius:var(--we-radius-lg);overflow:hidden}
.elementor .we-media .we-media-img,.elementor .we-media .we-media-img .elementor-widget-container{height:100%;width:100%}
.elementor .we-media .we-media-img img{width:100%;height:100%;object-fit:cover;display:block;border-radius:var(--we-radius-lg)}
.elementor .e-con.we-media-wide{aspect-ratio:680/550}

/* =================== SERVICIOS =================== */
.elementor .e-con.we-services{padding:100px var(--we-gutter);--gap:50px;--row-gap:50px;--column-gap:50px;overflow:hidden}
.elementor .e-con.we-services-head{--flex-direction:row;--justify-content:space-between;--align-items:flex-end}
.elementor .we-kicker .elementor-heading-title{font-family:var(--we-serif);font-size:20px;letter-spacing:8px;color:var(--we-orange);font-weight:400;margin:0 0 4px}
.elementor .we-services .we-h2 .elementor-heading-title{max-width:375px}
.elementor .we-arrows{display:flex;gap:50px;padding-bottom:6px}
.elementor .we-arrows button,.elementor .we-who-arrow{width:50px;height:50px;border-radius:50%;border:1px solid var(--we-orange);background:transparent;color:var(--we-orange);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:background .25s,color .25s,opacity .25s}
.elementor .we-arrows button:hover,.elementor .we-who-arrow:hover{background:var(--we-orange);color:#fff}
.elementor .we-arrows button:focus,.elementor .we-who-arrow:focus{background:transparent;color:var(--we-orange);outline:2px solid rgba(239,127,45,.35);outline-offset:2px}
.elementor .we-arrows button[disabled]{opacity:.35;cursor:default}
.elementor .we-arrows svg,.elementor .we-who-arrow svg{width:12px;height:20px}

.elementor .e-con.we-track{--flex-direction:row;--flex-wrap:nowrap;--gap:30px;--row-gap:30px;--column-gap:30px;flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.elementor .e-con.we-track::-webkit-scrollbar{display:none}
.elementor .e-con.we-card{flex:0 0 calc((100% - 90px) / 4);--width:auto;height:480px;border-radius:var(--we-radius-md);overflow:hidden;position:relative;--justify-content:flex-end;padding:0 20px 30px;scroll-snap-align:start;background-size:cover;background-position:center}
.elementor .e-con.we-card::before{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,0) 40%,rgba(0,0,0,.4) 80%);transition:background .45s;z-index:0;border-radius:inherit}
.elementor .e-con.we-card > .elementor-widget{position:relative;z-index:1}
.elementor .we-card-title .elementor-heading-title{font-family:var(--we-serif);font-size:30px;line-height:1.15;color:#fff;font-weight:400}
.elementor .we-card-text,.elementor .we-card-text p{color:#fff;font-size:15px;line-height:26px;margin:0;font-weight:400}
.elementor .we-card-text{max-height:0;opacity:0;overflow:hidden;transform:translateY(12px);transition:max-height .5s ease,opacity .4s ease,transform .4s ease,margin .4s}
@media (hover:hover) and (min-width:768px){
  .elementor .e-con.we-card:hover::before{background:linear-gradient(to bottom,rgba(0,0,0,.05) 15%,rgba(0,0,0,.72) 75%)}
  .elementor .e-con.we-card:hover .we-card-text{max-height:160px;opacity:1;transform:none;margin-top:16px !important}
}
@media (hover:none){
  .elementor .we-card-text{max-height:none;opacity:1;transform:none;margin-top:16px !important}
}
.elementor .we-track-dots{display:flex;justify-content:center;gap:12px;margin-top:-20px}
.elementor .we-track-dots button{width:20px;height:20px;border-radius:50%;border:1px solid var(--we-line);background:transparent;padding:0;cursor:pointer}
.elementor .we-track-dots button.is-active{background:var(--we-line)}
.elementor .we-track-dots button:hover,.elementor .we-track-dots button:focus{background:var(--we-line)}

/* =================== CORE TECHNOLOGIES =================== */
.elementor .e-con.we-core{--flex-direction:row;--gap:60px;--row-gap:60px;--column-gap:60px;padding:60px var(--we-gutter);--align-items:stretch}
@media (min-width:1025px){
  .elementor .e-con.we-core{min-height:min(1098px,100vh)}
  .elementor .e-con.we-tech{flex:1 1 auto}
}
.elementor .e-con.we-core-visual{flex:0 0 410px;--width:410px;position:relative;border-radius:var(--we-radius-md);overflow:hidden;padding:20px;--gap:24px;--row-gap:24px;--column-gap:24px;background:#3a3a3a}
.elementor .we-core-stage-w{position:absolute !important;inset:0;z-index:0}
.elementor .we-core-stage-w .elementor-widget-container{height:100%}
.elementor .we-core-stage{position:absolute;inset:0}
.elementor .we-core-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .8s ease}
.elementor .we-core-stage img.is-active{opacity:1}
.elementor .we-core-stage::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,.4) 20%,rgba(0,0,0,0) 60%)}
.elementor .e-con.we-core-visual > .elementor-widget:not(.we-core-stage-w){position:relative;z-index:1}
.elementor .we-core-title .elementor-heading-title{font-family:var(--we-sans);font-weight:200;font-size:clamp(38px,3.2vw,50px);line-height:1.2;color:#fff}
.elementor .we-core-btn{align-self:stretch}
.elementor .we-core-btn .elementor-button{width:100%}
.elementor .e-con.we-core-list{flex:1 1 auto;--justify-content:space-between;--gap:0px;--row-gap:0px;--column-gap:0px}
.elementor .e-con.we-tech{border-bottom:1px solid var(--we-line);padding:0 0 12px;cursor:pointer;--gap:6px;--row-gap:6px;--column-gap:6px;flex:0 0 auto;--justify-content:center}
.elementor .we-tech-img,.elementor .we-tech-icon{display:none}
.elementor-editor-active .elementor .we-tech-img{display:block;width:70px;position:absolute;right:0;top:0;opacity:.8}
.elementor-editor-active .elementor .e-con.we-tech{position:relative}
.elementor .we-tech-title .elementor-heading-title{font-family:var(--we-serif);font-size:clamp(19px,1.6vw,25px);letter-spacing:1.75px;color:#000;font-weight:400;line-height:1.2;transition:color .3s}
.elementor .we-tech.is-active .we-tech-title .elementor-heading-title{color:var(--we-orange)}
.elementor .we-tech-text,.elementor .we-tech-text p{font-weight:300;font-size:15px;line-height:24px;letter-spacing:1.5px;color:var(--we-text);margin:0}

/* =================== WHO =================== */
.elementor .e-con.we-who{padding:100px var(--we-gutter);--gap:50px;--row-gap:50px;--column-gap:50px;position:relative}
.elementor .e-con.we-who-head{--align-items:center;--gap:24px;--row-gap:24px;--column-gap:24px}
.elementor .we-who .we-h2 .elementor-heading-title{letter-spacing:3.5px}
.elementor .we-who-sub,.elementor .we-who-sub p{text-align:center;font-weight:300;font-size:16px;letter-spacing:1.6px;color:var(--we-text);margin:0}
.elementor .e-con.we-track-who{overflow:visible;scroll-snap-type:none}
.elementor .e-con.we-who-card{flex:1 1 0;--gap:20px;--row-gap:20px;--column-gap:20px;--align-items:center}
.elementor .we-who-img{width:100%}
.elementor .we-who-img img{width:100%;aspect-ratio:470/320;object-fit:cover;border-radius:var(--we-radius-md);display:block}
.elementor .we-who-title .elementor-heading-title{font-family:var(--we-serif);font-size:25px;letter-spacing:1.75px;color:#000;text-align:center;font-weight:400}
.elementor .we-who-text,.elementor .we-who-text p{text-align:center;font-weight:300;font-size:16px;line-height:26px;letter-spacing:1.6px;color:var(--we-text);margin:0}
.elementor .we-who-arrow{display:none}

/* =================== CONTACTO =================== */
.elementor .e-con.we-contact{--align-items:center}
.elementor .e-con.we-contact-col{--width:595px;flex:0 1 595px;max-width:595px}
.elementor .we-contact-title .elementor-heading-title{letter-spacing:3.5px}
.elementor .we-contact-sub,.elementor .we-contact-sub p{font-weight:300;font-size:16px;line-height:26px;letter-spacing:1.6px;color:var(--we-text);margin:0}
.elementor .e-con.we-media-contact{--width:810px;flex:0 1 810px;max-width:810px}
.elementor .we-form .elementor-form-fields-wrapper{margin:0 !important}
.elementor .we-form .elementor-field-group{padding:0 !important;margin:0 !important}
.elementor .we-form .elementor-field-group:not(.elementor-field-type-submit):not(.elementor-field-type-textarea) .elementor-field{border:0;border-bottom:1px solid var(--we-line);border-radius:0;background:transparent;height:49px;padding:0 14px;font-family:var(--we-sans);font-weight:300;font-size:15px;letter-spacing:1.5px;color:#000;box-shadow:none}
.elementor .we-form .elementor-field-type-textarea{margin-top:10px !important}
.elementor .we-form textarea.elementor-field{border:1px solid var(--we-line);border-radius:0;background:transparent;min-height:196px;padding:12px 14px;font-family:var(--we-sans);font-weight:300;font-size:15px;letter-spacing:1.5px;color:#000;box-shadow:none}
.elementor .we-form .elementor-field:focus{outline:none;border-color:var(--we-orange) !important}
.elementor .we-form .elementor-field::placeholder{color:#000;opacity:1}
.elementor .we-form .elementor-field-type-submit{margin-top:20px !important;width:224px !important;max-width:100%}
.elementor .we-form .elementor-field-type-recaptcha,.elementor .we-form .elementor-field-type-recaptcha_v3{margin-top:20px !important}
.elementor .we-form .elementor-button{width:100%;min-height:68px;border-radius:100px;background:var(--we-orange);color:#fff;font-family:var(--we-sans);font-weight:500;font-size:18px;letter-spacing:1.8px;text-transform:uppercase;border:0;transition:background .3s}
.elementor .we-form .elementor-button:hover{background:var(--we-orange-dark)}
.elementor .we-form .elementor-message{font-size:15px;margin-top:14px}

/* =================== FOOTER =================== */
.elementor .e-con.we-footer{padding:64px 0 0}
.elementor .e-con.we-footer-cols{--flex-direction:row;--align-items:center;padding:0 var(--we-gutter) 64px}
.elementor .e-con.we-fcol{flex:1 1 0;--align-items:center;--justify-content:center;--gap:14px;--row-gap:14px;--column-gap:14px;min-height:246px}
.elementor .e-con.we-fcol-brand{border-left:1px solid var(--we-line);border-right:1px solid var(--we-line)}
.elementor .we-addr,.elementor .we-addr p{text-align:center;font-weight:300;font-size:16px;line-height:26px;letter-spacing:1.6px;color:var(--we-text);margin:0 0 26px}
.elementor .we-addr p:last-child{margin:0}
.elementor .we-flogo img{width:220px;mix-blend-mode:multiply;display:block}
.elementor .we-flogo{margin-bottom:16px !important}
.elementor .we-flink,.elementor .we-lang a{font-family:var(--we-nav);font-weight:500;font-size:15px;letter-spacing:1.05px;text-transform:uppercase;color:#000;text-decoration:none}
.elementor .we-flink:hover,.elementor .we-lang a:hover{color:var(--we-orange)}
.elementor .we-lang a{display:inline-flex;align-items:center;gap:8px}
.elementor .we-lang img{width:20px;height:auto;display:block}
.elementor .we-foot-title .elementor-heading-title{font-family:var(--we-serif);font-size:25px;letter-spacing:1.75px;color:#000;text-align:center;font-weight:400;margin-bottom:16px}
.elementor .we-foot-btn .elementor-button{width:400px;max-width:100%}
.elementor .e-con.we-footer-bar{--flex-direction:row;--justify-content:space-between;--align-items:center;border-top:1px solid var(--we-line);padding:18px var(--we-gutter)}
.elementor .we-copy,.elementor .we-copy p{font-weight:300;font-size:16px;letter-spacing:1.6px;color:var(--we-text);margin:0}
.elementor .we-totop{display:inline-flex;align-items:center;gap:12px;font-family:var(--we-sans);font-weight:300;font-size:16px;letter-spacing:1.6px;color:var(--we-text);text-decoration:none}
.elementor .we-totop:hover{color:var(--we-orange)}

/* =================== TABLET =================== */
@media (max-width:1024px){
  :root{--we-gutter:40px}
  .elementor .e-con.we-split{--gap:40px;--row-gap:40px;--column-gap:40px;padding-top:80px;padding-bottom:80px}
  .elementor .e-con.we-info2{padding-left:var(--we-gutter)}
  .elementor .e-con.we-card{flex-basis:calc((100% - 30px) / 2.3)}
  .elementor .e-con.we-core-visual{flex-basis:320px}
  .elementor .e-con.we-tech{padding:16px 0}
  .elementor .e-con.we-media-contact{flex-basis:45%}
  .elementor .we-menu{gap:32px}
}

/* =================== MÓVIL =================== */
@media (max-width:767px){
  :root{--we-gutter:19px;--we-radius-lg:40px}
  .elementor .e-con.we-header{height:40px;padding:0 18px 0 10px;position:sticky;top:0}
  .elementor .we-logo img{width:73px}
  .elementor .we-burger{display:block}
  .elementor .we-menu{position:fixed;left:0;right:0;top:40px;flex-direction:column;align-items:stretch;gap:0;background:#fff;padding:10px 24px 24px !important;box-shadow:0 20px 30px rgba(0,0,0,.08);transform:translateY(-8px);opacity:0;visibility:hidden;transition:all .3s}
  .elementor .we-nav.is-open .we-menu{transform:none;opacity:1;visibility:visible}
  .elementor .we-menu > li{flex-wrap:wrap;justify-content:space-between;border-bottom:1px solid var(--we-line)}
  .elementor .we-menu > li > a{padding:16px 0;font-size:15px}
  .elementor .we-sub{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;width:100%;display:none;padding:0 0 10px !important;min-width:0}
  .elementor .we-has-sub.is-open .we-sub{display:block}
  .elementor .we-has-sub:hover .we-sub{transform:none}
  .elementor .we-sub li a{padding:8px 12px}

  .elementor .e-con.we-hero{height:668px;max-height:none;min-height:0}
  .elementor .e-con.we-hero-content{margin:0 19px;max-width:none}
  .elementor .we-hero-title .elementor-heading-title{font-size:38px;line-height:1.1}
  .elementor .we-hero-sub,.elementor .we-hero-sub p{font-size:18px;line-height:1.5}
  .elementor .we-hero-sub{margin-top:28px !important}
  .elementor .we-hero-content .we-btn{margin-top:40px !important}
  .elementor .we-hero-content .we-btn .elementor-button{width:100%;padding:0 22px;font-size:15px;min-height:68px}
  .elementor .we-dots{right:auto;left:50%;transform:translateX(-50%);bottom:14px;gap:8px}
  .elementor .we-dots button{width:10px;height:10px}

  .elementor .e-con.we-desc{padding:60px 41px}
  .elementor .we-desc-text,.elementor .we-desc-text p{font-size:18px;line-height:30px}

  .elementor .we-h2 .elementor-heading-title,.elementor .we-core-title .elementor-heading-title{font-size:30px;text-align:center}
  .elementor .we-accentx .elementor-divider-separator,.elementor .we-right .we-accent .elementor-divider-separator{margin:0 auto}
  .elementor .e-con.we-split{--flex-direction:column;--gap:24px;--row-gap:24px;--column-gap:24px;padding:60px var(--we-gutter)}
  .elementor .e-con.we-split > .e-con.we-textcol{display:contents}
  .elementor .we-split .we-title{order:1}
  .elementor .we-split .we-accentx{order:2}
  .elementor .we-split .we-collage,.elementor .we-split .we-media{order:3}
  .elementor .we-split .we-body,.elementor .we-split .we-contact-sub{order:4}
  .elementor .we-split .we-form{order:5}
  .elementor .we-contact .we-media{order:4}
  .elementor .we-contact .we-contact-sub{order:3}
  .elementor .e-con.we-split > .e-con{width:100%;max-width:100%;flex-basis:auto}
  .elementor .we-right .elementor-heading-title,.elementor .we-right .we-body,.elementor .we-right .we-body p{text-align:left}
  .elementor .we-split .we-title .elementor-heading-title{text-align:center}
  .elementor .e-con.we-collage{aspect-ratio:1/1}
  .elementor .e-con.we-media-contact{aspect-ratio:362/245;border-radius:40px}
  .elementor .we-collage-small img{border-width:12px}

  .elementor .e-con.we-services{padding:60px var(--we-gutter);--gap:20px;--row-gap:20px;--column-gap:20px}
  .elementor .e-con.we-services-head{--flex-direction:column;--align-items:flex-start}
  .elementor .we-services .we-h2 .elementor-heading-title{text-align:left;max-width:none}
  .elementor .we-arrows-w{display:none}
  .elementor .e-con.we-track-services{--flex-direction:column;overflow:visible;--gap:20px;--row-gap:20px;--column-gap:20px}
  .elementor .e-con.we-card{flex:0 0 auto;height:auto;aspect-ratio:1/1;padding:0 20px 20px}
  .elementor .we-card-title .elementor-heading-title{font-size:24px}
  .elementor .we-card-text{max-height:none;opacity:1;transform:none;margin-top:12px !important}
  .elementor .we-card-text,.elementor .we-card-text p{font-size:14px;line-height:20px}
  .elementor .we-track-services + .we-track-dots{display:none}
  .elementor .we-btn .elementor-button{font-size:15px;padding:0 20px}
  .elementor .we-btn-center,.elementor .we-btn-center .elementor-button{width:100%}

  .elementor .e-con.we-core{--flex-direction:column;padding:60px var(--we-gutter);--gap:10px;--row-gap:10px;--column-gap:10px;height:auto}
  .elementor .e-con.we-core-visual{display:contents}
  .elementor .we-core-stage-w{display:none}
  .elementor .we-core-title{order:1}
  .elementor .we-core-title .elementor-heading-title{color:#000}
  .elementor .we-core-accent{order:2;margin-bottom:14px !important}
  .elementor .we-core-accent .elementor-divider-separator{margin:0 auto}
  .elementor .e-con.we-core-list{order:3;--gap:10px;--row-gap:10px;--column-gap:10px}
  .elementor .we-core-btn{order:4;margin-top:20px !important}
  .elementor .e-con.we-tech{border:1px solid var(--we-line);border-radius:40px;padding:8px 40px 8px 66px;min-height:64px;position:relative;--gap:0px;--row-gap:0px;--column-gap:0px;flex:0 0 auto}
  .elementor .e-con.we-tech::after{content:"";position:absolute;right:20px;top:26px;width:8px;height:8px;border-right:1.5px solid #000;border-bottom:1.5px solid #000;transform:rotate(45deg);transition:transform .3s}
  .elementor .e-con.we-tech.is-open::after{transform:rotate(-135deg);top:30px}
  .elementor .we-tech-icon{display:flex;position:absolute !important;left:8px;top:8px;width:48px;height:48px;border-radius:50%;background:#F2F2F2;align-items:center;justify-content:center}
  .elementor .we-tech-icon img{width:30px;height:30px;object-fit:contain}
  .elementor .we-tech-title{min-height:46px;display:flex;align-items:center}
  .elementor .we-tech-title .elementor-heading-title{font-size:18px;letter-spacing:1px}
  .elementor .we-tech.is-active .we-tech-title .elementor-heading-title{color:#000}
  .elementor .we-tech.is-open .we-tech-title .elementor-heading-title{color:var(--we-orange)}
  .elementor .we-tech-text{max-height:0;overflow:hidden;transition:max-height .4s ease,padding .4s}
  .elementor .we-tech.is-open .we-tech-text{max-height:260px;padding:6px 0 10px}
  .elementor .we-tech-text,.elementor .we-tech-text p{font-size:14px;line-height:22px;letter-spacing:.8px}

  .elementor .e-con.we-who{padding:60px var(--we-gutter);--gap:30px;--row-gap:30px;--column-gap:30px}
  .elementor .e-con.we-track-who{overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -19px;width:calc(100% + 38px);max-width:none;padding:0 39px;--gap:39px;--row-gap:39px;--column-gap:39px;scroll-padding:0 39px}
  .elementor .e-con.we-who-card{flex:0 0 100%;scroll-snap-align:center}
  .elementor .we-who-arrow{display:flex;position:absolute;top:0;width:28px;height:28px;z-index:3;border-color:#000;color:#000}
  .elementor .we-who-arrow svg{width:8px;height:14px}
  .elementor .we-who-arrow.prev{left:5px}.we-who-arrow.next{right:5px}
  .elementor .we-track-who + .we-track-dots{margin-top:0}
  .elementor .we-track-dots button{width:10px;height:10px}

  .elementor .e-con.we-footer{padding-top:40px}
  .elementor .e-con.we-footer-cols{--flex-direction:column;padding:0 var(--we-gutter) 40px;--gap:30px;--row-gap:30px;--column-gap:30px}
  .elementor .e-con.we-fcol{min-height:0;width:100%;flex:0 0 auto}
  .elementor .e-con.we-fcol-brand{order:1;border:0;border-bottom:1px solid var(--we-line);padding-bottom:40px}
  .elementor .e-con.we-fcol-addr{order:2;border-bottom:1px solid var(--we-line);padding-bottom:40px}
  .elementor .e-con.we-fcol-touch{order:3}
  .elementor .we-foot-btn,.elementor .we-foot-btn .elementor-button{width:100%}
  .elementor .e-con.we-footer-bar{--flex-direction:column;--gap:20px;--row-gap:20px;--column-gap:20px;padding:24px var(--we-gutter)}
  .elementor .we-copy,.elementor .we-copy p{text-align:center}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .elementor .we-hero-slide,.elementor .we-core-stage img,.elementor .we-collage-main img{transition:none !important}
}

  /* --- ajustes R1 para móvil --- */
  .elementor .we-hero-title .we-serif{display:block;margin-bottom:.1em}
  .elementor .we-hero-title .we-xlight{display:block}
  .elementor .we-hero-lines-w{display:none}
  .elementor .e-con.we-card{background:#c9cdd3}
  .elementor .we-card-img{position:absolute !important;inset:0;z-index:0;margin:0}
  .elementor .we-card-img .elementor-widget-container{height:100%}
  .elementor .we-card-img img{width:100%;height:100%;object-fit:cover;display:block}
  .elementor .e-con.we-card::before{z-index:1}
  .elementor .e-con.we-card > .elementor-widget:not(.we-card-img){position:relative;z-index:2}
  .elementor .we-btn-solid .elementor-button,.elementor .we-form .elementor-button{background-color:var(--we-orange) !important;color:#fff !important}
  .elementor .we-btn-outline .elementor-button{background-color:transparent !important;color:#fff !important}
  .elementor .we-form .elementor-field-type-recaptcha{margin-top:20px !important}
  /* fields transparent */
  .elementor .we-form .elementor-field-group .elementor-field{background-color:transparent !important;box-shadow:none !important}

}
