@import url('https://fonts.googleapis.com/css2?family=Source+Code+Pro:wght@200;300;400;600;700;800;900&family=Source+Sans+Pro:ital,wght@0,300;0,400;0,600;1,300;1,400;1,600&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Lato:wght@100;300;700;900&family=Open+Sans:wght@300;400;500&display=swap');
@import url('https://fonts.googleapis.com/icon?family=Material+Icons+Outlined');

:root {
  --clr-dcw: #F15A24;
  
  --clr-white: #f7f7f7;
  --clr-gray-200: #ebebeb;
  --clr-gray-300: #909090;
  --clr-gray-400: #4d4d4d;
  --clr-dcw-comp: #24bbf1;
  --clr-pink: #f12454;
  --clr-purple: #5a24f1;

  --bdr-radius: 2px;
}

/*** SOFT RESET ***/
html {
  box-sizing: border-box;
  scroll-behavior: smooth;
}
*, *:after, *:before {
  box-sizing: inherit;
}
img {
  display: inline-block;
  max-width: 100%;
}
body {
  background-color: var(--clr-white);
  color: #222;
  /* color: var(--clr-gray-400); */
  /* font-family:"Lato",Helvetica,Arial,sans-serif; */
  font-family: 'Source Code Pro', monospace;
  font-size: .875rem; /* 14px */

  margin: 0;
  min-height: 100vh;
  overflow-x: hidden;
  width: 100vw;
}

/*** TYPOGRAPHY ***/
h1 {
  font-family:"Helvetica Neue LT Std",Helvetica,Arial,sans-serif;
  font-size: 1.75rem;
  font-weight: 400;
  margin: 0;
  padding: 0;
}
h2 {
  /* font-family:"Helvetica Neue LT Std",Helvetica,Arial,sans-serif; */
  font-size: 2rem;
  font-weight: 600;
  margin: 0;
  padding: 0;
}
a {
  color: var(--clr-gray-400);
  font-family: 'Source Code Pro', monospace;
  /* font-family:"Helvetica Neue LT Std",Helvetica,Arial,sans-serif; */
  font-size: 12px;
  text-decoration: none;
}

a:active {
  color: var(--clr-gray-400);
}
a:visited {
  color: var(--clr-gray-400);
}
/* a:focus {
  outline: 2px solid var(--clr-gray-400);
  outline-offset: 2px;
} */

header a:focus {
  outline: none;
  background-color: var(--clr-dcw);
}
header a:focus .dcw-logo {
  outline: 1px solid var(--clr-white); /*Fix */
  outline-offset: 6px;
}


/* p {
  font-size: .9375rem;
} */

/***PAGE COMPONENTS***/
.sm-sreens-view-none {
  display: none;
}
.wrapper {
  display: grid;
  grid-template-rows: 3rem 1fr;
  grid-template-columns: 1fr;
  min-height: 100dvh;
}
.box-border-white {
  border: 1px solid var(--clr-white);
  border-radius: var(--bdr-radius);
}
.box-border-orange {
  border: 1px solid var(--clr-dcw);
  border-radius: var(--bdr-radius);
}
.btn,
.btn-black-outline, 
.btn-nav,
.btn-nav-orange,
.btn-orange,
.btn-white,
.btn-white-outline {
  border: 1px solid var(--clr-dcw);
  border-radius: var(--bdr-radius);
  display: grid;
  font-size: .75rem;
  height: 100%;
  padding: .5rem;
  place-content: center;
  text-transform: uppercase;
  /* width: 100%; */
  /* transition: 0.5s; */ 
}
.btn {
  background-color: #fff;
  color: var(--clr-dcw);
}
.btn-orange {
  background-color: var(--clr-dcw);
  color: #fff;
}
.btn-orange:active {
  background-color: #fff;
  color: var(--clr-dcw);
}
.btn-black-outline {
  background-color: hsl(0, 0%, 100%, 0);
  border-color: #000;
  color: #000;
}
.btn-black-outline:active {
  background-color: var(--clr-dcw);
  border-color: var(--clr-dcw);
  color: #fff;
}
.btn-black-outline:focus {
  outline: 2px solid var(--clr-dcw); 
  border-radius: 0;
  outline-offset: 6px;
}
.btn-blk-outline:focus {
  outline: 1px solid var(--clr-dcw);
}

