body {
  margin: 0;
}

/* Tablet and smaller */
@media (max-width: 767px) {
  blockquote {
    margin-left: 8px;
  }
}

/* HEADER */
.nav-container {
  display: flex;
  width: 100%;
  justify-content: center;
}

.nav-bar {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  background-color: #ffffff;
  padding: 26px 40px 25px 40px;
  margin-right: auto;
  margin-left: auto;
  max-width: 1290px;
}

.nav-bar a {
  line-height: 0;
}

#logo-desktop {
  height: 78px;
  cursor: pointer;
}

#logo-mobile {
  display: none;
  height: 69px;
}

.nav-buttons {
  display: flex;
}

.menu-icon {
  display: none;
  width: 46px;
  height: 31.5px;
  padding-bottom: 1.2px;
  justify-content: space-between;
  cursor: pointer;
  flex-direction: column;
  z-index: 3;
}

.menu-divider {
  display: flex;
  position: relative;
  width: 46px;
  height: 4px;
  background-color: black;
  transition: transform 0.3s ease;
  -webkit-transition: transform 0.3s ease;
  -moz-transition: transform 0.3s ease;
  -ms-transition: transform 0.3s ease;
  -o-transition: transform 0.3s ease;
}

.open-menu {
  position: absolute;
  top: 0px;
  left: 0;
  display: flex;
  overflow: hidden;
  flex-direction: column;
  align-items: flex-end;
  height: 0px;
  width: 100%;
  background-color: rgb(255, 255, 255);
  transition: 0.6s;
  z-index: 2;
}

.menu-contents {
  display: flex;
}

.exit-menu {
  cursor: pointer;
  display: flex;
  margin: 50px 7% 146px 0;
}

.nav-link-mobile {
  font-family: "Open Sans";
  font-weight: 800;
  font-size: 41px;
  line-height: 42px;
  letter-spacing: -0.038em;
  color: #000000;
  text-transform: uppercase;
  text-decoration: none;
  height: 79px;
  padding-right: 40px;
}

.nav-link-mobile.contact-us {
  color: #d83b34;
}

.nav-link {
  font-family: "Open Sans";
  font-weight: 800;
  font-size: 17px;
  letter-spacing: -0.038em;
  color: #000000;
  text-transform: uppercase;
  text-decoration: none;
  padding: 0px 27px 0px 27px;
}

.nav-link.contact-us {
  color: #d83b34;
  padding: 0px 0px 0px 27px;
}

@media (max-width: 991px) {
  .nav-bar {
    padding: 26px 40px 25px 40px;
  }
  .nav-link {
    display: none;
  }
  .menu-icon {
    display: flex;
  }
  #logo-desktop {
    display: none;
  }
  #logo-mobile {
    display: flex;
  }
}

@media (max-width: 767px) {
  .nav-bar {
    padding: 26px 3% 25px 3%;
  }
}

@media (max-width: 478px) {
  .nav-bar {
    padding: 26px 7% 25px 7%;
  }
  .menu-icon {
    right: calc(7%);
  }
  .nav-link-mobile {
    padding-right: 9%;
  }
}

/* MAIN */
main {
  display: flex;
  flex-direction: column;
  font-family: "Open Sans", "Arial", sans-serif;
}

