/*v5*/.curva{color:#DA328A}.mr-degradado:not(.claro) .curva{color:#F6D5E6}.titulo-brillo .curva{color:inherit}a[style*='color: #DA328A'],a[style*='color:#DA328A']{color:#B62672!important}
/*v6*/.hero-rosa{background-color:#DA328A!important;background-image:linear-gradient(180deg,rgba(218,50,138,0) 55%,rgba(201,96,161,.55) 100%),url(../../img/fondos/fondo-rosa.jpg)!important;background-size:cover!important;background-position:center!important;animation:none!important}.fondo-fluido{background-color:#C960A1!important;background-image:linear-gradient(90deg,rgba(62,36,92,.35),rgba(218,50,138,.1)),url(../../img/fondos/fondo-fluido.jpg)!important;background-size:cover!important;background-position:center!important;animation:none!important}.serv-card:hover{background:radial-gradient(80% 90% at 85% 10%,rgba(218,50,138,.9),transparent 70%),linear-gradient(150deg,#363B6B,#574092)!important;border-color:rgba(255,255,255,.4)!important;box-shadow:0 30px 70px rgba(218,50,138,.35),0 0 0 1px rgba(255,255,255,.25) inset!important;color:#fff!important}.serv-card:hover *{color:#fff!important}.serv-card:hover .ic{background:rgba(255,255,255,.18)!important}.resenas-track{display:inline-flex;gap:24px;animation:mr-desliza 70s linear infinite}.resenas-zona:hover .resenas-track{animation-play-state:paused}@keyframes mr-desliza{from{transform:translateX(0)}to{transform:translateX(-50%)}}@media (prefers-reduced-motion:reduce){.resenas-track{animation:none}}.deco{position:absolute;pointer-events:none;z-index:0}
/*zoomfit*/body{zoom:0.755}

body{margin:0;background:#ffffff;color:#3E245C;font-family:'DM Sans',system-ui,sans-serif}
a{color:#DA328A}a:hover{color:#3E245C}
.mr-track{display:inline-flex;white-space:nowrap;animation:mr-mar 36s linear infinite;will-change:transform}
.mr-track.rev{animation-direction:reverse}
@keyframes mr-mar{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.titulo-brillo{background-image:linear-gradient(110deg,rgba(255,255,255,0) 38%,rgba(255,255,255,.9) 50%,rgba(255,255,255,0) 62%),linear-gradient(90deg,#3E245C 0%,#DA328A 55%,#DF98C2 100%);background-size:260% 100%,100% 100%;background-repeat:no-repeat;-webkit-background-clip:text;background-clip:text;color:transparent;animation:mr-brillo 5.5s ease-in-out infinite}
.titulo-brillo.claro{background-image:linear-gradient(110deg,rgba(255,255,255,0) 38%,rgba(255,255,255,1) 50%,rgba(255,255,255,0) 62%),linear-gradient(90deg,#FFFFFF 0%,#F6D5E6 55%,#DF98C2 100%)}
@keyframes mr-brillo{0%{background-position:170% 0,0 0}55%,100%{background-position:-70% 0,0 0}}
.mr-rota{animation:mr-rota 12.5s cubic-bezier(.7,0,.3,1) infinite}
@keyframes mr-rota{0%,15%{transform:translateY(0)}20%,35%{transform:translateY(-16.6667%)}40%,55%{transform:translateY(-33.3333%)}60%,75%{transform:translateY(-50%)}80%,95%{transform:translateY(-66.6667%)}100%{transform:translateY(-83.3333%)}}
.quieto .mr-track,.quieto .titulo-brillo,.quieto .mr-rota{animation:none}
@media (prefers-reduced-motion:reduce){.mr-track,.titulo-brillo,.mr-rota{animation:none}}

.viaje-scroll{scroll-timeline:--viaje y}
.viaje-lista{animation:viaje-sube linear both;animation-timeline:--viaje}
@keyframes viaje-sube{0%,12%{transform:translateY(0)}30%,37%{transform:translateY(-190px)}55%,62%{transform:translateY(-380px)}80%,100%{transform:translateY(-570px)}}
.vpaso{opacity:.28;animation:linear both;animation-timeline:--viaje}
.vpaso.p0{animation-name:vp0}.vpaso.p1{animation-name:vp1}.vpaso.p2{animation-name:vp2}.vpaso.p3{animation-name:vp3}
@keyframes vp0{0%,20%{opacity:1}30%,100%{opacity:.28}}
@keyframes vp1{0%,20%{opacity:.28}30%,45%{opacity:1}55%,100%{opacity:.28}}
@keyframes vp2{0%,45%{opacity:.28}55%,70%{opacity:1}80%,100%{opacity:.28}}
@keyframes vp3{0%,70%{opacity:.28}80%,100%{opacity:1}}
.viaje-pantalla{opacity:0;animation:linear both;animation-timeline:--viaje}
.vp0{opacity:1;animation-name:vs0}.vp1{animation-name:vs1}.vp2{animation-name:vs2}.vp3{animation-name:vs3}
@keyframes vs0{0%,20%{opacity:1;transform:none}30%,100%{opacity:0;transform:translateY(-24px) scale(.97)}}
@keyframes vs1{0%,20%{opacity:0;transform:translateY(24px) scale(.97)}30%,45%{opacity:1;transform:none}55%,100%{opacity:0;transform:translateY(-24px) scale(.97)}}
@keyframes vs2{0%,45%{opacity:0;transform:translateY(24px) scale(.97)}55%,70%{opacity:1;transform:none}80%,100%{opacity:0;transform:translateY(-24px) scale(.97)}}
@keyframes vs3{0%,70%{opacity:0;transform:translateY(24px) scale(.97)}80%,100%{opacity:1;transform:none}}
.viaje-tarjeta{animation:viaje-gira linear both;animation-timeline:--viaje}
@keyframes viaje-gira{from{transform:rotate(-8deg) translateY(20px)}to{transform:rotate(6deg) translateY(-30px)}}
@supports not (animation-timeline: scroll()){.vpaso{opacity:1}.viaje-pantalla{opacity:0}.vp2{opacity:1}}
@media (prefers-reduced-motion: reduce){.viaje-lista,.vpaso,.viaje-pantalla,.viaje-tarjeta{animation:none!important}.vpaso{opacity:1}}

/*v3*/
.curva{font-family:'Instrument Serif',Georgia,serif;font-style:italic;font-weight:400;letter-spacing:-0.01em}
.mr-degradado{position:relative;isolation:isolate;background-color:#363B6B;background-image:radial-gradient(55% 75% at 85% 15%,rgba(218,50,138,.7),transparent 62%),radial-gradient(45% 65% at 8% 95%,rgba(87,64,146,.9),transparent 65%),radial-gradient(35% 45% at 62% 72%,rgba(242,139,51,.22),transparent 70%),linear-gradient(160deg,#363B6B 0%,#3E245C 55%,#2F2A5A 100%);background-size:140% 140%,140% 140%,140% 140%,100% 100%;animation:mr-deriva 18s ease-in-out infinite alternate}
.mr-degradado.claro{background-color:#FBF1F5;background-image:radial-gradient(50% 70% at 92% 8%,rgba(218,50,138,.32),transparent 65%),radial-gradient(45% 60% at 4% 100%,rgba(223,152,194,.5),transparent 65%),radial-gradient(35% 45% at 58% 62%,rgba(242,139,51,.18),transparent 70%),linear-gradient(160deg,#FFF8F3,#FBEAF2)}
.mr-degradado.lab{background-image:radial-gradient(55% 75% at 85% 15%,rgba(218,50,138,.85),transparent 62%),radial-gradient(45% 65% at 8% 95%,rgba(54,59,107,.95),transparent 65%),radial-gradient(35% 45% at 60% 70%,rgba(242,139,51,.3),transparent 70%),linear-gradient(140deg,#363B6B,#574092 45%,#C960A1)}
.mr-degradado::after{content:"";position:absolute;inset:0;z-index:-1;background-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%27160%27 height=%27160%27%3E%3Cfilter id=%27n%27%3E%3CfeTurbulence type=%27fractalNoise%27 baseFrequency=%270.85%27 numOctaves=%272%27 stitchTiles=%27stitch%27/%3E%3C/filter%3E%3Crect width=%27100%25%27 height=%27100%25%27 filter=%27url(%23n)%27/%3E%3C/svg%3E");opacity:.2;mix-blend-mode:overlay;pointer-events:none}
.mr-degradado.claro::after{opacity:.28;mix-blend-mode:soft-light}
@keyframes mr-deriva{0%{background-position:0% 0%,100% 100%,50% 50%,0 0}100%{background-position:30% 20%,70% 80%,40% 60%,0 0}}
.vidrio{background:rgba(255,255,255,.14);-webkit-backdrop-filter:blur(18px) saturate(140%);backdrop-filter:blur(18px) saturate(140%);border:1px solid rgba(255,255,255,.38);box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 20px 50px rgba(20,10,40,.22)}
.grano{position:relative;isolation:isolate}.grano::after{content:"";position:absolute;inset:0;border-radius:inherit;z-index:-1;background-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%27160%27 height=%27160%27%3E%3Cfilter id=%27n%27%3E%3CfeTurbulence type=%27fractalNoise%27 baseFrequency=%270.85%27 numOctaves=%272%27 stitchTiles=%27stitch%27/%3E%3C/filter%3E%3Crect width=%27100%25%27 height=%27100%25%27 filter=%27url(%23n)%27/%3E%3C/svg%3E");opacity:.3;mix-blend-mode:overlay;pointer-events:none}
@keyframes mr-flota{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.mr-flota{animation:mr-flota 6s ease-in-out infinite}.mr-flota.d2{animation-delay:-2s}.mr-flota.d3{animation-delay:-4s}
@media (prefers-reduced-motion:reduce){.mr-degradado,.mr-flota{animation:none}}

.revela{animation:mr-revela linear both;animation-timeline:view();animation-range:entry 0% entry 100%}
@keyframes mr-revela{from{opacity:0;transform:translateY(46px)}to{opacity:1;transform:none}}
.ilumina{animation:mr-ilumina linear both;animation-timeline:view();animation-range:entry 0% entry 100%}
@keyframes mr-ilumina{from{opacity:.12;filter:blur(3px)}to{opacity:1;filter:none}}
.cifras-caja{transition:transform .9s cubic-bezier(.22,1,.36,1)}
.cifras-caja .vidrio{transition:transform .9s cubic-bezier(.22,1,.36,1)}
.cifras-caja:hover{transform:rotate(-1.5deg) scale(1.015)}
.cifras-caja:hover .c1{transform:translate(-14px,-10px)}.cifras-caja:hover .c2{transform:translate(16px,-6px)}.cifras-caja:hover .c3{transform:translate(-10px,12px)}
.cifras-caja:hover .circ{transform:translate(-50%,-50%) scale(1.05)!important}
.pill-viaje{transition:transform .7s cubic-bezier(.22,1,.36,1),background .7s,box-shadow .7s,flex-grow .7s}
.pill-viaje:hover{flex-grow:1.35;background:rgba(255,255,255,.24);box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 0 0 1px rgba(255,194,228,.6),0 18px 50px rgba(218,50,138,.35)}
.pill-flecha path{stroke-dasharray:320;stroke-dashoffset:0}
.pill-flecha:hover path{animation:mr-traza 1.2s cubic-bezier(.22,1,.36,1)}
@keyframes mr-traza{from{stroke-dashoffset:320}to{stroke-dashoffset:0}}
.serv-card{position:relative;overflow:hidden;transition:transform .7s cubic-bezier(.22,1,.36,1),background .6s,box-shadow .6s,border-color .6s}
.serv-card::before{content:"";position:absolute;inset:-40%;background:radial-gradient(30% 30% at 30% 20%,rgba(223,152,194,.55),transparent 70%);opacity:0;transition:opacity .6s,transform 1.2s cubic-bezier(.22,1,.36,1);pointer-events:none;z-index:0}
.serv-card>*{position:relative;z-index:1}
.serv-card:hover{transform:translateY(-10px) scale(1.02);background:rgba(255,255,255,.82)!important;border-color:rgba(218,50,138,.45)!important;box-shadow:0 30px 60px rgba(61,26,91,.18),inset 0 1px 0 #fff}
.serv-card:hover::before{opacity:1;transform:translate(20%,25%)}
.serv-card .ver{transition:transform .6s cubic-bezier(.22,1,.36,1),letter-spacing .6s}
.serv-card:hover .ver{transform:translateX(8px);letter-spacing:.02em}
.serv-card .ic{transition:transform .8s cubic-bezier(.22,1,.36,1)}
.serv-card:hover .g-ondula{animation:mr-ondula 1.4s ease-in-out infinite}
.serv-card:hover .g-flota{animation:mr-flota 2.4s ease-in-out infinite}
.serv-card:hover .g-brilla{animation:mr-brilla 1.6s ease-in-out infinite}
.serv-card:hover .g-rebota{animation:mr-rebota 1.2s cubic-bezier(.22,1,.36,1) infinite}
@keyframes mr-ondula{0%,100%{transform:rotate(0)}25%{transform:rotate(-10deg) translateY(-3px)}75%{transform:rotate(10deg) translateY(3px)}}
@keyframes mr-brilla{0%,100%{box-shadow:0 0 0 0 rgba(218,50,138,.0)}50%{box-shadow:0 0 0 10px rgba(218,50,138,.18),0 0 30px rgba(218,50,138,.5)}}
@keyframes mr-rebota{0%,100%{transform:translateY(0)}40%{transform:translateY(-9px)}60%{transform:translateY(-4px)}}
.logos-fade{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 22%,#000 78%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 22%,#000 78%,transparent 100%)}
.proyecto-card{transition:transform .7s cubic-bezier(.22,1,.36,1)}.proyecto-card:hover{transform:translateY(-8px)}
.proyecto-card .img{transition:transform 1.1s cubic-bezier(.22,1,.36,1)}.proyecto-card:hover .img{transform:scale(1.04)}
@supports not (animation-timeline: view()){.revela,.ilumina{animation:none}}
@media (prefers-reduced-motion:reduce){.revela,.ilumina,.pill-flecha path,.serv-card .ic{animation:none!important}}

.mapa-pulso{transform-box:fill-box;transform-origin:center;animation:mr-mpulso 2.6s ease-out infinite}
@keyframes mr-mpulso{0%{transform:scale(.6);opacity:.45}100%{transform:scale(1.7);opacity:0}}
.mapa-arco{stroke-dashoffset:0;animation:mr-marco 3s linear infinite}
@keyframes mr-marco{to{stroke-dashoffset:-28}}
@media (prefers-reduced-motion:reduce){.mapa-pulso,.mapa-arco{animation:none}}

/* Tarjetas de servicios: al pasar el mouse se iluminan en azul y el texto queda blanco */
.serv-card.vidrio:hover{background:radial-gradient(80% 90% at 85% 10%,rgba(218,50,138,.55),transparent 70%),linear-gradient(150deg,#363B6B,#574092)!important;border-color:rgba(255,255,255,.35)!important;box-shadow:0 30px 70px rgba(54,59,107,.35)!important}
.serv-card.vidrio:hover *{color:#fff!important}
.serv-card.vidrio:hover::before{opacity:.5}

/* Reseñas: comillas, texto y abajo el logo en círculo con el nombre */
.mr-resenas-fila{display:flex;gap:24px;align-items:stretch}
.mr-resena{--fondo:#ffffff;--texto:#3E245C;margin:0;flex:0 0 380px;width:380px;display:flex;flex-direction:column;white-space:normal}
.mr-resena--destacada{--fondo:linear-gradient(160deg,#C960A1 0%,#DA328A 100%);--texto:#ffffff}
.mr-resena__caja{background:var(--fondo);color:var(--texto);border-radius:32px 32px 0 32px;padding:28px 28px 22px;flex:1;display:flex;flex-direction:column;gap:18px}
.mr-resena__comillas{width:44px;height:33px;fill:#DA328A;opacity:.25}
.mr-resena--destacada .mr-resena__comillas{fill:#fff;opacity:.45}
.mr-resena blockquote{margin:0;font-size:16px;line-height:1.6;display:-webkit-box;-webkit-line-clamp:9;-webkit-box-orient:vertical;overflow:hidden}
.mr-resena__pie{display:flex;align-items:stretch}
.mr-resena__quien{flex:1 1 auto;display:flex;align-items:center;gap:12px;padding:12px 8px 0 0;min-width:0}
.mr-resena__quien>span:last-child{display:flex;flex-direction:column;min-width:0}
.mr-resena__quien strong{font-family:Outfit,sans-serif;font-weight:700;font-size:18px;color:#3E245C;line-height:1.2}
.mr-resena__quien small{font-size:14px;color:#5B4A6E;line-height:1.3}
.mr-resena__logo{flex:0 0 64px;width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,#DA328A,#C960A1);display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:0 8px 20px rgba(62,36,92,.15)}
.mr-resena__logo img{max-width:70%;max-height:60%;object-fit:contain}
.mr-resena__logo b{font-family:Outfit,sans-serif;font-size:26px;color:#fff}
.mr-resena__lengua{flex:0 0 38%;background:var(--fondo);border-radius:0 0 32px 32px;height:76px;position:relative}
.mr-resena--destacada .mr-resena__lengua{background:#DA328A}
.mr-resena__lengua::before{content:"";position:absolute;right:100%;top:0;width:32px;height:32px;background:radial-gradient(circle at 0 100%,transparent 31.5px,#fff 32px)}
.mr-resena--destacada .mr-resena__lengua::before{background:radial-gradient(circle at 0 100%,transparent 31.5px,#DA328A 32px)}
.mr-resena--destacada .mr-resena__caja{background:linear-gradient(160deg,#C960A1 0%,#DA328A 100%)}
@media (max-width:600px){.mr-resena{flex-basis:300px}}
/* HABLEMOS: letras oscuras y una luz rosada que pasa por detrás, de la H a la S y de vuelta */
#hablemos.titulo-brillo{background-image:linear-gradient(90deg,#3E245C 0%,#3E245C 30%,#A8236A 40%,#DA328A 46%,#F6D5E6 50%,#DA328A 54%,#A8236A 60%,#3E245C 70%,#3E245C 100%)!important;background-size:300% 100%!important;background-repeat:no-repeat!important;-webkit-background-clip:text;background-clip:text;color:transparent;animation:mr-luz-detras 7s ease-in-out infinite alternate!important}
@keyframes mr-luz-detras{from{background-position:100% 0}to{background-position:0 0}}
@media (prefers-reduced-motion:reduce){#hablemos.titulo-brillo{animation:none!important;background-position:50% 0!important}}

/* Reseñas: se deslizan solas, se arrastran con la barra y se abren al tocarlas */
.resenas-zona.mr-interactiva{overflow-x:auto;scrollbar-width:none;cursor:grab}
.resenas-zona.mr-interactiva::-webkit-scrollbar{display:none}
.resenas-zona.mr-interactiva .resenas-track{animation:none!important}
.mr-resena{cursor:pointer}
.mr-resenas-barra{display:block;width:min(420px,80%);margin:22px auto 0;accent-color:#DA328A;cursor:pointer}
.mr-resena-modal{position:fixed;inset:0;z-index:300;background:rgba(30,15,50,.55);display:flex;align-items:center;justify-content:center;padding:20px}
.mr-resena-modal .mr-resena{flex:none;width:min(640px,100%);cursor:default}
.mr-resena-modal blockquote{-webkit-line-clamp:unset!important;display:block!important;max-height:60vh;overflow:auto;font-size:18px}
.mr-resena-modal button{position:absolute;top:18px;right:18px;width:46px;height:46px;border-radius:50%;border:0;background:#fff;color:#3E245C;font-size:22px;cursor:pointer}
