/* GENERAL ============================== */

html {
    scroll-behavior: smooth;
}

body {
	font-family: 'Montserrat', sans-serif;
	font-size: 16px;
	background-color: #ffffff;
	color: #444444;
	margin: 0;
	padding: 0;
}

strong {
	font-weight: 700;
}


/* HEADERS ============================== */
h1 {
	font-size: 40px;
	font-weight: 300;
	line-height: 1.7;
	letter-spacing: 1px;
	word-spacing: 2px;
	text-transform: uppercase;
	margin: 5px 0;
}

h2 {
	font-size: 32px;
	text-align: center;
	text-transform: uppercase;
	letter-spacing: 1px;
	word-spacing: 1px;
	font-weight: 400;
	color: #555555;
	position: relative;
}

section.image-bg h2 {
    color: #ffffff;
}

h3 {
	font-size: 18px;
	font-weight: 400;
}

hr {
    width: 200px;
    color: red;
    margin-top: -10px;
}
/* PARAGRAPH ============================ */
p {
	font-size: 15px;
	line-height: 1.7;
	margin: 14px 0;
}

p.title-1 {
    font-size: 30px;
    font-weight: 400;
    text-align: center;
    color: #777777;
    margin: 35px 14px 14px
}

p.title-2 {
    font-size: 24px;
    font-weight: 300;
    text-align: center;
    color: #888888;
    margin: 14px;
    font-style: italic;
}

p.title-3 {
    font-size: 23px;
    text-align: center;
    margin: 35px 14px 14px
}

p.intro{
    font-size: 19px;
    font-weight: 500;
    color: #777777;
    text-align: center;
    margin: 35px 14px 14px;
}
p.small{
    font-size: 14px;
    font-weight: 300;
    color: #777777;
    text-align: center;
    margin: 0px 0px 14px;
}

span.blue {
    color: #40b7ff;
}

span.orange {
    color:#ffbb20;
}

span.green2 {
    color:#8cb913;
}

span.red {
    color: #ff5050;
}

.dictionary {
    width: 100%;
    border: 0;
    text-decoration: none;
    text-align: center;
    font-size: 40px;
    margin: 0 auto;s
}

.definition {
    width: 80%;
    font-size: 24px;
    margin: 0 auto;
}
/*  BUTTONS  ============================ */

.button {
    font-size: 15px;
    font-weight: 600;
    color: #ffffff;
    text-decoration: none;
    text-transform: uppercase;
    margin: 10px;
    padding: 10px 20px;
    display: inline-block;
    border-radius: 5px; 
    transition: background-color 3s ease 0s;
}

.purple {
    background-color: #a03dd8;
    border: 2px solid #cc72ff;
}

.purple2{
    color:#cc72ff;
}

.purple:hover{
    border-color: #40b7ff;
    background-color: #000000;
}

.green {
    background-color: #8cb913;
    border: 2px solid #d2f37b;    
}

.grey {
    background-color: #444;
    border: 2px solid #bbb;
}

.grey:hover{
    border-color: #ffffff;
    background-color: #000000;
}

.green2{
    color:#8cb913;
}

.red{
    color:#ff5050;
}

.purple2{
    color:#cc72ff;
}

.red{
    color:#ff5050;
}

.orange{
    color:#ffbb20;
}

.blue{
    color:#40b7ff;
}

.green:hover{
    border-color: #ffffff;
    background-color: #000000;
}

.button:hover{
    transition: background-color 2s ease;
}

/*  ARROWS UP  ============================ */

.button.to-top{
    color:#555555;
    background-color: #ffffff;
    padding:5px 12px 5px 2px;
    border-radius: 5px;
    position:absolute;
    right: 20px;
    top: 0;
    border: 1px solid #d5d5d5;
}

.button.to-top:hover {
    border-color: #40b7ff;
    box-shadow: 0 0 0 1px #40b7ff;
}

.button .arrows:before {
    content: "\00BB";
}

.button .arrows {
    font-size: 28px;
    display: inline-block;
    transform: rotate(-90deg);
    line-height: 20px;
    vertical-align: middle;
    margin-left: 3px;
}


/*  ICONS  ============================ */

h3 .icon {
    font-size: 24px;
    margin-right: 5px;
}

.icon .green2{
    color:#8cb913;
}

.icon .purple2{
    color:#cc72ff;
}

.icon .red{
    color:#ff5050;
}