.homepage-header {
  display: flex;
  height: 570px;
  justify-content: center;
  background: linear-gradient(4deg, #b8272e, rgba(255, 0, 0, 0)),
    linear-gradient(127deg, #d14142, rgba(0, 255, 0, 0)),
    linear-gradient(270deg, #d64f4f, rgba(0, 0, 255, 0)),
    linear-gradient(45deg, #b8272e, rgba(255, 0, 0, 0));
}

.text-container {
  display: flex;
  flex-direction: column;
  text-transform: uppercase;
  color: #ffffff;
  font-weight: 800;
  width: 100%;
  max-width: 1060px;
  margin-right: auto;
  margin-left: auto;
  padding-right: 40px;
  padding-left: 40px;
  justify-content: center;
}

.header-title {
  font-size: 82px;
  letter-spacing: -0.073em;
  margin-bottom: 43px;
  line-height: 79px;
}

.header-subtitle {
  font-size: 39px;
  letter-spacing: -0.058em;
  line-height: 40px;
}

.posts {
  display: flex;
  flex-direction: column;
  font-family: "Open Sans";
  overflow: hidden;
}

.featured-post {
  display: flex;
  margin-top: 65px;
  margin-bottom: 100px;
}

#scroll-topic-div {
  height: 100px;
}

.post-list {
  display: flex;
  flex-direction: column;
}

del {
  text-decoration-thickness: 2px;
}

@media (max-width: 991px) {
  .homepage-header {
    height: 668px;
  }
}

@media (max-width: 767px) {
  .header-title {
    font-size: 38px;
    line-height: 50px;
  }
  .header-subtitle {
    font-size: 25px;
  }
  .homepage-header {
    height: 500px;
  }
}

@media (max-width: 478px) {
  .homepage-header {
    height: 596px;
  }
}

/* POST CARD */
.post-card {
  display: flex;
  flex-direction: row;
  margin-right: auto;
  margin-left: auto;
  padding-right: 40px;
  padding-left: 40px;
  max-width: 1060px;
}

.post-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.card-text {
  display: flex;
  flex-direction: column;
}

.post-list .card-text{
  height: 366px;
  justify-content: flex-end;
  margin-left: 40px;
  width: calc(100% - 511px);
}

a.summary {
  text-decoration: none;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}

.card-title,
.card-title a:visited {
  text-decoration: none;
  font-weight: 800;
  font-size: 24px;
  letter-spacing: -0.038em;
  text-transform: uppercase;
  color: #000000;
  margin-bottom: 16px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}

.img-container {
  position: relative;
}

.img-attribution {
  position: absolute; 
  bottom: 0;
  left: 0;
  font-size: 12px;
  color: rgb(255, 255, 255);
  background: rgba(90, 90, 90, 0.11);
  backdrop-filter: blur(3.5px);
  -webkit-backdrop-filter: blur(3.5px);
  padding: 4px 9px 4px 9px;
}

.featured-post .img-container {
  max-width: 611px;
  width: 60%;
  height: 460px;
  overflow: hidden;
}

.featured-post .card-text {
  display: flex;
  flex-direction: column;
  height: 460px;
  justify-content: flex-end;
  margin-left: 52px;
  font-weight: 400;
  width: calc(100% - 663px);
}

.featured-post .card-title {
  font-size: 39px;
  line-height: 40.83px;
}

.post-card .byline {
  display: flex;
  flex: 0 0 auto;
  color: #000000;
  font-weight: 700;
  height: 21.5px;
  text-align: start;
}

time {
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}

.author {
  margin-left: 5px;
  max-width: 280px;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}

a.summary,
a.summary:visited {
  margin-top: 13px;
  color: #595959;
  align-self: flex-start;
  font-weight: 600;
}

.post-list .post-card {
  margin-bottom: 60px;
}

.post-list .img-container {
  height: 366px;
  overflow: hidden;
  max-width: 471px;
  width: 60%;
}

.tag-container {
  margin-top: 30px;
}

@media (max-width: 991px) {
  .post-card {
    flex-direction: column;
    width: 100%;
  }
  .featured-post .img-container, .post-list .img-container {
    max-width: none;
    width: 100%;
  }
  .featured-post .card-text,  .post-list .card-text{
    margin: 45px 0 0 0;
    max-width: none;
    width: 100%;
    height: auto;
  }
  .post-list {
    width: calc(100% - 80px);
    padding-left: 40px;
    padding-right: 40px;
  }
  .post-list .post-card {
    padding: 0;
  }
}

/* SINGLE */
.select-post {
  display: flex;
  flex-direction: column;
  font-family: "Open Sans";
}

.grey-header {
  display: flex;
  position: relative;
  background-color: rgba(0, 0, 0, 0.74);
  width: 100%;
  height: 506px;
  padding-bottom: 32px;
}

.article a, article a:visited {
  color: #1564AD;
}

.select-header-container {
  width: 100%;
  overflow: hidden;
  position: absolute;
  z-index: -1;
  height: 100%;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.select-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.select-text-box {
  display: flex;
  flex-direction: column;
  justify-content: center;
  color: #ffffff;
  max-width: 1060px;
  margin-right: auto;
  margin-left: auto;
  width: 90%;
  padding: 0;
}

.select-post-title {
  font-weight: 800;
  font-size: 39px;
  line-height: 40.83px;
  letter-spacing: -0.058em;
  text-transform: uppercase;
  margin-bottom: 20px;
  color: #ffffff;
}

.summary {
  display: -webkit-box;
  font-style: normal;
  font-weight: 400;
  font-size: 22px;
  line-height: 30px;
  letter-spacing: -0.0454em;
  color: #ffffff;
  margin: 0 0 0 0;
}

.grey-header .byline {
  display: flex;
  overflow: hidden;
  text-overflow: ellipsis;
  width: 50%;
  justify-content: flex-end;
  margin-left: 2%;
  flex-wrap: wrap;
  gap: 5px;
  text-align: end;
}

.select-details-box {
  display: flex;
  flex-direction: row;
  margin-top: 40px;
  justify-content: space-between;
  align-items: center;
}

.img-attribution {
  position: absolute; 
  bottom: 0;
  font-size: 12px;
  color: rgb(255, 255, 255);
  background: rgba(90, 90, 90, 0.11);
  backdrop-filter: blur(3.5px);
  -webkit-backdrop-filter: blur(3.5px);
  padding: 4px 9px 4px 9px;
}

.tag-select {
  display: flex;
  position: absolute;
  padding: 0 42px 0 42px;
  height: 28px;
  align-items: center;
  border-radius: 39px;
  color: #ffffff;
  font-family: "Open Sans";
  font-weight: 600;
  font-size: 14px;
  line-height: 19px;
  letter-spacing: -0.0454em;
}

.post-content {
  display: flex;
  flex-direction: column;
  margin-top: 60px;
}

.back-button {
  display: flex;
  flex-direction: row;
  align-self: center;
  max-width: 1060px;
  margin-right: 2%;
  margin-left: 0;
  width: 90%;
  padding: 0;
}

a,
a:visited {
  text-decoration: none;
}

#all-posts {
  font-weight: 800;
  font-size: 22.1551px;
  line-height: 23.19px;
  letter-spacing: -0.038em;
  color: #d83b34;
  margin-left: 11px;
}

.post-summary-box {
  display: flex;
  flex-direction: row;
  margin-top: 70px;
  max-width: 1060px;
  margin-right: auto;
  margin-left: auto;
  width: 90%;
  padding: 0;
}

.article > p:first-child::first-letter {
  font-size: 100px;
  font-weight: 800;
  letter-spacing: -0.038em;
  float: left;
  margin-top: -13px;
  margin-right: 15px;
  line-height: 0.5;
}

.article h1:first-child,
.article h2:first-child,
.article h3:first-child,
.article h4:first-child {
  margin-top: 0;
}

.article h1,
.article h2,
.article h3,
.article h4 {
  margin: 70px 0 20px 0;
  text-transform: uppercase;
  font-weight: 800;
  font-size: 32px;
}

.article h1 {
  margin-bottom: 40px;
}

.article h2 {
  font-size: 24px;
  margin-top: 50px;
}

.article h3, .article h4 {
  font-weight: 700;
  font-size: 22px;
  margin-top: 30px;
}

.article h1::first-letter,
.article h2::first-letter,
.article h3::first-letter,
.article h4::first-letter {
  color: black;
}

.article {
  font-weight: 400;
  font-size: 22px;
  line-height: 30px;
  letter-spacing: -0.0454em;
  width: 100%;
}

.article p {
  margin: 0 0 30px 0;
}

.article figure img {
  width: revert-layer;
}

.article img {
  display: block;
  width: 100%;
  max-width: 900px;
  margin-right: auto;
  margin-left: auto;
}

.article li > img {
  margin: 20px 0 20px 0;
}

pre {
  overflow-x: scroll;
  padding-left: 16px;
  padding-top: 8px;
  padding-bottom: 8px;
}

del {
  text-decoration-thickness: 2px;
}

blockquote {
  border-left: 4px solid #1564AD;
  padding-left: 8px;
  border-radius: 4px;
}

@media (max-width: 991px) {
  .grey-header .byline {
    text-align: start;

    margin-bottom: 10px;
    margin-left: 0;
    width: 100%;
    justify-content: flex-start;
  }
  .select-details-box {
    flex-direction: column-reverse;
    align-items: flex-start;
    row-gap: 10px;
  }
  .grey-header {
    height: auto;
    padding: 10% 0 15% 0;
  }
}

@media (max-width: 478px) {
  .select-post-title {
    font-size: 33.15px;
  }
  .summary {
    font-size: 18.7px;
  }
  .grey-header .byline {
    font-size: 13.6px;
  }
  #all-posts {
    font-size: 18.83px;
  }
  svg {
    width: 18.7px;
    height: 18.7px;
    padding-top: 2.3px;
  }
  .article > p:first-child::first-letter {
    font-size: 85px;
    line-height: 0.7;
    margin-right: 5px;
  }
  .article p {
    font-size: 18.7px;
    line-height: 28px;
    margin-bottom: 25.5px;
  }
  .article li {
    font-size: 18.7px;
  }
  .article span {
    font-size: 18.7px;
  }
  .article h1,
  .article h2,
  .article h3,
  .article h4 {
    margin: 59.5px 0 17px 0;
  }
  .article h1 {
    font-size: 27.2px;
    margin-bottom: 34px;
  }
  .article h2 {
    font-size: 20.4px;
    margin-top: 42.5px;
  }
  .article h3 {
    font-size: 18.7px;
    margin-top: 25.5px;
  }
  .article h4 {
    font-size: 17px;
    margin-top: 25.5px;
  }
}

details {
  cursor: pointer;
}

/* TAG LIST */
.tags {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
}

.tag {
    display: flex;
    height: 28px;
    padding: 0 42px 0 42px;
    align-items: center;
    border-radius: 39px;
    color: #ffffff;
    font-family: "Open Sans";
    font-weight: 600;
    font-size: 14px;
    line-height: 19px;
    letter-spacing: -0.0454em;
}

#tag-teal {
    background-color: #1A6156;
}

#tag-red {
    background-color: #d83b34;
}

