@import url("./minreset.min.css");

html {
  font-size: 16px;
  color: #2f2f2f;
  background: #fafafa;
  font-family: var(--font-site);

  --font-button: Josefin Sans, sans-serif;
  --font-site: Josefin Sans, sans-serif;
  --font-title: Josefin Sans, sans-serif;
  --font-body: Lora, serif;

  --text: #2f2f2f;
  --bg: #fafafa;
  --border: #ececea;
  --link: #369;
  --link-visited: #936;
  --meta: #777;
  --quote: #95a5a6;
}

/* @@ page */
.page {
  display: grid;
  width: 100%;
  min-height: 100vh;
  grid-template-areas: "header" "body" "footer";
  grid-template-rows: min-content 1fr min-content;
}

.page-head {
  grid-area: header;
}

.page-body {
  grid-area: body;
}

.page-footer {
  grid-area: footer;
}

/* @@ hero */
.hero {
  display: grid;
  width: 100%;
  grid-template-areas:
    "header"
    "body";
  grid-template-rows: min-content 1fr;
}

.hero .hero-head {
  grid-area: header;
}

.hero .hero-body {
  grid-area: body;
}

.hero.front-page {
  height: 100vh;
  background: var(--bg);
}

.hero.front-page .hero-bg {
  height: 100%;
  max-width: unset;
  width: auto;
}

.hero.front-page .hero-body {
  border-bottom: 1px solid var(--border);
  display: flex;
  justify-content: center;
  overflow: hidden;
  position: relative;
}

.hero.front-page .hero-highlight-title {
  position: absolute;
  font-family: var(--font-body);
  font-size: 2.5rem;
  max-width: 500px;
  text-align: center;
  font-style: italic;
  top: 50%;
  left: 50%;
  translate: 30% 0%;
}

.hero.front-page span {
  background: #fff;
}

/* @@ header navigation */
.navigation {
  display: grid;
  height: 63px;
  grid-template-areas: "logo main";
  grid-template-columns: max-content 1fr;
  gap: 2rem;
  padding: 0 1rem;
  background: #fff;
  border-bottom: 1px solid var(--border);
}

.navigation .navigation-logo {
  align-self: center;
  grid-area: logo;
}

.navigation .monopare-logo {
  white-space: nowrap;
  font-weight: bold;
  font-family: Josefin Sans, sans-serif;
  font-size: 18px;
}

.navigation .monopare-logo a {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.5rem;
  text-decoration: none;
  color: var(--text);
}

.navigation .monopare-logo-icon {
  height: 48px;
  width: 48px;
}

.navigation .navigation-main {
  grid-area: main;
  display: flex;
  height: 100%;
  justify-content: right;
  align-items: center;
}

.navigation .navigation-item {
  display: flex;
  color: var(--text);
  text-decoration: none;
  height: 100%;
  align-items: center;
  padding: 0 1rem;
  font-family: var(--font-button);
  font-size: 1.2rem;
  text-transform: uppercase;
  position: relative;
  gap: 0.25rem;
}

.navigation .navigation-item::before {
  content: "";
  display: block;
  width: 100%;
  height: 0px;
  background: var(--link);
  position: absolute;
  bottom: 0px;
  left: 0px;
  transition: height 0.25s ease-out;
}

.navigation .navigation-item:hover::before,
.navigation .navigation-item.is-active::before {
  height: 10px;
  transition-duration: 0.05s;
}

.navigation .navigation-item:hover {
  color: var(--link);
}

/** @@ footer */
.footer {
  border-top: 8px solid #f0f0f0;
  background: #ececea;
  padding: 2em;
  letter-spacing: 0.1em;
  font-size: 1.1rem;
}

.footer-container {
  display: flex;
  justify-content: space-between;
  gap: 2rem;
}

.footer .icon-heart {
  color: #e74c3c;
  font-size: 1.3em;
  position: relative;
  top: 0.1em;
}

.footer-navigation a {
  color: var(--text);
  text-decoration: none;
  margin-left: 2em;
}

.footer-navigation a:hover {
  color: var(--link);
  text-decoration: underline;
}

.footer-navigation a:first-child {
  margin: 0;
}

.footer-attribution {
  text-align: center;
}

