/*! HTML5 Boilerplate v8.0.0 | MIT License | https://html5boilerplate.com/ */

/* main.css 2.1.0 | MIT License | https://github.com/h5bp/main.css#readme */
/*
 * What follows is the result of much research on cross-browser styling.
 * Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal,
 * Kroc Camen, and the H5BP dev community and team.
 */

/* ==========================================================================
   Base styles: opinionated defaults
   ========================================================================== */

html {
  color: #222;
  font-size: 1em;
  line-height: 1.4;
  overflow-x: hidden;
}

/*
 * Remove text-shadow in selection highlight:
 * https://twitter.com/miketaylr/status/12228805301
 *
 * Vendor-prefixed and regular ::selection selectors cannot be combined:
 * https://stackoverflow.com/a/16982510/7133471
 *
 * Customize the background color to match your design.
 */

::-moz-selection {
  background: #b3d4fc;
  text-shadow: none;
}

::selection {
  background: #b3d4fc;
  text-shadow: none;
}

/*
 * A better looking default horizontal rule
 */

hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #ccc;
  margin: 1em 0;
  padding: 0;
}

/*
 * Remove the gap between audio, canvas, iframes,
 * images, videos and the bottom of their containers:
 * https://github.com/h5bp/html5-boilerplate/issues/440
 */

audio,
canvas,
iframe,
img,
svg,
video {
  vertical-align: middle;
}

/*
 * Remove default fieldset styles.
 */

fieldset {
  border: 0;
  margin: 0;
  padding: 0;
}

/*
 * Allow only vertical resizing of textareas.
 */

textarea {
  resize: vertical;
}

/* ==========================================================================
   Author's custom styles
   ========================================================================== */

  body {
   font-family: 'Open Sans', sans-serif;
   font-weight: 300;
   -webkit-transition: all .3s ease-in-out;
    transition: all .3s ease-in-out;
  }

  body * {
    box-sizing: border-box;
  }

  a {
    text-decoration: none;
  }

  li {
    list-style: none;
  }

  p {
    padding: 0;
    margin: 0;
  }

  ul {
    padding: 0;
    margin: 0;
  }


  @media all and (min-width:122em){
    body{
      font-size: 1vmax;
    }
  }

  /* a.btn-fill { 
    position: relative;
    -webkit-box-shadow: none;
    background-color: #fcd03f;
    color: #000;
    padding: 0.6em 1em;
    border-radius: 0.35em;
    display: inline-block;
    font-weight: 500;
  }

  @media screen and (min-width: 80em){

    a.btn-fill { 
      padding: 0.6em 2em;
    }
  }

  a.btn-fill:hover {
    background-color: #ffc400;
  } */

  .btn-fill{
    
  }

  .btn-fill div {
    --c: #fcd03f;
    color: #000;
    font-size: 0.9em;
    border: 0.2em solid var(--c);
    border-radius: 0.5em;
    /* width: 12em; */
    /* height: 3em; */
    text-transform: uppercase;
    font-weight: 500;
    font-family: sans-serif;
    /* letter-spacing: 0.1em; */
    text-align: center;
    line-height: 180%;
    position: relative;
    overflow: hidden;
    z-index: 1;
    transition: 0.5s;
    /* margin: 1em; */
    display: inline-block;
    padding: 0.6em 1em;
    background-color: var(--c);
    box-shadow: 0.3125em 0.375em 1.3125em 0em rgba(0,0,0,0.75);
-webkit-box-shadow: 0.3125em 0.375em 1.3125em 0em rgba(0,0,0,0.75);
-moz-box-shadow: 0.3125em 0.375em 1.3125em 0em rgba(0,0,0,0.75);

  }

  .btn-fill:disabled div {
    --c: #ddd7c0;
    color: #666;
  }

  @media screen and (min-width: 48em) {
    .btn-fill div {
      padding: 0.6em 2em;
    }
  }

  .btn-fill:hover {
    /* transform: translate(0,2%); */
    /* transform: rotateX(5deg) rotateY(3deg) rotateZ(0deg); */
  }

  .btn-fill:hover div {
    color: var(--c);
    box-shadow: 0.3125em 0.375em 1.3125em -0.5em rgba(0,0,0,0.75);
-webkit-box-shadow: 0.3125em 0.375em 1.3125em -0.5em rgba(0,0,0,0.75);
-moz-box-shadow: 0.3125em 0.375em 1.3125em -0.5em rgba(0,0,0,0.75);
/* transform: translateY(0.05em); */
}

.btn-fill:disabled:hover div {
  pointer-events: none;
}

  .btn-fill div span {
      position: absolute;
      width: 25%;
      height: 100%;
      background-color: #322870;
      transform: translateY(150%);
      border-radius: 50%;
      left: calc((var(--n) - 1) * 25%);
      transition: 0.5s;
      transition-delay: calc((var(--n) - 1) * 0.1s);
      z-index: -1;
  }

  .btn-fill:hover span {
    transform: translateY(12%) scale(2);
  }

  .btn-fill span:nth-child(1) {
      --n: 1;
  }

  .btn-fill span:nth-child(2) {
      --n: 2;
  }

  .btn-fill span:nth-child(3) {
      --n: 3;
  }

  .btn-fill span:nth-child(4) {
      --n: 4;
  }
/* 
  #contacto .btn-fill span:nth-child(2) {
    --n: 1;
  }

  #contacto .btn-fill span:nth-child(3) {
      --n: 2;
  }

  #contacto .btn-fill span:nth-child(4) {
      --n: 3;
  }

  #contacto .btn-fill span:nth-child(5) {
      --n: 4;
  } */

  .btn-fill div img {
    width: 2em;
    display: inline-block;
    margin-right: 0.5em;
  }

  #main-header { 
    position: absolute;
    width: 100%;
    left: 0;
    top: 0;
    right: 0;
    z-index: 1;
  }
  
  #main-header .inwrap { 
  width: 95%;
  max-width: 85em;
  margin: 0 auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
      justify-content: space-between;
