@import url('https://fonts.googleapis.com/css2?family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&family=Raleway:ital,wght@0,300;0,400;0,600;1,400;1,700&display=swap');

:root {
  --defaultFont: 'Raleway', sans-serif;
  --postFont: 'Libre Baskerville', serif;
  --width: 60rem;
}

[data-theme='light'] {
  --textColor: hsl(0, 0%, 10%);
  --linkTextColor: hsl(0, 0%, 20%);
  --lightTextColor: hsl(0, 0%, 40%);
  --backgroundColor: hsl(0, 0%, 100%);
  --separatorColor: hsl(0, 0%, 60%);
}

[data-theme='dark'] {
  --textColor: hsl(0, 0%, 90%);
  --linkTextColor: hsl(0, 0%, 80%);
  --lightTextColor: hsl(0, 0%, 60%);
  --backgroundColor: hsl(0, 0%, 0%);
  --separatorColor: hsl(0, 0%, 40%);
}

[data-theme=''] {
  --textColor: hsl(0, 0%, 10%);
  --linkTextColor: hsl(0, 0%, 20%);
  --lightTextColor: hsl(0, 0%, 40%);
  --backgroundColor: hsl(0, 0%, 100%);
  --separatorColor: hsl(0, 0%, 60%);
}

@media (prefers-color-scheme: dark) {
  [data-theme=''] {
    --textColor: hsl(0, 0%, 90%);
    --linkTextColor: hsl(0, 0%, 80%);
    --lightTextColor: hsl(0, 0%, 60%);
    --backgroundColor: hsl(0, 0%, 0%);
    --separatorColor: hsl(0, 0%, 40%);
  }
}

* {
  box-sizing: border-box;
}

html {
  font-size: 10px;
}

body {
  font-family: var(--defaultFont);
  color: var(--textColor);
  background-color: var(--backgroundColor);
  font-size: 1.6rem;
  letter-spacing: -0.2px;
  -webkit-font-smoothing: antialiased;
  width: 100%;
  max-width: var(--width);
  margin: 0 auto;
  padding: 0 1rem;
}

a {
  color: var(--linkTextColor);
}

li small {
  color: var(--lightTextColor);
  white-space: nowrap;
}

/** HEADER **/

body > header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  border-bottom: 1px dashed var(--separatorColor);
  padding: 2rem 0 1rem;
  margin-bottom: 3rem;
  flex-wrap: wrap;
}

body > header ul {
  padding: 0.5rem 0 0 0;
  margin: 0;
  display: flex;
  align-items: baseline;
}

body > header ul li {
  list-style-type: none;
}

body > header ul li:not(:first-child) {
  margin-left: 1rem;
}

body > header ul li a {
  color: inherit;
  /* align-items: baseline; */
  display: block;
}

body > header h1 {
  font-weight: 300;
  margin: 0 1rem 0 0;
}

body > header h1 a {
  text-decoration: none;
  color: inherit;
}

/** FOOTER **/

body > footer {
  border-top: 1px dashed var(--separatorColor);
  text-align: center;
  font-size: small;
  padding: 0.5rem;
  color: var(--lightTextColor);
  margin-top: 4rem;
}

body > footer button {
  border: none;
  background-color: transparent;
  color: var(--textColor);
  font-family: var(--defaultFont);
  font-size: inherit;
  padding: 0;
  margin-left: 0.5rem;
}

/** MAIN **/

main {
  font-family: var(--postFont);
}

main h1, main h2, main h3, main h4, main h5, main h6 {
  font-weight: 600;
  margin-top: 3rem;
  line-height: 1.2em;
}

main img {
  max-width: 100%;
  display: block;
  margin: 2rem auto;
}

/** POST HEADER **/

main header img {
  width: 100%;
  height: 50vw;
  max-height: calc(var(--width) / 2);
  object-fit: cover;
  border-radius: 1rem;
}

main header h1 {
  font-family: var(--postFont);
  margin-top: 0;
  margin-bottom: 1rem;
  font-size: 3rem;
}

main header h1 a {
  color: inherit;
  text-decoration: none;
}

main header p {
  color: var(--lightTextColor);
  font-size: small;
  margin-top: 0;
}

/** POST CONTENT **/

main {
  line-height: 1.5em;
}

main hr {
  border: 0;
  text-align: center;
}

main hr::before {
  content: "* * *";
  color: var(--separatorColor);
}

main figure {
  margin: 0;
}

main figure figcaption {
  font-size: small;
  text-align: center;
  margin-top: -1rem;
}

main blockquote {
  font-style: italic;
  font-size: larger;
}

/** POST FOOTER **/

main footer {
  border-top: 1px dashed var(--separatorColor);
  margin-top: 3rem;
}

/** NEWSLETTER FORM **/

form {
  display: flex;
}

form input[type=email], form button {
  border: 1px solid var(--separatorColor);
  background-color: var(--backgroundColor);
  color: var(--textColor);
  height: 2.8rem;
  font-family: var(--defaultFont);
  padding: 0 0.5rem;
  margin-right: 0.5rem;
  font-size: 1.5rem;
}

form input[type=email]:focus, form button:focus {
  outline-width: 0;
  border-color: var(--textColor);
}
