body {
  background-color: #fff;
  color: #424242;
  font-family: 'Merriweather', serif;
  font-size: 18px;
  line-height: 1.9em;
  font-weight: 300;
  letter-spacing: 0.03em;
}

@media only screen and (min-width: 992px) {
  .content:after {
    content: '';
    position: absolute;
    top: 80px;
    bottom: calc(100vh - 80px);
    border-left: 1px solid rgba(0, 0, 0, 0.1);
    height: auto;
    left: calc(50% - 334.5px);
    z-index: -1;
  }
  #home .content:after,
  #about .content:after {
    bottom: 0;
  }
  #home .content:after {
    top: 160px;
  }
}
@media only screen and (min-width: 1200px) {
  .content:after {
    left: calc(50% - 345px);
  }
}
@media only screen and (min-width: 1400px) {
  .content:after {
    left: calc(50% - 397.5px);
  }
}

p { margin: 16px 0 0; }
p:first-child { margin-top: 0; }
p+ul { margin-top: 16px; }
p a,
#about .contact li a,
#uol .list-unstyled a p,
#pro .pro-nav a,
.recognition li a {
  background: linear-gradient(180deg,transparent, #E91E63 0);
  background-size: 100% 2px;
  background-position: bottom;
  background-repeat: no-repeat;
  transition: background-size .2s;
  -ms-transition: background-size .2s;
  -moz-transition: background-size .2s;
  -webkit-transition: background-size .2s;
  -o-transition: background-size .2s;
  padding-bottom: 1px;
  text-decoration: none;
}
p a i { font-size: 12px; }
p a:hover,
p a:hover strong,
#about .contact li a:hover,
#uol .list-unstyled a:hover p,
#pro .pro-nav a:hover,
.recognition li a:hover {
  color: #fff;
  background-size: 100% 100%;
}
p strong {
  font-weight: 600;
}
h1, h2, h3, h4 {
  font-family: Poppins,'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-weight: 800;
}
h2 {
  color: #212121;
  font-size: 48px;
  margin: 0;
  letter-spacing: -0.01em;
}
@media only screen and (min-width: 768px) {
  h2 {
    font-size: 56px;
  }
}
h3 {
  color: #212121;
  font-size: 16px;
  margin: 0 0 24px;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
@media only screen and (min-width: 768px) {
  h3 { margin-top: 0; }
}
h3::after {
  content: '';
  display: inline-block;
  height: 5px;
  width: 5px;
  margin-left: 3px;
  border-radius: 100px;
}
h4 {
  color: #424242;
  font-size: 16px;
  margin: 0 0 24px;
  text-transform: uppercase;
}
a {
  color: #424242;
  cursor: pointer;
}
a:hover,
a:focus {
  color: inherit;
  text-decoration: none;
  -webkit-transition: all .2s ease;
  -o-transition: all .2s ease;
  transition: all .2s ease;
}
abbr[title] {
  text-decoration: none;
  border-bottom: 1px dotted #424242;
}

img {
  width: 100%;
}
ul {
  padding-inline-start: 16px;
}
ul li {
  margin-bottom: 8px;
}
hr {
  margin: 0;
  border-color: rgba(0, 0, 0, 0.1);
  opacity: 1;
}
.mt-4 { margin-top: 40px; }
.mt-45 { margin-top: 60px; }
.mt-5 { margin-top: 80px !important;}
.mb-5 { margin-bottom: 80px !important;}
.gx-5 { --bs-gutter-x: 4rem; }

.content {
  position: relative;
  z-index: 10;
  background-color: #fff;
}
.content section {
  margin: 0;
  padding: 80px 20px;
}
@media only screen and (min-width: 992px) {
  .content section {
    margin: 0 40px;
    padding: 80px 0;
    border-radius: 8px;
  }
  .content section.img {
    border-radius: 0;
  }
}
.content section.img {
  margin: 0;
  padding: 0;
}

.z-10 {z-index: 10; }
.z-20 {z-index: 20; }
.z-20 {z-index: 30; }
.abs { position: absolute; }

.parallax {
  height: 100vh;
  background-size: auto 100%;
  background-position: center;
}
@media only screen and (min-width: 768px) {
  .parallax {
    background-size: cover;
    background-attachment: fixed;
    background-position: center;
  }
  .parallax.half { height: 100vh; }
}

.back {
  position: fixed;
  right: 20px;
  top: 20px;
  padding: 8px;
  z-index: 100;
  font-size: 40px;
  color: #FFF;
  border-radius: 1000px;
}
.back:hover {
  color: #FFF;
  transform: rotate(90deg);
}
@media only screen and (min-width: 768px) {
  .back {
    right: 48px;
    top: 32px;
  }
}


/* CORES */
.tr { background-color: transparent; }
.wh { background-color: #FFF; }
.bl { background-color: #000; }
.gr-200 { background-color: #EEEEEE; }
.gr-900 { background-color: #263238; }
.rd-700 { background-color: #D32F2F; }
.rd-800 { background-color: #C62828; }
.dri-500 { background-color: #00BCD4; }
.crm-500 { background-color: #F3123C; }
.sb-500 { background-color: #4632D8; }
.uol-500 { background-color: #FF8000; }
.pro-500 { background-color: #E91E63; }


/* CASE */
header {
  width: 100%;
  height: 100vh;
  position: relative;
  text-align: center;
}

header h1 {
  position: fixed;
  width: 100%;
  margin-top: 40vh;
  text-align: center;
  z-index: 1;
  color: #fff;
  font-size: 16vw;
  letter-spacing: -0.05em;
  text-indent: -0.05em;
  line-height: 1em;
  animation: focus 0.5s ease-in-out 0.3s both;
}
@media only screen and (min-width: 1200px) {
  header h1 {
    font-size: 13.5vw;
    margin-top: 32vh;
  }
}

@keyframes focus {
	0% {
		filter: blur(12px);
		opacity: 0;
    margin-top: 42vh;
	}

  50% {
		opacity: 0.4;
	}

	100% {
		filter: blur(0px);
		opacity: 1;
	}
}

.intro .row div:first-child {
  align-content: center;
}
.intro .row:first-child div:first-child {
  align-content: flex-start;
  padding-top: 12px;
}
.intro .row:last-child div:first-child {
  border-right: none;
}

.year-place {
  width: 100%;
  margin: 0 0 8px 0;
  font-size: 14px;
  font-family: Poppins,'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-weight: 300;
  line-height: 1.7em;
  letter-spacing: -0.01em;
}
@media only screen and (min-width: 992px) {
  .year-place {
    margin-bottom: 0;
    text-align: right;
  }
}
.year-place li {
  display: inline-block;
  margin: 0 16px 0 0;
}
@media only screen and (min-width: 992px) {
  .year-place li {
    display: block;
    margin-right: 0;
  }
}
.year-place i {
  margin-right: 8px;
  font-size: 13px;
  vertical-align: bottom;
}
.year-place span {
  white-space: nowrap;
}

@media only screen and (min-width: 992px) {
  .client div {
    padding-top: 24px;
  }
}
.client img {
  width: auto;
  max-width: 160px;
  max-height: 32px;
  height: auto;
  margin: 32px 0 16px;
}
@media only screen and (min-width: 992px) {
  .client .logo { justify-content: flex-end; }
  .client img {
    margin-top: auto;
    margin-bottom: auto;
  }
}
.client p,
.alert {
  font-size: 14px;
  font-family: Poppins,'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-weight: 300;
  line-height: 1.7em;
  letter-spacing: -0.01em;
}
.alert {
  list-style-position: outside;
  border-radius: 4px;
  border-width: 0;
}
.alert h4 {
  margin-bottom: 8px;
  color: inherit;
  font-size: 14px;
}
.alert li {
  margin-left: 14px;
}
.alert li:last-child { margin-bottom: 0; }

.screen {
  border-radius: 8px;
  -webkit-box-shadow: 4px 8px 24px 0 rgba(0,0,0,0.2);
  -moz-box-shadow: 4px 8px 24px 0 rgba(0,0,0,0.2);
  box-shadow: 4px 8px 24px 0 rgba(0,0,0,0.2);
}
.screen.mobile {
  display: block;
  margin: 0 auto;
  max-width: 90%;
  border-radius: 16px;
}

p.caption {
  font-size: 14px;
  font-family: Poppins,'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-weight: 300;
  line-height: 1.7em;
  margin: -16px 0 24px;
  letter-spacing: -0.01em;
}

img + p.caption,
video + p.caption {
  text-align: center;
  margin: 16px 0 0;
}

video + p.caption {
  margin-top: 0;
}

list-unstyled li {
  margin-bottom: 0;
}

/* PERSONAL PROJECTS */
@media only screen and (min-width: 1200px) {
  #pro header h1 {
    font-size: 15.2vw;
    margin-top: 33vh;
  }
}
#pro h3::after { background-color: #E91E63; }
#pro .pro-nav span {
  font-size: 14px;
  font-family: Poppins,'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-weight: 300;
  line-height: 1.7em;
  letter-spacing: -0.01em;
}
#pro .pro-nav a { background-image: linear-gradient(180deg,transparent, #E91E63 0); }

#pro .content section.img { position: relative; }

@media only screen and (min-width: 992px) {
  #pro .content section.img:after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    background-color: #E91E63;
    height: auto;
    left: 0;
    right: calc(50% + 333.5px);
  }
}
@media only screen and (min-width: 1200px) {
  #pro .content section.img:after {
    right: calc(50% + 344px);
  }
}
@media only screen and (min-width: 1400px) {
  #pro .content section.img:after {
    right: calc(50% + 396.5px);
  }
}
#pro section.last,
#pro section.last + section {
  padding-bottom: 0;
}

/* SB */
@media only screen and (min-width: 1200px) {
  #sb header h1 {
    font-size: 11.8vw;
    margin-top: 36.5vh;
  }
}
#sb h3::after { background-color: #4632D8; }
#sb .outcomes span {
  font-size: 44px;

}

#sb .caption {
  text-align: left;
}


/* CRM */
@media only screen and (min-width: 1200px) {
  #crm header h1 {
    font-size: 16.1vw;
    margin-top: 32vh;
  }
}
#crm h3::after { background-color: #F3123C; }
#crm p a { background-image: linear-gradient(180deg,transparent, #F3123C 0); }
#crm .mobile { text-align: center; }
#crm .mobile img {
  border-radius: 3px;
  -webkit-box-shadow: 0 2px 0 0 rgba(0,0,0,0.2);
  -moz-box-shadow: 0 2px 0 0 rgba(0,0,0,0.2);
  box-shadow: 0 2px 0 0 rgba(0,0,0,0.2);
}
@media only screen and (min-width: 992px) {
  #crm .mobile img {
    max-height: 500px;
    width: auto;
  }
}
#crm .desk img,
#crm .lead img {
  border-radius: 1px;
  -webkit-box-shadow: 0 2PX 0 0 rgba(0,0,0,0.2);
  -moz-box-shadow: 0 2px 0 0 rgba(0,0,0,0.2);
  box-shadow: 0px 2px 0 0 rgba(0,0,0,0.2);
}
#crm .desk .row div { margin-top: 32px; }
#crm .desk .row div:first-child { margin-top: 0; }
#crm .lead .row div:nth-child(2) { margin-top: 0; }
@media only screen and (min-width: 768px) {
  #crm .desk .row div:nth-child(2) { margin-top: 0; }
}