-webkit-box-align: center;
    -ms-flex-align: center;
        align-items: center;
          padding: 1em 0;
  }
  
  #main-header .inwrap .logo { 
    max-width: 18em;
    width: 63%;
    /* opacity: 0; */
  }
  
  #main-header .inwrap nav { 
    display: none;
  }

  #main-header .inwrap a.btn-fill{
    display: none;
  }

  @media screen and (min-width: 48em){

    #main-header .inwrap{
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: justify;
          -ms-flex-pack: justify;
              justify-content: space-between;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

    #main-header .inwrap a.btn-fill{
      display: inline-block;
    }
  }

  @media screen and (min-width: 64em) {
    #main-header .inwrap nav  { 
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: justify;
          -ms-flex-pack: justify;
              justify-content: space-between;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }
  }
  
  #main-header .inwrap nav ul { 
    display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-pack: justify;
    -ms-flex-pack: justify;
        justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  }

  
  
  #main-header .inwrap nav ul li { 
    padding: 1em 0;
  }
  
  #main-header .inwrap nav ul li a { 
    padding: 1em 1.7em;
    color: #e8e8e8;
    /* border-radius: 0.35em; */
  }

  @media screen and (min-width: 64em){

    #main-header .inwrap nav ul li a { 
      padding: 1em 1em;
    }
  }

  @media screen and (min-width: 80em){

    #main-header .inwrap nav ul li a { 
      padding: 1em 2em;
    }
  }

  #main-header .inwrap nav ul li a:hover { 
    position: relative;
    -webkit-transition: all .3s ease-in-out;
    transition: all .3s ease-in-out;
    border-bottom: 0.1em solid #fcd03f;
    color: #fcd03f;
    /* padding: 1em 2em; */
    
    /* display: inline-block; */
    /* font-weight: 500; */
  }

  #main-header .inwrap nav ul li a:hover {

  }



  #home-hero { 
    position: relative;
    /* height: 53em; */
    width: 100%;
    
    padding: 5.375em 0 6.5em 0;
    overflow: hidden;
  }

  #home-hero .bg {
    position:absolute;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    background: -o-linear-gradient(348.39deg, #322770 3.52%, #634ddc 97.73%);
    background: linear-gradient(101.61deg, #322770 3.52%, #634ddc 97.73%);
    -webkit-clip-path: polygon(0 0, 100% 0, 100% 89%, 0 100%);
    clip-path: polygon(0 0, 100% 0, 100% 89%, 0 100%);
    -webkit-transition: all .3s ease-in-out;
    transition: all .3s ease-in-out;
  }

  @media screen and (min-width: 28em) {
    #home-hero {
      padding: 5.375em 0 7.5em 0;
    }
  }

  @media screen and (min-width: 48em) {
    #home-hero {
      padding: 9.375em 0 10.5em 0;
    }
  }
  
  #home-hero .hero-curve-line { 
    position:absolute;
    right: 0;
    top: auto;
    opacity: 0.4;
    bottom: 5em;
  }

  @media screen and (min-width: 48em) {
    #home-hero .hero-curve-line {
      opacity: 0.5;
      top: 0;
      bottom: auto;
    }
  }
  
  #home-hero .section-line { 
    position: absolute;
    left: 50%;
    top: 0;
    -webkit-transform: translateX(-50%) !important;
    transform: translateX(-50%) !important;
    opacity: 0.6;
  }
  
  #home-hero .prism {
    position: absolute;
    width: 2em;
    top: 4.375em;
    left: 77%;
    -webkit-animation: 10s rotate-animation linear infinite;
    animation: 10s rotate-animation linear infinite;
  }

  @media screen and (min-width: 28em) {
    #home-hero .prism {
      top: 4.375em;
      left: 50%;
    }
  }

  @media screen and (min-width: 48em) {
    #home-hero .prism {
      top: 14.375em;
    }
  }
  
  #home-hero .coin {
    position: absolute;
    left: 68%;
    width: 6em;
    bottom: 43%;
    -webkit-animation: 10s upsdown-sm linear infinite;
    animation: 10s upsdown-sm linear infinite;
  }

  @media screen and (min-width: 28em) {
    #home-hero .coin{
      left: 55%;
      bottom: 26%;
    }
  }

  @media screen and (min-width: 38em) {
    #home-hero .coin{
      left: 48%;
    }
  }
  
  #home-hero .hero-bg-shape {
    position: absolute;
    width: 100%;
    left: 0;
    bottom: 0;
  }

  .triangle-shape {
    position: absolute;
    width: 100%;
    left: 0;
    bottom: -1px;
    height: 7.5em;
    background-color: #fff;
    clip-path: polygon(0% 100%, 100% 0, 100% 100%, 0 100%);
  }
  

  
  #home-hero .hero-line {
    position: absolute;
    /* right: 17.3em; */
    opacity: .7;
    bottom: 0;
    display: none;
    /* width: 100%; */
    left: calc(50% + 1px);
    -webkit-transform: translateX(-50%) !important;
    transform: translateX(-50%) !important;
  }
  
  #home-hero .skew-1 {
    position: absolute;
    background-color: #fcd03f;
    -webkit-transform: skew(-15deg);
    transform: skew(-15deg);
    z-index: 1;
    width: 19.53em;
    height: 4.375em;
    right: 1.5625em;
    bottom: 1.0625em;
    font-size: 0.4em;
    display: none;
  }
  
  #home-hero .skew-2 {
    position: absolute;
    background-color: #634ddc;
    -webkit-transform: skew(-20deg);
    transform: skew(-20deg);
    z-index: 1;
    width: 19.5em;
    height: 4.375em;
    left: 2.1875em;
    bottom: 0;
    font-size: 0.4em;
    display: none;
  }

  @media screen and (min-width: 28em) {
    #home-hero .skew-2{
      width: 25.5em;
    height: 4.375em;
    left: 5.1875em;
    }
  }

  @media screen and (min-width: 35em){

    #home-hero .skew-1 {
      width: 19.53em;
      height: 4.375em;
      right: 1.5625em;
      bottom: 1.0625em;
      font-size: 0.7em;
      display: block;
    }
    
    #home-hero .skew-2 {
      width: 20.5em;
      height: 4.375em;
      left: 5.1875em;
      bottom: 0;
      font-size: 0.7em;
      display: block;
    }
  }

  @media screen and (min-width: 48em){

    #home-hero .hero-line {
      display: block;
    }

    #home-hero .skew-1 {
      width: 19.53em;
      height: 4.375em;
      right: 1.5625em;
      bottom: 1.0625em;
      font-size: 1em;
    }
    
    #home-hero .skew-2 {
      width: 20.5em;
      height: 4.375em;
      left: 5.1875em;
      bottom: 0;
      font-size: 1em;
    }
  }

  @media screen and (min-width: 80em){

    #home-hero .skew-1 {
      
      width: 19.53em;
      height: 4.375em;
      right: 1.5625em;
      bottom: 2.0625em;
    }
    
    #home-hero .skew-2 {
      width: 24.5em;
      height: 4.375em;
      left: 12.1875em;
      bottom: 0;
    }
  }

  @media screen and (min-width: 90em){

    #home-hero .skew-1 {
      width: 19.53em;
      height: 4.375em;
      right: 1.5625em;
      bottom: 3.0625em;
    }
    
    #home-hero .skew-2 {
      width: 28.5em;
      height: 4.375em;
      left: 12.1875em;
      bottom: 0;
    }
  }

  @media screen and (min-width: 100em){

    #home-hero .skew-1 {
      width: 22.53em;
      height: 4.375em;
      right: 1.5625em;
      bottom: 4.0625em;
    }
    
    #home-hero .skew-2 {
      width: 33.5em;
      height: 4.375em;
      left: 17.1875em;
      bottom: 0;
    }
  }
  
  #home-hero .container { 
    max-width: 90em;
    margin: 0 auto;
    padding: 0 2em;
    z-index: 200;
  }
  
  
  #home-hero .container .content { 
    -webkit-box-flex: 0;
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
    width: 100%;
    font-size: 0.9em;
  }
  
  #home-hero .container .content h1 { 
    font-family: 'Poppins', sans-serif;
    color: #FFF;
    font-size: 1.4em;
    max-width: 13em;
    opacity: 0;
    transform: translate(30%,0);
  }

  @media screen and (min-width: 28em) {

    #home-hero .container { 
      max-width: 90em;
      margin: 0 auto;
      padding: 0 2em;
      z-index: 200;
      font-size: 0.8;
      position: relative;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: justify;
          -ms-flex-pack: justify;
              justify-content: space-between;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

    #home-hero .container .content { 
      -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
      flex: 0 0 auto;
      width: 50%;
      font-size: 0.8em;
    }

    #home-hero .container .content h1 { 
      font-size: 1.4em;
      max-width: unset;
      /* text-shadow: -5px 7px 4px rgba(0, 0, 0, 0.35); */
    }
  }

  @media screen and (min-width: 52em) {

    #home-hero .container .content {
      font-size: 1em;
    }

    #home-hero .container .content h1 { 
      font-size: 1.5em;
    }
  }

  @media screen and (min-width: 64em) {
    #home-hero .container .content h1 { 
      font-size: 1.5em;
    }
  }

  @media screen and (min-width: 80em) {
    #home-hero .container .content h1 { 
      font-size: 1.9em;
    }
  }

  @media screen and (min-width: 90em) {
    #home-hero .container .content h1 { 
      font-size: 2.1em;
    }
  }
  
  #home-hero .container .content p { 
    color: #FFF;
    margin-bottom: 2em;
    line-height: 1.9em;
    font-size: 1em;
    opacity: 0;
    transform: translate(30%,0);
  }

  @media screen and (min-width: 48em) {
    #home-hero .container .content p { 
      font-size: 1.1em;
      margin-bottom: 3em;
      
    }
  }

  #home-hero .container .content a div {
    font-size: 0.8em;
    /* padding: 1em 1em; */
    opacity: 0;
    transform: translate(20%,0);
  }

  @media screen and (min-width: 48em) {
    #home-hero .container .content a div{ 
      font-size: 1em;
      /* padding: 1em 2em; */
    }
    
  }
  
  #home-hero .container .image { 
    -webkit-box-flex: 0;
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
    width: 100%;
    max-width: 15em;
    margin-top: 3em;
    opacity: 0;
    transform: translate(20%,0);
  }

  @media screen and (min-width: 28em) {
    #home-hero .container .image { 
      width: 41.66666667%;
      max-width: unset;
      margin-top: 0;
    }
  }
  
  #home-hero .container .image { 
    position: relative;
  }
  
  #home-hero .container .image .hero-img { 
    width: 100%;
    height: auto;
    z-index: 100;
    position: relative;
    -webkit-animation: 10s upsdown-sm-small linear infinite;
    animation: 10s upsdown-sm-small linear infinite;
    -webkit-filter: drop-shadow(0.3125em 0.3125em 0.875em #000000);
            filter: drop-shadow(0.3125em 0.3125em 0.875em #000000);
  }
  
  #home-hero .container .image .circle-shape-lg { 
    position: absolute;
    width: 100%;
    height: auto;
    -webkit-animation: 10s rotate-animation linear infinite;
    animation: 10s rotate-animation linear infinite;
    left: -0.625em;
    top: -0.625em;
  }
  
  #home-hero .container .image .image-figure {
    position: relative;
  }
  
  #home-hero .container .image .image-figure img:first-child {
    width: 100%;
   
  }

  #home-hero .container .image .image-figure img:last-child {
    width: 73%;
    position: absolute;
    left: 13%;
    z-index: 100;
    top: 15%;
  }

  #service-section { 
    background-image: url('../img/software-company/border-line.png');
    background-repeat: repeat-y;
    background-position: center top;
    --bs-bg-opacity: 1;
    background-color: #f6f6f6 !important;
    position: relative;
    overflow: hidden;
  }
  
  #service-section .sc-shape-gradient-1 {
    width: 7.25em;
    height: 13.375em;
    left: 14.0625em;
    top: 6.25em;
    -webkit-transform: rotate(-90deg);
    transform: rotate(-90deg);
    border-radius: 7.25em;
    background: linear-gradient(189.84deg, rgba(98, 98, 239, 0.2) -115.69%, rgba(98, 98, 239, 0) 66.95%);
    position: absolute;
    z-index: -1;
    opacity: 0;
  }
  
  #service-section .sc-shape-gradient-2 {
    color: #737373;
    width: 7.25em;
    height: 24.375em;
    top: 0;
    right: 3.125em;
    border-radius: 7.25em;
    background: linear-gradient(189.84deg, rgba(98, 98, 239, 0.2) -115.69%, rgba(98, 98, 239, 0) 66.95%);
    position: absolute;
    z-index: -1;
    opacity: 0;
    transform: translate(0,20%);
  }
  
  #service-section .sc-shape-gradient-3 {
    width: 7.25em;
    height: 13.3125em;
    top: 2.1875em;
    right: 12.5em;
    border-radius: 7.25em;
    background: linear-gradient(189.84deg, rgba(98, 98, 239, 0.2) -115.69%, rgba(98, 98, 239, 0) 66.95%);
    position: absolute;
    z-index: -1;
    opacity: 0;
    transform: translate(0,20%);
  }
  
  #service-section .container { 
    width: 90%;
    max-width: 90em;
    margin: 0 auto;
    padding: 2em 0 0em;
  }
  
  #service-section .container h2 { 
    font-size: 1.5em;
    font-family: "Poppins",sans-serif;
    margin-bottom: 1.5em;
    opacity: 0;
    transform: translate(30%,0);
  }

  @media screen and (min-width: 28em) {

    #service-section .container h2 {
      font-size: 1.5em;
    }
  }

  @media screen and (min-width: 48em) {

    #service-section .container h2 {
      font-size: 1.9em;
    }
  }

  @media screen and (min-width: 64em) {

    #service-section .container h2 {
      font-size: 2.5em;
    }
  }

  @media screen and (min-width: 64em) {
    #service-section .container {
      padding: 5em 0 7em;
    }
  }
  
  #service-section .container .boxes { 
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
      -webkit-box-align: stretch;
          -ms-flex-align: stretch;
              align-items: stretch;
              -webkit-box-orient: vertical;
              -ms-flex-wrap: wrap;
              flex-wrap: wrap;
  }
  
  #service-section .container .boxes .box {
    width: 100%;
    padding: 1em 1.5em 2em;
    -webkit-box-shadow: 4px 4px 25px rgba(160,160,160,.1);
    box-shadow: 4px 4px 25px rgba(160,160,160,.1);
    /* -webkit-transition: all .3s ease-in-out;
    transition: all .3s ease-in-out; */
    background-color: #FFF;
    margin-bottom: 2em;
    opacity: 0;
    transform: translate(0,20%);
  }

  @media screen and (min-width: 64em){
    #service-section .container .boxes .box {
      width: 32%;
      font-size: 0.85em;
      margin-bottom: 0em;
    }
  }

  @media screen and (min-width: 74em){

    #service-section .container .boxes{
      -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
    }
    #service-section .container .boxes .box {
      width: 32%;
      font-size: 1em;
    }
  }
  
  #service-section .container .boxes .box:hover {
    -webkit-box-shadow: 0 4px 20px rgba(2,0,91,.1);
    box-shadow: 0 4px 20px rgba(2,0,91,.1);
  }
  
  #service-section .container .boxes .box h5 {
    font-family: "Poppins",sans-serif;
    line-height: 1.4;
    font-size: 1em;
    font-weight: 400;
    margin: 0.5em 0 1em;
  }

  @media screen and (min-width: 24em) {
    #service-section .container .boxes .box h5{
      font-size: 1.3em;
    }
  }
  
  #service-section .container .boxes .box p {
    color: #4d4d4d;
    margin-bottom: 1em;
    line-height: 1.8em;
  }
  
  #service-section .container .boxes .box .d-flex {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  
  #service-section .container .boxes .box .d-flex .more-info {
    color: #666;
    font-weight: 600;
  }
  
  #service-section .container .boxes .box .d-flex .icon {
    opacity: .15;
    -webkit-transition: all .3s ease-in-out;
    transition: all .3s ease-in-out;
    width: 4.125em;
    height: 4.125em;
    line-height: 4.125em;
    text-align: center;
  }

  #service-section .container .boxes .box:hover .d-flex .icon {
    opacity: 1;
  }

  #about-section { 
    position: relative;
  }
  
  #about-section .sc-shape-gradient-4 { 
    width: 6.25em;
    height: 13.375em;
    left: 2.5em;
    bottom: 10.25em;
    -webkit-transform: rotate(-180deg);
    transform: rotate(-180deg);
    border-radius: 6.25em;
    background: linear-gradient(189.84deg, rgba(98, 98, 239, 0.2) -115.69%, rgba(98, 98, 239, 0) 66.95%);
    position:absolute;
    opacity: 0;
  }
  
  #about-section .sc-shape-gradient-5 { 
    width: 7.1875em;
    height: 16.875em;
    bottom: -7.25em;
    left: 10.25em;
    border-radius: 6.25em;
    background: linear-gradient(189.84deg, rgba(98, 98, 239, 0.2) -115.69%, rgba(98, 98, 239, 0) 66.95%);
    position:absolute;
  }
  
  #about-section .sc-shape-gradient-6 { 
    width: 7.1875em;
    height: 13.375em;
    right: 14em;
    top: 14.375em;
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
    border-radius: 6.25em;
    background: linear-gradient(189.84deg, rgba(98, 98, 239, 0.2) -115.69%, rgba(98, 98, 239, 0) 66.95%);
    position:absolute;
    opacity: 0;
  }

  @media screen and (min-width: 38em) {
    #about-section .sc-shape-gradient-4{
      
      left: 2.5em;
    }

    #about-section .sc-shape-gradient-5{
      bottom: -10.25em;
    left: 6.25em;
    }

    #about-section .sc-shape-gradient-6{
      right: 15em;
    top: -2.375em;
    }
  }

  
  #about-section .container { 
    width: 90%;
    max-width: 90em;
    margin: 0 auto;
    padding: 5em 0 5em;
    position: relative;
    /* overflow: hidden; */
  }
  
  #about-section .container .image { 
    -webkit-box-flex: 0;
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
    width: 100%;
    position: relative;
    max-width: 23em;
    margin: 0 auto;
    opacity: 0;
    transform: translate(-20%,0);
  }
  
  @media screen and (min-width: 38em) {
    #about-section .container { 
      width: 90%;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: justify;
          -ms-flex-pack: justify;
              justify-content: space-between;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
                
    }

    #about-section .container .stagger{
      opacity: 0;
      transform: translate(-20%,0);
    }
    
    #about-section .container .image { 
      width: 41.66666667%;
      max-width: unset;
                margin: 0;
    }
  }
  #about-section .container .image .img-fluid { 
    width: 100%;
    height: auto;
    z-index: 100;
    position: relative;
    -webkit-animation: 10s upsdown-sm linear infinite;
    animation: 10s upsdown-sm linear infinite;
    -webkit-filter: drop-shadow(0.3125em 0.3125em 0.875em #000000);
            filter: drop-shadow(0.3125em 0.3125em 0.875em #000000);
  }
  
  #about-section .container .image .ab-shape { 
    left: 2em;
    top: 1em;
    width: 78%;
    height: auto; 
    position: absolute;
    -webkit-animation: 20s rotate-animation linear infinite;
    animation: 20s rotate-animation linear infinite;
  }
  
  #about-section .container .info { 
    -webkit-box-flex: 0;
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
    width: 100%;
    margin-top: 2em;
    text-align: center;
  }

  @media screen and (min-width: 38em) {
    #about-section .container .info{
      left: 1em;
      top: -2em;
      width: 50%;
      text-align: left;
    }
  }
  
  #about-section .container .info h2 { 
    font-family: 'Poppins', sans-serif;
    font-size: 1.5em;
    margin-bottom: 0.4em;
    line-height: 1.3em;
  }

  @media screen and (min-width: 38em) {
    #about-section .container .info h2{
      font-size: 1.5em;
    }
  }

  @media screen and (min-width: 52em) {
    #about-section .container .info h2{
      font-size: 1.9em;
    }
  }

  @media screen and (min-width: 80em) {
    #about-section .container .info h2{
      font-size: 2.7em;
    }
  }
  
  #about-section .container .info p { 
    color: #737373;
    margin-bottom: 1em;
    line-height: 1.8em;
    margin-bottom: 2em;
  }
  
  #about-section .container .info .btn-fill { 
    display: none;
  }

  @media screen and (min-width: 64em) {
    #about-section .container .info .btn-fill { 
      display: inline-block;
   }
  }

  #cta-section { 
    padding: 0em 0em 2em;
    opacity: 0;
    transform: translate(0,20%);
  }

  @media screen and (min-width: 48em) {
    #cta-section { 
      padding: 3em 0em 5em;
    }
  }

  @media screen and (min-width: 64em) {
    #cta-section { 
      padding: 3em 0em 5em;
    }
  }
  
  #cta-section .container {
    position: relative;
    width: 90%;
    max-width: 90em;
    margin: 0 auto;
    padding: 2em 1em 3em 1em;
    background: linear-gradient(101.61deg, #322770 3.52%, #634ddc 97.73%);
    border-radius: 1.3em;
    overflow: hidden;
    text-align: center;
  }

  @media screen and (min-width: 28em) {
    #cta-section .container {
      padding: 2em 2em 3em 2em;
    }
  }

  @media screen and (min-width: 48em) {
    #cta-section .container {
      padding: 3em 5em;
      text-align: left;
    }
  }
  
  #cta-section .container .cta-curve { 
    position:absolute;
    top: 0;
    left: 0;
    width: 100%;
  }
  
  #cta-section .container .content { 
    
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
              

  }
  
  #cta-section .container .content .info { 
    -webkit-box-flex: 0;
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
    width: 100%;
  }

  @media screen and (min-width: 48em) {
    #cta-section .container .content .info {
      width: 66.33333333%;
      padding-right: 1em;
    }
  }
  
  #cta-section .container .content .info h3 { 
    font-family: 'Poppins', sans-serif;
    font-size: 1em;
    margin-bottom: 1em;
    line-height: 1.5em;
    color: #FFF;
    letter-spacing: 0.04em;
  }

  @media screen and (min-width: 38em) {
    #cta-section .container .content .info h3 { 
      font-size: 1.2em;
    }
  }

  @media screen and (min-width: 64em) {
    #cta-section .container .content .info h3 { 
      font-size: 1.7em;
    }
  }
  
  #cta-section .container .content .info h3 br { 
  
  }
  
  #cta-section .container .content .info .btn { 
    position: relative;
    z-index: 10;
  }
  
  #cta-section .container .content .image { 
    -webkit-box-flex: 0;
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
    width: 33.33333333%;
    position:relative;
    text-align: center;
    display: none;
  }

  @media screen and (min-width: 48em) {
    #cta-section .container .content .image {
      display: block;
    }
  }
  
  #cta-section .container .content .image .img-fluid { 
    max-width: 17em;
    height: auto;
    z-index: 200;
    position: relative;
    width: 100%;
    -webkit-filter: drop-shadow(0.3125em 0.3125em 0.875em #000000);
            filter: drop-shadow(0.3125em 0.3125em 0.875em #000000);
  }
  
  #cta-section .container .content .image .cta-shape { 

    top: 0.3em;
    right: 2%;
    position:absolute;
    z-index: 100;
    -webkit-animation: 25s rotate-animation linear infinite;
    animation: 25s rotate-animation linear infinite;
    width: 100%;
    max-width: 17em;
  }

  @media screen and (min-width: 64em) {
    #cta-section .container .content .image .cta-shape { 
      right: 2%;
    }
  }

  @media screen and (min-width: 80em) {
    #cta-section .container .content .image .cta-shape { 
      right: 18%;
    }
  }


  #process-section { 
    position: relative;
    overflow: hidden;
  }
  
  #process-section .container { 
    width: 90%;
    max-width: 90em;
    margin: 0 auto;
    padding: 0 0 3em;
  }
  
  #process-section .container h2 { 
  font-size: 1.4em;
    font-family: "Poppins",sans-serif;
    margin-bottom: 1.5em;
    max-width: 20em;
    opacity: 0;
    transform: translate(20%,0);
  }

  @media screen and (min-width: 48em) {

    #process-section .container { 
      padding: 5em 0 3em;
    }

    #process-section .container h2 { 
      font-size: 1.8em;
    }
  }

  @media screen and (min-width: 64em) {
    #process-section .container h2 { 
      font-size: 2.5em;
    }
  }
  
  #process-section .container .img-fluid { 
    width: 100%;
    opacity: 0;
    transform: translate(-40%,0) scale(0);
    opacity: 0;
  }
  
  #process-section .container .boxes {
    margin-top: 2em;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
      -webkit-box-align: stretch;
          -ms-flex-align: stretch;
              align-items: stretch;
              -webkit-box-orient: vertical;
              -ms-flex-wrap: wrap;
              flex-wrap: wrap;
  }
  
  #process-section .container .boxes .box { 
    width: 100%;
    padding: 1em 2em 1em;
    margin: 1.5em 0;
    -webkit-box-shadow: 4px 4px 25px rgba(160,160,160,.1);
    box-shadow: 4px 4px 25px rgba(160,160,160,.1);
    /* -webkit-transition: all .3s ease-in-out;
    transition: all .3s ease-in-out; */
    opacity: 0;
    transform: translate(20%,0);
  }

  @media screen and (min-width: 48em){

    #process-section .container .boxes .box {
      width: 48%;
    }
  }
  
  @media screen and (min-width: 80em){
    #process-section .container .boxes {
      -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
    }

    #process-section .container .boxes .box {
      width: 24%;
    }
  }
  
  #process-section .container .boxes .box .inbox { 
  
  }
  
  #process-section .container .boxes .box .inbox .header { 
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  
  #process-section .container .boxes .box .inbox .header span { 
    position: relative;
  }
  
  #process-section .container .boxes .box .inbox .header span .number { 
    font-family: "Poppins",sans-serif;
    line-height: 1.4;
    font-size: 1.2em;
    font-weight: 800;
    margin: 0.5em 0 1em;
    position: absolute;
    color: #FFF;
    left: 1em;
    bottom: -0.2em;
  }

  #process-section .container .boxes .box:first-child .inbox .header span .number {
    left: 1.2em;
  }
  
  #process-section .container .boxes .box .inbox .header span img { 
    width: 4em;
  }
  
  #process-section .container .boxes .box .inbox .header h5 { 
    font-size: 1em;
    margin-left: 1em;
  }

  @media screen and (min-width: 90em){

    #process-section .container .boxes .box .inbox .header h5 { 
      font-size: 1.2em;
    }
  }
  
  #process-section .container .boxes .box .inbox p { 
    color: #737373;
    margin-bottom: 1em;
    line-height: 1.8em;
  }

  .dotted-line { 
    position: relative;
  }
  
  .dotted-line .line { 
    width: 0%;
    opacity: 0;
    transform: translate(-30%, 0);
  }
  
  .dotted-line .dot { 
    position: absolute;
    opacity: 0;
    transform: translate(-190%, 0);
  }

  .dotted-line .dot-1 { 
    left: 0;
  }
  
  .dotted-line .dot-2 { 
    left: 25%;
  }
  
  .dotted-line .dot-3 { 
    left: 50%;
  }
  
  .dotted-line .dot-4 { 
    left: 75%;
  }

  #contacto {
    position: relative;
    overflow: hidden;
    background: linear-gradient(101.61deg, #322770 3.52%, #634ddc 97.73%);
  }

  #contacto .hero-curve-line {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    opacity: 0.4;
  }

  #contacto .section-line {
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0.4;
  }
  
  #contacto .inwrap {
    width: 90%;
    max-width: 48em;
    margin: 0 auto;
    padding: 3em 0;
    opacity: 0;
    transform: translate(0,20%);
  }

  @media screen and (min-width: 48em) {
    #contacto div.inwrap {
      padding: 8em 0;
    }
  }
  
  #asunto-form {
    position: fixed;
    left: 1000em;
    top: 1000em;
  
  }
  
  #contacto div.inwrap .success {
    text-align: center;
    display: none;
    color: #FFF;
  }
  
  #contacto div.inwrap div.maintitle {
    font-size: 1.5em;
    font-weight: 800;
    text-align: center;
    color: #ffffff;
    /* transform: translate(0, -20%);
    opacity: 0; */
  }
  
  @media all and (min-width: 35em) {
   #contacto div.inwrap div.maintitle{
     font-size: 2.5em;
   }
  }
  
  #contacto div.inwrap div.subtitle {
    text-align: center;
  margin-top: 1.2em;
  color: #ffffff;
  font-size: 1em;
  margin: 1.2em auto;
  max-width: 29em;
  line-height: 1.8em;
  /* transform: translate(0, 20%);
  opacity: 0; */
  }
  #contacto div.inwrap div.subtitle a {
    color:#ffffff;
    text-decoration: underline;
  }

  #contacto div.inwrap div.section-label {
    text-align: center;
    margin-top: 2.2em;
    color: #ffffff;
    font-size: 1em;
    margin: 2.2em auto 1em;
    max-width: 29em;
    line-height: 1.8em;
    padding-top: 1em;
    clear: both;
  }
  
  
  #contact .half {
    width: 100%;
  }
  
  #contacto div.inwrap form.form-contacto {
    margin-top: 2em;
    text-align: center;
    /* transform: translate(0, 20%);
    opacity: 0; */
  }
  
  #contacto div.inwrap form.form-contacto div.input-field {
    margin: 0 0 1em;
    position: relative;
  }
  
  #contacto div.inwrap form.form-contacto div.text-field {
    margin: 0 0 1em;
    position: relative;
    clear: both;
  }

  #contacto div.inwrap form.form-contacto div.text-field label.error {
    position: absolute;
    top: 1em;
    right: 0.9em;
    color: #fe9999;
  }
  
  #contacto div.inwrap form.form-contacto div.input-field label.error {
    position: absolute;
    top: 0.5em;
    right: 0.9em;
    color: #fe9999;
  }
  
  #contacto div.inwrap form.form-contacto div.input-field input {
  
    background-color: transparent;
    border: none;
    border: 1px solid #a9b7c9;
    padding: 1.2em 1em;
    width: 100%;
    margin-bottom: 0em;
    font-size: 1em;
    outline: none;
    display: inline-block;
    color: #ffffff;
    text-align: center;
  }
  
    @media all and (min-width: 48em) {

        #contacto div.inwrap form.form-contacto div.input-field {
          margin: 1%;
          position: relative;
        }

        #contacto div.inwrap form.form-contacto .half {

            width: 48%;
            float: left;
        }

        #contacto div.inwrap form.form-contacto div.text-field {
          margin: 1%;
          position: relative;
          clear: both;
        }
    }
  
  #contacto div.inwrap form.form-contacto textarea {
  
    background-color: transparent;
    border: none;
    border: 1px solid #a9b7c9;
    padding: 1.2em 1em;
    width: 100%;
    margin: 0.5em auto;
    font-size: 1em;
    outline: none;
    display: inline-block;
    height: 10em;
    color: #ffffff;
  }
  
  #contacto div.inwrap form.form-contacto textarea::-webkit-input-placeholder, #contacto div.inwrap form.form-contacto div.input-field input::-webkit-input-placeholder {
    color: #adacac;
  }
  #contacto div.inwrap form.form-contacto textarea::-moz-placeholder, #contacto div.inwrap form.form-contacto div.input-field input::-moz-placeholder {
    color: #adacac;
  }
  #contacto div.inwrap form.form-contacto textarea:-ms-input-placeholder, #contacto div.inwrap form.form-contacto div.input-field input:-ms-input-placeholder {
    color: #adacac;
  }
  #contacto div.inwrap form.form-contacto textarea:-moz-placeholder, #contacto div.inwrap form.form-contacto div.input-field input:-moz-placeholder {
    color: #adacac;
  }

  #contacto div.inwrap form.form-contacto button {
    background-color: transparent;
    border: none;
    padding: 0;
    margin: 0;
    cursor: pointer;
  }

  #contacto div.inwrap form.form-contacto button:disabled {
    opacity: 0.3;
    pointer-events: none;
  }

  .option-select .options button:nth-child(2) {
    margin: 0 0.5em !important;
  }
  
  /* #contacto div.inwrap form.form-contacto button {
  
    position: relative;
    -webkit-transition: all .3s ease-in-out;
    transition: all .3s ease-in-out;
    background-color: #fcd03f;
    color: #676767;
    padding: 1em 2em;
    border-radius: 0.35em;
    display: inline-block;
    font-weight: 500;
    border: none;
    cursor: pointer;
  }
  
  #contacto div.inwrap form.form-contacto button:hover {
    background-color: #322770 !important;
    color: #FFF !important;
  }
  
  @media all and (min-width: 64em) {
  
    #contacto div.inwrap form.form-contacto button {
  
      position: relative;
      -webkit-transition: all .3s ease-in-out;
      transition: all .3s ease-in-out;
      background-color: #fcd03f;
      color: #676767;
      padding: 1em 2em;
      border-radius: 0.35em;
      display: inline-block;
      font-weight: 500;
      border: none;
    }
  } */

  #main-footer{
    /* background-color: #322770; */
  }

  #main-footer .inwrap  {
    width: 90%;
    max-width: 80em;
    margin: 0 auto;
    padding: 2em 0;
    text-align: center;
    color: #000000;
  }

  #trabajos {
    position: relative;
    overflow: hidden;
    background: linear-gradient(101.61deg, #322770 3.52%, #634ddc 97.73%);
  }

  #trabajos .hero-curve-line {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    opacity: 0.5;
  }

  #trabajos .section-line {
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0.6;
  }
  
  #trabajos .inwrap {
    width: 90%;
    max-width: 80em;
    margin: 0 auto;
    padding: 3em 0;
    position: relative;
    text-align: center;
    /* opacity: 0;
    transform: translate(0,20%); */
  }

  @media screen and (min-width: 48em) {
    #trabajos .inwrap {
      padding: 8em 0;
    }
  }
  
  #trabajos .inwrap .maintitle {
    font-size: 1.5em;
    font-weight: 800;
    text-align: center;
    color: #fcd03f;
    opacity: 0;
    transform: translate(20%, 0);
  }
  
  @media all and (min-width: 35em) {
   #trabajos .inwrap .maintitle{
     font-size: 2.5em;
   }
  }
  
  #trabajos .inwrap .subtitle {
    text-align: center;
    margin-top: 1.2em;
    color: #FFF;
    font-size: 1em;
    margin: 1.2em auto;
    max-width: 32em;
    line-height: 1.8em;
    opacity: 0;
    transform: translate(20%, 0);
  }

  #trabajos .inwrap .subtitle a {
    color:#FFF;
    text-decoration: underline;
  }

  #trabajos .inwrap .boxes { 
    /* display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
    flex-wrap: wrap;
-webkit-box-pack: space-evenly;
    -ms-flex-pack: space-evenly;
        justify-content: space-evenly;
-webkit-box-align: stretch;
    -ms-flex-align: stretch;
        align-items: stretch; */
        margin-top: 2em;
  }

  #trabajos .swiper-pagination-bullet-active {
    background-color: #fcd03f;
  }

  #trabajos .swiper-horizontal>.swiper-pagination-bullets, .swiper-pagination-bullets.swiper-pagination-horizontal, .swiper-pagination-custom, .swiper-pagination-fraction {
    bottom: 0;
  }

  .swiper-android .swiper-slide, .swiper-ios .swiper-slide, .swiper-wrapper {
    /* padding: 0 1em; */
  }

  #trabajos .swiper-button-next, .swiper-button-prev{
    color: #fcd03f!important;
  }
  
  #trabajos .inwrap .boxes .box {
    /* width: 31%; */
    display: inline-block;
    position: relative;
    background-color: #000;
    height: 22em;
    margin-bottom: 2em;
    overflow: hidden;
    border-radius: 0.5em;
    -webkit-transition: all 0.5s;
    -moz-transition: all 0.5s;
    -ms-transition: all 0.5s;
    -o-transition: all 0.5s;
    transition: all 0.5s;
    opacity: 0;
    transform: translate(0, 20%);
    
  }

  @media screen and (min-width: 35.5em) {
    #trabajos .inwrap .boxes .box {
      box-shadow: 1px 6px 8px 0px rgba(0,0,0,0.75);
-webkit-box-shadow: 1px 6px 8px 0px rgba(0,0,0,0.75);
-moz-box-shadow: 1px 6px 8px 0px rgba(0,0,0,0.75);
    }
  }

  #trabajos .inwrap .boxes .box:hover {
    transform: translate(0, -5%);
  }
  
  #trabajos .inwrap .boxes .box .image {
    width: 100%;
    /* height: 100%; */
    position: absolute;
    /* overflow: hidden; */
    top: 0em;
    left: 0;
    opacity: 0.4;
    -webkit-transition: all 11s;
    -moz-transition: all 11s;
    -ms-transition: all 11s;
    -o-transition: all 11s;
    transition: all 11s;
    background-color: #000;
    padding-bottom: 1em;
  }

  #trabajos .inwrap .boxes .box:hover .image {
    opacity: 1;
  }

  #trabajos .inwrap .boxes .box:hover .image.dolcevitaluxuryproperties {
    top: -50em;
  }

  #trabajos .inwrap .boxes .box:hover .image.andaloeditorial {
    top: -40em;
  }

  #trabajos .inwrap .boxes .box:hover .image.dermatologiard {
    top: -72.25em;
  }

  #trabajos .inwrap .boxes .box:hover .image.adelobo {
    top: -68em;
  }

  #trabajos .inwrap .boxes .box:hover .image.lalaptop {
    top: -80em;
  }

  #trabajos .inwrap .boxes .box:hover .image.shop-anyadamiron {
    top: -62em;
  }

  #trabajos .inwrap .boxes .box:hover .image.lokoclap {
    top: -61em;
  }

  #trabajos .inwrap .boxes .box:hover .image.rosenstiehlsp {
    top: -64em;
  }

  #trabajos .inwrap .boxes .box:hover .image.inout {
    top: -36em;
  }

  /* #trabajos .inwrap .boxes .box:hover .image {
    top: -35em;
  } */

  

  @media screen and (max-width: 35.5em){
    #trabajos .inwrap .boxes .box.swiper-slide-active {
      transform: translate(0, -5%);
    }
  
    #trabajos .inwrap .boxes .box.swiper-slide-active .image {
      opacity: 1;
    }
  
    #trabajos .inwrap .boxes .box.swiper-slide-active .image {
      top: -35em;
    }
  }

  #trabajos .inwrap .boxes .box .image img {
    /* position: absolute; */
    width: 100%;
    top: 0;
    left: 0;
    margin-top: 0em;
  }
  
  #trabajos .inwrap .boxes .box .info {
    text-align: center;
    padding: 3em 2em 1.5em;
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 100%;
    /* background-color: #bebebee3; */
    color: #FFFF;
    background: rgb(0,0,0);