.icon .orange{
    color:#ffbb20;
}

.icon .blue{
    color:#40b7ff;
}
    
/*  LAYOUT ============================ */    

section {
    padding: 30px 0 45px;
}

section.image-bg{
    background-size:cover;
    background-color: #555555;
    background-position: bottom center;
    background-attachment: fixed;
}

section.grey-bg {
    background-color: #f0f0f0;
}

.col-1-4 {
    width: 23.75%;
    margin: 1% 0 1% 1%;
    padding 0 15px;
    box-sizing: border-box;
    float: left;
    }

.col-1-3 {
    width: 48.5%;
    margin: 1% 0 1% 1%;
    padding 0 15px;
    box-sizing: border-box;
    float: left;
    }
.col-1-2 {
    width: 48.5%;
    margin: 1% 0 1% 1%;
    padding 0 15px;
    box-sizing: border-box;
    float: left;
    }
    
.row {
    width: 100%;
}

.row::before, .row::after {
    content:" ";
    display:table;
    clear:both;
}

.right {
    float:right;
}

/* HEADER  ============================== */

header {
    background-image: linear-gradient(rgba(0,0,0,0.7),rgba(0,0,0,0.7)), url("../images/andrew-photog.jpg");
    height: 100vh;
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
}

article {   /* for separate pages */
    background-image: linear-gradient(rgba(0,0,0,0.7), rgba(0,0,0,0.5)), url("../images/background/header2.jpg");
    clear:both;
    height: 120px;
    /*background-size: cover; */
    background-position: center;
   /*background-attachment: fixed; */
}


header .content {
    height:100%;
    width: 100%;
}

.rotate2D:hover {
    transform: rotate(37573deg);
}

a.name-link {
    text-decoration: none;
}

/*  CONTENT ============================ */

.content {
    width: 100%;
    max-width: 1250px;
    margin: 0 auto;
    padding: 0 20px;
    box-sizing: border-box;
    position: relative;
}

.content.wide {
    max-width: 1250px;  
}

.center {
    text-align: center;
}

/*  BRAND ============================ */

.brand {
    float: left;
    position: relative;
    margin: 10px 0;
    z-index: 9;
    
    height: 80px;
    text-align: center; 
}


.logo-wrap {
    display:inline-block;
    border: 2px solid #5bdaff;
    border-radius: 34px;
    
    position: relative;
    top: -20px;
}

.logo {
    width:60px;
    vertical-align: middle;
    transition: transform 200s linear;

}


/*  This was my first attempt -it worked ok.
.logo:hover {
    width: 60px;
    transform: rotate(88888deg);
}
*/

.brand:hover .logo {
    animation-name: spin;
    animation-duration: 1.2s;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
    filter:blur(1px);
}
.name {
    font-size: 28px;
    text-transform: uppercase;
    font-weight: 700;
    vertical-align: middle;
    margin-left: 10px;
}
.name-impact {
    color:#5bdaff;
}
.name-web {
    color:#ffffff;
}

/*  MENU ============================ */

.menu {
    font-family: 'Lato', sans-serif;
    text-transform: uppercase;
    position: relative;
    float: right;
    margin: 25px 0;
    z-index: 10;
}

.menu2 {
    font-family: 'Lato', sans-serif;
    text-transform: uppercase;
    position: relative;
    float: right;
    margin: 25px 0;
    z-index: 10;
}

.menu2-header2 {
    width: 100%;
    height: 60px;
    position: relative;
    margin: 60px 0 20px 0;

}

.menu .hamburger div {
    background-color: #e5e5e5;
    width: 22px;
    height: 2px;
    margin: 5px 0;
}

.menu .hamburger {
    float: right;
    display: none;
    position: relative;
    cursor: pointer;
}

.menu ul {
    list-style-type: none;
    padding: 1px;
    margin: 0;
}

.menu li {
    margin: 10px 1px;
    float:left;
}

.menu a {
    font-size: 16px;
    font-weight: 400;
    display: inline-block;
    position: relative;
    text-decoration: none;
    color: white;
    overflow: hidden;
    }

.menu a span {
    position: relative;
    display: inline-block;
    padding: 10px;
    box-sizing: border-box;
    height: 40px;
    transition: top .2s ease-out;
    top: 0;
}

.menu .default {
    background-color: #404040;
    border: 1px solid #555;
    border-top-color: #00b1e4;
    display: inline-block;
}