/* DRIVVO */
@media only screen and (min-width: 1200px) {
  #drivvo header h1 {
    font-size: 29vw;
    margin-top: 16vh;
  }
}
#drivvo h3::after { background-color: #0097A7; }
#drivvo p a,
#drivvo .recognition li a { background-image: linear-gradient(180deg,transparent, #0097A7 0); }
#drivvo .stars {
  margin: -8px 0 20px;
  font-size: 20px;
}
#drivvo .timeline {
  padding: 0 16px;
  left: 0;
}

@media only screen and (min-width: 768px) {
  #drivvo .numbers.gp li,
  #drivvo .numbers.gp li:first-child {
    text-align: left;
  }
  #drivvo .numbers.gp li strong {
    font-size: 40px;
    text-transform: none;
  }
  #drivvo .numbers.gp li:first-child { text-align: right; }
}
#drivvo .sanduiche { overflow: hidden; }
#drivvo .numero-gig .parallax {
  display: flex;
  align-items: center;
  justify-content: center;
}
#drivvo .numero-gig p {
  font-family: Poppins,'Helvetica Neue', Helvetica, Arial, sans-serif;
  color: #fff;
  font-size: 14px;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0.4em;
}
#drivvo .numero-gig span {
  color: #fff;
  display: block;
  font-family: Poppins,'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 70px;
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 0.7em;
}
#drivvo .numero-gig span em {
  font-size: 40px;
  font-style: normal;
}
#drivvo .magazine {
  -webkit-box-shadow: 0 0 20px 0 rgba(0,0,0,0.3));
  -moz-box-shadow: 0 0 20px 0 rgba(0,0,0,0.3);
  box-shadow: 0 0 20px 0 rgba(0,0,0,0.3);
}
#drivvo blockquote {
  border-left: none;
  margin: 16px 0 24px;
  padding: 0;
  font-weight: 600;
  font-size: 20px;
  line-height: 1.8em;
}
#drivvo blockquote span {
  font-size: 16px;
  opacity: 0.4;
}
#drivvo blockquote i {
  font-size: 40px;
  opacity: 0.4;
  top: -16px;
  left: 8px;
}
@media only screen and (min-width: 768px) {
  #drivvo .numero-gig span { font-size: 150px; }
  #drivvo .numero-gig span em { font-size: 100px; }
  #drivvo blockquote { margin-top: 0; }
  #drivvo blockquote i {
    top: -2px;
    left: -28px;
  }
}