background: -moz-linear-gradient(180deg, rgba(0,0,0,0) 2%, rgba(0,0,0,0) 4%, rgba(0,0,0,0.6502976190476191) 17%, rgba(0,0,0,1) 50%);
background: -webkit-linear-gradient(180deg, rgba(0,0,0,0) 2%, rgba(0,0,0,0) 4%, rgba(0,0,0,0.6502976190476191) 17%, rgba(0,0,0,1) 50%);
background: linear-gradient(180deg, rgba(0,0,0,0) 2%, rgba(0,0,0,0) 4%, rgba(0,0,0,0.6502976190476191) 17%, rgba(0,0,0,1) 50%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#000000",endColorstr="#000000",GradientType=1);
  }
  
  #trabajos .inwrap .boxes .box .info .link {
    font-weight: bold;
    color: #fcd03f;
    text-decoration: underline;
    font-size: 0.9em;
    position: relative;
  }
  
  #trabajos .inwrap .boxes .box .info p { 
    font-size: 0.9em;
    margin-top: 1em;
  }

  #trabajos .btn-fill div {
    opacity: 0;
    transform: translate(20%, 0);
  }

  .theme-switch {
    zoom: 0.7;
    --toggle-size: 0.9em;
    /* the size is adjusted using font-size,
       this is not transform scale,
       so you can choose any size */
    --container-width: 5.625em;
    --container-height: 2.5em;
    --container-radius: 6.25em;
    /* radius 0 - minecraft mode :) */
    --container-light-bg: #3D7EAE;
    --container-night-bg: #1D1F2C;
    --circle-container-diameter: 3.375em;
    --sun-moon-diameter: 2.125em;
    --sun-bg: #ECCA2F;
    --moon-bg: #C4C9D1;
    --spot-color: #959DB1;
    --circle-container-offset: calc((var(--circle-container-diameter) - var(--container-height)) / 2 * -1);
    --stars-color: #fff;
    --clouds-color: #F3FDFF;
    --back-clouds-color: #AACADF;
    --transition: .5s cubic-bezier(0, -0.02, 0.4, 1.25);
    --circle-transition: .3s cubic-bezier(0, -0.02, 0.35, 1.17);
  }

  @media screen and (min-width: 35em) {
    .theme-switch {
      --toggle-size: 1em;
    }
  }
  
  .theme-switch, .theme-switch *, .theme-switch *::before, .theme-switch *::after {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    font-size: var(--toggle-size);
  }
  
  .theme-switch__container {
    width: var(--container-width);
    height: var(--container-height);
    background-color: var(--container-light-bg);
    border-radius: var(--container-radius);
    overflow: hidden;
    cursor: pointer;
    -webkit-box-shadow: 0em -0.062em 0.062em rgba(0, 0, 0, 0.25), 0em 0.062em 0.125em rgba(255, 255, 255, 0.94);
    box-shadow: 0em -0.062em 0.062em rgba(0, 0, 0, 0.25), 0em 0.062em 0.125em rgba(255, 255, 255, 0.94);
    -webkit-transition: var(--transition);
    -o-transition: var(--transition);
    transition: var(--transition);
    position: relative;
  }
  
  .theme-switch__container::before {
    content: "";
    position: absolute;
    z-index: 1;
    inset: 0;
    -webkit-box-shadow: 0em 0.05em 0.187em rgba(0, 0, 0, 0.25) inset, 0em 0.05em 0.187em rgba(0, 0, 0, 0.25) inset;
    box-shadow: 0em 0.05em 0.187em rgba(0, 0, 0, 0.25) inset, 0em 0.05em 0.187em rgba(0, 0, 0, 0.25) inset;
    border-radius: var(--container-radius)
  }
  
  .theme-switch__checkbox {
    display: none;
  }
  
  .theme-switch__circle-container {
    width: var(--circle-container-diameter);
    height: var(--circle-container-diameter);
    background-color: rgba(255, 255, 255, 0.1);
    position: absolute;
    left: var(--circle-container-offset);
    top: var(--circle-container-offset);
    border-radius: var(--container-radius);
    -webkit-box-shadow: inset 0 0 0 3.375em rgba(255, 255, 255, 0.1), inset 0 0 0 3.375em rgba(255, 255, 255, 0.1), 0 0 0 0.625em rgba(255, 255, 255, 0.1), 0 0 0 1.25em rgba(255, 255, 255, 0.1);
    box-shadow: inset 0 0 0 3.375em rgba(255, 255, 255, 0.1), inset 0 0 0 3.375em rgba(255, 255, 255, 0.1), 0 0 0 0.625em rgba(255, 255, 255, 0.1), 0 0 0 1.25em rgba(255, 255, 255, 0.1);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-transition: var(--circle-transition);
    -o-transition: var(--circle-transition);
    transition: var(--circle-transition);
    pointer-events: none;
  }
  
  .theme-switch__sun-moon-container {
    pointer-events: auto;
    position: relative;
    z-index: 2;
    width: var(--sun-moon-diameter);
    height: var(--sun-moon-diameter);
    margin: auto;
    border-radius: var(--container-radius);
    background-color: var(--sun-bg);
    -webkit-box-shadow: 0.062em 0.062em 0.062em 0em rgba(254, 255, 239, 0.61) inset, 0em -0.062em 0.062em 0em #a1872a inset;
    box-shadow: 0.062em 0.062em 0.062em 0em rgba(254, 255, 239, 0.61) inset, 0em -0.062em 0.062em 0em #a1872a inset;
    -webkit-filter: drop-shadow(0.062em 0.125em 0.125em rgba(0, 0, 0, 0.25)) drop-shadow(0em 0.062em 0.125em rgba(0, 0, 0, 0.25));
    filter: drop-shadow(0.062em 0.125em 0.125em rgba(0, 0, 0, 0.25)) drop-shadow(0em 0.062em 0.125em rgba(0, 0, 0, 0.25));
    overflow: hidden;
    -webkit-transition: var(--transition);
    -o-transition: var(--transition);
    transition: var(--transition);
  }
  
  .theme-switch__moon {
    -webkit-transform: translateX(100%);
    -ms-transform: translateX(100%);
    transform: translateX(100%);
    width: 100%;
    height: 100%;
    background-color: var(--moon-bg);
    border-radius: inherit;
    -webkit-box-shadow: 0.062em 0.062em 0.062em 0em rgba(254, 255, 239, 0.61) inset, 0em -0.062em 0.062em 0em #969696 inset;
    box-shadow: 0.062em 0.062em 0.062em 0em rgba(254, 255, 239, 0.61) inset, 0em -0.062em 0.062em 0em #969696 inset;
    -webkit-transition: var(--transition);
    -o-transition: var(--transition);
    transition: var(--transition);
    position: relative;
  }
  
  .theme-switch__spot {
    position: absolute;
    top: 0.75em;
    left: 0.312em;
    width: 0.75em;
    height: 0.75em;
    border-radius: var(--container-radius);
    background-color: var(--spot-color);
    -webkit-box-shadow: 0em 0.0312em 0.062em rgba(0, 0, 0, 0.25) inset;
    box-shadow: 0em 0.0312em 0.062em rgba(0, 0, 0, 0.25) inset;
  }
  
  .theme-switch__spot:nth-of-type(2) {
    width: 0.375em;
    height: 0.375em;
    top: 0.937em;
    left: 1.375em;
  }
  
  .theme-switch__spot:nth-last-of-type(3) {
    width: 0.25em;
    height: 0.25em;
    top: 0.312em;
    left: 0.812em;
  }
  
  .theme-switch__clouds {
    width: 1.25em;
    height: 1.25em;
    background-color: var(--clouds-color);
    border-radius: var(--container-radius);
    position: absolute;
    bottom: -0.625em;
    left: 0.312em;
    -webkit-box-shadow: 0.937em 0.312em var(--clouds-color), -0.312em -0.312em var(--back-clouds-color), 1.437em 0.375em var(--clouds-color), 0.5em -0.125em var(--back-clouds-color), 2.187em 0 var(--clouds-color), 1.25em -0.062em var(--back-clouds-color), 2.937em 0.312em var(--clouds-color), 2em -0.312em var(--back-clouds-color), 3.625em -0.062em var(--clouds-color), 2.625em 0em var(--back-clouds-color), 4.5em -0.312em var(--clouds-color), 3.375em -0.437em var(--back-clouds-color), 4.625em -1.75em 0 0.437em var(--clouds-color), 4em -0.625em var(--back-clouds-color), 4.125em -2.125em 0 0.437em var(--back-clouds-color);
    box-shadow: 0.937em 0.312em var(--clouds-color), -0.312em -0.312em var(--back-clouds-color), 1.437em 0.375em var(--clouds-color), 0.5em -0.125em var(--back-clouds-color), 2.187em 0 var(--clouds-color), 1.25em -0.062em var(--back-clouds-color), 2.937em 0.312em var(--clouds-color), 2em -0.312em var(--back-clouds-color), 3.625em -0.062em var(--clouds-color), 2.625em 0em var(--back-clouds-color), 4.5em -0.312em var(--clouds-color), 3.375em -0.437em var(--back-clouds-color), 4.625em -1.75em 0 0.437em var(--clouds-color), 4em -0.625em var(--back-clouds-color), 4.125em -2.125em 0 0.437em var(--back-clouds-color);
    -webkit-transition: 0.5s cubic-bezier(0, -0.02, 0.4, 1.25);
    -o-transition: 0.5s cubic-bezier(0, -0.02, 0.4, 1.25);
    transition: 0.5s cubic-bezier(0, -0.02, 0.4, 1.25);
  }
  
  .theme-switch__stars-container {
    position: absolute;
    color: var(--stars-color);
    top: -100%;
    left: 0.312em;
    width: 2.75em;
    height: auto;
    -webkit-transition: var(--transition);
    -o-transition: var(--transition);
    transition: var(--transition);
  }
  
  /* actions */
  
  .theme-switch__checkbox:checked + .theme-switch__container {
    background-color: var(--container-night-bg);
  }
  
  .theme-switch__checkbox:checked + .theme-switch__container .theme-switch__circle-container {
    left: calc(100% - var(--circle-container-offset) - var(--circle-container-diameter));
  }
  
  .theme-switch__checkbox:checked + .theme-switch__container .theme-switch__circle-container:hover {
    left: calc(100% - var(--circle-container-offset) - var(--circle-container-diameter) - 0.187em)
  }
  
  .theme-switch__circle-container:hover {
    left: calc(var(--circle-container-offset) + 0.187em);
  }
  
  .theme-switch__checkbox:checked + .theme-switch__container .theme-switch__moon {
    -webkit-transform: translate(0);
    -ms-transform: translate(0);
    transform: translate(0);
  }
  
  .theme-switch__checkbox:checked + .theme-switch__container .theme-switch__clouds {
    bottom: -4.062em;
  }
  
  .theme-switch__checkbox:checked + .theme-switch__container .theme-switch__stars-container {
    top: 50%;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
  }


  
