/*!
    Title: Dev Portfolio Template
    Version: 1.2.2
    Last Change: 03/25/2020
    Author: Ryan Fitzgerald
    Repo: https://github.com/RyanFitzgerald/devportfolio-template
    Issues: https://github.com/RyanFitzgerald/devportfolio-template/issues

    Description: This file contains all the styles associated with the page
    that don't come from third party libraries. This file gets compiled using
    Gulp and send to the /css folder which is then loaded on the page.
/*
body{font-family:'Lato', sans-serif;font-size:16px}body.active{overflow:hidden;z-index:-1}.no-js #experience-timeline>div{background:#fff;padding:10px;margin-bottom:10px;border:1px solid #dcd9d9}.no-js #experience-timeline>div h3{font-size:1.5em;font-weight:300;color:#374054;display:inline-block;margin:0}.no-js #experience-timeline>div h4{font-size:1.2em;font-weight:300;color:#7e8890;margin:0 0 15px 0}.no-js #experience-timeline>div p{color:#74808a;font-size:0.9em;margin:0}.no-js #experience-timeline:before,.no-js #experience-timeline:after{content:none}@keyframes dropHeader{0%{transform:translateY(-100%)}100%{transform:translateY(0)}}header{position:absolute;top:0;left:0;right:0;text-align:center;z-index:10;animation-name:dropHeader;animation-iteration-count:1;animation-timing-function:ease;animation-duration:0.75s}header ul{display:inline-block;background:#fff;text-align:center;padding:10px;margin:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}header li{display:inline-block}header a{display:block;color:#3498db;padding:10px}header a:hover{color:#217dbb;text-decoration:none;background:#eee;border-radius:4px}header a:focus{color:#3498db;text-decoration:none}header.active{display:block}header.sticky{position:fixed;z-index:999}#menu.active{display:block}#mobile-menu-open{display:none;cursor:pointer;position:fixed;right:15px;top:10px;color:#3498db;font-size:1.5em;z-index:20;padding:0 7px;border-radius:4px;background:#fff}#mobile-menu-close{display:none;text-align:right;width:100%;background:#fff;font-size:1.5em;padding-right:15px;padding-top:10px;cursor:pointer;color:#3498db}#mobile-menu-close span{font-size:0.5em;text-transform:uppercase}#mobile-menu-close i{vertical-align:middle}footer{padding:50px 0}.copyright{padding-top:20px}.copyright p{margin:0;color:#74808a}.top{text-align:center}.top span{cursor:pointer;display:block;margin:15px auto 0 auto;width:35px;height:35px;border-radius:50%;border:3px solid #b9bfc4;text-align:center}.top i{color:#74808a}.social{text-align:right}.social ul{margin:5px 0 0 0;padding:0}.social li{display:inline-block;font-size:1.25em;list-style:none}.social a{display:block;color:#74808a;padding:10px}.social a:hover{color:#3498db}.btn-rounded-white{display:inline-block;color:#fff;padding:15px 25px;border:3px solid #fff;border-radius:30px;transition:.5s ease all}.btn-rounded-white:hover{color:#3498db;background:#fff;text-decoration:none}.shadow{box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24)}.shadow-large{box-shadow:0 3px 6px rgba(0,0,0,0.08),0 3px 6px rgba(0,0,0,0.15)}.heading{position:relative;display:inline-block;font-size:2em;font-weight:300;margin:0 0 30px 0}.heading:after{position:absolute;content:'';top:100%;height:1px;width:50px;left:0;right:0;margin:0 auto;background:#3498db}.background-alt{background:#f2f2f5}#lead{position:relative;height:100vh;min-height:500px;max-height:1080px;background:url(../images/lead-bg.jpg);background-size:cover;padding:15px;overflow:hidden}#lead-content{position:absolute;z-index:10;top:50%;left:50%;transform:translate(-50%, -50%);text-align:center}#lead-content h1,#lead-content h2{margin:0}#lead-content h1{color:#fff;font-weight:900;font-size:5em;text-transform:uppercase;letter-spacing:0.05em;line-height:0.9em}#lead-content h2{color:#a0cfee;font-weight:500;font-size:2.25em;margin-bottom:15px}#lead-overlay{position:absolute;height:100%;width:100%;top:0;right:0;bottom:0;left:0;background:rgba(33,125,187,0.8);z-index:1}#lead-down{position:absolute;left:0;right:0;width:100%;text-align:center;z-index:10;bottom:15px;color:#fff}#lead-down span{cursor:pointer;display:block;margin:0 auto;width:35px;height:35px;border-radius:50%;border:3px solid #a0cfee;text-align:center}#lead-down i{animation:pulsate 1.5s ease;animation-iteration-count:infinite;padding-top:5px}@keyframes pulsate{0%{transform:scale(1, 1)}50%{transform:scale(1.2, 1.2)}100%{transform:scale(1, 1)}}#about{padding:75px 15px;border-bottom:1px solid #dcd9d9}#about h2{color:#374054}#about p{color:#74808a;margin:0}#experience{padding:50px 15px;text-align:center;border-bottom:1px solid #dcd9d9}#experience h2{color:#374054}#experience-timeline{margin:30px auto 0 auto;position:relative;max-width:1000px}#experience-timeline:before{position:absolute;content:'';top:0;bottom:0;left:303px;right:auto;height:100%;width:3px;background:#3498db;z-index:0}#experience-timeline:after{position:absolute;content:'';width:3px;height:40px;background:#3498db;background:linear-gradient(to bottom, #3498db, rgba(52,152,219,0));top:100%;left:303px}.vtimeline-content{margin-left:350px;background:#fff;border:1px solid #e6e6e6;padding:15px;border-radius:3px;text-align:left}.vtimeline-content h3{font-size:1.5em;font-weight:300;color:#374054;display:inline-block;margin:0}.vtimeline-content h4{font-size:1.2em;font-weight:300;color:#7e8890;margin:0 0 15px 0}.vtimeline-content p{color:#74808a;font-size:0.9em;margin:0}.vtimeline-point{position:relative;display:block;vertical-align:top;margin-bottom:30px}.vtimeline-icon{position:relative;color:#fff;width:50px;height:50px;background:#3498db;border-radius:50%;float:left;z-index:99;margin-left:280px}.vtimeline-icon i{display:block;font-size:2em;margin-top:10px}.vtimeline-date{width:260px;text-align:right;position:absolute;left:0;top:10px;font-weight:300;color:#374054}#education{padding:50px 15px 20px 15px;border-bottom:1px solid #dcd9d9;text-align:center}#education h2{color:#374054;margin-bottom:50px}.education-block{max-width:700px;margin:0 auto 30px auto;padding:15px;border:1px solid #dcd9d9;text-align:left}.education-block h3{font-weight:500;float:left;margin:0;color:#374054}.education-block span{color:#74808a;float:right}.education-block h4{color:#74808a;clear:both;font-weight:500;margin:0 0 15px 0}.education-block p,.education-block ul{margin:0;color:#74808a;font-size:0.9em}.education-block ul{padding:0 0 0 15px}#projects{padding:50px 15px;border-bottom:1px solid #dcd9d9;text-align:center}#projects h2{color:#374054;margin-bottom:50px}.project{position:relative;max-width:900px;margin:0 auto 30px auto;overflow:hidden;background:#fff;border-radius:4px}.project-image{float:left}.project-info{position:absolute;top:50%;transform:translateY(-50%);margin-left:300px;padding:15px}.project-info h3{font-size:1.5em;font-weight:300;color:#374054;margin:0 0 15px 0}.project-info p{color:#74808a;margin:0 0 15px 0;font-size:0.9em}.no-image .project-info{position:relative;margin:0;padding:30px 15px;transform:none}#more-projects{display:none}#skills{padding:50px 15px;text-align:center}#skills h2{color:#374054;margin-bottom:50px}#skills ul{display:block;margin:0 auto;padding:0;max-width:800px}#skills li{display:inline-block;margin:7px;padding:5px 10px;color:#374054;background:#e4e4ea;list-style:none;cursor:default;font-size:1.2em}#contact{padding:50px 15px;background:#3498db;text-align:center}#contact h2{margin:0 0 15px 0;color:#fff;font-weight:500}#contact-form{max-width:500px;margin:0 auto}#contact-form input,#contact-form textarea{display:block;width:100%;padding:10px;border-radius:4px;border:none;margin-bottom:10px;background:#1d6fa5;color:#fff;transition:.5s ease all}#contact-form input::-webkit-input-placeholder,#contact-form textarea::-webkit-input-placeholder{color:#fff}#contact-form input:-moz-placeholder,#contact-form textarea:-moz-placeholder{color:#fff;opacity:1}#contact-form input::-moz-placeholder,#contact-form textarea::-moz-placeholder{color:#fff;opacity:1}#contact-form input:-ms-input-placeholder,#contact-form textarea:-ms-input-placeholder{color:#fff}#contact-form input:focus,#contact-form textarea:focus{outline:none;background:#16527a}#contact-form textarea{height:150px;resize:none}#contact-form button{display:block;width:100%;background:#fff;border-radius:4px;padding:5px 10px;border:none;color:#3498db;font-weight:700;box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24);transition:.5s ease all}#contact-form button:hover{box-shadow:0 10px 20px rgba(0,0,0,0.19),0 6px 6px rgba(0,0,0,0.23)}.optional-section{padding:50px 15px;text-align:center;border-top:1px solid #dcd9d9}.optional-section h2{color:#374054}.optional-section-block{max-width:700px;margin:0 auto 30px auto;padding:15px;border:1px solid #dcd9d9;background:#fff;text-align:left}.optional-section-block h3{font-weight:500;margin:0 0 15px 0;color:#374054}.optional-section-block h4{color:#74808a;clear:both;font-weight:500;margin:0 0 15px 0}.optional-section-block p,.optional-section-block ul{margin:0 0 15px 0;color:#74808a;font-size:0.9em}.optional-section-block ul{padding:0 0 0 15px}@media only screen and (max-width: 750px){#experience-timeline:before,#experience-timeline:after{left:23px}.vtimeline-date{width:auto;text-align:left;position:relative;margin-bottom:15px;display:block;margin-left:70px}.vtimeline-icon{margin-left:0}.vtimeline-content{margin-left:70px}}@media only screen and (max-width: 992px){#lead{height:auto;min-height:auto;max-height:auto;padding:100px 15px}#lead-content{position:relative;transform:none;left:auto;top:auto}#lead-content h1{font-size:3em}#lead-content h2{font-size:1.75em}#about{text-align:center}#about p{text-align:left}}@media only screen and (max-width: 768px){header{position:fixed;display:none;z-index:999;animation:none;bottom:0;height:100%}#mobile-menu-open,#mobile-menu-close{display:block}#menu{height:100%;overflow-y:auto;box-shadow:none;border-radius:0;width:100%}#menu li{display:block;margin-bottom:10px}#lead-content h1{font-size:2em}#lead-content h2{font-size:1.3em}#lead-content a{padding:10px 20px}#lead-down{display:none}.education-block h3,.education-block span{float:none}.project-image{display:none}.project-info{position:relative;margin:0;padding:30px 15px;top:auto;transform:none}footer{text-align:center}.social{text-align:center}}@media only screen and (max-width: 480px){#lead-content h1{font-size:1.5em}#lead-content h2{font-size:1em}#lead-content a{font-size:0.9em;padding:5px 10px}}
*/