/* ESPECIAIS */
@media only screen and (min-width: 1200px) {
  #uol header h1 {
    font-size: 42vw;
    margin-top: 9vh;
  }
}
#uol h3::after { background-color: #FF8F00; }
#uol p a,
#uol .list-unstyled a p { background-image: linear-gradient(180deg,transparent, #FF8F00 0); }
#uol .list-unstyled a p {
  text-decoration: none;
  display: inline-block;
}

#uol .content section.scroll {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  padding: 0;
}

#uol .content section.scroll + section.scroll {
  border-top-left-radius: 0px;
  border-top-right-radius: 0px;
  border-bottom-left-radius: 16px;
  border-bottom-right-radius: 16px;
}

#uol .exemplo { position: relative; }
#uol .exemplo .cel-esq {
  position: absolute;
  top: 32.7%;
  left: 10%;
  width: 22%;
}
#uol .exemplo .cel-dir {
  position: absolute;
  top: 81%;
  right: 10%;
  width: 22%;
}
#uol .da ul { margin-top: 16px; }
#uol .da li img {
  margin-bottom: 8px;
}
#uol .da li a:hover  {
  opacity: 0.8;
  -webkit-transition: all .3s ease;
  -o-transition: all .3s ease;
  transition: all .3s ease;
}

/* SOBRE */
#about h1 {
  font-size: 48px;
  color: #E91E63;
}
#about h2 {
  color: #212121;
  font-size: 48px;
  margin: 0 0 32px;
  letter-spacing: -0.01em;
}
@media only screen and (min-width: 768px) {
  #about h2 {
    font-size: 56px;
  }
}
#about h3::after { background-color: #E91E63; }