/* ==========================================================================
   Helper classes
   ========================================================================== */
/* ANIMATION KEYFRAMES */

   @-webkit-keyframes zoom-1 {
    0% {
        -webkit-transform: scale(1);
        transform: scale(1)
    }

    25% {
        -webkit-transform: scale(0.8);
        transform: scale(0.8)
    }

    75% {
        -webkit-transform: scale(1.2);
        transform: scale(1.2)
    }

    100% {
        -webkit-transform: scale(1);
        transform: scale(1)
    }
}

@keyframes zoom-1 {
    0% {
        -webkit-transform: scale(1);
        transform: scale(1)
    }

    25% {
        -webkit-transform: scale(0.8);
        transform: scale(0.8)
    }

    75% {
        -webkit-transform: scale(1.2);
        transform: scale(1.2)
    }

    100% {
        -webkit-transform: scale(1);
        transform: scale(1)
    }
}

@-webkit-keyframes zoom-2 {
    0% {
        -webkit-transform: scale(1);
        transform: scale(1)
    }

    25% {
        -webkit-transform: scale(1.2);
        transform: scale(1.2)
    }

    75% {
        -webkit-transform: scale(0.8);
        transform: scale(0.8)
    }

    100% {
        -webkit-transform: scale(1);
        transform: scale(1)
    }
}