/* ========== BASE TYPOGRAPHY & GLOBAL SETTINGS ========== */

body {
  font-family: "Lato", sans-serif;
  font-size: 16px;
}

body.active {
  overflow: hidden;
  z-index: -1;
}

/* ========== NO-JAVASCRIPT EXPERIENCE TIMELINE SUPPORT ========== */

.no-js #experience-timeline > div {
  background: #fff;
  padding: 10px;
  margin-bottom: 10px;
  border: 1px solid #dcd9d9;
}

.no-js #experience-timeline > div h3 {
  font-size: 1.5em;
  font-weight: 300;
  color: #374054;
  display: inline-block;
  margin: 0;
}

.no-js #experience-timeline > div h4 {
  font-size: 1.2em;
  font-weight: 300;
  color: #7e8890;
  margin: 0 0 15px 0;
}

.no-js #experience-timeline > div p {
  color: #74808a;
  font-size: 0.9em;
  margin: 0;
}

.no-js #experience-timeline:before,
.no-js #experience-timeline:after {
  content: none;
}

/* ========== HEADER DROPDOWN ANIMATION ========== */

@keyframes dropHeader {
  0% {
    transform: translateY(-100%);
  }
  100% {
    transform: translateY(0);
  }
}

/* ========== HEADER STYLING ========== */