.btn-white-outline {
  border-color: var(--clr-white);
  background-color: hsl(0, 0%, 100%, 0);
  color: var(--clr-white);
  font-family: 'Source Code Pro', monospace;
  font-size: 1rem;
  font-weight: 600;
}
.btn-white {
  border-color: var(--clr-white);
  background-color: var(--clr-white);
  color: #000;
  font-family: 'Source Code Pro', monospace;
  font-size: 1rem;
  font-weight: 600;
}
.btn-white:hover {
  background-color: var(--clr-dcw);
}
.btn-outline:hover {
  background-color: var(--clr-dcw);
}
.btn:active {
  background-color: var(--clr-dcw);
  color: #fff;
}
/***SITE LAYOUT***/
.layout-3xgrid-3col {
  grid-column: 1 / -1;
}

header {
  background-color: var(--clr-dcw);
  border-bottom: 1px solid var(--clr-white);
  display: grid;
  grid-row: 1 / 2;
  height: 3rem;
  place-content: center; 
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 600;
}
.dcw-logo {
  fill: var(--clr-white);
  height: 1.25rem;
  width: fit-content;
}

main {
  display: grid;
  grid-row: 2 / 3;
  grid-template-areas: 
    'hero'
    'portfolio'
    'about'
    'skills'
    'resume';
}
footer {
  background-color: var(--clr-gray-200);
  color: #222;
  padding-bottom: 3.75rem;
  display: flex;
  justify-content: center;
}
footer span {
  color: #222;
}

/***SECTIONS***/
section {
  display: grid;
  grid-template-columns: 1fr;
  min-height: calc(100dvh - 6rem);
  padding: 1rem;
}
.section-main {
  row-gap: 1rem;
  display: grid;
  grid-auto-rows: auto;
}
.section-main div {
  padding: 1.5rem 1rem;
}
.section-header {  
  padding-bottom: 1rem;
}
.h2-dark {  
  border-bottom: 1px solid var(--clr-gray-400); 
  color: #222;
}
.h2-white {
  border-bottom: 1px solid var(--clr-white);  
  color: var(--clr-white);
}
#hero {
  background-color: var(--clr-dcw);
  color: var(--clr-white);
  grid-area: hero;
  margin-bottom: 1rem;
  scroll-margin-top: 3rem;
}
#hero .section-main {
  display: grid;
  grid-template-rows: 1fr auto; /**Fix***/
}
#hero h1 {
  font-weight: 900;
}
#hero p {
  margin: 0 0 .5rem 0;
}
#hero p:first-child {
  margin: 0;
  font-size: 1rem;
}
canvas {
  margin: 0;
  height: 100%;
  width: 100%;
}
.title {
  margin-bottom: 0;
  /* padding: 1rem .75rem 1.5rem .75rem; */
  
}

/***Navigation***/
nav {
  background-color: hsl(0, 100%, 100%, .9);
  bottom: 0;
  position: fixed;
  width: 100%; 
  z-index: 600;
}
nav ul {
  display: flex;
  height: 100%;
  gap: .5rem;
  margin: .5rem;
  padding: 0;
}
nav li {
  list-style-type: none;
  flex: 1
}
.btn-nav {
  background-color: #fff;
  color: var(--clr-dcw);
  width: 100%;
}
.btn-nav-orange {
  background-color: var(--clr-dcw);
  color: #fff;
  padding-inline: 1.5rem;
  width: 100%;
}
.btn-nav:active {
  background-color: var(--clr-dcw);
  color: #fff;
  outline: none;
}
.btn-nav-orange:active {
  color: var(--clr-gray-400);
}
.btn-nav:focus,
.btn-nav-orange:focus {
  outline: 1px solid var(--clr-dcw); 
  border-radius: 0;
  outline-offset: 4px;
}



/***PORTFOLIO ***/
#portfolio {
  grid-area: portfolio;
  grid-template-rows: auto auto 1fr;
  max-width: 72rem; /*1152px*/
  padding-bottom:  3rem;
  scroll-margin-top: 3rem;  
}
.section-ptf {
  display: grid;
  gap: 1.75rem 2rem;
  grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr) );
}
#portfolio figcaption {
  font-size: 1rem;
  font-weight: 500;
  margin: .25rem 0 .125rem 0; 
}
.ul-portfolio {
  display: flex;
  flex-wrap: wrap;
  font-weight: 300;
  margin: 0;
  padding: 0;
  text-transform: uppercase;
}
.ul-portfolio li {
  list-style-type: none;
}
.ul-portfolio li::after {
  content: "\00a0/\00a0"
}
.ul-portfolio li:last-child:after { 
  content: "";
}