.menu a:hover .default{
    top: 41px;
}

.menu .over {
    position: absolute;
    left: 0;
    top: -41px;
    background-color: #00b1e4;
    border: 1px solid #00b1e4;
}

.menu a:hover .over{
    top: 0;
}

/*  HERO  ============================ */

.hero {
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    top: 0;
    left: 0;
}

.call-to-action {
    color:#ffffff;
    text-align: center;
    box-sizing: border-box;
    padding: 10px, 10px, 50px, 10px;
}

/*  SERVICES  ============================ */

#services{
    background-image: linear-gradient(rgba(0,0,0,0.2), rgba(0,0,0,0.2)), url("../images/background/services.jpg");
    clear:both;
}

.services-list {
    display:flex;
    flex-direction: row;
    flex-wrap: wrap;
    padding: 0;
    list-style-type: none;

}

.services-list > li {
    width: 32.3%;
    margin: 1% 0 0 1%;
    background-color: #fafafa;
    padding: 5px 20px 20px 20px;
    border-radius: 10px;
    box-sizing: border-box;
    border: 1px solid black;
}

.services-list >li ul{
    list-style-type: disc;
    font-size: 14px;
    padding-left: 30px;
}

.services-list >li li{
    margin: 8px;
}

/*  WHY US ============================ */

#why-us span {
    font-weight: 500;
}

/*  TEAM MEMBERS ============================ */

#team {
    background-image: linear-gradient(rgba(0,0,0,0.2), rgba(0,0,0,0.2)), url("../images/background/team.jpg");
    clear:both;
}

.team-list {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    list-style-type: none;
    padding: 0;
}    
 
.team-list li {
    width: 20%;
    margin: 1% 0 0 1%;
    background-color: #fafafa;
    padding: 20px 20px 10px 20px;
    border-radius: 10px;
    /* border: 1px solid black; */
    

}

/* .team-list li:hover {
    width: 420px;
    height: 430px;
} */

.team-picture {
    height: 200px;
    /*overflow: hidden; */
    

}

/* .team-picture:hover {
    width: 400px;
    height: 400px; 
    
} */


.team-list img {
    width: 100%;
}



.team-name {
    text-align: center;
    margin: 17px 0 10px;
}

.team-pos {
    text-align: center;
    font-weight: 300;
    font-style: italic;
    font-size: 15px;
    margin: 10px 0;
}

/*  TESTIMONIALS ============================ */


.testimonial{
    font-size: 17px;
    color: #999999;
    background-color: #fff;
    border: 1px solid #c0c0c0;
    border-radius: 10px;
    padding: 12px;
    margin: 12px 20px;
    max-width: 800px;
    display: inline-block;
} 

.testimonial .quote {
    font-weight: 300;
    font-style: italic;
    line-height: 1.4;    
}

.testimonial .author {
    float:right;
    margin-top:5px;
    font-style: normal;
    font-weight: 600;
}

.testimonial span {
    font-size: 30px;
    font-weight: 600;
}

.testimonial .quotes {
     margin: 5px 10px;   
}

/* OUR CLIENTS ============================ */

#clients{
    background-image: linear-gradient(rgba(0,0,0,0.2), rgba(0,0,0,0.2)), url("../images/background/clients.jpg");
    clear:both;
}

.client-list {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    list-style-type: none;
    padding; 0;
}

.client-list li {
    width: 24%;
    margin: 1% 0 0 1%;
    background-color: rgba(255,255,255,0.8);
    border-radius: 10px;
    box-sizing: border-box;
}

.client-list a {
    display: inline-block;
    padding: 20px;
    width: 100%;
    box-sizing: border-box;
    overflow: hidden;
}

.client-list img{
    max-width: 100%;
    display: block;
    margin: 0 auto;
}

/* CONTACT FORM ============================ */

#contact {

}

#contactus2 {
    align-content: center;
    width: 100%;
    margin: 0 auto 0 auto;
    /*background-color: #dddddd;  */
}
    
.contact-form {
    max-width: 680px;
    margin: 30px auto 20px;
    box-sizing: border-box;
}

.label-col,  .field-col {
    margin: 1% 0 1% 1%;
    padding: 5px;
    box-sizing: border-box;
    float: left;
}

.label-col {
    width: 25%;
}

.field-col {
    width: 72%;
}