.screen-reader {
  position: absolute;
  top: auto;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/** @@ content */
.page-body {
  margin: 0 auto;
  padding: 3em 0;
  width: 720px;
}

.article-title {
  font-size: 3rem;
  font-weight: bold;
  font-family: var(--font-title);
  letter-spacing: -0.02rem;
  line-height: 1.5em;
}

.co {
  font-family: var(--font-body);
  font-size: 20px;
}

.co img {
  width: 100%;
  height: auto;
}

.co a {
  text-decoration: underline;
}

.co a:visited {
  color: var(--link-visited);
}

.co a:hover {
  color: var(--link);
}

.co p {
  margin-bottom: 1.5em;
}

.co h2 {
  font-family: var(--font-title);
  font-size: 2.3rem;
  font-weight: 700;
  margin: 3.5rem 0 1rem 0;
  letter-spacing: -0.02rem;
}

.co h3 {
  font-family: var(--font-title);
  font-size: 2rem;
  margin: 3rem 0 1rem 0;
  letter-spacing: -0.02rem;
}

.co h4 {
  font-family: var(--font-title);
  font-size: 1.3rem;
  font-weight: 700;
  text-transform: uppercase;
  margin: 2rem 0 1rem 0;
  border-bottom: 1px solid var(--border);
}

.co ul {
  list-style: disc;
}

.co ul,
.co ol {
  margin: 0 0 1.2em 2.4em;
  padding: 0;
}

.co li {
  line-height: 1.6em;
}

.co ul ul {
  margin: 0 0 0 2em;
  list-style: circle;
}

.co hr {
  display: block;
  height: 1px;
  border: none;
  border-bottom: 1px solid #ecf0f1;
  margin: 3rem auto;
  width: 20%;
  background: transparent;
}

.co .text-img {
  height: 1em;
  width: auto;
  vertical-align: middle;
}

.co .keep-together {
  overflow: hidden;
}

.co .pull-left {
  margin: 0.5em 1em 1em -300px;
  float: left;
}

.co .pull-left-title {
  margin-left: 260px;
}

.co .pull-left,
.co .centred-image {
  text-align: center;
  color: var(--quote);
}

.co .pull-left img {
  display: block;
  padding: 20px;
  max-width: 560px;
}

.co .pull-skip-3x {
  margin-top: 3rem;
}

.co .border-it {
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  padding: 1rem 0;
}

.co .clear {
  clear: both;
}

.co a[href^="http://"]::after,
.co a[href^="https://"]::after
{
  content: "\f35d";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  left: 0.2em;
  top: -0.3em;
  margin-right: 0.4em;
  font-size: 0.7em;
  position: relative;
  display: inline-block;
}

.co div.highlight {
  font-size: 1rem;
  background: #fff;
  padding: 1rem;
  border: 1px solid var(--border);
  border-radius: 5px;
  border-left-width: 5px;
  margin-bottom: 2em;
  overflow: auto;
}

.co code {
  border: 1px solid var(--border);
  padding: 0.1em 0.2em;
  border-radius: 3px;
}

.co pre.highlight code {
  border: none;
  padding: 0;
}

/* @@ log */
.log-post-summary {
  margin-bottom: 3rem;
  padding-bottom: 3rem;
  border-bottom: 5px solid var(--border);
}

.feed-meta {
  text-transform: uppercase;
  display: flex;
  justify-content: flex-end;
  font-size: 1rem;
}

.log-list .feed-meta a {
  text-decoration: none;
  color: var(--link);
  font-family: var(--font-button);
}

.log-list .feed-meta a:hover {
  text-decoration: underline;
}

.button {
  display: block;
  padding: 1.3em 3em;
  font-weight: bold;
  font-family: var(--font-button);
  color: var(--link);
  border: 3px solid var(--link);
  border-radius: 3px;
  text-decoration: none;
}

.button:hover {
  color: #fafafa !important;
  background: var(--link);
  border-color: var(--link);
}

.read-more {
  display: flex;
  justify-content: flex-end;
}

.pagination {
  display: flex;
  justify-content: space-between;
}

.article-title a {
  color: var(--text);
  text-decoration: none;
}

.article-meta {
  color: var(--meta);
  text-transform: uppercase;
  font-size: 0.8rem;
  font-family: var(--font-button);
  margin-top: -1rem;
  margin-bottom: -0.5rem;
}

.article-content {
  margin-top: 3rem;
}

/** @mobile */
@media screen and (max-width: 1200px) {
  .hero.front-page .hero-highlight-title {
    top: 8rem;
    right: 5rem;
    left: unset;
    translate: unset;
  }

  .footer-container {
    flex-direction: column;
  }

  .footer-navigation {
    border-top: 1px solid var(--border);
    padding: 2rem 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 1rem;
  }

  .footer-navigation a {
    display: block;
    text-align: center;
    margin: 0;
  }

  .co .pull-left {
    max-width: 350px;
    margin: 0.5rem 1.5rem 2rem 0rem;
  }
}

@media screen and (max-width: 720px) {
  .monopare-logo-text {
    display: none;
  }

  .navigation {
    height: 48px;
  }

  .navigation .monopare-logo-icon {
    width: 32px;
    height: 32px;
  }

  .hero.front-page .hero-highlight-title {
    font-size: 2rem;
    width: 100%;
    bottom: 4rem;
    max-width: unset;
    top: unset;
    left: unset;
    right: unset;
    translate: unset;
  }

  .navigation .navigation-item {
    font-size: 1rem;
    padding: 0 0.5rem;
  }

  .page-body {
    padding: 3rem 1.5rem;
    width: auto;
  }

  .co .pull-left-title {
    margin: 0;
  }

  .co .pull-left {
    float: none;
    margin: 1rem;
    max-width: unset;
  }

  .co div.highlight {
    max-width: calc(100vw - 3rem);
  }
}
