/* ======= Generado por build_widgets.py - no editar a mano ======= */
/* ==========================================================================
   VÍDEO CON CARDS FLOTANTES  (.mpl-hvc)
   El escenario deja el desbordamiento visible para que las cards puedan salir
   del marco; solo el marco recorta, que es donde vive el vídeo.
   ========================================================================== */
.mpl-hvc-outer{display:flex}
.mpl-hvc{
  position:relative;
  width:100%;
  --mpl-hvc-float-dur:6s;
  --mpl-hvc-float-dist:-12px;
  --mpl-hvc-float-rot:1deg;
}
.mpl-hvc-frame{
  position:relative;
  width:100%;
  aspect-ratio:1;
  overflow:hidden;
  box-sizing:border-box;
  border:0 solid transparent;
  line-height:0;
}
.mpl-hvc--auto .mpl-hvc-frame{aspect-ratio:auto;height:auto}
.mpl-hvc-media{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .6s ease;
}
.mpl-hvc--auto .mpl-hvc-media{height:auto}
.mpl-hvc-overlay{position:absolute;inset:0;pointer-events:none}
.mpl-hvc-empty{
  display:grid;place-items:center;
  width:100%;min-height:280px;
  background:rgba(148,163,184,.14);
  color:#64748b;font-size:14px;line-height:1.4;
}

/* --- Cards --- */
.mpl-hvc-card{position:absolute;z-index:6;--mpl-hvc-x:0px;--mpl-hvc-y:30px}
.mpl-hvc-a-tl{top:var(--mpl-hvc-y);left:var(--mpl-hvc-x)}
.mpl-hvc-a-tr{top:var(--mpl-hvc-y);right:var(--mpl-hvc-x)}
.mpl-hvc-a-bl{bottom:var(--mpl-hvc-y);left:var(--mpl-hvc-x)}
.mpl-hvc-a-br{bottom:var(--mpl-hvc-y);right:var(--mpl-hvc-x)}
.mpl-hvc-a-tc{top:var(--mpl-hvc-y);left:50%;translate:-50% 0;margin-left:var(--mpl-hvc-x)}
.mpl-hvc-a-bc{bottom:var(--mpl-hvc-y);left:50%;translate:-50% 0;margin-left:var(--mpl-hvc-x)}
.mpl-hvc-a-ml{top:50%;translate:0 -50%;left:var(--mpl-hvc-x);margin-top:var(--mpl-hvc-y)}
.mpl-hvc-a-mr{top:50%;translate:0 -50%;right:var(--mpl-hvc-x);margin-top:var(--mpl-hvc-y)}

.mpl-hvc-inner{
  display:flex;
  align-items:center;
  text-decoration:none;
  box-sizing:border-box;
  transition:translate .3s ease,box-shadow .3s ease;
}
.mpl-hvc--float .mpl-hvc-inner{
  animation:mpl-hvcFloat var(--mpl-hvc-float-dur) ease-in-out infinite alternate;
}
@keyframes mpl-hvcFloat{
  from{transform:translateY(0) rotate(0deg)}
  to{transform:translateY(var(--mpl-hvc-float-dist)) rotate(var(--mpl-hvc-float-rot))}
}
.mpl-hvc-icon{
  display:grid;place-items:center;
  flex-shrink:0;line-height:1;
  overflow:hidden;
}
.mpl-hvc-icon svg{display:block;width:1em;height:1em}
.mpl-hvc-txt{display:flex;flex-direction:column;min-width:0;gap:2px}
.mpl-hvc-t{display:block}
.mpl-hvc-s{display:block}

/* El movimiento continuo molesta a quien lo ha desactivado en su sistema. */
@media (prefers-reduced-motion:reduce){
  .mpl-hvc--float .mpl-hvc-inner{animation:none}
  .mpl-hvc-media{transition:none}
}
@media (max-width:1024px){.mpl-hvc-hide-t{display:none}}
@media (max-width:767px){.mpl-hvc-hide-m{display:none}}