@keyframes zoom-2 {
    0% {
        -webkit-transform: scale(1);
        transform: scale(1)
    }

    25% {
        -webkit-transform: scale(1.2);
        transform: scale(1.2)
    }

    75% {
        -webkit-transform: scale(0.8);
        transform: scale(0.8)
    }

    100% {
        -webkit-transform: scale(1);
        transform: scale(1)
    }
}

@-webkit-keyframes circle-moving {
    0% {
        -webkit-transform: translateX(0);
        transform: translateX(0)
    }

    25% {
        -webkit-transform: translateX(100px);
        transform: translateX(100px)
    }

    50% {
        -webkit-transform: translateX(0);
        transform: translateX(0)
    }

    75% {
        -webkit-transform: translateX(-100px);
        transform: translateX(-100px)
    }

    100% {
        -webkit-transform: translateX(0);
        transform: translateX(0)
    }
}

@keyframes circle-moving {
    0% {
        -webkit-transform: translateX(0);
        transform: translateX(0)
    }

    25% {
        -webkit-transform: translateX(100px);
        transform: translateX(100px)
    }

    50% {
        -webkit-transform: translateX(0);
        transform: translateX(0)
    }

    75% {
        -webkit-transform: translateX(-100px);
        transform: translateX(-100px)
    }

    100% {
        -webkit-transform: translateX(0);
        transform: translateX(0)
    }
}