.img-portfolio {
  aspect-ratio: 1 / 1;
  border-radius: var(--bdr-radius);
  box-shadow:1px 1px 2px #e6e6e6;
  object-fit: cover;
  width: 100%;
  opacity: 1;
  transition: .5s ease;
  grid-column: 1 / 2;
  grid-row: 1 / 2;
}



.ptf-img-container {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: 1fr;
}

.ptf-overlay {
  grid-column: 1 / 2;
  grid-row: 1 / 2;
  display: grid;
  place-content: center;
  gap: 1rem;
  height: 100%;
  width: 100%;
  background-color: hsl(0, 0%, 0%, .8);
  z-index: -200;
  /* transition: .5s ease; */
}


.portfolioCard:hover .ptf-overlay {
  z-index: 200;
}


.portfolioCard:focus .ptf-overlay {
  z-index: 200;
}
.portfolioCard:focus .ptf-overlay .btn-white-outline {
  background-color: var(--clr-dcw);
}

.portfolioCard:focus {
 border: 2px solid var(--clr-dcw);
}

/* .portfolioCard:focus .img-portfolio{
  outline: 2px solid var(--clr-dcw);
  outline-offset: 2px;
} */
/* .portfolioCard:focus {
  outline: none;
;
} */

/* .portfolioCard:hover button {
z-index: 500;
} */


/***PORTFOLIO FILTER***/
.ptf-filter {
  background-color: hsl(0, 0%, 97%, .95);
  padding-block: 1rem;
  position: sticky;
  position: -webkit-sticky;
  top: 3rem;
  width: 100%;
  z-index: 200;
}
.filter-header {
  align-items: baseline;
  display: flex; 
  font-size: .75rem;
}
.filter-header div:nth-of-type(1) {
  color: #222;
  font-weight: 400;
}
.filter-header div {
  text-transform: uppercase;
}
#filterSelected {
  align-items: center;
  background-color: hsl(0, 100%, 100%, 0);
  border: none;
  color: #222;
  display: flex;
  font-family: 'Source Code Pro', monospace;
  font-size: .75rem;
  padding-inline: 0;
  text-transform: uppercase;
  width:fit-content;
}
#filterSelected::after {
  content: "\00A0\25BC";
  padding-bottom: 1px;
}

.dropbtn {
  background-color: hsl(0, 100%, 100%, 0);
  border: none;
  color: #222;
}





#ptfFilterDropdownContent {
  align-items: baseline;
  background-color: hsl(0, 100%, 100%, .9);
  box-shadow:1px 1px 2px #e6e6e6;
  flex-wrap: wrap;
  height: fit-content;
  padding-bottom: 1rem;
  position: absolute;
  z-index: 1;
  width: 100%;
  /* height: auto; */
  transition: .5 ease;
  display: none;
}

.btn-switch{
  background-color: hsl(16, 88%, 54%, 0);
  border: none;
  border-radius: 0;
  font-family: 'Source Code Pro', monospace;
  font-size: clamp(.75rem, 2vw, .9rem);
  line-height: 1.7em;
  margin: 0;
  margin-top: .25rem;
  outline: 0;
  padding: 0;
  text-decoration: underline;
  width: fit-content;
}
.btn-switch:focus {
  background-color: hsl(16, 88%, 54%, 0);
  border: 1px solid var(--clr-dcw);
  color: #222;
  font-style: italic;
  padding-inline: .5rem;
}
.btn-switch:active {
  background-color: var(--clr-dcw);
  color: #fff;
  font-style: italic;
}

.dropdownHide {
  display: none;
  /* max-height: 0; */
}



.portfolioCard {
  display: none; /* Hidden by default */
}
/* The "show" class is added to the filtered elements */
.show {
  display: block;
}





/***PORTFOLIO ITEM PAGE***/
#ptf-item {
  display: grid;
  align-items: start;
  gap: 1rem;

  grid-template-rows: auto;
  
  max-width: 72rem;
  font-size: 12px;
}
#ptf-item p {
  /* font-size: 12px; */
  line-height: 1.7em;
}
#ptf-item:first-of-type {
  margin-top: 0;
}
#ptf-item .section-header {
  border: none;
  padding-bottom: 0;
}
#ptf-item .section-header h2 {
  font-size: 1.25rem;
}
#ptf-item button {
  width: 100%;
}
.ptf-carosel {
  display: grid;
  gap: 1rem;
  height: fit-content;
}
.img-thumb {
  width: 100%;
}
.ptf-copy {
  background-color: hsl(0, 0%, 100%, 0);
  margin: 0;
  padding: 0;

}







