/* Written by sean bost */

/* 
  contents (can select ctrl-f):
    - color styling
    - text styling
    - button styling   
    - layout styling
    - body positioning
    - home positioning
    - nav positioning
*/



/*****************/
/* COLOR STYLING */
/*****************/

:root {
  --expo-green: #1b8;   
  --expo-red: #d44;
  --expo-blue: #66d;
  --expo-orange: #c73;
  --expo-pink: #d6d;

  --oyp-teal: #3499ba;
  --tb-pink: #d43c71;  
  --aamd-indigo: #472e88;   

  --highlighter-green: #cfe;
  --highlighter-red: #fdd;
  --highlighter-blue: #ddf;
  --highlighter-orange: #fec;
  --highlighter-pink: #fdf;

  --bg-green: #e3fcf7;
  --bg-teal: #e6f7ff;  
  --bg-pink: #ffebef; 

  --dark-gray: #555;
  --med-gray: #888;
  --light-gray: #ccc;
}

.green-expo   {color: var(--expo-green) !important;}
.red-expo     {color: var(--expo-red) !important;}
.blue-expo    {color: var(--expo-blue) !important;}
.orange-expo  {color: var(--expo-orange) !important;}
.pink-expo    {color: var(--expo-pink) !important;}

.oyp-teal     {color: var(--oyp-teal) !important;}
.tb-pink      {color: var(--tb-pink) !important;}
.aamd-indigo  {color: var(--aamd-indigo) !important;}

.red-highlighting     {background-color: var(--highlighter-red);}
.blue-highlighting    {background-color: var(--highlighter-blue);}
.orange-highlighting  {background-color: var(--highlighter-orange);}
.green-highlighting   {background-color: var(--highlighter-green);}
.pink-highlighting    {background-color: var(--highlighter-pink);}

.bg-green {background-color: var(--bg-green);}
.bg-teal {background-color: var(--bg-teal);}
.bg-pink {background-color: var(--bg-pink);}

/* handled via js */
.gen-highlighting { 
  border-radius: 3px;
  font-weight: 600;
  padding-left: 3px;
  padding-right: 3px;
  transition: .5s;
}
.oyp-highlighting {
  background-color: var(--bg-teal);
  border-radius: 7px;
  padding: 0px 7px;
  transition: .5s;
}
.tb-highlighting {
  background-color: var(--bg-pink);
  border-radius: 7px;
  padding: 0px 7px;
  transition: .5s;
}
.clear-highlighting {
  background-color: white !important;
  padding: 0px !important;
  transition: 1s;
}



/****************/
/* TEXT STYLING */
/****************/

strong {
  font-weight: 600;
}
.underline {
  text-decoration: underline !important;
}
.center {
  text-align: center;
  display: flex;
  justify-content: center;
}
.caption {
  color: var(--dark-gray);
  font-size: 90%;
  margin: 0;
  margin-top: 5px;
}
.caption a {
  color: var(--dark-gray);
}


p, ol, ul {
	font-family: open-sans, sans-serif;
	font-weight: 400;
  line-height: 1.85;
}
ul, ol {
  padding-left: 20px;
}
li {
  margin-bottom: 5px;
}

h1 { /* heading */
	font-family: halyard-text, sans-serif;
	font-weight: 300;
  font-size: 400%;
  margin: 0;
}
h2 { /* subheading */
	font-family: halyard-text, sans-serif;
	font-weight: 400;
  font-size: 180%;
  margin: 0;
}
h3 { /* nav elements */
	font-family: halyard-text, sans-serif;
	font-weight: 300;
  font-size: 130%;
  margin: 0;
}

a:link, a:visited {
  text-decoration: none;
  color: #000;
  transition: .3s;
}
a:hover, a:active {
  text-decoration: none;
  color: var(--med-gray);
}



/******************/
/* BUTTON STYLING */
/******************/

.button {
  width: 180px;
  padding: 6px;
  margin-top: 26px;
  border-radius: 14px;
  border-style: solid;
  border-width: 3px;
  border-color: var(--expo-green);
  transition: .2s;
  color: var(--expo-green);
  text-align: center;
}
.button:link, .button:visited {
  color: #000;
  transition: .12s;
}
.button:hover, .button:active {
  color: #fff;
  background-color: var(--expo-green);
}
main a h3 {
  font-family: open-sans, sans-serif;
  font-weight: 600;
}



/******************/
/* LAYOUT STYLING */
/******************/

.semi-round {
  border-radius: 7px;
}
.round {
  border-radius: 14px;
}
.shadow {
  box-shadow: 0px 2px 3px rgba(25, 25, 25, 0.15);
}