@-webkit-keyframes rotate-animation {
    0% {
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg)
    }

    100% {
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg)
    }
}

@keyframes rotate-animation {
    0% {
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg)
    }

    100% {
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg)
    }
}

@-webkit-keyframes upsdown-sm {
    0% {
        -webkit-transform: translateY(0);
        transform: translateY(0)
    }

    25% {
        -webkit-transform: translateY(25px);
        transform: translateY(25px)
    }

    50% {
        -webkit-transform: translateY(0);
        transform: translateY(0)
    }

    75% {
        -webkit-transform: translateY(-25px);
        transform: translateY(-25px)
    }

    100% {
        -webkit-transform: translateY(0);
        transform: translateY(0)
    }
}

@keyframes upsdown-sm {
    0% {
        -webkit-transform: translateY(0);
        transform: translateY(0)
    }

    25% {
        -webkit-transform: translateY(25px);
        transform: translateY(25px)
    }

    50% {
        -webkit-transform: translateY(0);
        transform: translateY(0)
    }

    75% {
        -webkit-transform: translateY(-25px);
        transform: translateY(-25px)
    }

    100% {
        -webkit-transform: translateY(0);
        transform: translateY(0)
    }
}

@-webkit-keyframes upsdown-sm-small {
  0% {
      -webkit-transform: translateY(0);
      transform: translateY(0)
  }

  25% {
      -webkit-transform: translateY(5px);
      transform: translateY(5px)
  }

  50% {
      -webkit-transform: translateY(0);
      transform: translateY(0)
  }

  75% {
      -webkit-transform: translateY(-5px);
      transform: translateY(-5px)
  }

  100% {
      -webkit-transform: translateY(0);
      transform: translateY(0)
  }
}