header {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  text-align: center;
  z-index: 10;
  animation-name: dropHeader;
  animation-iteration-count: 1;
  animation-timing-function: ease;
  animation-duration: 0.75s;
}

header ul {
  display: inline-block;
  background: #fff;
  text-align: center;
  padding: 10px;
  margin: 0;
  border-bottom-right-radius: 4px;
  border-bottom-left-radius: 4px;
}

header li {
  display: inline-block;
}

header a {
  display: block;
  color: #3498db;
  padding: 10px;
}

header a:hover {
  color: #217dbb;
  text-decoration: none;
  background: #eee;
  border-radius: 4px;
}

header a:focus {
  color: #3498db;
  text-decoration: none;
}

header.active {
  display: block;
}

header.sticky {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  background: #fff;
  z-index: 9999;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* ========== MOBILE MENU ========== */

#menu.active {
  display: block;
}

#mobile-menu-open {
  display: none;
  cursor: pointer;
  position: fixed;
  right: 15px;
  top: 10px;
  color: #3498db;
  font-size: 1.5em;
  z-index: 20;
  padding: 0 7px;
  border-radius: 4px;
  background: #fff;
}

#mobile-menu-close {
  display: none;
  text-align: right;
  width: 100%;
  background: #fff;
  font-size: 1.5em;
  padding-right: 15px;
  padding-top: 10px;
  cursor: pointer;
  color: #3498db;
}

