.elementor-kit-11{--e-global-color-primary:#191717;--e-global-color-secondary:#5E5A5B;--e-global-color-text:#231F20;--e-global-color-accent:#191717;--e-global-color-mtinta:#191717;--e-global-color-mtexto:#231F20;--e-global-color-msuave:#5E5A5B;--e-global-color-mlinea:#BAB9B9;--e-global-color-mfondo:#FFFFFF;--e-global-color-mfondo2:#F7F6F4;--e-global-typography-primary-font-family:"Inria Serif";--e-global-typography-primary-font-size:clamp(40px, 4vw, 62px);--e-global-typography-primary-font-weight:400;--e-global-typography-primary-line-height:1.08em;--e-global-typography-primary-letter-spacing:-0.6px;--e-global-typography-secondary-font-family:"Inter";--e-global-typography-secondary-font-size:14px;--e-global-typography-secondary-font-weight:600;--e-global-typography-secondary-text-transform:uppercase;--e-global-typography-secondary-line-height:1.4em;--e-global-typography-secondary-letter-spacing:1.2px;--e-global-typography-text-font-family:"Inter";--e-global-typography-text-font-size:17px;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.65em;--e-global-typography-accent-font-family:"Inter";--e-global-typography-accent-font-size:13px;--e-global-typography-accent-font-weight:600;--e-global-typography-accent-text-transform:uppercase;--e-global-typography-accent-line-height:1.2em;--e-global-typography-accent-letter-spacing:1.8px;--e-global-typography-mdisplay-font-family:"Inria Serif";--e-global-typography-mdisplay-font-size:clamp(48px, 5.2vw, 80px);--e-global-typography-mdisplay-font-weight:400;--e-global-typography-mdisplay-line-height:1.04em;--e-global-typography-mdisplay-letter-spacing:-1px;--e-global-typography-mtitulo-font-family:"Inria Serif";--e-global-typography-mtitulo-font-size:clamp(40px, 4vw, 62px);--e-global-typography-mtitulo-font-weight:400;--e-global-typography-mtitulo-line-height:1.08em;--e-global-typography-mtitulo-letter-spacing:-0.6px;--e-global-typography-msubtit-font-family:"Inria Serif";--e-global-typography-msubtit-font-size:clamp(24px, 2vw, 30px);--e-global-typography-msubtit-font-weight:400;--e-global-typography-msubtit-line-height:1.2em;--e-global-typography-msubtit-letter-spacing:-0.2px;--e-global-typography-metiqueta-font-family:"Inter";--e-global-typography-metiqueta-font-size:13px;--e-global-typography-metiqueta-font-weight:600;--e-global-typography-metiqueta-text-transform:uppercase;--e-global-typography-metiqueta-line-height:1.4em;--e-global-typography-metiqueta-letter-spacing:2px;--e-global-typography-mtarjeta-font-family:"Inter";--e-global-typography-mtarjeta-font-size:14px;--e-global-typography-mtarjeta-font-weight:600;--e-global-typography-mtarjeta-text-transform:uppercase;--e-global-typography-mtarjeta-line-height:1.4em;--e-global-typography-mtarjeta-letter-spacing:1.2px;--e-global-typography-mtexto-font-family:"Inter";--e-global-typography-mtexto-font-size:17px;--e-global-typography-mtexto-font-weight:400;--e-global-typography-mtexto-line-height:1.65em;--e-global-typography-mpeque-font-family:"Inter";--e-global-typography-mpeque-font-size:14px;--e-global-typography-mpeque-font-weight:400;--e-global-typography-mpeque-line-height:1.55em;--e-global-typography-mboton-font-family:"Inter";--e-global-typography-mboton-font-size:13px;--e-global-typography-mboton-font-weight:600;--e-global-typography-mboton-text-transform:uppercase;--e-global-typography-mboton-line-height:1.2em;--e-global-typography-mboton-letter-spacing:1.8px;background-color:#FFFFFF;color:#231F20;font-family:"Inter", sans-serif;font-size:17px;font-weight:400;line-height:1.65em;}.elementor-kit-11 button,.elementor-kit-11 input[type="button"],.elementor-kit-11 input[type="submit"],.elementor-kit-11 .elementor-button{background-color:#191717;font-family:"Inter", sans-serif;font-size:13px;font-weight:600;text-transform:uppercase;line-height:1.2em;letter-spacing:1.8px;color:#FFFFFF;border-style:solid;border-width:1px 1px 1px 1px;border-color:#191717;border-radius:0px 0px 0px 0px;padding:16px 28px 16px 28px;}.elementor-kit-11 button:hover,.elementor-kit-11 button:focus,.elementor-kit-11 input[type="button"]:hover,.elementor-kit-11 input[type="button"]:focus,.elementor-kit-11 input[type="submit"]:hover,.elementor-kit-11 input[type="submit"]:focus,.elementor-kit-11 .elementor-button:hover,.elementor-kit-11 .elementor-button:focus{background-color:#FFFFFF;color:#191717;}.elementor-kit-11 e-page-transition{background-color:#FFBC7D;}.elementor-kit-11 a{color:#191717;}.elementor-kit-11 a:hover{color:#5E5A5B;}.elementor-kit-11 h1{color:#191717;font-family:"Inria Serif", sans-serif;font-size:clamp(48px, 5.2vw, 80px);font-weight:400;line-height:1.04em;letter-spacing:-1px;}.elementor-kit-11 h2{color:#191717;font-family:"Inria Serif", sans-serif;font-size:clamp(40px, 4vw, 62px);font-weight:400;line-height:1.08em;letter-spacing:-0.6px;}.elementor-kit-11 h3{color:#191717;font-family:"Inria Serif", sans-serif;font-size:clamp(24px, 2vw, 30px);font-weight:400;line-height:1.2em;letter-spacing:-0.2px;}.elementor-kit-11 label{color:#231F20;font-family:"Inter", sans-serif;font-size:14px;font-weight:400;line-height:1.55em;}.elementor-kit-11 input:not([type="button"]):not([type="submit"]),.elementor-kit-11 textarea,.elementor-kit-11 .elementor-field-textual{font-family:"Inter", sans-serif;font-size:17px;font-weight:400;line-height:1.65em;color:#231F20;background-color:#FFFFFF;border-style:solid;border-width:1px 1px 1px 1px;border-color:#8C8A8A;border-radius:0px 0px 0px 0px;padding:14px 16px 14px 16px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1360px;}.e-con{--container-max-width:1360px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-kit-11{--e-global-typography-primary-font-size:44px;--e-global-typography-secondary-font-size:14px;--e-global-typography-text-font-size:16px;--e-global-typography-accent-font-size:13px;--e-global-typography-mdisplay-font-size:52px;--e-global-typography-mtitulo-font-size:44px;--e-global-typography-msubtit-font-size:26px;--e-global-typography-metiqueta-font-size:13px;--e-global-typography-mtarjeta-font-size:14px;--e-global-typography-mtexto-font-size:16px;--e-global-typography-mpeque-font-size:14px;--e-global-typography-mboton-font-size:13px;font-size:16px;}.elementor-kit-11 h1{font-size:52px;}.elementor-kit-11 h2{font-size:44px;}.elementor-kit-11 h3{font-size:26px;}.elementor-kit-11 button,.elementor-kit-11 input[type="button"],.elementor-kit-11 input[type="submit"],.elementor-kit-11 .elementor-button{font-size:13px;}.elementor-kit-11 label{font-size:14px;}.elementor-kit-11 input:not([type="button"]):not([type="submit"]),.elementor-kit-11 textarea,.elementor-kit-11 .elementor-field-textual{font-size:16px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-11{--e-global-typography-primary-font-size:34px;--e-global-typography-secondary-font-size:13px;--e-global-typography-text-font-size:16px;--e-global-typography-accent-font-size:13px;--e-global-typography-mdisplay-font-size:40px;--e-global-typography-mtitulo-font-size:34px;--e-global-typography-msubtit-font-size:24px;--e-global-typography-metiqueta-font-size:12px;--e-global-typography-mtarjeta-font-size:13px;--e-global-typography-mtexto-font-size:16px;--e-global-typography-mpeque-font-size:14px;--e-global-typography-mboton-font-size:13px;font-size:16px;}.elementor-kit-11 h1{font-size:40px;}.elementor-kit-11 h2{font-size:34px;}.elementor-kit-11 h3{font-size:24px;}.elementor-kit-11 button,.elementor-kit-11 input[type="button"],.elementor-kit-11 input[type="submit"],.elementor-kit-11 .elementor-button{font-size:13px;}.elementor-kit-11 label{font-size:14px;}.elementor-kit-11 input:not([type="button"]):not([type="submit"]),.elementor-kit-11 textarea,.elementor-kit-11 .elementor-field-textual{font-size:16px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* Meraki — sistema (lib/sistema.mjs) */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible{outline:2px solid #191717;outline-offset:3px}
.elementor-button:focus-visible{outline:2px solid #191717;outline-offset:4px}
.m-etiqueta .elementor-heading-title::after{content:"";display:block;width:28px;height:1px;background:currentColor;margin-top:12px}
.m-etiqueta.m-centro .elementor-heading-title::after{margin-inline:auto}
.m-boton .elementor-button{display:inline-flex;white-space:nowrap}
.m-boton .elementor-button-icon{transition:transform .25s ease}
.m-boton .elementor-button:hover .elementor-button-icon{transform:translateX(4px)}
.m-img img{display:block;width:100%}
.e-con.m-cubrir>.elementor-widget{flex:1 1 auto;align-self:stretch}
.m-cubrir.elementor-widget,.m-cubrir>.elementor-widget-container,.m-cubrir img{height:100%}
.m-cubrir img{object-fit:cover;width:100%}
body{overflow-x:clip}
/* Márgenes laterales como variable (para piezas que se alinean a la rejilla) */
:root{--m-lat:40px;--m-ancho:1280px}
@media (max-width:1024px){:root{--m-lat:32px}}
@media (max-width:767px){:root{--m-lat:20px}}
.m-ancho-texto{max-width:520px}
/* Hero de la home: texto alineado a la rejilla, carrusel hasta el borde derecho */
.e-con.m-hero-texto{padding-left:max(var(--m-lat),calc((100vw - var(--m-ancho)) / 2))!important}
@media (max-width:1024px){.e-con.m-hero-texto{padding-right:var(--m-lat)!important}}
.m-hero-carrusel .swiper-slide-image{width:100%;height:clamp(420px,48vw,700px);object-fit:cover;display:block}
@media (max-width:1024px){.m-hero-carrusel .swiper-slide-image{height:clamp(300px,62vw,560px)}}
.m-hero-carrusel .elementor-swiper-button{background:#fff;color:#191717;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center}
.m-hero-carrusel .elementor-swiper-button svg{fill:#191717}
/* Carrusel de proyectos: deja ver el siguiente por la derecha */
.m-con-carrusel{overflow:hidden}
.m-foto-43 img{aspect-ratio:4/3;object-fit:cover;object-position:center 25%}
.m-foto-45 img{aspect-ratio:4/5;object-fit:cover}
.m-foto-panoramica img{aspect-ratio:16/9;object-fit:cover;object-position:center 22%}
@media (max-width:767px){.m-foto-panoramica img{aspect-ratio:4/3}}
.m-cubrir-alto,.m-cubrir-alto img{height:100%}
.m-cubrir-alto img{object-fit:cover}
@media (max-width:767px){.m-cubrir-alto img{aspect-ratio:4/3;height:auto}}
.m-frase{max-width:920px;margin-inline:auto}
.m-frase p{margin:0}
.e-con.m-mosaico-taller{grid-auto-rows:clamp(150px,14vw,220px)}
@media (max-width:1024px){.m-foto-45 img{aspect-ratio:4/3}}
/* Foto del hero de servicio: entra con un zoom lento */
.m-foto-entrada.animated img{animation:m-zoom 2.4s cubic-bezier(.22,.61,.36,1) both}
.m-zoom-hover img{transition:transform 1.2s cubic-bezier(.22,.61,.36,1)}
.m-zoom-hover:hover img{transform:scale(1.04)}
/* Mosaico de fotos de servicio: la primera grande (2×2) */
.e-con.m-mosaico{display:grid!important;grid-template-columns:repeat(3,1fr);grid-auto-rows:clamp(170px,19vw,290px);gap:16px}
.m-mosaico>.elementor-widget:first-child{grid-column:span 2;grid-row:span 2}
.m-mosaico>.elementor-widget{overflow:hidden;margin:0!important}
.m-mosaico>.elementor-widget,.m-mosaico .elementor-widget-container,.m-mosaico a{display:block!important;height:100%;width:100%}
.m-mosaico img{width:100%!important;height:100%!important;max-width:none!important;object-fit:cover;transition:transform 1.2s cubic-bezier(.22,.61,.36,1)}
.m-mosaico a:hover img{transform:scale(1.04)}
@media (max-width:767px){.e-con.m-mosaico{grid-template-columns:repeat(2,1fr);grid-auto-rows:150px;gap:10px}.m-mosaico>.elementor-widget:last-child:nth-child(even){grid-column:span 2}}
/* Bloques de la página Servicios: separador fino entre ellos */
:root{--m-sep:72px}
@media (max-width:1024px){:root{--m-sep:56px}}
@media (max-width:767px){:root{--m-sep:48px}}
.e-con.m-serv-bloque+.e-con.m-serv-bloque{padding-top:0!important}
.m-serv-bloque+.m-serv-bloque>.e-con-inner{border-top:1px solid #e4e3e3;padding-top:var(--m-sep)}
/* Galería de proyecto */
.m-galeria .gallery-item img{aspect-ratio:4/5;object-fit:cover;width:100%;height:auto;display:block}
.m-galeria .gallery{margin:0}
/* Pie */
.m-legales a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.m-pie p{margin:0}
/* Banner Kit Digital (tira oficial blanca sobre franja tinta) */
.m-kit-digital-img img{width:100%;max-width:880px;height:auto;margin-inline:auto}
.m-kit-digital-img{width:100%;text-align:center}
/* Modo Próximamente: sin cabecera ni bloque de contacto del pie (la página ya los muestra); el banner Kit Digital se queda */
body.elementor-maintenance-mode .elementor-location-header,body.elementor-maintenance-mode .m-pie{display:none!important}
.m-ancho-titulo{max-width:980px}
/* Textos legales: columna de lectura, subtítulos moderados y datos pendientes resaltados */
.m-legal{max-width:760px}
.m-legal h2{font-family:"Inria Serif",serif;font-size:26px;line-height:1.25;font-weight:400;margin:40px 0 12px;color:#191717}
.m-legal h2:first-child{margin-top:0}
.m-legal ul{padding-left:20px}
.m-legal a{color:#191717;text-decoration:underline;text-underline-offset:3px}
.m-pendiente{background:#fff2b3;color:#191717;padding:0 4px}
/* Banner de cookies (Complianz) con la marca. «Aceptar» y «Denegar» con el mismo peso visual (criterio AEPD). */
.cmplz-cookiebanner,#cmplz-manage-consent .cmplz-manage-consent{
  --cmplz_banner_background_color:#fff;--cmplz_banner_border_color:#e4e3e3;--cmplz_banner_border_width:1px;--cmplz_banner_border_radius:0;
  --cmplz_text_color:#231F20;--cmplz_hyperlink_color:#191717;--cmplz_text_line_height:1.55;--cmplz_text_font_size:14px;--cmplz_link_font_size:13px;
  --cmplz_button_accept_background_color:#191717;--cmplz_button_accept_border_color:#191717;--cmplz_button_accept_text_color:#fff;
  --cmplz_button_deny_background_color:#191717;--cmplz_button_deny_border_color:#191717;--cmplz_button_deny_text_color:#fff;
  --cmplz_button_settings_background_color:#fff;--cmplz_button_settings_border_color:#191717;--cmplz_button_settings_text_color:#191717;
  --cmplz_button_border_radius:0;--cmplz_button_font_size:12px;--cmplz_slider_active_color:#191717;--cmplz_category_header_always_active_color:#191717;
  font-family:Inter,sans-serif}
.cmplz-cookiebanner .cmplz-title{font-family:"Inria Serif",serif;font-weight:400;font-size:20px}
.cmplz-cookiebanner .cmplz-btn{text-transform:uppercase;letter-spacing:1.5px;font-weight:600}
.cmplz-cookiebanner .cmplz-btn:focus-visible,.cmplz-cookiebanner a:focus-visible{outline:2px solid #191717;outline-offset:3px}
#cmplz-manage-consent .cmplz-manage-consent{border-radius:0;font-family:Inter,sans-serif}
/* Selector de idioma (GTranslate) en la cabecera, junto al menú */
.m-cabecera .m-menu{margin-left:auto}
.m-cabecera .m-idiomas{margin-left:28px}
.m-idiomas .gtranslate_wrapper{display:flex;align-items:center;gap:14px}
.m-idiomas .glink{font:600 12px/1 Inter,sans-serif;letter-spacing:1.6px;color:#5E5A5B!important;text-decoration:none!important;padding:6px 0;border-bottom:1px solid transparent;transition:color .3s,border-color .3s}
.m-idiomas .glink:hover,.m-idiomas .glink.gt-current-lang{color:#191717!important;border-bottom-color:#191717;font-weight:600}
.m-idiomas .glink[data-gt-lang=es]{order:1}.m-idiomas .glink[data-gt-lang=gl]{order:2}.m-idiomas .glink[data-gt-lang=en]{order:3}
@media (max-width:1024px){.m-cabecera .m-idiomas{margin-left:16px;order:2}.m-cabecera .m-menu{order:3;margin-left:12px}.m-cabecera .m-logo{margin-right:auto}}
.m-pie .m-pie-sep{--divider-border-width:1px}
.m-pie .m-pie-sep .elementor-divider{padding:0!important}
.m-pie .m-legales,.m-pie .m-legales+*,.m-pie .elementor-widget-text-editor{font-size:13px}
.m-legales a:hover{color:#191717}
.m-form a{color:#191717;text-decoration:underline;text-underline-offset:3px}
.m-contacto a{text-decoration:none}
@media (max-width:767px){.m-contacto .elementor-inline-items{flex-direction:column;align-items:flex-start;gap:12px}.m-contacto .elementor-inline-items .elementor-icon-list-item{margin:0!important;padding:0!important}.m-contacto .elementor-inline-items .elementor-icon-list-item::after{display:none}}
.m-sin-alto{position:absolute;width:0;height:0;overflow:hidden}
/* Filtro del portfolio: texto en mayúsculas con subrayado en el activo (no hereda el botón del kit) */
.m-filtro .e-filter{gap:8px 32px;--e-filter-justify-content:flex-start}
.m-filtro .e-filter-item,.m-filtro .e-filter-item:hover,.m-filtro .e-filter-item:focus{background:none!important;border:0!important;border-bottom:1px solid transparent!important;border-radius:0!important;padding:6px 0!important;color:#5E5A5B!important;font:600 13px/1.2 Inter,sans-serif!important;letter-spacing:1.8px!important;text-transform:uppercase!important;white-space:nowrap;transition:color .3s,border-color .3s}
.m-filtro .e-filter-item:hover,.m-filtro .e-filter-item[aria-pressed="true"]{color:#191717!important;border-bottom-color:#191717!important}
/* Menú: sin subrayado en el desplegable móvil */
.m-menu .elementor-nav-menu--dropdown a{border-left:0}
/* Menú móvil: páginas en serif grande, servicios en Inter, sombra suave */
.m-menu .elementor-nav-menu__container.elementor-nav-menu--dropdown{box-shadow:0 18px 30px rgba(25,23,23,.08)}
.m-menu .elementor-nav-menu--dropdown>.elementor-nav-menu>li>a.elementor-item{font:400 24px/1.3 "Inria Serif",serif!important;letter-spacing:0!important;text-transform:none!important;padding-top:16px!important;padding-bottom:16px!important}
.m-menu .elementor-nav-menu--dropdown .sub-menu a{font:400 15px/1.4 Inter,sans-serif!important;letter-spacing:0!important;text-transform:none!important;padding-left:36px!important}
.m-menu .elementor-menu-toggle{padding:6px}
.m-menu .elementor-menu-toggle:focus-visible{outline:2px solid #191717;outline-offset:3px}
/* ── Movimiento ── */
@keyframes fadeInUp{from{opacity:0;transform:translate3d(0,28px,0)}to{opacity:1;transform:none}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.elementor-element.animated{animation-duration:.9s;animation-timing-function:cubic-bezier(.22,.61,.36,1)}
/* Raya de las etiquetas: se dibuja al aparecer */
@keyframes m-linea{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.m-etiqueta .elementor-heading-title::after{transform-origin:left center}
.m-etiqueta.animated .elementor-heading-title::after{animation:m-linea .7s cubic-bezier(.22,.61,.36,1) .35s both}
/* Hero: zoom lento de la foto activa */
@keyframes m-zoom{from{transform:scale(1.07)}to{transform:scale(1)}}
.m-hero-carrusel .swiper-slide{overflow:hidden}
.m-hero-carrusel .swiper-slide-active .swiper-slide-image{animation:m-zoom 7s cubic-bezier(.22,.61,.36,1) both}
/* Hero: indicadores en línea que se rellenan con el autoplay (5 s) */
@keyframes m-progreso{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.m-hero-carrusel .swiper-pagination{display:flex;gap:8px;left:24px!important;right:auto!important;bottom:18px!important;width:auto!important}
.m-hero-carrusel .swiper-pagination-bullet{width:40px;height:16px;margin:0!important;border-radius:0;opacity:1;position:relative;background:linear-gradient(rgba(255,255,255,.45),rgba(255,255,255,.45)) center/100% 2px no-repeat}
.m-hero-carrusel .swiper-pagination-bullet::after{content:"";position:absolute;left:0;right:0;top:7px;height:2px;background:#fff;transform:scaleX(0);transform-origin:left}
.m-hero-carrusel .swiper-pagination-bullet-active::after{animation:m-progreso 5s linear both}
.m-hero-media,.m-hero-carrusel .swiper{overflow:hidden}
.m-hero-carrusel .swiper-wrapper{transition-timing-function:cubic-bezier(.65,0,.35,1)}
/* Qué hacemos: lista editorial */
@media (min-width:1025px){.m-serv-intro{position:sticky;top:120px}}
.m-serv-lista{border-bottom:1px solid #bab9b9}
.m-serv-fila{position:relative;text-decoration:none;color:inherit;border-top:1px solid #bab9b9}
.m-serv-fila::before{content:"";position:absolute;left:0;right:0;top:-1px;height:1px;background:#191717;transform:scaleX(0);transform-origin:left;transition:transform .7s cubic-bezier(.22,.61,.36,1)}
.m-serv-fila:hover::before,.m-serv-fila:focus-visible::before{transform:scaleX(1)}
.m-serv-cuerpo,.m-serv-flecha{transition:transform .5s cubic-bezier(.22,.61,.36,1)}
.m-serv-fila:hover .m-serv-cuerpo{transform:translateX(8px)}
.m-serv-fila:hover .m-serv-flecha{transform:translateX(6px)}
.m-serv-icono img{width:44px;height:44px}
.e-con.m-serv-cuerpo{--width:auto;flex:1 1 0%!important;min-width:0}
.m-serv-icono,.m-serv-flecha{flex:0 0 auto!important}
/* Carrusel de proyectos: grande, deja ver el siguiente, arrastrable, entrada escalonada */
:root{--m-asoma:200px}
@media (max-width:1024px){:root{--m-asoma:120px}}
@media (max-width:767px){:root{--m-asoma:64px}}
.m-carrusel .swiper{overflow:visible;width:calc(100% - var(--m-asoma))!important;margin-left:0!important;cursor:grab}
.m-carrusel .swiper:active{cursor:grabbing}
.m-carrusel .swiper-wrapper{transition-timing-function:linear!important}
.m-carrusel .elementor-swiper-button{background:#fff;width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 10px rgba(0,0,0,.12);top:calc(50% - 70px);transition:transform .3s ease}
.m-carrusel .elementor-swiper-button:hover{transform:scale(1.08)}
.m-carrusel .elementor-swiper-button.swiper-button-disabled{opacity:0;pointer-events:none}
.m-carrusel .swiper-pagination-progressbar,.m-carrusel .swiper-pagination.swiper-pagination-progressbar{position:relative!important;top:auto!important;margin-top:40px;height:2px!important;width:calc(100% - var(--m-asoma))!important;background:#e4e3e3}
.m-carrusel .swiper-pagination-progressbar-fill{background:#191717!important}
.m-carrusel .e-loop-item{opacity:0;transform:translateY(40px);transition:opacity 1s cubic-bezier(.22,.61,.36,1),transform 1s cubic-bezier(.22,.61,.36,1)}
.m-carrusel.animated .e-loop-item{opacity:1;transform:none}
.m-carrusel.animated .e-loop-item:nth-child(2){transition-delay:.12s}
.m-carrusel.animated .e-loop-item:nth-child(3){transition-delay:.24s}
.m-carrusel.animated .e-loop-item:nth-child(4){transition-delay:.36s}
.elementor-editor-active .m-carrusel .e-loop-item{opacity:1;transform:none}
/* Tarjeta de proyecto (plantilla 123) */
.m-tarjeta{text-decoration:none;color:inherit}
.m-tarjeta-media{position:relative;overflow:hidden}
.m-tarjeta-media img{aspect-ratio:3/4;object-fit:cover;width:100%;display:block}
/* El zoom al pasar el ratón va en el envoltorio: la imagen queda libre para el parallax */
.m-tarjeta-media .elementor-widget-theme-post-featured-image{transition:transform 1.2s cubic-bezier(.22,.61,.36,1)}
.m-tarjeta:hover .m-tarjeta-media .elementor-widget-theme-post-featured-image{transform:scale(1.06)}
/* Rejilla editorial de la página Proyectos: 2 columnas, la segunda desplazada, tarjetas grandes */
@media (min-width:768px){.m-rejilla-editorial .e-loop-item:nth-of-type(even){margin-top:160px}}
.m-rejilla-editorial .m-tarjeta-media img{aspect-ratio:4/5}
.m-rejilla-editorial .m-tarjeta-titulo .elementor-heading-title{font-size:clamp(26px,2.4vw,36px)}
/* Aparición y parallax ligados al scroll (solo navegadores con animation-timeline; el resto ve la rejilla sin animar) */
@supports (animation-timeline: view()){
@keyframes m-revelar{from{opacity:0;transform:translateY(60px)}to{opacity:1;transform:none}}
@keyframes m-paralaje{from{transform:translateY(-7%) scale(1.14)}to{transform:translateY(7%) scale(1.14)}}
.m-rejilla .e-loop-item{animation:m-revelar linear both;animation-timeline:view();animation-range:entry 0% entry 70%}
.m-rejilla-editorial .m-tarjeta-media img{animation:m-paralaje linear both;animation-timeline:view();animation-range:cover 0% cover 100%}
}
.m-tarjeta-media::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(25,23,23,.6),rgba(25,23,23,0) 50%);opacity:0;transition:opacity .6s ease;pointer-events:none}
.m-tarjeta:hover .m-tarjeta-media::after,.m-tarjeta:focus-visible .m-tarjeta-media::after{opacity:1}
.m-tarjeta-ver{position:absolute!important;left:24px;bottom:20px;z-index:2;opacity:0;transform:translateY(12px);transition:opacity .5s ease,transform .5s cubic-bezier(.22,.61,.36,1)}
.m-tarjeta:hover .m-tarjeta-ver,.m-tarjeta:focus-visible .m-tarjeta-ver{opacity:1;transform:none}
.m-tarjeta-ver p{margin:0;color:#fff}
.m-tarjeta-titulo .elementor-heading-title::before{display:block;font:600 12px/1 Inter,sans-serif;letter-spacing:2px;color:#5E5A5B;margin-bottom:12px}
.m-tarjeta:focus-visible{outline-offset:6px}
/* Botón de pausa de los carruseles automáticos (lo crea el script del pie) */
.m-autoplay{position:relative}
.m-pausa,.m-pausa:hover,.m-pausa:focus{position:absolute;z-index:5;width:40px;height:40px;border-radius:50%!important;border:0;padding:0!important;background:#fff!important;color:#191717!important;font-size:11px;line-height:40px;text-align:center;cursor:pointer;box-shadow:0 1px 6px rgba(0,0,0,.15);opacity:.85;transition:opacity .3s}
.m-pausa:hover,.m-pausa:focus-visible{opacity:1}
.m-hero-carrusel .m-pausa{right:16px;bottom:16px}
.m-carrusel .m-pausa,.m-carrusel .m-pausa:hover{left:0;bottom:-64px;box-shadow:none;border:1px solid #bab9b9!important;opacity:1}
.m-carrusel .m-pausa:hover{border-color:#191717!important}
/* Imágenes con parallax: el recorte lo hace la columna */
.m-recorte{overflow:hidden}
/* Cabecera fija que se compacta al bajar */
.m-cabecera{transition:padding .3s ease,box-shadow .3s ease}
.m-cabecera.elementor-sticky--effects{box-shadow:0 1px 0 #e7e6e6;padding-top:10px!important;padding-bottom:10px!important}
.m-cabecera>.e-con-inner{transition:padding .3s ease}
.m-cabecera.elementor-sticky--effects>.e-con-inner{padding-top:0!important;padding-bottom:0!important}
.m-cabecera .m-logo img{transition:width .3s ease}
.m-cabecera.elementor-sticky--effects .m-logo,.m-cabecera.elementor-sticky--effects .m-logo img{width:130px!important}
.m-cabecera .m-logo{transition:width .3s ease}
/* ── Móvil: todo el contenido centrado (Aaron, 23/10/2026). Fuera: cabecera, campos del formulario y cuerpo de los legales ── */
@media (max-width:767px){
  .elementor-location-single .e-con:not(.m-cabecera):not(.m-serv-fila):not(.m-tarjeta),
  .elementor-location-footer .e-con,
  [data-elementor-type="wp-page"] .e-con:not(.m-serv-fila):not(.m-tarjeta),
  [data-elementor-type="error-404"] .e-con,
  [data-elementor-type="page"] .e-con{align-items:center!important;--align-items:center}
  .elementor-widget-heading .elementor-heading-title,
  .elementor-widget-text-editor,
  .elementor-widget-theme-post-title .elementor-heading-title,
  .elementor-widget-theme-post-excerpt,
  .elementor-widget-image:not(.m-logo):not(.m-serv-icono),
  .m-tarjeta,.m-ancho-texto,.m-frase{text-align:center!important;margin-inline:auto}
  .m-legal{text-align:left!important}
  .m-ancho-texto,.m-ancho-titulo{max-width:none}
  .m-boton,.elementor-widget-button{align-self:center!important}
  .m-boton .elementor-button-wrapper{text-align:center}
  /* Listas de contacto centradas */
  .m-contacto .elementor-icon-list-items{display:flex!important;flex-direction:column;align-items:center!important;justify-content:center!important}
  .m-contacto .elementor-inline-items{align-items:center!important;justify-content:center!important}
  .m-contacto .elementor-icon-list-item{justify-content:center;text-align:center;max-width:100%}
  .m-contacto .elementor-icon-list-text{flex:0 1 auto!important;text-align:left}
  /* Filas de servicios apiladas y centradas */
  .e-con.m-serv-fila{flex-direction:column!important;align-items:center!important;text-align:center;--flex-direction:column}
  .m-serv-fila .m-serv-flecha{display:none}
  .e-con.m-serv-cuerpo{align-items:center!important;text-align:center;flex:0 0 auto!important;width:100%}
  .m-serv-fila:hover .m-serv-cuerpo{transform:none}
  /* Tarjetas de proyecto: texto centrado */
  .m-tarjeta{align-items:center!important}
  .m-tarjeta .elementor-widget-theme-post-title,.m-tarjeta .elementor-widget-theme-post-excerpt{width:100%}
  /* Pie */
  .m-pie .e-con{align-items:center!important;text-align:center}
  .m-pie .m-legales,.m-pie .elementor-widget-text-editor{text-align:center}
  /* Etiquetas con raya (números de servicio) */
  .m-etiqueta .elementor-heading-title::after{margin-inline:auto}
}
@media (prefers-reduced-motion: reduce){
  .elementor-invisible{visibility:visible!important}
  .elementor-motion-effects-element,.elementor-motion-effects-layer{transform:none!important}
  .m-hero-carrusel .swiper-slide-image{animation:none!important}
  .m-carrusel .e-loop-item{opacity:1!important;transform:none!important}
  .m-rejilla .e-loop-item,.m-rejilla-editorial .m-tarjeta-media img{animation:none!important;opacity:1!important;transform:none!important}
  .m-hero-carrusel .swiper-pagination-bullet-active::after{animation:none!important;transform:scaleX(1)}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .swiper-wrapper{transition-duration:0ms!important}
}
.e-loop-item-104 .m-tarjeta-titulo .elementor-heading-title::before{content:"01"}
.e-loop-item-106 .m-tarjeta-titulo .elementor-heading-title::before{content:"02"}
.e-loop-item-108 .m-tarjeta-titulo .elementor-heading-title::before{content:"03"}
.e-loop-item-110 .m-tarjeta-titulo .elementor-heading-title::before{content:"04"}
.e-loop-item-112 .m-tarjeta-titulo .elementor-heading-title::before{content:"05"}
.e-loop-item-114 .m-tarjeta-titulo .elementor-heading-title::before{content:"06"}
.e-loop-item-116 .m-tarjeta-titulo .elementor-heading-title::before{content:"07"}
.e-loop-item-118 .m-tarjeta-titulo .elementor-heading-title::before{content:"08"}
.m-filtro .e-filter-item[data-filter="__all"]{order:-1}
.m-filtro .e-filter-item[data-filter="escenografia"]{order:0}
.m-filtro .e-filter-item[data-filter="moda-y-fotografia"]{order:1}
.m-filtro .e-filter-item[data-filter="audiovisual"]{order:2}
.m-filtro .e-filter-item[data-filter="teatro"]{order:3}
.m-filtro .e-filter-item[data-filter="atrezzo"]{order:4}
.m-filtro .e-filter-item[data-filter="espacios-tematicos"]{order:5}
.m-filtro .e-filter-item[data-filter="pintura-y-acabados"]{order:6}
.page-id-136 .m-pie-cta,.page-id-136 .m-pie-sep{display:none}/* End custom CSS */