@keyframes upsdown-sm-small {
  0% {
      -webkit-transform: translateY(0);
      transform: translateY(0)
  }

  25% {
      -webkit-transform: translateY(5px);
      transform: translateY(5px)
  }

  50% {
      -webkit-transform: translateY(0);
      transform: translateY(0)
  }

  75% {
      -webkit-transform: translateY(-5px);
      transform: translateY(-5px)
  }

  100% {
      -webkit-transform: translateY(0);
      transform: translateY(0)
  }
}

@-webkit-keyframes shake-animation {
    0% {
        -webkit-transform: translate(1px, 1px) rotate(0deg);
        transform: translate(1px, 1px) rotate(0deg)
    }

    10% {
        -webkit-transform: translate(-1px, -2px) rotate(-1deg);
        transform: translate(-1px, -2px) rotate(-1deg)
    }

    20% {
        -webkit-transform: translate(-3px, 0px) rotate(1deg);
        transform: translate(-3px, 0px) rotate(1deg)
    }

    30% {
        -webkit-transform: translate(3px, 2px) rotate(0deg);
        transform: translate(3px, 2px) rotate(0deg)
    }

    40% {
        -webkit-transform: translate(1px, -1px) rotate(1deg);
        transform: translate(1px, -1px) rotate(1deg)
    }

    50% {
        -webkit-transform: translate(-1px, 2px) rotate(-1deg);
        transform: translate(-1px, 2px) rotate(-1deg)
    }

    60% {
        -webkit-transform: translate(-3px, 1px) rotate(0deg);
        transform: translate(-3px, 1px) rotate(0deg)
    }

    70% {
        -webkit-transform: translate(3px, 1px) rotate(-1deg);
        transform: translate(3px, 1px) rotate(-1deg)
    }

    80% {
        -webkit-transform: translate(-1px, -1px) rotate(1deg);
        transform: translate(-1px, -1px) rotate(1deg)
    }

    90% {
        -webkit-transform: translate(1px, 2px) rotate(0deg);
        transform: translate(1px, 2px) rotate(0deg)
    }

    100% {
        -webkit-transform: translate(1px, -2px) rotate(-1deg);
        transform: translate(1px, -2px) rotate(-1deg)
    }
}