#about li,
#about .author {
  font-size: 14px;
  font-family: Poppins,'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-weight: 300;
  line-height: 1.7em;
  letter-spacing: -0.01em;
}

#about li i {
  margin-right: 8px;
  font-size: 13px;
  vertical-align: bottom;
}

#about p a { background-image: linear-gradient(180deg,transparent, #E91E63 0); }

#about .author { margin-bottom: 0; }
#about .author + p { margin-top: 4px; }

/* HOME */
#home section:first-child {
  padding: 40px 20px 20px;
}
#home section:nth-child(2) {
  padding: 40px 20px 80px;
}

#home h1,
#home .about {
  font-family: Poppins,'Helvetica Neue', Helvetica, Arial, sans-serif;
  color: #212121;
  line-height: 1em;
  font-size: 16px;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
#home .about {
  text-decoration: none;
  opacity: 1;
  height: auto;
}
#home .about:hover { color: #E91E63; }

#home h2 {
  font-family: Poppins,'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-weight: 800;
  font-size: 56px;
  letter-spacing: -0.01em;
  color: #212121;
  text-decoration: none;
  padding:  0;
  line-height: 120%;
}
@media only screen and (min-width: 768px) {
  #home h2 {
    font-size: 80px;
  }
}

#home h3 {
  color: #212121;
  margin-bottom: 16px;
  line-height: 1em;
}
#home h3::after {
  background-color: #E91E63;
  mix-blend-mode: color-color-dodge;
}
#home ul:before {
  content: '';
  position: fixed;
  top: 0; bottom: 0; left: 0; right: 0;
  z-index: -1;
}
#home li a {
  display: inline-block;
  font-family: Poppins,'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-weight: 800;
  font-size: 32px;
  letter-spacing: -0.01em;
  color: #212121;
  text-decoration: none;
  padding:  0;
  line-height: 120%;
}
@media only screen and (min-width: 768px) {
  #home li a {
    font-size: 40px;
  }
}

@media only screen and (max-width: 996px) {
  #home .last {
    order: 1;
    margin-top: 32px;
  }
}
#home li a:before {
  content: '';
  position: fixed;
  top: 0; bottom: 0; left: 0; right: 0;
  z-index: -2;
  -webkit-transition: background-color 0.5s ease-out;
  -moz-transition: background-color 0.5s ease-out;
  -o-transition: background-color 0.5s ease-out;
  transition: background-color  0.5s ease-out;
}
#home li a:hover {
  color: #fff;
}
#home li:nth-of-type(1) a:hover:before {
   background-color: #4632D8;
}
#home li:nth-of-type(2) a:hover:before {
   background-color: #00BCD4;
}
#home li:nth-of-type(3) a:hover:before {
   background-color: #F3123C;
}
#home li:nth-of-type(4) a:hover:before {
   background-color: #FF8000;
}
#home li:nth-of-type(5) a:hover:before {
   background-color: #E91E63;
}