/***ABOUT***/
#about {
  background-color: var(--clr-dcw);
  font-size: 1.25rem;
  grid-area: about;
  grid-template-rows: 1fr auto;
  row-gap: 1rem;
  margin-bottom: 2rem;

}



/***SKILLS***/
#skills {
  align-items: start;
  background-color: var(--clr-dcw);
  font-size: 1.25rem;
  grid-area: skills;
  scroll-margin-top: 3rem;
  color: var(--clr-white);
  min-height: calc(100vh - 2rem);
  align-content: space-around;
}
#skills .section-main {
  grid-template-rows: auto auto auto;
}
#skills .section-header {
  margin-bottom: 1rem;
}
#skills h3 {
  margin: 0;
}
#skills .box-border-white:last-child {
  margin-bottom: 1rem;
}
.ul-skills {
  display: grid;
  list-style-type: none;
  padding: 0;
  row-gap: .75rem;
  column-gap: 1.5rem;
}
.li-skills {
  align-items: center;
  display: flex;
  gap: 1rem;
  justify-content: flex-start;
}
#skills .li-skills div {
  margin: 0;
  padding: 0;
}
.ul-col {
  grid-template-columns: repeat(auto-fill, minmax(8.5rem, 1fr));
}
.skl-icons {
  height: 1.25rem;
}

/***CONTACT***/
#contact {
  align-items: end;
  background-color: var(--clr-gray-200);
  color: #606060;
  grid-area: resume;
  scroll-margin-top: 2.75rem;
  padding-bottom: 4rem;
}
#contact h3 {
  color: var(--clr-dcw);
  font-size: 1.5rem;
  margin-block: 0 1rem;
}
#contact p {
  font-weight: 400;
  margin: 0 0 .5rem 0;
}
#contact button {
  height: 3rem;
}
#contact .section-main div {
  background-color: var(--clr-white);
}
#contact p:last-of-type {
  float: left;
}
.btn-send {
  float: right;
  width: 25vw;
}
input[type=text],
input[type=email],
input[type=tel],
textarea {
  background-color: var(--clr-gray-200);
  border: 1px solid var(--clr-gray-200);
  border-radius: 2px;
  font-family: 'Source Code Pro', monospace;
  margin: 0 0 .5rem 0;
  padding: .5rem;
  width: 100%;

  /* background-color: #fff;
  border-color: var(--clr-dcw); */
   
}
::placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */
  color: #B0B0B0;
  opacity: 1; /* Firefox */
}
:-ms-input-placeholder { /* Internet Explorer 10-11 */
  color: #B0B0B0;
}
::-ms-input-placeholder { /* Microsoft Edge */
  color: #B0B0B0;
}
textarea {
  height: 6rem;
}