@keyframes shake-animation {
    0% {
        -webkit-transform: translate(1px, 1px) rotate(0deg);
        transform: translate(1px, 1px) rotate(0deg)
    }

    10% {
        -webkit-transform: translate(-1px, -2px) rotate(-1deg);
        transform: translate(-1px, -2px) rotate(-1deg)
    }

    20% {
        -webkit-transform: translate(-3px, 0px) rotate(1deg);
        transform: translate(-3px, 0px) rotate(1deg)
    }

    30% {
        -webkit-transform: translate(3px, 2px) rotate(0deg);
        transform: translate(3px, 2px) rotate(0deg)
    }

    40% {
        -webkit-transform: translate(1px, -1px) rotate(1deg);
        transform: translate(1px, -1px) rotate(1deg)
    }

    50% {
        -webkit-transform: translate(-1px, 2px) rotate(-1deg);
        transform: translate(-1px, 2px) rotate(-1deg)
    }

    60% {
        -webkit-transform: translate(-3px, 1px) rotate(0deg);
        transform: translate(-3px, 1px) rotate(0deg)
    }

    70% {
        -webkit-transform: translate(3px, 1px) rotate(-1deg);
        transform: translate(3px, 1px) rotate(-1deg)
    }

    80% {
        -webkit-transform: translate(-1px, -1px) rotate(1deg);
        transform: translate(-1px, -1px) rotate(1deg)
    }

    90% {
        -webkit-transform: translate(1px, 2px) rotate(0deg);
        transform: translate(1px, 2px) rotate(0deg)
    }

    100% {
        -webkit-transform: translate(1px, -2px) rotate(-1deg);
        transform: translate(1px, -2px) rotate(-1deg)
    }
}
/*
 * Hide visually and from screen readers
 */

.hidden,
[hidden] {
  display: none !important;
}

/*
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 */

.sr-only {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px;
  /* 1 */
}

/*
 * Extends the .sr-only class to allow the element
 * to be focusable when navigated to via the keyboard:
 * https://www.drupal.org/node/897638
 */

.sr-only.focusable:active,
.sr-only.focusable:focus {
  clip: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  position: static;
  white-space: inherit;
  width: auto;
}

/*
 * Hide visually and from screen readers, but maintain layout
 */

.invisible {
  visibility: hidden;
}

/*
 * Clearfix: contain floats
 *
 * For modern browsers
 * 1. The space content is one way to avoid an Opera bug when the
 *    `contenteditable` attribute is included anywhere else in the document.
 *    Otherwise it causes space to appear at the top and bottom of elements
 *    that receive the `clearfix` class.
 * 2. The use of `table` rather than `block` is only necessary if using
 *    `:before` to contain the top-margins of child elements.
 */

.clearfix::before,
.clearfix::after {
  content: " ";
  display: table;
}

.clearfix::after {
  clear: both;
}

/* ==========================================================================
   EXAMPLE Media Queries for Responsive Design.
   These examples override the primary ('mobile first') styles.
   Modify as content requires.
   ========================================================================== */

@media only screen and (min-width: 35em) {
  /* Style adjustments for viewports that meet the condition */
}

@media print,
  (-webkit-min-device-pixel-ratio: 1.25),
  (min-resolution: 1.25dppx),
  (min-resolution: 120dpi) {
  /* Style adjustments for high resolution devices */
}

/* ==========================================================================
   Print styles.
   Inlined to avoid the additional HTTP request:
   https://www.phpied.com/delay-loading-your-print-css/
   ========================================================================== */

@media print {
  *,
  *::before,
  *::after {
    background: #fff !important;
    color: #000 !important;
    /* Black prints faster */
    box-shadow: none !important;
    text-shadow: none !important;
  }

  a,
  a:visited {
    text-decoration: underline;
  }

  a[href]::after {
    content: " (" attr(href) ")";
  }

  abbr[title]::after {
    content: " (" attr(title) ")";
  }

  /*
   * Don't show links that are fragment identifiers,
   * or use the `javascript:` pseudo protocol
   */
  a[href^="#"]::after,
  a[href^="javascript:"]::after {
    content: "";
  }

  pre {
    white-space: pre-wrap !important;
  }

  pre,
  blockquote {
    border: 1px solid #999;
    page-break-inside: avoid;
  }

  /*
   * Printing Tables:
   * https://web.archive.org/web/20180815150934/http://css-discuss.incutio.com/wiki/Printing_Tables
   */
  thead {
    display: table-header-group;
  }

  tr,
  img {
    page-break-inside: avoid;
  }

  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }

  h2,
  h3 {
    page-break-after: avoid;
  }
}