#mobile-menu-close span {
  font-size: 0.5em;
  text-transform: uppercase;
}

#mobile-menu-close i {
  vertical-align: middle;
}

/* ========== FOOTER STYLES ========== */

footer {
  padding: 50px 0;
}

.copyright {
  padding-top: 20px;
}

.copyright p {
  margin: 0;
  color: #74808a;
}

*/######################################################
/* ========== SOCIAL LINKS & TO TOP BUTTON ========== */

.top {
  text-align: center;
}

.top span {
  cursor: pointer;
  display: block;
  margin: 15px auto 0 auto;
  width: 35px;
  height: 35px;
  border-radius: 50%;
  border: 3px solid #b9bfc4;
  text-align: center;
}

.top i {
  color: #74808a;
}

.social {
  text-align: right;
}

.social ul {
  margin: 5px 0 0 0;
  padding: 0;
}

.social li {
  display: inline-block;
  font-size: 1.25em;
  list-style: none;
}

.social a {
  display: block;
  color: #74808a;
  padding: 10px;
}

.social a:hover {
  color: #3498db;
}

/* ========== BUTTON STYLES ========== */

.btn-rounded-white {
  display: inline-block;
  color: #fff;
  padding: 15px 25px;
  border: 3px solid #fff;
  border-radius: 30px;
  transition: 0.5s ease all;
}

.btn-rounded-white:hover {
  color: #3498db;
  background: #fff;
  text-decoration: none;
}

/* ========== SHADOW UTILITIES ========== */

.shadow {
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
}

.shadow-large {
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.08), 0 3px 6px rgba(0, 0, 0, 0.15);
}

/* ========== HEADINGS ========== */

.heading {
  position: relative;
  display: inline-block;
  font-size: 2em;
  font-weight: 300;
  margin: 0 0 30px 0;
}

.heading:after {
  position: absolute;
  content: "";
  top: 100%;
  height: 1px;
  width: 50px;
  left: 0;
  right: 0;
  margin: 0 auto;
  background: #3498db;
}