#tag-blue {
    background-color: #1564ad;
}

#tag-purple {
    background-color: #7b3aed;
}

#tag-gold {
    background-color: #f6a612;
}

#tag-bright-blue {
    background-color: #0042ed;
}

#tag-green {
    background-color: #1f7d28;
}

@media (max-width: 478px) {
    .tag {
        font-size: 12px;
    }
}

/* TAGS */
.tags-selection-box {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 74px;
  font-family: "Open Sans";
  font-size: 39px;
  letter-spacing: -0.038em;
  color: #000000;
  width: 100%;
  max-width: 1060px;
  margin-right: auto;
  margin-left: auto;
  padding-right: 40px;
  padding-left: 40px;
}

.topic-title {
  margin: 10px 39px 10px 0;
  font-weight: 800;
  line-height: 40.83px;
  text-transform: uppercase;
}

.tags-selection {
  display: flex;
  flex-wrap: wrap;
}

.tag-selection {
  display: flex;
  align-self: center;
  font-weight: 600;
  letter-spacing: -0.0454em;
  line-height: 23.15px;
  font-size: 17px;
  align-items: center;
  height: 34px;
  background-color: #ebebeb;
  border-radius: 39px;
  text-decoration: none;
  color: rgb(0, 0, 0);
  padding: 0 42px 0 42px;
  margin: 10px 10px 10px 10px;
  transition: 0.4s;
}

