/* 

circle design in hero and contact section, with adjustments
source: https://codepen.io/carpenumidium/pen/qtnfJ
*/

/* todo

Mobile Layout - contact section squished
subpage layout - could be improved, add circle design?

margin/padding of boxes
paragraph line height and readability
header transparency when scrolling down the page
button sizing
make tagline better
proofread paragraphs
link styles need adjusting to be clearer


button bg color not working? 



*/



/* Universal Attributes */

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;  
    /* border: 1px red solid; */

}

/* Variables */
:root {
    /* green scheme */
    /* --dark-green: #577568; */
    --light-text: #F6F3F6;
    --dark-text: #18251e;
    --dark-alt: hsl(300, 14%, 28%);
    --light-tree: #98BD9C;
    --dark-tree: #2C6D35;

    /* new mockup */
    --purple: rgb(102, 54, 209);
    --dark-purple: rgb(65, 28, 134);
    --light-hero-bg: rgb(243, 252, 248);
    --light-teal-accent: rgb(170, 250, 277);
    --dark-green: rgb(31, 75, 59);
    --green-btn: rgb(67, 149, 109);
    --btn-hero: rgb(102, 54, 209); 
    --btn: rgb(65, 28, 134);
    --wave-color: #D0E2DD;
    --light-bg: #cce3de;
    --light-head: #f6fff8;


 


}

body {
    background-color: var(--light-hero-bg);
    
    
}

/* utilities */




h1,
p {
    color: var(--dark-green);
}

a.btn-custom,
a.btn-custom:hover {
    background-color: var(--dark-purple) !important;
    border: 1px solid var(--dark-purple);
    color: var(--light-text) !important;
}




.maximg {
    max-width: 300px;
}

.right-align {
    text-align: right;
    margin-right: 10px;
    
}

.left-align {
    text-align: left;
}
.center {
    margin: 0 auto;
    text-align: center;
}

.thumbnail {
    height: 300px;
}

a {
    color: var(--dark-purple);
    font-weight: 700;
     
}

a:hover,
a:visited {
    background-color: var(--light-head);
    color: var(--dark-alt);
    
}


/* Extra Styles */


/* Dividers */
.wave-container {
    background-color: var(--light-hero-bg);
    
  }
  .wave-container > svg {
    display: block;
  }


/* navigation */

.nav-pills .nav-link.active,
 .nav-pills .show>.nav-link,
 .nav-pills,
 .nav-link,
 .nav-link:hover
  {
    background-color: transparent;
    
}

.nav-link {
    color: var(--dark-text);
}

.nav-link:hover {
    color: var(--dark-purple);
}


.scrolled {
  background-color: rgba(255, 255, 255, 0.8);
}






/* hero */

.jumbotron {
    
    background-color: var(--light-hero-bg);
    background-size: cover;
    height: 640px; 
    position: relative;
    overflow: hidden;
    font-family: 'Work Sans', sans-serif;
    
 
  }
.hero {
    position:absolute;
    top : 20%;
    left: 10%;
}

/* circle design in hero, bottom left */
.jumbotron::before {
    content: " ";
    position: absolute;
    z-index: 0;
    top: -20rem;
    left: -17rem;
    width: 80%;
    height: 60rem;
    transform: rotate(-45deg);
    opacity: 1;
    

    background-image:
radial-gradient(
  circle,
  var(--light-teal-accent) 85%,
  transparent 0
  ),
radial-gradient(
  circle,
  var(--light-teal-accent) 80%,
  transparent 0
  ),
radial-gradient(
  circle,
  var(--light-teal-accent) 75%,
  transparent 0
  ),
radial-gradient(
  circle,
  var(--light-teal-accent) 70%,
  transparent 0
  ),
radial-gradient(
  circle,
  var(--light-teal-accent) 65%,
  transparent 0
  ),
radial-gradient(
  circle,
  var(--light-teal-accent) 60%,
  transparent 0
  ),
radial-gradient(
  circle,
  var(--light-teal-accent) 55%,
  transparent 0
  ),
radial-gradient(
  circle,
  var(--light-teal-accent) 50%,
  transparent 0
  ),
radial-gradient(
  circle,
  var(--light-teal-accent) 45%,
  transparent 0
  ),
radial-gradient(
  circle,
  var(--light-teal-accent) 40%,
  transparent 0
  ),
radial-gradient(
  circle,
  var(--light-teal-accent) 35%,
  transparent 0
  ),
radial-gradient(
  circle,
  var(--light-teal-accent) 30%,
  transparent 0
  ),
radial-gradient(
  circle,
  var(--light-teal-accent) 25%,
  transparent 0
  ),
radial-gradient(
  circle,
  var(--light-teal-accent) 20%,
  transparent 0
  );  
    
  background-size: 1em 1em;

  /*
  If you want a vertical pattern change to repeat-x, also remember to  switch the background-positions' values. Eg. "2em 0" becomes "0 2em".
  */
  background-repeat: repeat-y;
  
  /*
  based on background-size value
  */
  background-position:
  0 0, 
  1em 0, 
  2em 0, 
  3em 0, 
  4em 0, 
  5em 0, 
  6em 0,
  7em 0,
  8em 0,
  9em 0,
  10em 0,
  11em 0,
  12em 0,
  13em 0;
  }