@media (min-width: 44rem) /* 704px */ {
  header a:focus .dcw-logo {
    outline: 2px solid var(--clr-white); /*Fix */
    outline-offset: 1rem;
  }
  header a:hover .dcw-logo {
    fill: var(--clr-gray-400);
  }


  /***PAGE COMPONENTS***/
  .lg-screens-view-none {
    display: none;
  }
  .sm-sreens-view-none {
    display: block;
  }
  .layout-3xgrid {
    gap: 1rem;
    grid-template-columns: repeat(3, 1fr);
  }

  .layout-3xgrid-1col-left {
    grid-column: 1 / 2;
  }
  .layout-3xgrid-2col-left {
    grid-column: 1 / 3;
  }
  .layout-3xgrid-1col-right {
    grid-column: 3 / 4;
  }
  .layout-3xgrid-2col-right {
    grid-column: 2 / 4;
  }

  h1 {
    font-size: 3rem;
  } 

  /***SITE LAYOUT***/
  .wrapper {
    grid-template-rows: 1fr;
    grid-template-columns: auto 1fr;
    max-height: 100vh;
    /* width: 100vw; */
  }  
  .left {
    border-right: #fff 1px solid;
    background-color: var(--clr-dcw);
    display: grid;
    grid-column: 1 /2;
    grid-row: 1 / 3;
    grid-template-rows: 6rem auto;
    /* row-gap: 1.75rem; */
  }
  main {
    display: block;
    grid-row: 1 / 3;
    margin: 0;
    padding: 0; 
    overflow-y: scroll;
    scroll-behavior: smooth; 
  }
  header {
    border-bottom: none;
    height: auto;
    place-content: center; 
    position: static;
  }
  .dcw-logo {
    height: 2rem;
    /* margin-top: .75rem; */
    margin-inline: 2.5rem;
    width: 6.5rem;
  }

  section {
    grid-template-columns: 100% 1fr;
    scroll-margin-top: 0rem;
    min-height: 100%;
    padding: 2rem;
    margin-bottom: 0;
  }
  .section-main {
    max-width: 68rem;
    row-gap: 2rem;
  }
  canvas {
    margin-block: 0;
    height: 100%;
  }
  .title {
    margin-bottom: 1rem;
    padding: 1.75rem 1.5rem 3rem 1.5rem;
  }
  #hero p:first-child {
    font-size: 2rem;
  }



  /***Navigation***/
  nav {
    position: static;
    background-color: var(--clr-dcw);
    display: inline-block;

  }
  nav ul {
    display: grid;
    gap: 0;
    grid-row: auto;
    margin: 0;
    place-items: center;
    position: static;
  }
  nav li {
    display: flex;
    justify-content: center;
    height: fit-content;
  }
  .btn-nav,
  .btn-nav-orange {
    background-color: hsl(0, 100%, 100%, 0);
    border: none;
    color: var(--clr-white);
    font-size: 1.25rem;
    justify-content: space-between;
    padding: 1rem 2rem;
    transform: rotate(90deg);
  } 
  .btn-nav:focus,
  .btn-nav-orange:focus {
    outline-color: var(--clr-white);
    outline-width: 2px;
  }
  .btn-nav:active {
    background-color: var(--clr-dcw);
    color: var(--clr-gray-400);
  }
  .btn-nav:hover,
  .btn-nav-orange:hover {
    color: var(--clr-gray-400);
  }


  #portfolio {
    scroll-margin-top: -.5625rem; /* 9px */
    grid-template-columns: 1fr;
    height: auto;
  }
  .portfolioCard figcaption, 
  .portfolioCard ul { 
    font-size: 14.5px;
  }
  .ptf-filter {
    margin-bottom: 1rem;
    top: 0;
  }
  .filter-header {
    font-size: 1rem;
    grid-row: 1 / 3;
  }
  #filterSelected {
    font-size: 1rem;
  }
  /***PORTFOLIO ITEM PAGE***/
  #ptf-item {
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: auto auto auto auto 1fr;
  }
  #ptf-item .section-header {
    border: none;
    padding-bottom: 0;
  }
  #ptf-item .section-header h2 {
    font-size: 1.875rem;
    font-weight: 400;
  }
  .img-ptf {
    width: 100%;
  }
  .ptf-carosel {
    grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr) );
  }
  .ul-portfolio {
    font-size: 1.125rem;
  }
  .img-thumb {
    aspect-ratio: 1 / 1;
    border-radius: var(--bdr-radius);
    box-shadow:1px 1px 2px #e6e6e6;
    object-fit: cover;
    opacity: 1;
  transition: .5s ease;
  }
  #skills {
    /* row-gap: 2rem; */
    grid-template-columns: 1fr;
    /* height: 100%; */
    scroll-margin-top: 0;
  }
  #skills {
    scroll-margin-top: -1rem;
    height: 100vh;
  }

  #skills .section-main .box-border-white {
    padding: 2rem;
  }

  
  /* #skills div:last-child {
    margin-bottom: 2rem;
  } */
  #contact {
    scroll-margin-top: 2rem;
  }
}


@media (min-width: 64rem) /* 1024px */ {
  .section-ptf {
    gap: 3rem 4rem;
  }


}



.section-header {
  margin-inline: 0;
  padding-inline: 0;
}
/* .portfolioCard {
  transition: .2s ease;
} */



.portfolioCard * {
  /* border: 0; */
  outline: 0;
}

.portfolioCard a:focus .img-portfolio {
  border-radius: 0;
  outline: 2px solid #222;
  outline-offset: 6px;
}
.portfolioCard a:focus .ptf-overlay {
z-index: 200;
opacity: 8;
}
.ptf-overlay button:focus {
  border-radius: 0;
  outline: 2px solid #fff;
  outline-offset: 6px;
}

a:focus figcaption {
  outline: 2px solid #222;
  outline-offset: 2px;
  font-style: italic;
}

.ptf-img-container a,
.ptf-img-container div {
  grid-column: 1 / 2;
  grid-row: 1 / 2;
}