@charset "UTF-8";
/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 1.0.1
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
Developer: Dualvic informatica (dualvic.com)
*/
/*
    Add your custom styles here_1
*/
:root {
  --wp--style--global--content-size: 1500px;
  /* o la mida que vulguis */
}
/*

Modificat per utilitzar els següents @mixin:
@include xs
@include sm 
@include md 
@include lg
@include xl 
@include xldown
@include lgDown
@include mdDown
@include smDown
@include xlUp
@include lgUp
@include mdUp
@include smUp


Example: 
@include xs {
    background: blue;
  }
*/
/*from x to y*/
/*// media gt queries*/
/*Display and visibility START*/
.d-none {
  display: none !important;
}
.d-block {
  display: block !important;
}
.d-flex {
  display: flex !important;
}
@media screen and (min-width: 767px) and (max-width: 1023px) {
  .d-sm-none {
    display: none !important;
  }
  .d-sm-block {
    display: block !important;
  }
  .d-sm-flex {
    display: flex !important;
  }
  .d-sm-inline-block {
    display: inline-block !important;
  }
}
@media screen and (min-width: 1024px) and (max-width: 1279px) {
  .d-md-none {
    display: none !important;
  }
  .d-md-block {
    display: block !important;
  }
  .d-md-flex {
    display: flex !important;
  }
  .d-md-inline-block {
    display: inline-block !important;
  }
}
@media screen and (min-width: 1280px) and (max-width: 1919px) {
  .d-lg-none {
    display: none !important;
  }
  .d-lg-block {
    display: block !important;
  }
  .d-lg-flex {
    display: flex !important;
  }
  .d-lg-inline-block {
    display: inline-block !important;
  }
}
@media screen and (min-width: 1920px) and (max-width: 5000px) {
  .d-xl-none {
    display: none !important;
  }
  .d-xl-block {
    display: block !important;
  }
  .d-xl-flex {
    display: flex !important;
  }
  .d-xl-inline-block {
    display: inline-block !important;
  }
}
/*Display and visibility END*/
:root, body {
  overscroll-behavior: none;
}
@media screen and (max-width: 766px) {
  .pagines-legals .elementor-icon-list-items {
    flex-direction: column;
  }
}
/*Set elementor gallery images centered vertically & horizontally*/
.elementor-image-gallery .gallery {
  display: flex;
  justify-content: center;
  /* align horizontal */
  align-items: center;
  /* align vertical */
  flex-direction: row;
  flex-wrap: wrap;
}
/*Repara imatges centrades en elementor qu no es mostren centrades*/
.elementor figure.aligncenter {
  margin-left: 0px;
  margin-right: 0px;
}
/*Sistema per als template aplicats a totes les pàgines
Una pàgina gutemberg es veia alineada a l'esquerre i dreta amb els elements de dalt
Una pàgina Elementor aplicada un marge de 10px, fent que no quedés alineat.
El codi ho corregeix, aplica un estil a les pàgines elementor dins una plantilla
*/
.elementor-widget-theme-post-content .elementor-widget-container [data-elementor-type="wp-page"] {
  margin: -10px;
}
/* Improved Animations Stylesheet from https://element.how/elementor-improve-entrance-animations/ , works for the 'fade' animations */
@keyframes fadeDown {
  from {
    opacity: 0;
    transform: translate3d(0, -30px, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.elementor-element.fadeInDown {
  animation-name: fadeDown;
}
@keyframes fadeLeft {
  from {
    opacity: 0;
    transform: translate3d(-30px, 0, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.elementor-element.fadeInLeft {
  animation-name: fadeLeft;
}
@keyframes fadeRight {
  from {
    opacity: 0;
    transform: translate3d(30px, 0, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.elementor-element.fadeInRight {
  animation-name: fadeRight;
}
@keyframes fadeUp {
  from {
    opacity: 0;
    transform: translate3d(0, 30px, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.elementor-element.fadeInUp {
  animation-name: fadeUp;
}
/* END - Improved Animations Stylesheet from https://element.how/elementor-improve-entrance-animations/ , works for the 'fade' animations */
html .elementor-animation-grow:active, html .elementor-animation-grow:focus, html .elementor-animation-grow:hover {
  transform: scale(1.025);
}
/*Posem el banner de complianz amb z-index: 10000 perquè el banner d'elementor no quedi per sobre */
#cmplz-cookiebanner-container {
  z-index: 10000;
}
/*Version 20250516*/
@keyframes AuxScaleUp {
  from {
    opacity: 0;
    transform: scale(0.9, 0.9);
  }
  to {
    transform: none;
    opacity: 1;
  }
}
.aux-anim-scale-up {
  animation-name: AuxScaleUp;
}
@keyframes AuxScaleUp1 {
  from {
    opacity: 0;
    transform: scale(0.7, 0.7);
  }
  to {
    transform: none;
    opacity: 1;
  }
}
.aux-anim-scale-up-1 {
  animation-name: AuxScaleUp1;
}
@keyframes AuxScaleUp2 {
  from {
    opacity: 0;
    transform: scale(0.6, 0.6);
  }
  to {
    transform: none;
    opacity: 1;
  }
}
.aux-anim-scale-up-2 {
  animation-name: AuxScaleUp2;
}
@keyframes AuxScaleDown {
  from {
    opacity: 0;
    transform: scale(1.1, 1.1);
  }
  to {
    transform: none;
    opacity: 1;
  }
}
.aux-anim-scale-down {
  animation-name: AuxScaleDown;
}
@keyframes AuxScaleDown1 {
  from {
    opacity: 0;
    transform: scale(1.3, 1.3);
  }
  to {
    transform: none;
    opacity: 1;
  }
}
.aux-anim-scale-down-1 {
  animation-name: AuxScaleDown1;
}
@keyframes AuxScaleDown2 {
  from {
    opacity: 0;
    transform: scale(1.4, 1.4);
  }
  to {
    transform: none;
    opacity: 1;
  }
}
.aux-anim-scale-down-2 {
  animation-name: AuxScaleDown2;
}
@keyframes AuxFadeInUp {
  from {
    opacity: 0;
    opacity: 0;
    transform: translate3d(0, 27px, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.aux-anim-fade-in-up {
  animation-name: AuxFadeInUp;
}
@keyframes AuxFadeInUp1 {
  from {
    opacity: 0;
    opacity: 0;
    transform: translate3d(0, 50px, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.aux-anim-fade-in-up-1 {
  animation-name: AuxFadeInUp1;
}
@keyframes AuxFadeInUp2 {
  from {
    opacity: 0;
    opacity: 0;
    transform: translate3d(0, 75px, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.aux-anim-fade-in-up-2 {
  animation-name: AuxFadeInUp2;
}
@keyframes AuxFadeInLeft {
  from {
    opacity: 0;
    opacity: 0;
    transform: translate3d(-27px, 0, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.aux-anim-fade-in-left {
  animation-name: AuxFadeInLeft;
}
@keyframes AuxFadeInLeft1 {
  from {
    opacity: 0;
    opacity: 0;
    transform: translate3d(-50px, 0, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.aux-anim-fade-in-left-1 {
  animation-name: AuxFadeInLeft1;
}
@keyframes AuxFadeInLeft2 {
  from {
    opacity: 0;
    opacity: 0;
    transform: translate3d(-75px, 0, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.aux-anim-fade-in-left-2 {
  animation-name: AuxFadeInLeft2;
}
@keyframes AuxFadeInRight {
  from {
    opacity: 0;
    opacity: 0;
    transform: translate3d(27px, 0, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.aux-anim-fade-in-right {
  animation-name: AuxFadeInRight;
}
@keyframes AuxFadeInRight1 {
  from {
    opacity: 0;
    opacity: 0;
    transform: translate3d(50px, 0, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.aux-anim-fade-in-right-1 {
  animation-name: AuxFadeInRight1;
}
@keyframes AuxFadeInRight2 {
  from {
    opacity: 0;
    opacity: 0;
    transform: translate3d(75px, 0, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.aux-anim-fade-in-right-2 {
  animation-name: AuxFadeInRight2;
}
@keyframes AuxMaskFromLeft {
  from {
    opacity: 0;
    clip-path: inset(0 100% 0 0);
    opacity: 1;
  }
  to {
    clip-path: inset(0 0 0 0);
    opacity: 1;
  }
}
.aux-anim-mask-from-left {
  animation-name: AuxMaskFromLeft;
}
@keyframes AuxMaskFromTop {
  from {
    opacity: 0;
    clip-path: inset(0 0 100% 0);
    opacity: 1;
  }
  to {
    clip-path: inset(0 0 0 0);
    opacity: 1;
  }
}
.aux-anim-mask-from-top {
  animation-name: AuxMaskFromTop;
}
@keyframes AuxMaskFromBot {
  from {
    opacity: 0;
    clip-path: inset(100% 0 0 0);
    opacity: 1;
  }
  to {
    clip-path: inset(0 0 0 0);
    opacity: 1;
  }
}
.aux-anim-mask-from-bot {
  animation-name: AuxMaskFromBot;
}
@keyframes AuxMaskFromRight {
  from {
    opacity: 0;
    clip-path: inset(0 0 0 100%);
    opacity: 1;
  }
  to {
    clip-path: inset(0 0 0 0);
    opacity: 1;
  }
}
.aux-anim-mask-from-right {
  animation-name: AuxMaskFromRight;
}
@keyframes AuxMaskFromLeft {
  from {
    opacity: 0;
    clip-path: inset(0 100% 0 0);
    opacity: 1;
  }
  to {
    clip-path: inset(0 0 0 0);
    opacity: 1;
  }
}
.aux-anim-mask-from-left {
  animation-name: AuxMaskFromLeft;
}
/*-----*/
@keyframes AuxSlideFromRight {
  from {
    transform: translateX(100%);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.aux-anim-slide-from-right {
  overflow: hidden;
  animation-duration: 1.25s;
  animation-name: AuxSlideFromRight;
}
@keyframes AuxSlideFromLeft {
  from {
    transform: translateX(-100%);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.aux-anim-slide-from-left {
  overflow: hidden;
  animation-duration: 1.25s;
  animation-name: AuxSlideFromLeft;
}
@keyframes AuxSlideFromTop {
  from {
    transform: translateY(-100%);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.aux-anim-slide-from-top {
  overflow: hidden;
  animation-duration: 1.25s;
  animation-name: AuxSlideFromTop;
}
@keyframes AuxSlideFromBot {
  from {
    transform: translateY(100%);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.aux-slide-from-bot {
  overflow: hidden;
  animation-duration: 1.25s;
  animation-name: AuxSlideFromBot;
}
@keyframes AuxSlideFromBotLeft {
  0% {
    transform: translate3d(-100%, 100%, 0);
    visibility: visible;
  }
  100% {
    transform: translate3d(0, 0, 0);
  }
}
.aux-slide-from-bot-left {
  overflow: hidden;
  animation-duration: 1.25s;
  animation-name: AuxSlideFromBotLeft;
}
/*
https://element.how/happy-thanksgiving/?utm_campaign=block-reveal-gift&utm_medium=email&utm_source=acumbamail
AWESOME BLOCK REVEAL ANIMATIONS!
*/
body:not(.elementor-editor-active) .awesome-reveal-not-full-left::after {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: #000;
  z-index: 8;
  -webkit-animation: unclip 1.6s cubic-bezier(1, 0, 0, 1) 0.6s forwards;
  animation: unclip 1.6s cubic-bezier(1, 0, 0, 1) 0.6s forwards;
  -webkit-clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
  clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
}
body:not(.elementor-editor-active) .awesome-reveal-not-full-left {
  -webkit-animation: uncliptitle 0.9s cubic-bezier(1, 0, 0, 1) 0.9s forwards;
  animation: uncliptitle 0.9s cubic-bezier(1, 0, 0, 1) 0.9s forwards;
  -webkit-clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
  clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
}
@-webkit-keyframes unclip {
  0% {
    -webkit-clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
    clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
  }
  49% {
    -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  }
  100% {
    -webkit-clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
    clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
  }
}
@keyframes unclip {
  0% {
    -webkit-clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
    clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
  }
  49% {
    -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  }
  100% {
    -webkit-clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
    clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
  }
}
@-webkit-keyframes uncliptitle {
  0% {
    -webkit-clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
    clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
  }
  100% {
    -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  }
}
@keyframes uncliptitle {
  0% {
    -webkit-clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
    clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
  }
  100% {
    -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  }
}
/*Center */
.awesome-reveal-center::before {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: #000;
  z-index: 9;
  -webkit-animation: showText 0.9s cubic-bezier(1, 0, 0, 1) 0.16s forwards;
  animation: showText 0.9s cubic-bezier(1, 0, 0, 1) 0.16s forwards;
  -webkit-transform-origin: 1 0;
  -ms-transform-origin: 1 0;
  transform-origin: 1 0;
}
.awesome-reveal-center::after {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: #666;
  z-index: 8;
  -webkit-animation: showText 0.9s cubic-bezier(1, 0, 0, 1) 1.16s forwards;
  animation: showText 0.9s cubic-bezier(1, 0, 0, 1) 1.16s forwards;
  -webkit-transform-origin: 0 0;
  -ms-transform-origin: 0 0;
  transform-origin: 0 0;
}
@-webkit-keyframes showText {
  0% {
    -webkit-transform: scaleX(1);
    transform: scaleX(1);
  }
  100% {
    -webkit-transform: scaleX(0);
    transform: scaleX(0);
  }
}
@keyframes showText {
  0% {
    -webkit-transform: scaleX(1);
    transform: scaleX(1);
  }
  100% {
    -webkit-transform: scaleX(0);
    transform: scaleX(0);
  }
}
/*left*/
.awesome-reveal-left::before {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: #000;
  z-index: 9;
  -webkit-animation: showText 0.9s cubic-bezier(1, 0, 0, 1) 0.16s forwards;
  animation: showText 0.9s cubic-bezier(1, 0, 0, 1) 0.16s forwards;
  -webkit-transform-origin: 0 0;
  -ms-transform-origin: 0 0;
  transform-origin: 0 0;
}
.awesome-reveal-left::after {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: #666;
  z-index: 8;
  -webkit-animation: showText 0.9s cubic-bezier(1, 0, 0, 1) 0.9s forwards;
  animation: showText 0.9s cubic-bezier(1, 0, 0, 1) 0.9s forwards;
  -webkit-transform-origin: 0 0;
  -ms-transform-origin: 0 0;
  transform-origin: 0 0;
}
/*sliver-left*/
body:not(.elementor-editor-active) .awesome-reveal-sliver-left::after {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: #000;
  z-index: 8;
  -webkit-animation: unclip 1.6s cubic-bezier(1, 0, 0, 1) 0.14s forwards;
  animation: unclip 1.6s cubic-bezier(1, 0, 0, 1) 0.14s forwards;
  -webkit-clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
  clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
}
body:not(.elementor-editor-active) .awesome-reveal-sliver-left {
  -webkit-animation: uncliptitle 0.9s cubic-bezier(1, 0, 0, 1) 0.84s forwards;
  animation: uncliptitle 0.9s cubic-bezier(1, 0, 0, 1) 0.84s forwards;
  -webkit-clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
  clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
}
body:not(.elementor-editor-active) .awesome-reveal-not-full-right::after {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: #000;
  z-index: 8;
  -webkit-animation: unclip_right 1.6s cubic-bezier(1, 0, 0, 1) 0.6s forwards;
  animation: unclip_right 1.6s cubic-bezier(1, 0, 0, 1) 0.6s forwards;
  -webkit-clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
  clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
}
body:not(.elementor-editor-active) .awesome-reveal-not-full-right {
  -webkit-animation: uncliptitle_right 0.9s cubic-bezier(1, 0, 0, 1) 0.9s forwards;
  animation: uncliptitle_right 0.9s cubic-bezier(1, 0, 0, 1) 0.9s forwards;
  -webkit-clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
  clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
}
@-webkit-keyframes unclip_right {
  0% {
    -webkit-clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
    clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
  }
  49% {
    -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  }
  100% {
    -webkit-clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
    clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
  }
}
@keyframes unclip_right {
  0% {
    -webkit-clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
    clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
  }
  49% {
    -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  }
  100% {
    -webkit-clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
    clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
  }
}
@-webkit-keyframes uncliptitle_right {
  0% {
    -webkit-clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
    clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
  }
  100% {
    -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  }
}
@keyframes uncliptitle_right {
  0% {
    -webkit-clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
    clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
  }
  100% {
    -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  }
}
/* Not full, right, opacity 0.78 */
body:not(.elementor-editor-active) .awesome-reveal-not-full-right-opacity078::after {
  opacity: 0.78;
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: #000;
  z-index: 8;
  -webkit-animation: unclip_right 1.6s cubic-bezier(1, 0, 0, 1) 0.6s forwards;
  animation: unclip_right 1.6s cubic-bezier(1, 0, 0, 1) 0.6s forwards;
  -webkit-clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
  clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
}
body:not(.elementor-editor-active) .awesome-reveal-not-full-right-opacity078 {
  -webkit-animation: uncliptitle_right 0.9s cubic-bezier(1, 0, 0, 1) 0.9s forwards;
  animation: uncliptitle_right 0.9s cubic-bezier(1, 0, 0, 1) 0.9s forwards;
  -webkit-clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
  clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
}
@-webkit-keyframes unclip_right {
  0% {
    -webkit-clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
    clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
  }
  49% {
    -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  }
  100% {
    -webkit-clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
    clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
  }
}
@keyframes unclip_right {
  0% {
    -webkit-clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
    clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
  }
  49% {
    -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  }
  100% {
    -webkit-clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
    clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
  }
}
@-webkit-keyframes uncliptitle_right {
  0% {
    -webkit-clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
    clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
  }
  100% {
    -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  }
}
@keyframes uncliptitle_right {
  0% {
    -webkit-clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
    clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
  }
  100% {
    -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  }
}
/*up-opacity 078*/
.awesome-reveal-up-opacity078::before {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: #000;
  z-index: 9;
  -webkit-animation: yshowText 0.9s cubic-bezier(1, 0, 0, 1) 0.16s forwards;
  animation: yshowText 0.9s cubic-bezier(1, 0, 0, 1) 0.16s forwards;
  -webkit-transform-origin: 0 0;
  -ms-transform-origin: 0 0;
  transform-origin: 0 0;
}
.awesome-reveal-up-opacity078::after {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  opacity: 0.78;
  background-color: #666;
  z-index: 8;
  -webkit-animation: yshowText 0.9s cubic-bezier(1, 0, 0, 1) 0.9s forwards;
  animation: yshowText 0.9s cubic-bezier(1, 0, 0, 1) 0.9s forwards;
  -webkit-transform-origin: 0 0;
  -ms-transform-origin: 0 0;
  transform-origin: 0 0;
}
@-webkit-keyframes yshowText {
  0% {
    -webkit-transform: scaleY(1);
    transform: scaleY(1);
  }
  100% {
    -webkit-transform: scaleY(0);
    transform: scaleY(0);
  }
}
@keyframes yshowText {
  0% {
    -webkit-transform: scaleY(1);
    transform: scaleY(1);
  }
  100% {
    -webkit-transform: scaleY(0);
    transform: scaleY(0);
  }
}
/*Right*/
.awesome-reveal-right::before {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: #000;
  z-index: 9;
  -webkit-animation: showText 0.9s cubic-bezier(1, 0, 0, 1) 0.16s forwards;
  animation: showText 0.9s cubic-bezier(1, 0, 0, 1) 0.16s forwards;
  -webkit-transform-origin: 100% 100%;
  -ms-transform-origin: 100% 100%;
  transform-origin: 100% 100%;
}
.awesome-reveal-right::after {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: #666;
  z-index: 8;
  -webkit-animation: showText 0.9s cubic-bezier(1, 0, 0, 1) 0.9s forwards;
  animation: showText 0.9s cubic-bezier(1, 0, 0, 1) 0.9s forwards;
  -webkit-transform-origin: 100% 100%;
  -ms-transform-origin: 100% 100%;
  transform-origin: 100% 100%;
}
/*Down*/
.awesome-reveal-down::before {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: #000;
  z-index: 9;
  -webkit-animation: yshowText 0.9s cubic-bezier(1, 0, 0, 1) 0.16s forwards;
  animation: yshowText 0.9s cubic-bezier(1, 0, 0, 1) 0.16s forwards;
  -webkit-transform-origin: 100% 100%;
  -ms-transform-origin: 100% 100%;
  transform-origin: 100% 100%;
}
.awesome-reveal-down::after {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: #666;
  z-index: 8;
  -webkit-animation: yshowText 0.9s cubic-bezier(1, 0, 0, 1) 0.9s forwards;
  animation: yshowText 0.9s cubic-bezier(1, 0, 0, 1) 0.9s forwards;
  -webkit-transform-origin: 100% 100%;
  -ms-transform-origin: 100% 100%;
  transform-origin: 100% 100%;
}
/*Right then left*/
.awesome-reveal-right-then-left::before {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: #000;
  z-index: 9;
  -webkit-animation: showText 0.9s cubic-bezier(1, 0, 0, 1) 0.16s forwards;
  animation: showText 0.9s cubic-bezier(1, 0, 0, 1) 0.16s forwards;
  -webkit-transform-origin: 100% 100%;
  -ms-transform-origin: 100% 100%;
  transform-origin: 100% 100%;
}
.awesome-reveal-right-then-left::after {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: #666;
  z-index: 8;
  -webkit-animation: showText 0.9s cubic-bezier(1, 0, 0, 1) 0.9s forwards;
  animation: showText 0.9s cubic-bezier(1, 0, 0, 1) 0.9s forwards;
  -webkit-transform-origin: 0 0;
  -ms-transform-origin: 0 0;
  transform-origin: 0 0;
}
/*Left then right*/
.awesome-reveal-left-then-right::before {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: #000;
  z-index: 9;
  -webkit-animation: showText 0.9s cubic-bezier(1, 0, 0, 1) 0.16s forwards;
  animation: showText 0.9s cubic-bezier(1, 0, 0, 1) 0.16s forwards;
  -webkit-transform-origin: 0 0;
  -ms-transform-origin: 0 0;
  transform-origin: 0 0;
}
.awesome-reveal-left-then-right::after {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: #666;
  z-index: 8;
  -webkit-animation: showText 0.9s cubic-bezier(1, 0, 0, 1) 0.9s forwards;
  animation: showText 0.9s cubic-bezier(1, 0, 0, 1) 0.9s forwards;
  -webkit-transform-origin: 100% 100%;
  -ms-transform-origin: 100% 100%;
  transform-origin: 100% 100%;
}
@keyframes dv-blur {
  0% {
    -webkit-filter: blur(10px);
    opacity: 0;
  }
  50% {
    /*-webkit-filter: blur(5px);*/
    opacity: 0.9;
  }
  100% {
    -webkit-filter: blur(0px);
    opacity: 1;
  }
}
.dv-blur {
  animation-name: dv-blur;
}
.hover_image_container {
  /*	
	*	
	*	Posant dues imatges dins un container, la segona serà invisible per defecte
	*	En fer hover al contenidor es mostrarà la segona imatge
	*
	*	Especificar la classe '.hover_image_container' al contenidor
	*/
}
.hover_image_container img {
  transition: all 0.2s ease-in;
}
.hover_image_container .e-con-inner div:nth-child(1) img {
  opacity: 1;
}
.hover_image_container .e-con-inner div:nth-child(2) {
  position: absolute;
}
.hover_image_container .e-con-inner div:nth-child(2) img {
  opacity: 0;
}
.hover_image_container:hover .e-con-inner div:nth-child(1) img {
  opacity: 0;
}
.hover_image_container:hover .e-con-inner div:nth-child(2) img {
  opacity: 1;
}
.overflow-hidden {
  overflow: hidden;
}
.pointer {
  cursor: pointer;
}
/*2 imatges. La 1a és al centre, la 2a és un cercle exterior que va donant voltes*/
.imatge-exterior-rotant, .imatge-interior {
  margin-left: auto;
  margin-right: auto;
  left: 0;
  right: 0;
  text-align: center;
  top: 50%;
  transform: translateY(-50%);
}
.imatge-exterior-rotant img {
  animation: rotate 50s linear 0s infinite;
}
@keyframes rotate {
  0% {
    transform: rotate(0deg);
  }
  25% {
    transform: rotate(90deg);
  }
  50% {
    transform: rotate(180deg);
  }
  75% {
    transform: rotate(270deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
.wp-block-image {
  margin-top: 25px;
  margin-bottom: 25px;
}
.gutemberg_blocks_found .container_template_single_page {
  max-width: var(--content-width);
  margin-left: auto;
  margin-right: auto;
}
.elementor-widget-theme-post-content h2, .elementor-widget-theme-post-content h3, .elementor-widget-theme-post-content h4, .elementor-widget-theme-post-content h5, .elementor-widget-theme-post-content h6 {
  margin-top: 30px;
}
h1, h2, h3 {
  text-wrap: balance;
}
p {
  text-wrap: pretty;
}
.elementor hr.wp-block-separator {
  margin-top: 30px;
  margin-bottom: 30px;
}
/*patrons de gutemberg, que no feien un margin a baix*/
.wp-block-group-is-layout-constrained {
  margin-bottom: 20px;
}
.front .loop_grid-apareix_animacio_individual .e-loop-item {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.front .loop_grid-apareix_animacio_individual .e-loop-item.show {
  opacity: 1;
  transform: translateY(0);
}
/*Anchor - per a fixed header*/
/*
.elementor-menu-anchor{
	 position: relative;
	 top: -250px;
}
*/
/*Anchor - per a fixed header*/
/*Especifiquem si es gutemberg per gestionar els paddings laterals en css que s'ha d'afegir per a les plantilles Elementor
Quan fem una plantilla i afegim un widget "Post_content", si el contingut és Elementor o Gutemberg apareix amb més o menuys padding.
El que fem és que si és gutemberg li afegim el padding
*/
/*
.is_gutenberg .elementor-widget-theme-post-content {
    padding-left: 10px;
    padding-right: 10px;
}
*/
@media screen and (max-width: 766px) {
  [id] {
    scroll-margin-top: 90px;
  }
}
@media screen and (min-width: 767px) {
  [id] {
    scroll-margin-top: 200px;
  }
}
.header {
  background: rgba(255, 255, 255, 0.75);
  /* blanc amb transparència */
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  /* Safari */
  /*menu desktop*/
}
.header .menu-item a {
  transition: all 0.1s ease;
}
.header .menu-item.current-menu-item a {
  color: var(--e-global-color-accent) !important;
}
.header .menu-item:hover a {
  color: var(--e-global-color-accent) !important;
}
.header .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li {
  /*en el menú superior hem afegit els idiomes, perquè es vegin només en mobile. aquests idiomes apareixen com a elements <li> darrere els elements actuals. hi ha un css que fa que l'útim element de la llista no tingui cap marge a la dreta. Ara l'ultim element és del selector d'idioma que es invisible, pel que hem de modificar els estils css perquè la paraula Contacto quedi a la dreta de tot sense marge*/
}
@media screen and (min-width: 767px) {
  .header .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li.wpml-ls-menu-item {
    display: none;
  }
}
.header .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li a {
  margin-inline-end: 0px;
  margin-inline-start: 40px;
}
@media screen and (min-width: 767px) {
  .header .elementor-nav-menu > li.wpml-ls-menu-item {
    display: none;
  }
}
.header .wpml-ls-current-language span {
  color: var(--e-global-color-accent);
}
.header .wpml-ls-legacy-list-horizontal li {
  margin-left: 20px;
}
.elementor-widget-button a, .e-button-base, .elementor-field-type-submit .elementor-button {
  transition: transform 0.3s ease, box-shadow 0.5s ease;
}
.elementor-widget-button a:hover, .e-button-base:hover, .elementor-field-type-submit .elementor-button:hover {
  transform: translateY(-5px);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.12);
}
.hover-lift {
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.hover-lift:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.12);
}
/*
Boxes.
*/
/*
box_1
Apliquem ombra i border radius
*/
/**/
/*En fer hover la caixa es posa de color #000, el text en blanc i si hi ha un icona es desplaça lleugerament cap a la dreta*/
.hover-box-1 {
  transition: all 0.3s ease;
}
.hover-box-1 .elementor-heading-title {
  transition: all 0.5s ease;
}
.hover-box-1 .elementor-icon i {
  transition: all 0.3s ease;
  left: 0px;
}
.hover-box-1:hover {
  background: #000;
}
.hover-box-1:hover .elementor-heading-title {
  color: #fff !important;
}
.hover-box-1:hover .elementor-icon i {
  left: 5px !important;
}
/*botons*/
.elementor-button-info .elementor-button {
  border: 1px;
  background: #000 !important;
  border-color: #000000;
}
.elementor-button-info:hover .elementor-button {
  background: #000;
}
.elementor-button-warning .elementor-button {
  border: 1px solid #fff;
  background: transparent !important;
}
.elementor-button-warning:hover .elementor-button {
  background: #FFFFFF11 !important;
}
.nuestros_servicios .elementor-widget-icon-box .elementor-icon-box-icon {
  margin-top: 5px;
}
.box-shadow-1, .box_1.elementor-widget-image img {
  box-shadow: oklch(0.23 0.004 106.7/0.06) 0px 1px 2px 0px, oklch(0.23 0.004 106.7/0.4) 0px 12px 32px -18px !important;
}
.border-radius-4, .box_1.elementor-widget-image img {
  border-radius: 4px;
}
.border-1 {
  border: 1px solid #dedede;
}
.hero_1 {
  padding: 70px 10px;
}
@media screen and (max-width: 766px) {
  .hero_1 {
    padding: 30px 10px;
  }
}