/* mobile, all */
.padded {
  padding-left: 5%;
  padding-right: 5%;
}
.bump-down {
  margin-top: 20px;
}
.bump-up {
  margin-top: -10px;
}
.lift-up {
  margin-top: -20px;
}


/* desktop */
@media screen and (min-width: 1220px) {
  .padded {
    padding-left: 10%;
    padding-right: 10%;
  }
  .bump-down {
    margin-top: 30px;
  }
  .bump-up {
    margin-top: -20px;
  }
  .lift-up {
    margin-top: -60px;
  }
}



/********************/
/* BODY POSITIONING */
/********************/

/* mobile, all */
body {
  margin: 10px;
}
.grid {
  width: 100%;
  margin: auto;
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  gap: 10px;
}

.center-wide, .center-narrow, .left-half, .right-half {
  grid-column: 1 / 9;
  margin-bottom: 20px;
}
.quarter {
  width: 90%;
  padding-left: 5%;
  float: left;
  text-align: center;
}

/* mobile exclusive */
@media screen and (max-width: 1220px) {
  .desktop-only {
    display: none;
  }
  h1 {
    font-size: 300% !important;
  }
}

/* tablet screens */
@media screen and (min-width: 720px) {
  .grid {
    width: 80%;
    gap: 20px;
    padding-left: 10%;
    padding-right: 10%;
  }
  .quarter {
    width: 50%;
    padding-left: 0;
  }
}

/* desktop screens */
@media screen and (min-width: 1220px) {
  body {
    margin: 0;
  }
  .grid {
    width: 1180px;
    grid-template-columns: repeat(12, 80px);
    gap: 20px;
    padding-left: calc((100% - 1180px)/2);
    padding-right: calc((100% - 1180px)/2);
  }
  
  .center-wide {
    grid-column: 2 / 12;
    margin-bottom: 40px;
  }
  .center-narrow {
    grid-column: 3 / 11;
    margin-bottom: 40px;
  }
  .left-half {
    grid-column: 2 / 7;
    margin-bottom: 40px;
  }
  .right-half {
    grid-column: 7 / 12;
    margin-bottom: 40px;
  }
  .quarter {
    width: 25%;
  }
}



/********************/
/* HOME POSITIONING */
/********************/

/* mobile, all */
#header-text {
  grid-column: 1 / 9;
  padding-top: 10px;
}
main {
  padding-top: 40px;
}
.project {
  grid-column: 1 / 9;
  padding: 10px;
  margin: 10px 0px;
  width: calc(100% - 20px);
  border-radius: 14px;
}
.project-summary {
  padding: 20px 0px;
  width: 100%;
}
.project-image {
  width: 100%;
}

/* desktop screens */
@media only screen and (min-width: 1220px) {
  #header-text {
    grid-column: 2 / 8;
  }
  #header-image {
    grid-column: 8 / 12;
  }
  main {
    padding-top: 60px;
  }
  .project {
    grid-column: 2 / 12;
    display: flex;
    flex-direction: row;
    padding: 30px;
    margin-bottom: 30px;
    margin-left: -30px;
    width: 100%;
    height: 300px;
  }
  .project-summary {
    margin-left: 40px;
    padding-top: 20px;
    width: 100%;
  }
  .project-image {
    width: 450px;
    height: 300px;
  }
}



/*******************/
/* NAV POSITIONING */
/*******************/

/* navbar mobile, all */
nav {
  height: 40px;
  padding: 10px;
  margin-top: 5px;
}
#nav-logo {
  grid-column: 1 / 5;
  display: flex;
}
#nav-links {
  grid-column: 5 / 9;
  padding-top: 2px;
  display: flex;
  flex-direction: row;
  justify-content: flex-end;
}
.nav-item {
  padding-left: 20px;
}

/* navbar desktop */
@media screen and (min-width: 1220px) {
  nav {
    height: 50px;
    padding: 20px;
    margin-top: 10px;
  }
  #nav-links {
    grid-column: 7 / 13;
  }
  .nav-item {
    padding-left: 40px;
  }
}

/* footer mobile, all */
footer {
  margin: 40px 0px;
}
#footer-copyright {
  grid-column: 1 / 9;
  display: flex;
  flex-direction: row;
  justify-content: center;
  
}
#footer-copyright h3{
  font-weight: 400;
}
#footer-links {
  grid-column: 1 / 9;
  display: flex;
  flex-direction: row;
  justify-content: center;
  padding-right: 20px;
}

/* footer desktop */
@media screen and (min-width: 1220px) {
  footer {
    margin: 60px 0px;
  }
  #footer-copyright {
    grid-column: 2 / 6;
    justify-content: left;
  }
  #footer-links {
    grid-column: 6 / 12;
    justify-content: flex-end;
    padding-right: 0px;
  }
}