/* circle design in hero, top right */
.jumbotron::after {
    content: " ";
    position: absolute;
    z-index: 0;
    top: -7rem;
    right: -1rem;
    height: 30rem;
    width: 30rem;
    transform: rotate(125deg);
    opacity: 0.7;
    

    background-image:
radial-gradient(
  circle,
  var(--light-teal-accent) 85%,
  transparent 0
  ),
radial-gradient(
  circle,
  var(--light-teal-accent) 80%,
  transparent 0
  ),
radial-gradient(
  circle,
  var(--light-teal-accent) 75%,
  transparent 0
  ),
radial-gradient(
  circle,
  var(--light-teal-accent) 70%,
  transparent 0
  ),
radial-gradient(
  circle,
  var(--light-teal-accent) 65%,
  transparent 0
  ),
radial-gradient(
  circle,
  var(--light-teal-accent) 60%,
  transparent 0
  ),
radial-gradient(
  circle,
  var(--light-teal-accent) 55%,
  transparent 0
  ),
radial-gradient(
  circle,
  var(--light-teal-accent) 50%,
  transparent 0
  ),
radial-gradient(
  circle,
  var(--light-teal-accent) 45%,
  transparent 0
  ),
radial-gradient(
  circle,
  var(--light-teal-accent) 40%,
  transparent 0
  ),
radial-gradient(
  circle,
  var(--light-teal-accent) 35%,
  transparent 0
  ),
radial-gradient(
  circle,
  var(--light-teal-accent) 30%,
  transparent 0
  ),
radial-gradient(
  circle,
  var(--light-teal-accent) 25%,
  transparent 0
  ),
radial-gradient(
  circle,
  var(--light-teal-accent) 20%,
  transparent 0
  );  
    
  background-size: 1em 1em;

  /*
  If you want a vertical pattern change to repeat-x, also remember to  switch the background-positions' values. Eg. "2em 0" becomes "0 2em".
  */
  background-repeat: repeat-y;
  
  /*
  based on background-size value
  */
  background-position:
  0 0, 
  1em 0, 
  2em 0, 
  3em 0, 
  4em 0, 
  5em 0, 
  6em 0,
  7em 0,
  8em 0,
  9em 0,
  10em 0,
  11em 0,
  12em 0,
  13em 0;
  }





.name {
    font-size: 3rem;
    color: rgb(86, 182, 135);
}
.hero-desc {
    font-size: 5rem;
    color: var(--dark-green);
}



a.btn-hero {
    width: 230px;
    height: 80px;
    margin-top: 30px;
    padding-top: 20px;
    font-size: 1.5rem;
    background-color: var(--btn-hero);
    color: var(--light-text);
    
}


/* nav/footer and just footer */
.header {
    background-color: var(--light-hero-bg);
    border-bottom: none;
}

nav,
header {
    border-bottom: none;
}
footer {
    background-color: var(--wave-color);
}


footer {
    margin-top: none;
    height: 40px;
}

/* projects */

.projects {
    background-color: var(--dark-purple);
    color: white;

}

#projects {
    padding: none;
    margin: none;
}
.project-flex {
    display: flex;
    flex-wrap:wrap;
    align-items: center;
    justify-content: center;
}

/****************************************************************************
Cards are flexboxes (cardmain) with 2 columns: card-left and card-right.
Cards set up either as: 
card-left: image
card-right: text description

OR content reversed

Each card with text content has items with classes: 
1. card-title (heading)
2. card-text (description)
3. card-button (case study button)
*****************************************************************************/

#projects,
.aboutme-container {
    padding-bottom: 25px;
    width: 85%;
    margin: 0 auto;
}

.projhead {
    padding-top: 50px;
    padding-bottom: 25px;
    color: white;
    

}