label {
    font-size: 18px;
    font-weight: 300;
    color: #555555;
    cursor: pointer;
}

.field {
    font-size: 17px;
    color: #555555;
    padding: 10px 12px;
    border: 1px solid #dddddd;
    border-radius: 5px;
    box-sizing: border-box;
    width: 100%;
}

.field::placeholder{
    font-weight: 300;
    color: #aaaaaa;
    font-style: italic;
}

.button.submit {
    width: auto;
    margin: 0;
    cursor: pointer;
    border-color: #7b9a00;
    transition: background-color 0.2s ease 0s;
}

.button.submit:hover {
    border-color: #7ba900;
    box-shadow: none;
    background-color: #add247;
    border-radius: 5px; 
    
}

/*  WEB SITES  ============================ */

.web-row-1, .web-row-2, .web-row-3, .web-row-4  {
    width: 700px;
    height: 180px;
    display: flex;
    flex-direction: row;
    justify-content: space-around;
    align-items: center;
    border: 2px solid gray;
    border-radius: 10px;
    padding: 30px auto;
    margin: 20px auto;
}

[class ^="web-title-"] {
    font-size: 30px;
}

[class ^="web-image-"]{
    height: 150px;
}


@media (max-width:800px){
    .web-row-1, .web-row-2 {
        display: flex;
        flex-direction: column;
    }
}

/* FOOTER ============================ */

footer {
    background-color: #444444;
    color: #aaaaaa;
    font-size: 14px;
    
}

footer .content {
    padding: 15px 20px 35px;
    margin: 0 auto;
}

.footer-menu {
    list-style-type: none;
    float: left;
    margin: 15px 0;
    padding: 0;
}

.footer-menu li {
    float: left;
    margin: 5px 8px;
}

.footer-menu a {
    text-transform: uppercase;
    color: #aaaaaa;
    text-decoration: none;
    border-bottom: 2px solid transparent;
    transition: color 0.2s ease-out, border-color 0.2s ease-out;
}

.footer-menu a:hover {
    color: #ffffff;
    border-color: #40b7ff;
}
footer p {
    text-align: center;
    text-transform: none;
    font-size: 12px;
}


/* SOCIAL FOOTER MENU ============================ */

.social-menu {
    float: right;
    padding: 0 2px;
    list-style-type: none;
    margin: 7px 0;
}

.social-menu li {
    float: left;
    margin: 0 2px;
}

.social-menu a {
    padding: 10px;
    display: inline-block;
    border-radius: 20px;
}

.social-menu a:hover {
    background-color: #fafafa;
}

.social-menu .icon {
    color: #aaaaaa;
    font-size:20px;
    line-height: 20px;
    text-align:center;
    transition:color 0.2s ease-out;
    height: 20px;
    width: 20px;
}

.social-menu a:hover .icon.fa-facebook-f {
    color: #3b9998;
} 

.social-menu a:hover .icon.fa-twitter{
    color: #55acee;
} 

.social-menu a:hover .icon.fa-linkedin-in{
    color: #0077b5;
}

.social-menu a:hover .icon.fa-dribbble{
    color: #ea4ca9;
}

/* ANIMATION ============================ */

@keyframes spin {
    0%{
        transform:rotate(0deg);
      }
    100%{
        transform:rotate(360deg);
    }
}


@keyframes colors {
    0%  {background-color: red;}
    25% {background-color: aqua }
    50% {background-color: orange;}
    75% {background-color: dodgerblue;}
    100%{background-color: red;}
}

/* the element to apply the animation to */
.top-border {
    width: 100%;
    height: 5px;
    position: relative;
    background-color: red;
    animation-name: colors;
    animation-duration: 6s;
    animation-delay: 1s;
    animation-iteration-count: infinite;
}

/* RESPONSIVENESS ============================ */


/* TABLET BREAKPOINT ============================ */

@media only screen and (max-width:1300px) {
    .menu{
        margin-top: 32px;
    }
    
    
    .menu .hamburger {
        display: block;
    }
    
    .menu ul {
        position: absolute;
        right: 0;
        opacity: 0;
        transition:opacity .5s ease-out;
        top: -400px;
    }
    
    .menu:hover ul {
        opacity: 1;
        top: 30px;
    }
    
    .menu li{
        float:none;
        text-align: right;
        margin: 0;
    }
    
/* LAYOUT CHANGES  */
    
    .col-1-4 {
        width: 48.5%;
    }
    
    .col-1-4:nth-child(2n+1) {  /* targets the odd columns in the structure n starts at 0 */
        clear: both;            /* deals with uneven lengths and pushing down showing white space and breaking the column structure */
    }  
    
/* SERVICE LIST  */
    
    .services-list > li {
        width: 48.5%;
    }
    
/* TEAM LIST  */
    
    .team-list li {
        width: 25.5%;
    }
    
/* CLIENT LIST  */
    
    .client-list li {
        width: 31.5%;
    }    
}

