.grid {position: relative; margin: 60px auto; padding: 0 1.5em; list-style: none; text-align: left; }
@media (max-width: 991.98px) { .grid { margin: 20px auto; padding: 0; } }
.grid figure {position: relative; float: left; overflow: hidden; max-width: 100%; background: #fff; text-align: center; cursor: pointer; border-radius: 10px;}
.grid figure img { position: relative; display: block;  width: 100%; opacity: 1; }
.grid figure figcaption { padding: 2em; color: #000; -webkit-backface-visibility: hidden; backface-visibility: hidden; }
.grid figure figcaption::before, .grid figure figcaption::after { pointer-events: none; }
.grid figure figcaption, .grid figure figcaption > a { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
.grid figure figcaption > a { z-index: 999; text-indent: 200%; white-space: nowrap; opacity: 0;}
.grid figure h2 { color: #000; }
.grid figure h2, .grid figure p { text-align: left; margin: 0; font-size: 20px; color: #000;}
.grid figure p { color: #000; font-size: 14px; line-height: 1.5; }
figure.effect-lily img {max-width: none; -webkit-transform: scale(1); transform: scale(1); -webkit-transition: .3s ease-in-out; transition: .3s ease-in-out;}
figure.effect-lily figcaption { color: #000; }
figure.effect-lily figcaption:hover {  }
figure.effect-lily figcaption > div { position: absolute;  bottom: 0; left: 0; padding: 2em; width: 100%; height: 25%;}
figure.effect-lily h2, figure.effect-lily p { -webkit-transform: translate3d(0,30px,0); transform: translate3d(0,30px,0); color: #000;}
figure.effect-lily h2, figure.effect-lily p { color: rgba(0,0,0,1); opacity: 0; -webkit-transition: opacity 0.2s, -webkit-transform 0.35s; transition: opacity 0.2s, transform 0.35s;}
figure.effect-lily:hover img, figure.effect-lily:hover p { opacity: 1; }
figure.effect-lily:hover img { opacity: 1; -webkit-transform: scale(1.1); transform: scale(1.1); }
figure.effect-lily:hover h2, figure.effect-lily:hover p { opacity: 1; -webkit-transform: translate3d(0,0,0); transform: translate3d(0,0,0); color: #000; }
figure.effect-lily:hover p { -webkit-transition-delay: 0.05s; transition-delay: 0.05s; -webkit-transition-duration: 0.35s; transition-duration: 0.35s; }
@media only screen and (max-width: 1200px) {figure.effect-lily figcaption > div { height: 40%;}}
@media only screen and (max-width: 600px) {figure.effect-lily figcaption > div { height: 45%;}}

.zone {width: 40px; height: 50px; display: block; padding: 10px 18px 0 2px;  }
.tm-scroll { position: absolute; width: 2px; height: 50px; background-color: #f5f5f5; display: block; overflow: hidden; }
.tm-scroll span { position: absolute; top: 0; left: 0; background-color: #FF3D3D; width: 100%; height: 100%; transform: translateY(-100%); animation: scrollHelperFerro 2s infinite ease-in-out; }
@keyframes scrollHelperFerro {
  0% {
    transform: translateY(-100%);
  }
  100% {
    transform: translateY(100%);
  }
  ,
}
@media (max-width: 375px) { .zone { display: none; } }

.me {width: 500px; border-radius: 250px;}
.templateux-section ul { padding-left: 0; }
.templateux-section ul li { list-style: url('../images/check.png'); }
.templateux-section ul li.tag { text-transform: uppercase; display: inline-block; padding: 3px 10px; margin-bottom: 7px;
margin-right: 5px; border-radius: 4px; border: 1px solid #ddd; font-size: 11px; letter-spacing: 0.5px; color: #222;}


.logos img {
  margin-top: 30px; max-height: 80px; max-width: 150px; filter: grayscale(1); opacity : 0.8; -webkit-transition: .3s all ease-in-out; -o-transition: .3s ease-in-out; transition: .3s ease-in-out;
}
.logos img:hover {
  filter: grayscale(0); opacity : 1;
}


@keyframes scroll {
  0% {transform: translateX(0);}
  100% {transform: translatex(-1000%)}
}




.phone {border-radius: 30px; padding: 10px; -webkit-box-shadow: 0px 7px 32px 5px rgba(0,0,0,0.3); 
box-shadow: 0px 7px 32px 5px rgba(0,0,0,0.3); background-color: rgba(255, 255, 255, 0.5);}
body { font-size: 18px; line-height: 1.8; color: #6c757d; font-family:'DM Sans', "Helvetica Neue"; }ref

::-moz-selection { background: #ffd3d3; color: #000;}

::selection { background: #ffd3d3; color: #000; }

h1, h2, h3, h4, h5 { color: #000; }

a { -webkit-transition: .3s all ease; -o-transition: .3s all ease; transition: .3s all ease; }

a:hover, a:active, a:focus { text-decoration: none; outline: none; }

.container-large { padding: 0 0 100px 0; max-width: 100%; overflow: hidden; margin: 0;}

.container-larger { padding: 0; max-width: 100%; overflow: hidden; margin: 0;}
@media (max-width: 767.98px) { .container-larger { padding: 0 25px; display: block; } }

.templateux-navbar { position: fixed; top: 0; transition: top .2s ease-in-out; left: 0; width: 100%; height: 100px; padding: 30px 10px; z-index: 99999; background-color: #fff; }
.nav-up { top: -100px;}


.templateux-navbar .container-fluid { max-width: 100%; }

.templateux-navbar .toggle-menu { z-index: 9999; position: relative; top: -13px; display: none; }

@media (max-width: 767.98px) { .templateux-navbar .toggle-menu { display: block; } }

.templateux-navbar .toggle-menu:active, .templateux-navbar .toggle-menu:focus { outline: none; }

.templateux-navbar .site-logo { position: absolute; top: 0px; z-index: 9999; }
.templateux-navbar .site-logo a img {  transform: rotate(0deg); -webkit-transition: .2s ease-in-out; -o-transition: .2s ease-in-out; transition: .2s ease-in-out; }
.templateux-navbar .site-logo a img:hover { transform: rotate(180deg); -webkit-transition: .2s ease-in-out; -o-transition: .2s ease-in-out; transition: .2s ease-in-out; }


.templateux-navbar .templateux-menu { position: relative; }

.templateux-navbar .templateux-menu ul { margin-bottom: 0; }

.templateux-navbar .templateux-menu ul li { display: inline-block; }

.templateux-navbar .templateux-menu ul li a { margin-right: 50px; font-size: 13px; text-transform: uppercase; letter-spacing: .2em; color: #000; position: relative; padding-bottom: 5px; display: block; }

.templateux-navbar .templateux-menu ul li a:before { content: ""; position: absolute; bottom: 0; height: 2px; width: 0; left: 0; background: #FF3D3D; -webkit-transition: .15s width ease; -o-transition: .15s width ease; transition: .15s width ease; }

.templateux-navbar .templateux-menu ul li a:hover:before { width: 100%; }

.templateux-navbar .templateux-menu ul li.active > a:before { width: 100%; }

.templateux-navbar .templateux-menu ul li:last-child a { margin-right: 0; }

@media (max-width: 767.98px) { .templateux-navbar .templateux-menu { position: fixed; width: 100%; background-color: #fff; top: 0; left: 0; margin: 0; text-align: center; height: 100vh; min-height: 400px; padding: 15px; display: none; padding-top: 100px; overflow-y: scroll; }
  .templateux-navbar .templateux-menu ul { margin-top: 40%;  }
  .templateux-navbar .templateux-menu ul li { display: block; margin-bottom: 20px; }
  .templateux-navbar .templateux-menu ul li a { padding: 10px 0 2px 0; font-size: 24px; display: inline-block; margin-right: 0; } }

@media (max-width: 767.98px) { .templateux-navbar .templateux-menu ul { margin-left: 0px; } }

.templateux-navbar.navbar-light .site-logo a { color: #fff; }

.templateux-navbar.navbar-light .hamburger .hamburger-inner, .templateux-navbar.navbar-light .hamburger .hamburger-inner::before, .templateux-navbar.navbar-light .hamburger .hamburger-inner::after { background-color: #fff; }

.templateux-navbar.navbar-light .templateux-menu ul li a { color: #fff; }

.menu-open .templateux-navbar { position: fixed; left: 0; top: 0; }

@media (max-width: 767.98px) { .menu-open .site-logo a { color: #000 !important; } }

.menu-open .navbar-light .hamburger .hamburger-inner, .menu-open .navbar-light .hamburger .hamburger-inner::before, .menu-open .navbar-light .hamburger .hamburger-inner::after { background-color: #000; }

.menu-open .templateux-menu li { opacity: 0; visibility: hidden; margin-left: -10px; position: relative; -webkit-transition: .3s all ease-in-out; -o-transition: .3s all ease-in-out; transition: .3s all ease-in-out; }

.menu-open .templateux-menu li.staggard { opacity: 1; visibility: visible; margin-left: 0px; }

@media (max-width: 767.98px) { .menu-open .templateux-menu li a { color: #000 !important; } }

.templateux-hero { background-size: cover; background-repeat: no-repeat; background-position: center center; position: relative; overflow: hidden; }

.templateux-hero .lead { font-size: 24px; }

@media (max-width: 991.98px) { .templateux-hero .lead { font-size: 20px; } }

.templateux-hero .cover { position: absolute; display: block; width: 100%; height: 100%; z-index: -1; }

.templateux-hero .cover img { position: absolute; display: block; min-width: 100%; min-height: 100%; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); }

.templateux-hero.overlay:before { content: ""; position: absolute; background: rgba(0, 0, 0, 0.4); left: 0; top: 0; bottom: 0; right: 0; }

.templateux-hero.overlay h1 { color: #fff; }

.templateux-hero.overlay .lead { color: #fff; opacity: .5; }

.templateux-hero, .intro { display: flex;  min-height: 100vh; }
@media (max-width: 1250px) { .templateux-hero, .intro { min-height: 90vh; } }
@media (max-width: 767px) { .templateux-hero, .intro { min-height: 90vh; } }
@media (max-width: 500px) { .templateux-hero, .intro { min-height: 100vh; } }
@media (max-width: 375px) { .templateux-hero, .intro { min-height: 100vh; } }

.templateux-hero h1, .intro h1 { color: #000; font-size: 70px; }

@media (max-width: 991.98px) { .templateux-hero h1, .intro h1 { font-size: 36px; } }

.templateux-portfolio-overlap { position: relative; margin-top: -15vh; }

@media (max-width: 991.98px) { .templateux-portfolio-overlap { margin-top: -15vh; } }

.container-fluid { padding-left: 50px; padding-right: 50px; max-width: 1600px; }

@media (max-width: 767.98px) { .container-fluid { padding-left: 25px; padding-right: 25px; } }

.templateux-section { padding: 6em 0; }

@media (max-width: 991.98px) { .templateux-section { padding: 3em 0; } }

.templateux-section h2 { line-height: 1.5; }

.templateux-cta { padding: 12em 0; display: block; background: #eff3f4; position: relative; }

.templateux-cta:before { content: ""; position: absolute; height: 0px; bottom: 0; background: #FF3D3D; width: 100%; left: 0; -webkit-transition: .3s all ease-out; -o-transition: .3s all ease-out; transition: .3s all ease-out; }

.templateux-cta .cta-inner { display: block; text-align: center; }

.templateux-cta span { display: block; position: absolute; left: 50%; top: 50%; -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); -webkit-transition: .3s all ease; -o-transition: .3s all ease; transition: .3s all ease; }

.templateux-cta .words-1 { opacity: 1; visibility: visible; top: 0; }

.templateux-cta .words-2 { opacity: 0; visibility: hidden; top: 40px; }

.templateux-cta h2 { font-weight: medium; margin-bottom: 0; color: #FF3D3D; position: relative; bottom: 0; -webkit-transition: .4s all ease; -o-transition: .4s all ease; transition: .4s all ease; }

.templateux-cta:hover:before, .templateux-cta:focus:before { height: 100%; }

.templateux-cta:hover .words-1, .templateux-cta:focus .words-1 { opacity: 0; visibility: hidden; top: -40px; }

.templateux-cta:hover .words-2, .templateux-cta:focus .words-2 { opacity: 1; visibility: visible; top: 0px; color: #fff; }

.section-heading { font-size: 14px; color: #495057; margin-bottom: 30px; display: block; position: relative; }


.templateux-footer { padding: 4em 0; border-top: 1px solid #F4F4F4; color: #b3b3b3; }

.templateux-footer .container-fluid { max-width: 100%; }

.templateux-footer p:last-child { margin-bottom: 0; }

.templateux-footer .footer-social { position: relative; }

.templateux-footer .footer-social a { color: #b3b3b3; position: relative; -webkit-transition: .3s all ease; -o-transition: .3s all ease; transition: .3s all ease; font-size: 18px;  }

.templateux-footer .footer-social a:hover, .templateux-footer .footer-social a:focus { color: #FF3D3D; -webkit-transform: scale(1.7); -ms-transform: scale(1.7); transform: scale(1.7); }

.btn:hover, .btn:focus, .btn:active { outline: none; -webkit-box-shadow: none !important; box-shadow: none !important; }

.form-control { height: 50px; background: #f6f6f6; border: none; }

.form-control:active, .form-control:focus { background: #f6f6f6; outline: none; -webkit-box-shadow: none !important; box-shadow: none !important; }

textarea.form-control { height: inherit; }

.button { padding: 15px 40px; display: inline-block; font-size: 13px; letter-spacing: .2em; text-transform: uppercase; color: #fff; border-radius: 30px; border: none; -webkit-transition: .3s all ease; -o-transition: .3s all ease; transition: .3s all ease; }

.button:hover, .button:active, .button:focus { outline: none; }

.button.button--red { background: #FF3D3D; }

.button.button--red:hover { text-decoration: none; color: #fff; -webkit-box-shadow: 0 20px 40px -5px rgba(0, 0, 0, 0.4); box-shadow: 0 20px 40px -5px rgba(0, 0, 0, 0.4); background: #d32535; }

.templateux-media h3 { font-size: 22px; color: #FF3D3D; }

.templateux-media .icon span { font-size: 30px; color: #ccc; }

.owl-carousel .owl-dots { position: relative; text-align: center; width: 100%; }

.owl-carousel .owl-dots .owl-dot { width: 20px; height: 20px; position: relative; line-height: 0; }

.owl-carousel .owl-dots .owl-dot:active, .owl-carousel .owl-dots .owl-dot:focus { outline: none; }

.owl-carousel .owl-dots .owl-dot span { border: 2px solid #000; background: none; -webkit-transition: .3s all ease; -o-transition: .3s all ease; transition: .3s all ease; position: absolute; width: 10px; height: 10px; border-radius: 50%; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); }

.owl-carousel .owl-dots .owl-dot.active span { border: 2px solid #FF3D3D; background: #FF3D3D; }

.owl-carousel.dots-overlap .owl-dots { bottom: 50px; position: absolute; z-index: 9; }

.owl-carousel.dots-overlap .owl-dots .owl-dot span { border: 2px solid #fff; background: none; -webkit-transition: .3s all ease; -o-transition: .3s all ease; transition: .3s all ease; position: absolute; width: 10px; height: 10px; border-radius: 50%; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); }

.owl-carousel.dots-overlap .owl-dots .owl-dot.active span { border: 2px solid #FF3D3D; background: #FF3D3D; }

#map { height: 700px; width: 100%; }

.testimony { padding: 7em 0; margin-top: 0; background: rgb(239,243,244); background: linear-gradient(180deg, rgba(239,243,244,1) 0%, rgba(255,255,255,1) 100%); }

.testimony blockquote { font-size: 24px; font-weight: 300; text-align: center;}

@media (min-width: 768px) {
  .testimony blockquote { font-size: 30px; }

}

.testimony blockquote p { color: #000; }

.testimony .author { color: #000; text-transform: uppercase; letter-spacing: .2em; text-align: center; }

.work-detail { margin-bottom: 50px; }

.work-detail .caption { display: block; text-transform: uppercase; font-size: 13px; color: #ccc; }

.work-detail strong { font-weight: normal; color: #000; }