.cardmain {
    display: flex;
    flex-flow: row wrap;
    align-items: center;
    justify-content: space-between;
    align-items: center;
    
    width: 100%;
    height: 350px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 30px;
    margin-top: 30px;
    

    background: var(--light-hero-bg);
    border: 1px solid rgba(87, 117, 104, 0.3);
    box-shadow:2px 1px rgba(87, 117, 104, 0.3);
    border-radius: 0.25rem;
    word-wrap: break-word;

    overflow: hidden;
    
}

.cardmain:hover {
    box-shadow:3px 3px var(--dark-green);
}

.card-img{
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  height: 100%;
  width: 40%;
  align-items: stretch;
  justify-content: left;
  padding: 0;
  overflow: hidden;

}

.card-img img{
  height: 100%;
  width: auto;
}
.card-desc {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    height: 100%;
    width: 60%;
    align-items: center;
    justify-content: space-around;
    padding: 0;
    

}

.projects .cardmain:nth-child(2n + 1){
  flex-direction: row-reverse;
}



.card-title {
    font-size: 1.75rem;
    color: var(--dark-green);
}

.card-text {
    font-size: 1.2rem;
    line-height: 1.5rem;
    width: 90%;
}

.card-button {
    justify-content: flex-end;
    
}


#webapplg .carousel-item.active,
#edlg .carousel-item.active,
#webstylelg .carousel-item.active,
#wheellg .carousel-item.active {
    overflow: hidden;
    max-height: 500px;
}

#projects:after {
    content: "";
    display: table;
    clear: both;
  }





.card-body {
    overflow: hidden;
    text-overflow: ellipsis;
    
}



.small-card {
    height: 400px;
    width: 100%;
    overflow: hidden;
}

/*****************************************************************************
Featured Skills

****************************************************************************/


.featured-skills {
  background-color: var(--purple);
  padding-bottom: 30px;
  padding-top: 30px;
  color: var(--purple);
  
}

.featured-skills > h4 {
  color: white;
  text-align: center;
  padding: 20px;
  font-size: 2rem;
}

.skill-flex {
  display: flex;
  justify-content: space-around;
  margin: 0 auto;
  padding: 10px;
  flex-wrap: wrap;
 
  
  padding-bottom: 25px;
  width: 85%;

  
}
.skill-pair {
  display: flex;
  display: flex;
  flex-direction: column;
  font-size: 1.5rem;
  text-align: center;
  
  background-color: var(--light-head);
  border-radius: 20%;
  padding: 1rem;
}



/*****************************************************************************
About Me and Contact Section

About Me contains flexbox (aboutme-card): 
1. bio (left side)
2. Skills (right side)

****************************************************************************/



.aboutme {
    padding: 25px 0;
    margin: none;
    
}

.aboutmehead {
    
    size: 1.5rem;
    padding-bottom: 10px;
}

.sideproject-flex {
  display: flex;
  flex-flow: row wrap;
  align-items:flex-start;
  justify-content: space-between;
  width: 100%;
  height: 600px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 2rem;
  padding-bottom: 2rem;
  
}

.sideproject-item img {
  height: 250px;
  border-radius: 100%;
}

.sideproject-item h3 {
  margin: 0.5rem;
  padding: 0.5rem;
}

.sideproject-item {

  display: flex;
  flex-direction: column;
  flex: 0 1 calc(30% - 10px);
  align-items: center;
  justify-content: space-between;
  margin: 1rem;
  padding: 1rem;
  height: 650px;
  

}



.sideproj,
.sideproj:hover {
  margin-top: 2rem;
  margin-bottom: 2.5rem;
  background-color: transparent;
  border: none;
  box-shadow: none;
  font-size: 1.2rem;
  color: var(--dark-text);
}



.aboutme-card {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
    padding-top: 2rem;
    padding-bottom: 2rem;
    margin-top: 2.5rem;
    
}

.aboutme-container > h1 {
  margin-top: 2rem;
  padding-top: 2rem;
}

.bio {
    display: flex;
    flex-wrap: wrap;
    width: 60%;
    align-items: flex-start;
    justify-content: flex-start;
    font-size: 1.2rem;
    padding: 25px;
    

}

.skillscard {
    padding: 25px;
    width: 40%;
    font-size: 1.2rem;

}

/* list of skills */



ul.skills {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    text-align: center;
    max-width: 400px;
    margin: 0 auto;
    padding: 10px;
  }
  
  .skills li {
    border-radius: 6px;
    border: 2px solid var(--dark-purple);
    display: inline-block;
    background: white;
    color: var(--dark-green);
    padding: 0.3rem;
    margin: 3px;
  }

.blogcard {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    padding-right: 0.5rem;
}