/* ==========================================================================
   LABEL DE Reseñas DE GOOGLE  (.mpl-grev)
   ========================================================================== */
/* Sin align-items la pastilla se estira al ancho del padre por ser un
   contenedor en columna. El control de alineación sobrescribe esto. */
.mpl-grev-wrap{display:flex;flex-direction:column;align-items:flex-start}
.mpl-grev{
  display:inline-flex;
  align-items:center;
  flex-wrap:nowrap;
  box-sizing:border-box;
  text-decoration:none;
  transition-property:transform,background,border-color,box-shadow;
  transition-timing-function:ease;
}
.mpl-grev-logo{
  display:inline-flex;align-items:center;justify-content:center;
  flex-shrink:0;line-height:0;
}
.mpl-grev-logo--disc{border-radius:50%;overflow:hidden}
.mpl-grev-logo svg,.mpl-grev-logo img{display:block;object-fit:contain}

/* Dos filas superpuestas: la de abajo en gris, la de arriba recortada al
   porcentaje de la calificación. Así 4,7 de 5 pinta 94% de la fila. */
.mpl-grev-stars{
  position:relative;display:inline-flex;flex-shrink:0;line-height:1;
  --mpl-grev-star-gap:1.4px;
}
.mpl-grev-stars-bg,.mpl-grev-stars-fg{
  display:inline-flex;flex-wrap:nowrap;line-height:1;
  gap:var(--mpl-grev-star-gap);
}
.mpl-grev-stars-fg{
  position:absolute;left:0;top:0;height:100%;
  width:var(--mpl-grev-fill,100%);
  overflow:hidden;
}
.mpl-grev-star{flex:none;display:inline-flex;align-items:center;line-height:1}
.mpl-grev-star svg{display:block;width:1em;height:1em}
.mpl-grev-text{white-space:nowrap}
.mpl-grev-arrow{
  display:inline-flex;flex-shrink:0;line-height:0;
  transition-property:transform,color;transition-timing-function:ease;
}
.mpl-grev-arrow svg{display:block}
@media (prefers-reduced-motion:reduce){
  .mpl-grev,.mpl-grev-arrow{transition:none}
}

/* ==========================================================================
   CARRUSEL DE LOGOS  (.mpl-logos)
   ========================================================================== */
.mpl-logos{
  overflow:hidden;container-type:inline-size;
  --mpl-logos-cols:5;--mpl-logos-gap:32px;--mpl-logos-row-gap:24px;--mpl-logos-fade:70px;
  --mpl-logos-dur:30s;
}
.mpl-logos.mpl-logos--fade{
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 var(--mpl-logos-fade),#000 calc(100% - var(--mpl-logos-fade)),transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 var(--mpl-logos-fade),#000 calc(100% - var(--mpl-logos-fade)),transparent 100%);
}
.mpl-logos-track{
  display:flex;width:max-content;
  animation:mpl-logosMarquee var(--mpl-logos-dur) linear infinite;
  will-change:transform; /* capa de composición estable en Safari (mask + animación) */
}
.mpl-logos.mpl-logos--right .mpl-logos-track{animation-direction:reverse}
.mpl-logos.mpl-logos--pause:hover .mpl-logos-track{animation-play-state:paused}
@keyframes mpl-logosMarquee{to{transform:translateX(-50%)}}
.mpl-logos-set{
  display:flex;align-items:center;flex:none;
  gap:var(--mpl-logos-gap);padding-right:var(--mpl-logos-gap);
}
.mpl-logos-logo{
  flex:0 0 calc((100cqw - (var(--mpl-logos-cols) - 1) * var(--mpl-logos-gap)) / var(--mpl-logos-cols));
  display:flex;align-items:center;justify-content:center;
  text-decoration:none;box-sizing:border-box;
  transition:background .3s ease,border-color .3s ease;
}
.mpl-logos-logo img{
  max-width:100%;height:42px;object-fit:contain;display:block;
  transition:filter .3s ease,opacity .3s ease,transform .3s ease;
}
/* Safari no entendio las container queries hasta la 16. Sin ellas, 100cqw no
   resuelve y los logos se quedarian sin ancho: se les da uno fijo para que la
   barra siga siendo una barra, aunque no cuadre el numero exacto por pantalla. */