/* POP UP WINDOW For GALLERIES ============================ */

body {
  background-color: #eee;
}
.hello {
  opacity: 1 !important;
}
.full {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}
.full .content {
  background-color: rgba(0,0,0,0.75) !important;
  height: 100%;
  width: 100%;
  display: grid;
}
.full .content img {
  left: 50%;
  transform: translate3d(0, 0, 0);
  animation: zoomin 1s ease;
  max-width: 100%;
  max-height: 100%;
  margin: auto;
}
.byebye {
  opacity: 0;
}
.byebye:hover {
  transform: scale(0.2) !important;
}
.gallery {
  display: grid;
  grid-column-gap: 8px;
  grid-row-gap: 8px;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  grid-auto-rows: 8px;
}
.gallery img {
  max-width: 210px;
  border-radius: 8px;
  box-shadow: 0 0 16px #333;
  transition: all 1.5s ease;
}
.gallery img:hover {
  box-shadow: 0 0 32px #333;
}
.gallery .content {
  padding: 4px;
}
.gallery .gallery-item {
  transition: grid-row-start 300ms linear;
  transition: transform 300ms ease;
  transition: all 0.5s ease;
  cursor: pointer;
}
.gallery .gallery-item:hover {
  transform: scale(1.025);
}


@media (max-width: 700px) {
  .gallery {
    grid-template-columns: repeat(auto-fill, minmax(30%, 1fr));
  }
}
@media (max-width: 400px) {
  .gallery {
    grid-template-columns: repeat(auto-fill, minmax(50%, 1fr));
  }
}
@-moz-keyframes zoomin {
  0% {
    max-width: 50%;
    transform: rotate(0deg);
    filter: blur(4px);
  }
/*  30% {
    filter: blur(4px);
    transform: rotate(0deg);
  }
  70% {
    max-width: 50%;
    transform: rotate(0deg);
  } */
  100% {
    max-width: 100%;
    transform: rotate(0deg);
  }
}
@-webkit-keyframes zoomin {
  0% {
    max-width: 50%;
    transform: rotate(0deg);
    filter: blur(4px);
  }
  30% {
    filter: blur(4px);
    transform: rotate(0deg);
  }
  70% {
    max-width: 50%;
    transform: rotate(0deg);
  }
  100% {
    max-width: 100%;
    transform: rotate(0deg);
  }
}
@-o-keyframes zoomin {
  0% {
    max-width: 50%;
    transform: rotate(0deg);
    filter: blur(4px);
  }
  30% {
    filter: blur(4px);
    transform: rotate(0deg);
  }
  70% {
    max-width: 50%;
    transform: rotate(0deg);
  }
  100% {
    max-width: 100%;
    transform: rotate(0deg);
  }
}
@keyframes zoomin {
  0% {
    max-width: 50%;
    transform: rotate(0deg);
    filter: blur(4px);
  }
  30% {
    filter: blur(4px);
    transform: rotate(0deg);
  }
  70% {
    max-width: 50%;
    transform: rotate(0deg);
  }
  100% {
    max-width: 100%;
    transform: rotate(0deg);
  }
}




/* PHONE BREAKPOINT ============================ */

@media only screen and (max-width:768px) {
   
/* LAYOUT CHANGES  */
    
    .col-1-4 {
        width: 98.5%;
    }    
    .col-1-2 {
        width: 98%;
     }
  
/* SERVICE LIST  */
    
    .services-list > li{
        width: 98%;
    }

/* TEAM LIST  */
    
    .team-list li {
        width: 38.5%;
    }

/* CLIENT LIST  */
    
    .client-list li {
        width: 42.5%;
    } 
 
/* FOOTER  */    
    .footer-menu, .social-menu {
        float:none;
        text-align: center;
    }
    .footer-menu li, .social-menu li {
        float:none;
        display: inline-block;
    }    
}