.left-blogcard{
    width: 50%;
    align-items: flex-start;
    justify-content: center;
    font-size: 1.2rem;
    padding: 25px;
    
}

.right-blogcard {
    width: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-left: 2rem;
    
    
}

a.btn-blog {
    width: 150px;
    height: 40px;
    font-size: 1rem;
    background-color: var(--green-btn);
    color: var(--light-hero-bg);

}


/*************
Contact contains flex items: 
1. card-title (heading)
2. contact-info (description)
3. email address
*************/
.contact-wrapper {
    padding: 40px;
    margin: 50px auto;

}

.contact:before,
.contact-subpage:before {
    content: "";
    position: absolute;
    display: block;
    top: -6rem;
    left: -5rem;
    width: 100%;
    height: 40rem;
    transform: rotate(45deg);
    opacity: 0.1;
    background-image:
radial-gradient(
  circle,
  var(--light-teal-accent) 85%,
  transparent 0
  ),
radial-gradient(
  circle,
  var(--light-teal-accent) 80%,
  transparent 0
  ),
radial-gradient(
  circle,
  var(--light-teal-accent) 75%,
  transparent 0
  ),
radial-gradient(
  circle,
  var(--light-teal-accent) 70%,
  transparent 0
  ),
radial-gradient(
  circle,
  var(--light-teal-accent) 65%,
  transparent 0
  ),
radial-gradient(
  circle,
  var(--light-teal-accent) 60%,
  transparent 0
  ),
radial-gradient(
  circle,
  var(--light-teal-accent) 55%,
  transparent 0
  ),
radial-gradient(
  circle,
  var(--light-teal-accent) 50%,
  transparent 0
  ),
radial-gradient(
  circle,
  var(--light-teal-accent) 45%,
  transparent 0
  ),
radial-gradient(
  circle,
  var(--light-teal-accent) 40%,
  transparent 0
  ),
radial-gradient(
  circle,
  var(--light-teal-accent) 35%,
  transparent 0
  ),
radial-gradient(
  circle,
  var(--light-teal-accent) 30%,
  transparent 0
  ),
radial-gradient(
  circle,
  var(--light-teal-accent) 25%,
  transparent 0
  ),
radial-gradient(
  circle,
  var(--light-teal-accent) 20%,
  transparent 0
  );  
    
  background-size: 1em 1em;

  /*
  If you want a vertical pattern change to repeat-x, also remember to  switch the background-positions' values. Eg. "2em 0" becomes "0 2em".
  */
  background-repeat: repeat-y;
  
  /*
  based on background-size value
  */
  background-position:
  0 0, 
  1em 0, 
  2em 0, 
  3em 0, 
  4em 0, 
  5em 0, 
  6em 0,
  7em 0,
  8em 0,
  9em 0,
  10em 0,
  11em 0,
  12em 0,
  13em 0;
  }



.contact {
    background-image: linear-gradient(to left, rgb(109, 40, 217), rgb(109, 40, 217), rgb(79, 70, 229));
    color: var(--light-hero-bg);
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    justify-content: center;
    width: 55%;
    overflow: hidden;
    border: 1px solid rgba(0, 0, 0, 0.125);
    border-radius: 10px;
    position: relative;
    padding: 2rem;
}

.contact-subpage {
  background-image: linear-gradient(to right, rgb(109, 40, 217), rgb(109, 40, 217), rgb(79, 70, 229));
  color: var(--light-hero-bg);
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  justify-content: center;
  width: 55%;
  overflow: hidden;
  border: 1px solid rgba(0, 0, 0, 0.125);
  border-radius: 10px;
  position: relative;
  padding: 2rem;
}

.contact-info {
    align-items: center;
    justify-content: center;

    font-size: 1.2rem;
    padding-top: 10px;
    padding-bottom: 10px;
}
.contact > h1,
.contact-subpage > h1 {
    color: var(--light-hero-bg);
}

.contact > h4,
.contact-subpage >h4 {
  z-index: 1;
}

.btn-contact {
    width: 200px;
    height: 60px;
    font-size: 1.5rem;
    color: var(--light-hero-bg);
    background-color: var(--green-btn) !important; /* keeps defaulting to purple */

}



/* SVG Styles */

.logo-svg {
    width: 30px;
    height: 30px;
    background-size: 30px 30px;
    margin: 5px;
    
}

.logo-svg-skills {
  width: 8rem;
  height: 8rem;
  background-size: 8rem 8rem;
  margin: 5px;
  
}







