/* Reset */
*,
*::before,
*::after {
  all: unset;
}

head,
link,
meta,
title,
script,
style {
  display: none;
}

:focus-visible { /* Enable focus outline for accessibility */
  outline-color: var(--focus-outline-color, rgb(0, 119, 204));
  outline-width: var(--focus-outline-width, 1px);
  outline-style: auto;
  outline-offset: var(--focus-outline-offset, 0);
}

*,
*::before,
*::after {
  box-sizing: border-box; /* Include border in box size */
  border-width: 0;
  border-style: solid;
}

html {
  block-size: 100%; /* Make root element size of viewport */
}

body {
  flex: 1;
}

/* General */
/* Inter typeface - start */
:root {
  font-family: "Inter", sans-serif;
  font-feature-settings: "calt" 1, "cv12" 1, "cv13" 1, "dlig" 1, "liga" 1, "ss01" 1, "ss02" 1, "ss03" 1, "zero" 1;
}

@supports (font-variation-settings: normal) {
  :root {
    font-family: "InterVariable", sans-serif;
  }
}
/* Inter typeface - end */

body {
  display: block;
  color: #111;
  margin: 0 auto;
  padding-block-end: 2em;
  padding-block-start: 1em;
  width: 90%;
}

@media only screen and (min-width: 600px) {
  body {
    padding-block-start: 2em;
    width: 85%;
  }
}

@media only screen and (min-width: 600px) {
  abbr {
    border-bottom: 1px dotted;
  }
}

h1 {
  font-size: 2.5em;
  font-weight: 800;
}

h1,
h2 {
  display: block;
}

h2 {
  font-size: 1.5em;
  font-weight: 500;
  padding-block-start: .75em;
}

h3 {
  font-size: 1.125em;
  font-weight: 500;
}

dt,
dd,
p,
ul {
  font-size: 1.125em;
  font-weight: 300;
}

dl {
  margin-block: .5em;
}

dl,
dt,
dd {
  display: block;
}

dt span {
  font-style: italic;
  font-weight: 400;
}

dd {
  padding-block-end: .5em;
}

dd:last-of-type {
  padding: 0;
}

p {
  display: block;
}

ul {
  display: inline;
}

ul li:after {
  content: ' \00B7';
}

ul li:last-child:after {
  content: '';
}

@media only screen and (max-width: 600px) {
  .meta p > span {
    display: block;
  }
}

@media only screen and (max-width: 600px) {
  .meta .divider {
    display: none;
  }
}

.date-range,
.location,
.position {
  display: inline;
}

.date-range:before {
  content: '\(';
}

.date-range:after {
  content: '\)';
}

@media only screen and (min-width: 600px) {
  .jobs {
    display: grid;
    grid-auto-flow: column;
    grid-gap: 0;
    grid-template-rows: repeat(3, 1fr);
  }

  .jobs:after {
    display: none;
  }
}

.job {
  display: block;
  padding-block-end: .5em;
}

.job:last-of-type {
  padding: 0;
}

.position:before {
  content: '';
  display: block;
}

.location:before {
  content: '\2014\00A0';
}

.telephone:before {
  content: '';
  display: block;
}