.tag-selection:hover {
  background-color: #cdcdcd;
  transition: 0.4s;
}

.tag-selection.selected {
  background-color: #1564ad;
  color: #FFFFFF;
}

.tag-selection.selected.technology {
  background-color: #289b90;
}

.tag-selection.selected.code {
  background-color: #d83b34;
}

@media (max-width: 800px) {
  .topic-title {
    width: 100%;
  }
  .topic-title {
    margin-bottom: 30px;
  }
  .tags-selection {
    flex-wrap: wrap;
    gap: 20px;
  }
  .tag-selection {
    margin: 0;
  }
}

@media (max-width: 700px) {
  .tags-selection-box {
    width: 90%;
    margin-bottom: 56px;
  }
}

/* FOOTER */
.red-block {
  display: flex;
  background-color: #d83b34;
  height: 60px;
  margin-top: 110px;
}

.footer {
  width: 100%;
  background-color: black;
  padding-top: 73px;
  padding-bottom: 100px;
  font-family: "Open Sans";
}

.footer-container {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 940px;
  margin-right: auto;
  margin-left: auto;
}

.footer-logo {
  display: flex;
  width: 200px;
  padding-bottom: 40px;
  justify-content: center;
}

.img-footer {
  width: 100%;
  margin-top: 28px;
}