/* ========== BACKGROUND UTILITIES ========== */

.background-alt {
  background: #f2f2f5;
}

/* ========== HERO SECTION (#lead) ========== */

#lead {
  position: relative;
  height: 100vh;
  min-height: 500px;
  max-height: 1080px;
  background: url(../images/lead-bg.jpg);
  background-size: cover;
  padding: 15px;
  overflow: hidden;
}

#lead-content {
  position: absolute;
  z-index: 10;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
}

#lead-content h1,
#lead-content h2 {
  margin: 0;
}

#lead-content h1 {
  color: #fff;
  font-weight: 900;
  font-size: 5em;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  line-height: 0.9em;
}

#lead-content h2 {
  color: #a0cfee;
  font-weight: 500;
  font-size: 2.25em;
  margin-bottom: 15px;
}

#lead-overlay {
  position: absolute;
  height: 100%;
  width: 100%;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: rgba(33, 125, 187, 0.8);
  z-index: 1;
}

#lead-down {
  position: absolute;
  left: 0;
  right: 0;
  width: 100%;
  text-align: center;
  z-index: 10;
  bottom: 15px;
  color: #fff;
}

#lead-down span {
  cursor: pointer;
  display: block;
  margin: 0 auto;
  width: 35px;
  height: 35px;
  border-radius: 50%;
  border: 3px solid #a0cfee;
  text-align: center;
}

#lead-down i {
  animation: pulsate 1.5s ease infinite;
  padding-top: 5px;
}

/* ========== ANIMATIONS ========== */

@keyframes pulsate {
  0% {
    transform: scale(1, 1);
  }
  50% {
    transform: scale(1.2, 1.2);
  }
  100% {
    transform: scale(1, 1);
  }
}

/* ========== ABOUT SECTION ========== */

#about {
  padding: 75px 15px;
  border-bottom: 1px solid #dcd9d9;
}

#about h2 {
  color: #374054;
}

#about p {
  color: #74808a;
  margin: 0;
}

/* ========== EXPERIENCE SECTION ========== */

#experience {
  padding: 50px 15px;
  text-align: center;
  border-bottom: 1px solid #dcd9d9;
}

#experience h2 {
  color: #374054;
}

/* ========== EXPERIENCE TIMELINE ========== */

#experience-timeline {
  margin: 30px auto 0 auto;
  position: relative;
  max-width: 1000px;
}

#experience-timeline:before {
  position: absolute;
  content: "";
  top: 0;
  bottom: 0;
  left: 303px;
  right: auto;
  height: 100%;
  width: 3px;
  background: #3498db;
  z-index: 0;
}

#experience-timeline:after {
  position: absolute;
  content: "";
  width: 3px;
  height: 40px;
  background: #3498db;
  background: linear-gradient(to bottom, #3498db, rgba(52, 152, 219, 0));
  top: 100%;
  left: 303px;
}

.vtimeline-content {
  margin-left: 350px;
  background: #fff;
  border: 1px solid #e6e6e6;
  padding: 15px;
  border-radius: 3px;
  text-align: left;
}

.vtimeline-content h3 {
  font-size: 1.5em;
  font-weight: 300;
  color: #374054;
  display: inline-block;
  margin: 0;
}

.vtimeline-content h4 {
  font-size: 1.2em;
  font-weight: 300;
  color: #7e8890;
  margin: 0 0 15px 0;
}

.vtimeline-content p {
  color: #74808a;
  font-size: 0.9em;
  margin: 0;
}

.vtimeline-point {
  position: relative;
  display: block;
  vertical-align: top;
  margin-bottom: 30px;
}

.vtimeline-icon {
  position: relative;
  color: #fff;
  width: 50px;
  height: 50px;
  background: #3498db;
  border-radius: 50%;
  float: left;
  z-index: 99;
  margin-left: 280px;
}

.vtimeline-icon i {
  display: block;
  font-size: 2em;
  margin-top: 10px;
}

.vtimeline-date {
  width: 260px;
  text-align: right;
  position: absolute;
  left: 0;
  top: 10px;
  font-weight: 300;
  color: #374054;
}