/* subpage: things I learned section */
.logo-svg-large {
  width: 10rem;
  height: 10rem;
  background-size: 10rem;



}

  a.github {
    background-image: url(img/github.svg);
  }

.github {
    width: 30px;
    height: 30px;
    background-size: 30px 30px;
}

.social-media {

  padding: 40px;
  margin: 50px auto;
}


/* subpages */

.project-desc {
    padding-left: 10%;
    padding-right: 10%;
}

.the-project {
  border: 1px solid var(--light-tree);

}


.the-approach {
  padding-bottom: 25px;
  margin: 0 auto;
  border: 1px solid var(--purple);
  
}

.things-learned {
  border: 1px solid var(--light-tree);
}

.shopify {
  display: block;
  margin-left: auto;
  margin-right: auto;
  width: 50%;
  padding-top: 2rem;
  padding-bottom: 2rem;
}

/********************************************************************
In "Things I Learned" section on subpages, 
flex-group contains 3 flex divs, each with flex-icon class.
flex-icons div contains svg img, h2, and p.
SVG at top, P at bottom.

********************************************************************/

.flex-group {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  
  color: var(--light-text);
  margin-top: 2rem;
  
  
}

.flex-icons {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 30%;
  padding: 1rem;

  background: var(--purple);
  border: 1px solid var(--dark-tree);
  border-radius: 5%;

  
  
}

.flex-icons > img {
  align-self: flex-start;
  margin: 1rem auto;
  border-radius: 50%;
  border: 1px solid var(--light-text);
  background-color: var(--light-text);

}

.flex-icons > h2 {
  align-self: center;
  margin: 0 auto;
  color: var(--light-text);
}

.flex-icons > p {
  align-self: flex-end;
  margin: 0 auto;
  padding: 0.5rem;
  color: var(--light-text);
}





.final-thoughts {
  border: 1px solid var(--purple);
  
}

.card-body > h2 {
  padding-top: 2rem;
  padding-bottom: 2rem;
  
}


ul.skills-sub {
    
  text-align: center;
  max-width: 800px;
  margin: 0 auto;
  padding: 1px;
}

.skills-sub li {
  border-radius: 6px;
  border: 2px solid var(--light-tree);
  display: inline-block;
  background: white;
  color: var(--dark-purple);
  background-color: var(--wave-color);
  padding: 10px;
  margin: 4px;
}

.slideshow-example {
  border: 1px solid var(--light-tree);
}

.subcard {
  font-size: 1.2rem;
  color: var(--dark-text);
  line-height: 1.8;
}

.btn-demo {
  width: 15rem;
  height: 5rem;
  font-size: 1.6rem;
  padding: 1rem;
}

.card-header {
  font-size: 1.8rem;
  color: var(--dark-text);
}

#webapp {
    max-width: 900px;
    margin: 0 auto;
}

.hireme {
    float: right;
}






/* 
========================================================================== 
Media Queries for Mobile and Tablet Views
========================================================================== 
*/

/* todo card layouts */




/* --------------------------- 768 and smaller screens */

@media screen and (max-width: 769px){

/* make the header/nav bar no longer trail down the page */
.fixed-top {
    position: static;

}

.hero {
  top: 5%;
}

.jumbotron {
    margin-top: 0;
    padding-top: 0;
    height: 500px;
}

.jumbotron::before,
.jumbotron::after,
.contact::before{
    background-image: none;

   
}


.hero-desc {
    font-size: 2rem;
    color: var(--dark-green);
    padding-top: 0;
    margin-top: 0;
}


.cardmain,
.sideproject-flex {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    height: auto;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 0.5rem;
    margin-top: 1.5rem;
}

.card-img,
.card-desc,
.bio,
.skillscard,
.left-blogcard,
.right-blogcard {
    flex-direction: column;
    width: 100%;

}

.card-desc {
    margin-top: 1rem;
    margin-bottom: 1rem;
}

.aboutme-container,
.blogcard {
    flex-direction: column;
}

.sideproject-item {


  flex: 0 1 calc(90% - 10px);
}
.bio {
  padding: 1rem;
}

.contact-wrapper {
  
  padding: 0.2rem;
}

.contact {
    display: flex;
    flex-direction: column;
    width: 70%;
    flex-shrink: 1;
    padding: 0.5rem;
    
    min-width: 250px;

}


.contact-info {

  padding-top: 5px;
  padding-bottom: 5px;
}


/* subpage bold icons (flex-group and flex-icon) */
.flex-group {
  flex-direction: column;
  justify-content: space-around;
  
}

.flex-icons {
  width: 70%;
  margin: 1rem auto;
  
}



}