@supports not (container-type:inline-size){
  .mpl-logos-logo{flex:0 0 var(--mpl-logos-item,150px)}
}
/* Grid estático por dispositivo, cuando el movimiento está apagado en esa vista. */
@media (min-width:1025px){
  .mpl-logos--static-desktop .mpl-logos-track{animation:none;width:auto;display:block}
  .mpl-logos--static-desktop .mpl-logos-set{display:grid;grid-template-columns:repeat(var(--mpl-logos-cols),1fr);gap:var(--mpl-logos-row-gap) var(--mpl-logos-gap);padding-right:0}
  .mpl-logos--static-desktop .mpl-logos-set + .mpl-logos-set{display:none}
  .mpl-logos--static-desktop.mpl-logos--fade{-webkit-mask-image:none;mask-image:none}
}
@media (min-width:768px) and (max-width:1024px){
  .mpl-logos--static-tablet .mpl-logos-track{animation:none;width:auto;display:block}
  .mpl-logos--static-tablet .mpl-logos-set{display:grid;grid-template-columns:repeat(var(--mpl-logos-cols),1fr);gap:var(--mpl-logos-row-gap) var(--mpl-logos-gap);padding-right:0}
  .mpl-logos--static-tablet .mpl-logos-set + .mpl-logos-set{display:none}
  .mpl-logos--static-tablet.mpl-logos--fade{-webkit-mask-image:none;mask-image:none}
}
@media (max-width:767px){
  .mpl-logos--static-mobile .mpl-logos-track{animation:none;width:auto;display:block}
  .mpl-logos--static-mobile .mpl-logos-set{display:grid;grid-template-columns:repeat(var(--mpl-logos-cols),1fr);gap:var(--mpl-logos-row-gap) var(--mpl-logos-gap);padding-right:0}
  .mpl-logos--static-mobile .mpl-logos-set + .mpl-logos-set{display:none}
  .mpl-logos--static-mobile.mpl-logos--fade{-webkit-mask-image:none;mask-image:none}
}
@media (prefers-reduced-motion:reduce){.mpl-logos-track{animation-play-state:paused}}

/* ==========================================================================
   ENLACE CON ICONO  (.mpl-link)

   El color del icono viaja por dos vias a proposito: "color" para los SVG de
   trazo (currentColor) y "fill", que es heredable en SVG, para los de relleno
   cuyas formas no traen color propio. Asi el mismo control sirve venga el icono
   de donde venga.
   ========================================================================== */
.mpl-link-wrap{display:flex;flex-direction:column}
.mpl-link{
  display:inline-flex;
  align-items:center;
  box-sizing:border-box;
  text-decoration:none;
  transition-property:color,background-color,border-color,box-shadow,translate;
  transition-timing-function:ease;
}
.mpl-link-text{
  transition-property:color,text-decoration-color;
  transition-timing-function:ease;
}
.mpl-link-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  line-height:0;
  /* El desplazamiento del hover se suma al ajuste vertical sin pisarlo. */
  translate:var(--mpl-link-shift-x,0px) calc(var(--mpl-link-offset-y,0px) + var(--mpl-link-shift-y,0px));
  transition-property:color,fill,translate;
  transition-timing-function:ease;
}
.mpl-link-icon svg,
.mpl-link-icon img{width:1em;height:1em;display:block}
.mpl-link-icon img{object-fit:contain}
.mpl-link-icon i{line-height:1;font-size:1em}

@media (prefers-reduced-motion:reduce){
  .mpl-link,.mpl-link-text,.mpl-link-icon{transition:none}
}
/* ======= Fin del bloque generado ======= */