/* ========== EDUCATION SECTION ========== */

#education {
  padding: 50px 15px 20px 15px;
  border-bottom: 1px solid #dcd9d9;
  text-align: center;
}

#education h2 {
  color: #374054;
  margin-bottom: 50px;
}

.education-block {
  max-width: 700px;
  margin: 0 auto 30px auto;
  padding: 15px;
  border: 1px solid #dcd9d9;
  text-align: left;
}

.education-block h3 {
  font-weight: 500;
  float: left;
  margin: 0;
  color: #374054;
}

.education-block span {
  color: #74808a;
  float: right;
}

.education-block h4 {
  color: #74808a;
  clear: both;
  font-weight: 500;
  margin: 0 0 15px 0;
}

.education-block p,
.education-block ul {
  margin: 0;
  color: #74808a;
  font-size: 0.9em;
}

.education-block ul {
  padding: 0 0 0 15px;
}

/* ========== PROJECTS SECTION ========== */

#projects {
  padding: 50px 15px;
  border-bottom: 1px solid #dcd9d9;
  text-align: center;
}

#projects h2 {
  color: #374054;
  margin-bottom: 50px;
}

.project {
  position: relative;
  max-width: 900px;
  margin: 0 auto 30px auto;
  overflow: hidden;
  background: #fff;
  border-radius: 4px;
}

.project-image {
  float: left;
}

.project-info {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  margin-left: 300px;
  padding: 15px;
}

.project-info h3 {
  font-size: 1.5em;
  font-weight: 300;
  color: #374054;
  margin: 0 0 15px 0;
}

.project-info p {
  color: #74808a;
  margin: 0 0 15px 0;
  font-size: 0.9em;
}

.no-image .project-info {
  position: relative;
  margin: 0;
  padding: 30px 15px;
  transform: none;
}

#more-projects {
  display: none;
}

/* ========== SKILLS SECTION ========== */

#skills {
  padding: 50px 15px;
  text-align: center;
}

#skills h2 {
  color: #374054;
  margin-bottom: 50px;
}

#skills ul {
  display: block;
  margin: 0 auto;
  padding: 0;
  max-width: 800px;
}

#skills li {
  display: inline-block;
  margin: 7px;
  padding: 5px 10px;
  color: #374054;
  background: #e4e4ea;
  list-style: none;
  cursor: default;
  font-size: 1.2em;
}

/* ========== CONTACT SECTION ========== */

#contact {
  padding: 50px 15px;
  background: #3498db;
  text-align: center;
}

#contact h2 {
  margin: 0 0 15px 0;
  color: #fff;
  font-weight: 500;
}

#contact-form {
  max-width: 500px;
  margin: 0 auto;
}

#contact-form input,
#contact-form textarea {
  display: block;
  width: 100%;
  padding: 10px;
  border-radius: 4px;
  border: none;
  margin-bottom: 10px;
  background: #1d6fa5;
  color: #fff;
  transition: 0.5s ease all;
}

#contact-form input::-webkit-input-placeholder,
#contact-form textarea::-webkit-input-placeholder {
  color: #fff;
}

#contact-form input:-moz-placeholder,
#contact-form textarea:-moz-placeholder {
  color: #fff;
  opacity: 1;
}

#contact-form input::-moz-placeholder,
#contact-form textarea::-moz-placeholder {
  color: #fff;
  opacity: 1;
}

#contact-form input:-ms-input-placeholder,
#contact-form textarea:-ms-input-placeholder {
  color: #fff;
}

#contact-form input:focus,
#contact-form textarea:focus {
  outline: none;
  background: #16527a;
}

#contact-form textarea {
  height: 150px;
  resize: none;
}

#contact-form button {
  display: block;
  width: 100%;
  background: #fff;
  border-radius: 4px;
  padding: 5px 10px;
  border: none;
  color: #3498db;
  font-weight: 700;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
  transition: 0.5s ease all;
}

#contact-form button:hover {
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23);
}

/* ========== OPTIONAL CONTENT BLOCKS ========== */

.optional-section {
  padding: 50px 15px;
  text-align: center;
  border-top: 1px solid #dcd9d9;
}