.divider {
  width: auto;
  height: 1px;
  padding-bottom: 0px;
  background-color: #979797;
}

.footer-text {
  color: #ffffff;
  padding-top: 40px;
  padding-bottom: 40px;
  font-size: 18px;
  font-weight: 300;
  line-height: 28px;
}

.footer-contact-button {
  color: #d83b34;
  font-size: 18px;
  line-height: 28px;
}

.footer-contact-button:hover {
  color: #32343a;
}

@media (max-width: 991px) {
  .footer-container {
    max-width: 728px;
    padding: 0;
  }
}

@media (max-width: 767px) {
  .footer {
    padding: 40px 0 60px 0;
  }
  .footer-container {
    align-items: center;
  }
  .divider {
    width: 100%;
  }
  .footer-logo {
    width: 40%;
  }
  .footer-text {
    padding-bottom: 20px;
  }
}

@media (max-width: 478px) {
  .red-block {
    height: 39px;
  }
  .footer-contact-button {
    font-size: 14px;
  }
  .footer-text {
    font-size: 14px;
    padding-top: 20px;
  }
  .img-footer {
    margin-top: 0px;
  }
}

/* 404 PAGE */
main {
  display: flex;
  flex-direction: column;
  font-family: "Open Sans";
}

.error-box {
  display: flex;
  background-color: #d83b34;
  margin-bottom: -170px;
}

.error-container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
  max-width: 1060px;
  margin-right: auto;
  margin-left: auto;
  padding-right: 40px;
  padding-left: 40px;
  color: #ffffff;
  font-weight: 800;
  height: 735px;
}

#error-header {
  font-size: 82px;
  line-height: 79.69px;
  margin-bottom: 43px;
}

#error-subheader {
  font-size: 39px;
  line-height: 40.83px;
  margin-bottom: 206px;
}

#error-message {
  display: flex;
  flex-direction: row;
  font-size: 22px;
  line-height: 23.19px;
  align-items: center;
}

a#error-message,
a:visited#error-message {
  text-decoration: none;
  color: white;
}

@media (max-width: 991px) {
  #error-header {
    font-size: 62px;
    margin-bottom: 20px;
  }
  #error-subheader {
    font-size: 28px;
  }
  #error-message {
    font-size: 18px;
  }
  #button {
    width: 15px;
  }
}

@media (max-width: 767px) {
  #error-header {
    font-size: 38px;
    margin-bottom: 10px;
    line-height: 35px;
  }
  #error-subheader {
    font-size: 18px;
  }
  #error-message {
    font-size: 16px;
  }
  #button {
    width: 13px;
  }
}

@media (max-width: 478px) {
  #error-header {
    font-size: 7vw;
  }
  #error-subheader {
    font-size: 4vw;
    line-height: 25px;
    width: 70%;
  }
}