/* PROJETOS */
.projetos li {
  padding: 0;
}
.projetos li a {
  display: block;
  border-bottom: none;
  padding: 24px 0 24px 0;
  -webkit-transition: all .3s ease;
  -o-transition: all .3s ease;
  transition: all .3s ease;
}
.projetos li a::before {
  content: '';
  position: absolute;
    left: 0;
    top: 8px;
  display: block;
  border-top: 1px solid rgba(255,255,255,1);
  width: 16px;
  height: 1px;
  -webkit-transition: all .3s ease;
  -o-transition: all .3s ease;
  transition: all .3s ease;
}
.projetos li a:hover {
  padding-left: 8px;
  -webkit-transition: all .5s ease;
  -o-transition: all .5s ease;
  transition: all .5s ease;
}
.projetos li a:hover::before {
  width: 32px;
  -webkit-transition: all .5s ease;
  -o-transition: all .5s ease;
  transition: all .5s ease;
}
.projetos li a p {
  font-family: Poppins,'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-weight: 800;
  font-size: 32px;
  line-height: 1em;
  color: #fff;
}
.projetos li a p span {
  display: block;
  padding-left: 2px;
  font-weight: 200;
  text-transform: uppercase;
  font-size: 12px;
  letter-spacing: 0.2em;
}

/* OUTCOMES */
.outcomes {
  padding-inline-start: 0;
  margins: 0;
}
.outcomes li {
  list-style-type: none;
  font-size: 14px;
  font-family: Poppins,'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-weight: 300;
  line-height: 1.7em;
  letter-spacing: -0.01em;
}
.outcomes li img {
  display: block;
  max-height: 32px;
  max-width: 160px;
}
.outcomes span {
  display: block;
  margin-bottom: 8px;
  font-weight: 800;
  font-size: 80px;
  line-height: 100%;
  letter-spacing: -0.04em;
  color: #212121;
}
.outcomes span em {
  margin-left: 4px;
  font-size: 40px;
  font-style: normal;
  line-height: 100%;
  letter-spacing: -0.01em;
}
.outcomes .fonte {
  position: absolute;
    bottom: 12px;
    left: 0;
    right: 0;
  letter-spacing: 0.05em;
  font-size: 10px;
  opacity: 0.7;
}

.recognition {
  padding-inline-start: 0;
}
.recognition li {
  list-style-type: none;
  margin-top: 32px;
}
.recognition li img {
  display: block;
  width: auto;
  height: auto;
  max-width: 120px;
  max-height: 56px;
  margin-bottom: 16px;
}
.recognition li a {
  margin-left: 8px;
}
.recognition li span {
  display: block;
  margin-top: 8px;
  font-size: 14px;
  font-family: Poppins,'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-weight: 200;
  line-height: 1.7em;
  letter-spacing: -0.01em;
}


/* VIDEO */
.video {
  position: relative;
  padding-bottom: 56.25%;
}
.video iframe {
  position: absolute;
  left: 0px;
  top: 0px;
  width: 100%;
  height: 100%;
}

/* PROXIMO PROJETO */
.next {
  height: calc(100vh - 160px);
  margin-top: 80px;
}
@media only screen and (min-width: 768px) {
  .next {
    margin-bottom: 80px !important;
  }
}
.next a {
  display: block;
  margin-top: 18.5vh;
  font-family: Poppins,'Helvetica Neue', Helvetica, Arial, sans-serif;
  color: #FFF;
  text-align: center;
  text-transform: uppercase;
  font-size: 16px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-decoration: none;
}
.next a span {
  display: block;
  margin-top: 16px;
  font-size: 40px;
  letter-spacing: 0em;
  text-transform: none;
}
@media only screen and (min-width: 768px) {
  .next a span {
    font-size: 48px;
  }
}
.next a:active {
  opacity: 0;
}
.next a::after {
  display: block;
  content: '';
  height: 3px;
  width: 40px;
  background-color: #fff;
  margin: 32px auto 0;
  -webkit-transition: all .5s;
  -o-transition: all .5s;
  transition: all .5s;
}
.next a:hover::after {
  width: 80px;
  -webkit-transition: all .5s;
  -o-transition: all .5s;
  transition: all .5s;
}