.optional-section h2 {
  color: #374054;
}

.optional-section-block {
  max-width: 700px;
  margin: 0 auto 30px auto;
  padding: 15px;
  border: 1px solid #dcd9d9;
  background: #fff;
  text-align: left;
}

.optional-section-block h3 {
  font-weight: 500;
  margin: 0 0 15px 0;
  color: #374054;
}

.optional-section-block h4 {
  color: #74808a;
  clear: both;
  font-weight: 500;
  margin: 0 0 15px 0;
}

.optional-section-block p,
.optional-section-block ul {
  margin: 0 0 15px 0;
  color: #74808a;
  font-size: 0.9em;
}

.optional-section-block ul {
  padding: 0 0 0 15px;
}

/* ========== MEDIA QUERIES: TIMELINE (≤750px) ========== */

@media only screen and (max-width: 750px) {
  #experience-timeline:before,
  #experience-timeline:after {
    left: 23px;
  }

  .vtimeline-date {
    width: auto;
    text-align: left;
    position: relative;
    margin-bottom: 15px;
    display: block;
    margin-left: 70px;
  }

  .vtimeline-icon {
    margin-left: 0;
  }

  .vtimeline-content {
    margin-left: 70px;
  }
}

/* ========== MEDIA QUERIES: GENERAL (≤992px) ========== */

@media only screen and (max-width: 992px) {
  #lead {
    height: auto;
    min-height: auto;
    max-height: auto;
    padding: 100px 15px;
  }

  #lead-content {
    position: relative;
    transform: none;
    left: auto;
    top: auto;
  }

  #lead-content h1 {
    font-size: 3em;
  }

  #lead-content h2 {
    font-size: 1.75em;
  }

  #about {
    text-align: center;
  }

  #about p {
    text-align: left;
  }
}

/* ========== MEDIA QUERIES: TABLET (≤768px) ========== */

@media only screen and (max-width: 768px) {
  header {
    position: fixed;
    display: none;
    z-index: 999;
    animation: none;
    bottom: 0;
    height: 100%;
  }

  #mobile-menu-open,
  #mobile-menu-close {
    display: block;
  }

  #menu {
    height: 100%;
    overflow-y: auto;
    box-shadow: none;
    border-radius: 0;
    width: 100%;
  }

  #menu li {
    display: block;
    margin-bottom: 10px;
  }

  #lead-content h1 {
    font-size: 2em;
  }

  #lead-content h2 {
    font-size: 1.3em;
  }

  #lead-content a {
    padding: 10px 20px;
  }

  #lead-down {
    display: none;
  }

  .education-block h3,
  .education-block span {
    float: none;
  }
  /*
  .project-image {
    display: none;
  }
*/
  .project-info {
    position: relative;
    margin: 0;
    padding: 30px 15px;
    top: auto;
    transform: none;
  }

  footer {
    text-align: center;
  }

  .social {
    text-align: center;
  }
}

/* ========== MEDIA QUERIES: MOBILE (≤480px) ========== */

@media only screen and (max-width: 480px) {
  #lead-content h1 {
    font-size: 1.5em;
  }

  #lead-content h2 {
    font-size: 1em;
  }

  #lead-content a {
    font-size: 0.9em;
    padding: 5px 10px;
  }
}

/* Custom */

.education-flex {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.education-logo img {
  width: 100px;
  height: 100px;
  object-fit: contain;
  margin-left: 20px;
}

.education-content {
  flex: 1;
}

.project-image {
  width: 200px;
  height: 200px;
  float: left;
  overflow: hidden;
  margin-right: 20px;
}

.project-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 4px;
}

.project-info {
  margin-left: 220px; /* matches image width + margin-right */
  padding: 15px 0;
}

@media only screen and (max-width: 768px) {
  .project {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 15px;
    gap: 15px;
  }

  .project-image {
    display: block !important;
    width: 100px !important;
    height: 100px !important;
    float: none !important;
    margin: 0 auto !important;
  }

  .project-info {
    margin-left: 0 !important;
    text-align: center;
    max-width: 600px;
  }
}
