@font-face {
  font-display: swap;
  font-family: "Khand";
  font-style: normal;
  font-weight: 400;
  src: url("../fonts/khand-400.woff2") format("woff2");
}
@font-face {
  font-display: swap;
  font-family: "Khand";
  font-style: normal;
  font-weight: 600;
  src: url("../fonts/khand-600.woff2") format("woff2");
}
@font-face {
  font-display: swap;
  font-family: "Rubik";
  font-style: normal;
  font-weight: 400;
  src: url("../fonts/rubik-400.woff2") format("woff2");
}
@font-face {
  font-display: swap;
  font-family: "Rubik";
  font-style: italic;
  font-weight: 400;
  src: url("../fonts/rubik-400i.woff2") format("woff2");
}
@font-face {
  font-display: swap;
  font-family: "Rubik";
  font-style: normal;
  font-weight: 500;
  src: url("../fonts/rubik-500.woff2") format("woff2");
}
@font-face {
  font-display: swap;
  font-family: "Rubik";
  font-style: normal;
  font-weight: 600;
  src: url("../fonts/rubik-600.woff2") format("woff2");
}
@font-face {
  font-display: swap;
  font-family: "Rubik";
  font-style: normal;
  font-weight: 700;
  src: url("../fonts/rubik-700.woff2") format("woff2");
}
.people, .hotels, .sponsors__list, .presentations, .menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

.wp-block-file a:not(.wp-block-file__button), .credits .credits__link, .button--as-link, a[tabindex="-1"] {
  text-decoration: none;
}
.wp-block-file a:hover:not(.wp-block-file__button), .credits .credits__link:hover, .button--as-link:hover, a[tabindex="-1"]:hover {
  text-decoration: underline;
  text-decoration-thickness: 0.0625rem;
}

.wp-block-image figcaption, .wp-block-gallery .blocks-gallery-caption {
  color: hsl(221, 13%, 38%);
  font-style: italic;
  line-height: 1.3125;
  margin-block: 0.75rem 0;
  text-align: center;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

:focus-visible {
  outline: 0.125rem solid hsl(20, 89%, 49%);
}

:target {
  scroll-margin-block: 2rem;
}

html {
  scroll-behavior: smooth;
}

body {
  background-color: #fff;
  font-family: "Rubik", sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.625;
  min-height: 100vh;
}

body.contrast-mode {
  background-color: hsl(0, 0%, 0%);
}

h2,
h3,
h4,
h5,
h6 {
  line-height: 1.3125;
}

body,
h1,
h2,
h3,
h4,
p,
figure,
blockquote,
dl,
dd {
  margin: 0;
}

p {
  margin-block: 1.5rem;
}

a {
  color: hsl(221, 59%, 17%);
}
body.contrast-mode a {
  color: hsl(60, 100%, 50%);
}

figure {
  font-size: 0;
}

figcaption {
  font-size: 1rem;
}

img,
picture {
  display: block;
  height: auto;
  max-width: 100%;
}

.wrapper {
  margin-inline: auto;
  max-width: 70.5rem;
  padding-inline: 1rem;
  width: 100%;
}

.wrapper .subwrapper {
  margin-inline: auto;
  max-width: 48.5625rem;
  padding-left: 2.0625rem;
  padding-right: 2.0625rem;
}
@media (min-width: 48rem) {
  .wrapper .subwrapper {
    padding-right: 0;
  }
}
.wrapper .subwrapper--wide {
  max-width: 48.75rem;
  padding-left: 0;
}

.button {
  align-items: center;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: center;
  gap: 0.25rem;
  background-color: hsl(18, 83%, 63%);
  border: 0;
  border-radius: 50%;
  color: hsl(18, 13%, 98%);
  font-family: "Rubik", sans-serif;
  font-size: 1rem;
  height: 2.25rem;
  padding: 0;
  user-select: none;
  width: 2.25rem;
}
.button:hover {
  background-color: #ed703b;
}
.button--as-link {
  background-color: unset;
  color: hsl(18, 13%, 8%);
  cursor: pointer;
  height: unset;
  min-width: unset;
  padding: 0;
  width: unset;
}
.button--as-link:hover {
  background-color: unset;
}
.button--blue {
  background-color: hsl(221, 69%, 87%);
}
.button--blue:hover {
  background-color: hsl(221, 69%, 77%);
}

.header {
  align-items: center;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: center;
  gap: normal normal;
  background-color: hsl(221, 59%, 17%);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  height: 25.5rem;
  position: relative;
  margin-top: 8rem;
}
@media (min-width: 30rem) {
  .header {
    height: 29.5rem;
  }
}
@media (min-width: 48rem) {
  .header {
    height: 33.5rem;
  }
}
@media (min-width: 70.5rem) {
  .header {
    height: 37.5rem;
  }
}

body.page:not(.home) .header,
body.error404 .header {
  height: 25.5rem;
}

@media print {
  .header {
    display: none;
  }
}
.search-query {
  color: hsl(221, 11%, 48%);
  margin-block: -2rem 4rem;
}

.footer__bar {
  background-color: hsl(221, 59%, 17%);
  color: hsl(221, 19%, 98%);
}
.footer__bar > .wrapper {
  align-items: center;
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  justify-content: center;
  gap: normal normal;
  min-height: 6rem;
}
@media (min-width: 70.5rem) {
  .footer__bar > .wrapper {
    align-items: center;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: space-between;
    gap: normal normal;
    min-height: 4.5rem;
  }
}

@media print {
  .footer {
    display: none;
  }
}
body.contrast-mode .footer__bar {
  background-color: hsl(0, 0%, 10%);
}

.site-logo {
  flex-shrink: 0;
}
.site-logo__link {
  font-size: 0;
}
.site-logo__image {
  height: 6rem;
  transition: all 0.33s;
}

.site-name {
  color: hsl(221, 19%, 98%);
  font-family: "Khand", sans-serif;
  line-height: 1;
}
.site-name__title {
  color: hsl(187, 45%, 53%);
  font-size: 2rem;
  font-weight: 600;
  line-height: 1;
  margin-inline: auto;
  width: fit-content;
  text-align: center;
}
@media (min-width: 48rem) {
  .site-name__title {
    font-size: 3rem;
  }
}
@media (min-width: 70.5rem) {
  .site-name__title {
    margin-inline: auto 11rem;
    text-align: left;
  }
}
.site-name__subtitle {
  font-size: 3rem;
  font-weight: 600;
  margin-block: 1rem;
  text-align: center;
}
@media (min-width: 48rem) {
  .site-name__subtitle {
    font-size: 6rem;
  }
}
.site-name__date {
  color: hsl(187, 45%, 53%);
  display: block;
  font-size: 1.5rem;
  text-align: center;
}
@media (min-width: 48rem) {
  .site-name__date {
    font-size: 2rem;
  }
}

body.contrast-mode .site-name__title,
body.contrast-mode .site-name__subtitle,
body.contrast-mode .site-name__date {
  color: hsl(0, 0%, 100%);
}

.wcag {
  align-items: normal;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: flex-start;
  gap: 0.375rem;
  position: absolute;
  right: 1rem;
  top: 1rem;
}
@media (min-width: 48rem) {
  .wcag {
    flex-direction: column;
    top: unset;
  }
}
.wcag__button {
  background-position: center;
  background-repeat: no-repeat;
  background-size: 0.75rem;
  border-radius: 50%;
}
.wcag .js-increase-text-size {
  background-image: url(../images/icon-plus.svg);
}
.wcag .js-reset-text-size {
  background-image: url(../images/icon-reset.svg);
}
.wcag .js-decrease-text-size {
  background-image: url(../images/icon-minus.svg);
}
.wcag .js-change-contrast {
  background-image: url(../images/icon-contrast.svg);
}

.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  word-wrap: normal !important;
}
.screen-reader-text:focus {
  background-color: hsl(221, 19%, 98%);
  border: 0.0625rem solid hsl(221, 13%, 38%);
  border-radius: 0.25rem;
  clip: auto !important;
  clip-path: none;
  color: hsl(221, 59%, 17%);
  display: block;
  font-size: 1rem;
  height: auto;
  left: 1rem;
  line-height: normal;
  padding: 1rem;
  text-decoration: none;
  top: 1rem;
  width: auto;
  z-index: 100000;
}

.navbar--header {
  background-color: hsl(0, 0%, 100%);
  position: fixed;
  top: 0;
  z-index: 9999;
  width: 100%;
}
.navbar--header .wrapper {
  display: grid;
  gap: 1rem;
  grid-template-columns: auto 2.25rem;
  grid-template-rows: 6rem;
  align-items: center;
  padding-block: 1rem;
}
@media (min-width: 70.5rem) {
  .navbar--header .wrapper {
    align-items: center;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: space-between;
    gap: normal normal;
  }
}

body.admin-bar .navbar--header {
  top: 2rem;
}

.navbar--scroll {
  box-shadow: 0 0.25rem 1.5rem rgba(219, 222, 230, 0.33);
}
.navbar--scroll .wrapper {
  grid-template-rows: 4rem;
}

.navbar--footer {
  align-items: center;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: flex-end;
  gap: 1.5rem;
}

.menu {
  --link-underline-size: 0.1875rem;
}
.menu .menu-item > a {
  font-size: 1rem;
  font-weight: 600;
}

.menu--header {
  display: none;
}
@media (min-width: 70.5rem) {
  .menu--header {
    align-items: center;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: center;
    gap: 1.5rem;
  }
}
.menu--header a {
  text-decoration: none;
  color: hsl(18, 13%, 8%);
}
.menu--header a:hover {
  text-decoration: underline;
  text-decoration-color: hsl(20, 89%, 49%);
  text-decoration-thickness: var(--link-underline-size);
}

.menu--show {
  display: block;
  grid-column: 1/3;
  margin-top: 0.375rem;
}
.menu--show .menu-item {
  border-bottom: 0.0625rem solid hsl(221, 17%, 88%);
  padding-block: 0.375rem;
}
.menu--show .menu-item:last-of-type {
  border-bottom: none;
}
.menu--show .menu-item a {
  display: block;
}

.menu--footer {
  align-items: center;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: center;
  gap: 1.5rem;
}
.menu--footer a {
  text-decoration: none;
  color: hsl(18, 83%, 63%);
}
.menu--footer a:hover {
  text-decoration: underline;
  text-decoration-color: hsl(18, 83%, 63%);
  text-decoration-thickness: var(--link-underline-size);
}

@media print {
  .menu {
    display: none;
  }
}
body.contrast-mode .menu--header a {
  text-decoration: none;
  color: hsl(0, 0%, 0%);
}
body.contrast-mode .menu--header a:hover {
  text-decoration: underline;
  text-decoration-color: hsl(0, 0%, 0%);
  text-decoration-thickness: var(--link-underline-size);
}
body.contrast-mode .menu--footer a {
  text-decoration: none;
}
body.contrast-mode .menu--footer a:hover {
  text-decoration: underline;
  text-decoration-color: hsl(60, 100%, 50%);
  text-decoration-thickness: var(--link-underline-size);
}

.hamburger {
  background-image: url(../images/icon-menu.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: 0.75rem;
  border-radius: 50%;
}
@media (min-width: 70.5rem) {
  .hamburger {
    display: none;
  }
}

.section {
  margin-block: 6rem;
  scroll-margin-top: 9rem;
}
.section--background {
  background-color: hsl(18, 11%, 93%);
  padding-block: 4.5rem 6rem;
  scroll-margin-top: 6rem;
}

body.contrast-mode .section {
  background-color: hsl(0, 0%, 0%);
}

.about > .wrapper {
  position: relative;
}
.about__text ul,
.about__text ol,
.about__text p {
  color: hsl(221, 13%, 38%);
  line-height: 1.625;
  margin-block: 1.5rem;
}

body.contrast-mode .about__text {
  color: hsl(0, 0%, 100%);
}
body.contrast-mode .about__text ul,
body.contrast-mode .about__text ol,
body.contrast-mode .about__text p {
  color: hsl(0, 0%, 100%);
}

.social-media {
  align-items: center;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: flex-end;
  gap: 0.375rem;
}

.social-media__facebook,
.social-media__linkedin,
.social-media__x {
  background-position: center;
  background-repeat: no-repeat;
  background-size: 1.125rem;
}

.social-media__facebook {
  background-image: url(../images/icon-facebook.svg);
}

.social-media__linkedin {
  background-image: url(../images/icon-linkedin.svg);
}

.social-media__x {
  background-image: url(../images/icon-x.svg);
}

.program {
  background-image: url(../images/background-program.jpg);
  background-position: center top;
  background-repeat: no-repeat;
}

.day {
  margin-block: 0 3rem;
}
.day:last-of-type {
  margin-block: 0;
}
.day__header {
  margin-block: 0 1.5rem;
  margin-inline: 0.75rem 0;
  position: relative;
}
.day__header::before {
  background-image: url(../images/marker-top.svg);
  background-position: left top;
  background-size: cover;
  background-repeat: no-repeat;
  content: "";
  display: block;
  height: calc(50% + 1.875rem);
  width: 2rem;
  position: absolute;
  left: -2.5625rem;
  bottom: -1.5rem;
}
.day__name, .day__date {
  line-height: 1;
}
.day__name {
  color: hsl(18, 13%, 8%);
  font-size: 1.25rem;
  font-weight: 500;
}
.day__date {
  color: hsl(18, 7%, 38%);
  font-size: 1rem;
  font-weight: 400;
}

.presentations {
  align-items: normal;
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  justify-content: flex-start;
  gap: 0.375rem;
  margin-block: 0.375rem 0;
}
.presentations--session {
  display: none;
  padding-inline: 2rem 0;
}
.presentations--show {
  display: flex;
}

.day > .presentations > .presentation > .presentation__body::before {
  background-image: url(../images/marker.svg);
  background-position: left center;
  background-size: cover;
  background-repeat: no-repeat;
  content: "";
  display: block;
  height: calc(100% + 0.375rem);
  width: 2rem;
  position: absolute;
  left: -1.8125rem;
  top: -0.1875rem;
  bottom: -0.1875rem;
}

.day > .presentations .presentation:last-of-type > .presentation__body::before {
  background-image: url(../images/marker-bottom.svg);
  background-position: left bottom;
  height: calc(50% + 0.375rem);
}

.day > .presentations .presentations > .presentation > .presentation__body::before {
  background-image: url(../images/marker-line.svg);
  background-position: left center;
  background-size: cover;
  background-repeat: no-repeat;
  content: "";
  display: block;
  height: calc(100% + 0.375rem);
  left: -3.8125rem;
  position: absolute;
  width: 4rem;
  top: -0.1875rem;
  bottom: -0.1875rem;
}

.day > ul.presentations > li.presentation--is-session:last-of-type > ul.presentations--session .presentation__body::before {
  background-image: none;
}

.presentation__body {
  background-color: hsl(0, 0%, 100%);
  border-radius: 0.1875rem;
  padding: 0.75rem 1.5rem 1rem;
  position: relative;
}
.presentation__hours, .presentation__speaker {
  color: hsl(18, 7%, 38%);
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1;
}
.presentation__title {
  color: hsl(18, 13%, 8%);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.3125;
  margin-block: 0.1875rem 0;
}
.presentation__speakers {
  align-items: normal;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 0.375rem 1rem;
  margin-block: 0.75rem 0;
}
.presentation__speaker {
  align-items: center;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: flex-start;
  gap: 0.375rem;
}
.presentation__speaker::before {
  background-image: url(../images/icon-person.svg);
  background-position: center;
  background-repeat: no-repeat;
  content: "";
  display: block;
  height: 1.5rem;
  width: 1.5rem;
}
.presentation__button {
  color: hsl(18, 83%, 59%);
  font-size: 0.875rem;
  font-weight: 600;
  margin-block: 0.75rem 0;
}

body.contrast-mode .program {
  background-image: none;
  background-color: hsl(0, 0%, 0%);
}
body.contrast-mode .day__name,
body.contrast-mode .day__date {
  color: hsl(0, 0%, 100%);
}
body.contrast-mode .presentation__body {
  background-color: hsl(0, 0%, 10%);
}
body.contrast-mode .presentation__hours,
body.contrast-mode .presentation__title,
body.contrast-mode .presentation__speaker {
  color: hsl(0, 0%, 100%);
}

.sponsors__list {
  display: grid;
  gap: 2.25rem 1.5rem;
  grid-template-columns: repeat(1, 1fr);
  grid-template-rows: none;
  align-items: center;
}
@media (min-width: 30rem) {
  .sponsors__list {
    display: grid;
    gap: 2.25rem 1.5rem;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: none;
  }
}
@media (min-width: 48rem) {
  .sponsors__list {
    display: grid;
    gap: 2.25rem 1.5rem;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: none;
  }
}
.sponsors__text {
  line-height: 1.3125;
}

.sponsor__logo {
  display: block;
  margin-inline: auto;
}

.info__section {
  margin-block: 3rem;
}
.info__heading {
  color: hsl(221, 17%, 18%);
  font-size: 1.25rem;
  font-weight: 500;
  margin-block: 0 1.5rem;
}
.info__content {
  line-height: 1.3125;
  margin-block: 2.25rem;
}
.info__content *:first-child {
  margin-top: 0;
}
.info__content *:last-child {
  margin-bottom: 0;
}
.info__subheading {
  align-items: center;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: flex-start;
  gap: 0.75rem;
  color: hsl(221, 13%, 38%);
  font-size: 1rem;
  font-weight: 500;
}
@media (min-width: 48rem) {
  .info__subheading::before {
    background-position: center;
    background-repeat: no-repeat;
    content: "";
    display: block;
    flex-shrink: 0;
    height: 3rem;
    width: 3rem;
  }
}

.info_section--venue .info__content {
  align-items: flex-start;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: flex-start;
  gap: 0.75rem;
}
@media (min-width: 48rem) {
  .info_section--venue .info__content::before {
    background-image: url(../images/icon-marker.svg);
    background-position: center;
    background-repeat: no-repeat;
    content: "";
    display: block;
    flex-shrink: 0;
    height: 3rem;
    width: 3rem;
  }
}

.info_section--htgt .by-bus .info__subheading::before {
  background-image: url(../images/icon-by-bus.svg);
}

.info_section--htgt .by-tram .info__subheading::before {
  background-image: url(../images/icon-by-tram.svg);
}

.info_section--htgt .by-taxi .info__subheading::before {
  background-image: url(../images/icon-by-taxi.svg);
}

@media (min-width: 48rem) {
  .info_section--htgt .by-bus .info__text,
  .info_section--htgt .by-tram .info__text,
  .info_section--htgt .by-taxi .info__text {
    padding-left: 3.75rem;
  }
}
.info_section--htgt .by-bus .info__text > *,
.info_section--htgt .by-tram .info__text > *,
.info_section--htgt .by-taxi .info__text > * {
  margin-block: 0.75rem;
}
.info_section--htgt .by-bus .info__text h5,
.info_section--htgt .by-tram .info__text h5,
.info_section--htgt .by-taxi .info__text h5 {
  color: hsl(221, 13%, 38%);
  font-size: 1rem;
  font-weight: 500;
}

body.contrast-mode .info__heading,
body.contrast-mode .info__subheading {
  color: hsl(0, 0%, 100%);
}
body.contrast-mode .info_section--htgt .by-bus .info__text h5,
body.contrast-mode .info_section--htgt .by-tram .info__text h5,
body.contrast-mode .info_section--htgt .by-taxi .info__text h5 {
  color: hsl(0, 0%, 100%);
}

.hotels {
  display: grid;
  gap: 2.25rem;
  grid-template-columns: 1fr;
  grid-template-rows: none;
  margin-block: 2.25rem 0;
}
@media (min-width: 48rem) {
  .hotels {
    display: grid;
    gap: 2.25rem;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: none;
  }
}

.hotel {
  max-width: 100%;
}
@media (min-width: 48rem) {
  .hotel {
    max-width: 23.25rem;
  }
}
.hotel__name {
  align-items: center;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: flex-start;
  gap: 0.75rem;
  font-size: 1rem;
  font-weight: 500;
  margin-block: 0 0.75rem;
  padding-left: 2.0625rem;
}
@media (min-width: 48rem) {
  .hotel__name {
    margin-block: 0 -0.75rem;
    padding-left: 0;
  }
  .hotel__name::before {
    background-image: url(../images/icon-accommodation.svg);
    background-position: center;
    background-repeat: no-repeat;
    content: "";
    display: block;
    height: 3rem;
    width: 3rem;
  }
}
.hotel__url {
  text-decoration: none;
  color: hsl(221, 13%, 38%);
  word-wrap: break-word;
}
.hotel__url:hover {
  text-decoration: underline;
  text-decoration-color: hsl(221, 13%, 38%);
  text-decoration-thickness: 0.125rem;
}
.hotel__description {
  line-height: 1.3125;
  padding-left: 2.0625rem;
  padding-right: 2.0625rem;
}
@media (min-width: 48rem) {
  .hotel__description {
    padding-left: 3.75rem;
    padding-right: 0;
  }
}
.hotel__description > * {
  margin-block: 0.75rem;
}

.contact__map {
  height: 25.5rem;
}

.people {
  display: grid;
  gap: 3rem 1.5rem;
  grid-template-columns: repeat(1, 1fr);
  grid-template-rows: none;
  margin-inline: auto;
  max-width: 15rem;
}
@media (min-width: 30rem) {
  .people {
    display: grid;
    gap: 3rem 1.5rem;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: none;
    max-width: 31.5rem;
  }
}
@media (min-width: 48rem) {
  .people {
    display: grid;
    gap: 3rem 1.5rem;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: none;
    max-width: 48rem;
  }
}
@media (min-width: 70.5rem) {
  .people {
    display: grid;
    gap: 3rem 1.5rem;
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: none;
    max-width: 64.5rem;
  }
}

.person {
  align-items: center;
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  justify-content: flex-start;
  gap: normal normal;
  margin-inline: auto;
  max-width: 15rem;
}
.person__photo {
  border: 0.1875rem solid hsl(221, 15%, 78%);
  border-radius: 50%;
  transition: all 0.5s;
}
.person__photo:hover {
  transform: scale(1.1);
}
.person__name, .person__unit, .person__subunit {
  text-align: center;
}
.person__name {
  color: hsl(221, 19%, 8%);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.3125;
  margin-block: 1.125rem 0.75rem;
}
.person__unit, .person__subunit {
  color: hsl(221, 13%, 38%);
  font-size: 0.875rem;
  line-height: 1.3125;
}
.person__unit {
  font-weight: 500;
}
.person__subunit {
  margin-block: 0.375rem 0;
}

body.contrast-mode .person__photo {
  border-color: hsl(0, 0%, 10%);
}
body.contrast-mode .person__name,
body.contrast-mode .person__unit,
body.contrast-mode .person__subunit {
  color: hsl(0, 0%, 100%);
}

.title {
  align-items: center;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: flex-start;
  gap: 1.5rem;
  color: hsl(221, 19%, 8%);
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1;
  margin-block: 0 3rem;
  margin-inline: auto;
  max-width: 48.5625rem;
  padding-right: 2.0625rem;
}
@media (min-width: 48rem) {
  .title {
    padding-right: 0;
  }
}
.title::before {
  --dot-size: 0.5625rem;
  background-image: url(../images/icon-dot.svg);
  background-position: center;
  background-repeat: no-repeat;
  content: "";
  display: block;
  flex-shrink: 0;
  height: var(--dot-size);
  margin-block: 0 0.9375rem;
  width: var(--dot-size);
}
.title span {
  border-bottom: 0.1875rem solid hsl(221, 17%, 88%);
  display: block;
  padding-bottom: 0.75rem;
  width: 100%;
}

.title--no-border {
  border: 0;
}

.home .section .title {
  color: hsl(221, 19%, 8%);
}

.home .section.about .title::before {
  margin-block: auto 1.53125rem;
}
.home .section.about .title span {
  align-items: start;
  display: flex;
  flex-direction: column-reverse;
  flex-wrap: nowrap;
  justify-content: space-between;
  gap: 0.75rem;
}
@media (min-width: 30rem) {
  .home .section.about .title span {
    align-items: end;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: space-between;
    gap: normal normal;
  }
}

.home .section.program .title {
  color: hsl(18, 13%, 8%);
}
.home .section.program .title span {
  border-color: hsl(18, 9%, 78%);
}

.search-results .excerpts .title::before {
  display: none;
}
.search-results .excerpts .title__link {
  text-decoration: none;
  font-size: 1.125rem;
}
.search-results .excerpts .title__link:hover {
  text-decoration: underline;
  text-decoration-color: hsl(221, 59%, 17%);
  text-decoration-thickness: 0.125rem;
}

body.contrast-mode .title,
body.contrast-mode .home .section .title .home .section.program .title {
  color: hsl(0, 0%, 100%) !important;
}
body.contrast-mode .title span {
  border-color: hsl(0, 0%, 10%);
}
body.contrast-mode .section.program .title span {
  border-color: hsl(0, 0%, 10%);
}

.page .content, .single .content {
  margin-inline: auto;
  max-width: 45rem;
}

.main {
  margin-block: 6rem;
}

@media print {
  .main {
    margin-block: 0;
  }
}
.copyright {
  font-size: 0.875rem;
  line-height: 1.3125;
  text-align: center;
}
@media (min-width: 70.5rem) {
  .copyright {
    text-align: left;
  }
}

.scroll-to-top {
  align-items: center;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: center;
  gap: 0.25rem;
  background-color: hsl(221, 59%, 17%);
  border: 0;
  border-radius: 50%;
  color: hsl(221, 19%, 98%);
  font-family: "Rubik", sans-serif;
  font-size: 1rem;
  height: 2.25rem;
  padding: 0;
  user-select: none;
  width: 2.25rem;
}
.scroll-to-top:hover {
  background-color: #0d1831;
}

body.contrast-mode .scroll-to-top {
  align-items: center;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: center;
  gap: 0.25rem;
  background-color: hsl(0, 0%, 10%);
  border: 0;
  border-radius: 50%;
  color: hsl(0, 0%, 100%);
  font-family: "Rubik", sans-serif;
  font-size: 1rem;
  height: 2.25rem;
  padding: 0;
  user-select: none;
  width: 2.25rem;
}
body.contrast-mode .scroll-to-top:hover {
  background-color: #0d0d0d;
}

.credits {
  align-items: center;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: center;
  gap: normal normal;
  height: 4.5rem;
}
@media (min-width: 70.5rem) {
  .credits {
    align-items: center;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: flex-start;
    gap: normal normal;
  }
}
.credits .credits__link {
  color: hsl(18, 7%, 38%);
  font-size: 0.875rem;
  line-height: 1;
}
.credits .credits__link strong {
  font-weight: 500;
}

body.contrast-mode .credits__link {
  color: hsl(60, 100%, 50%);
}

.wp-block-separator {
  border: 0.0625rem solid hsl(221, 13%, 68%);
  margin-block: 1.5rem;
}

.wp-block-file {
  align-items: center;
  background-color: hsl(20, 89%, 49%);
  border-radius: 0.375rem;
  display: flex;
  justify-content: space-between;
  margin-block: 0.75rem;
  min-height: 3.25rem;
  padding-block: 0.375rem;
  padding-inline: 0.75rem 0.375rem;
}
.wp-block-file .wp-block-file__button {
  align-items: center;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: center;
  gap: 0.25rem;
  background-color: hsl(18, 83%, 63%);
  border: 0;
  border-radius: 50%;
  color: hsl(18, 13%, 98%);
  font-family: "Rubik", sans-serif;
  font-size: 1rem;
  height: 2.25rem;
  padding: 0;
  user-select: none;
  width: 2.25rem;
}
.wp-block-file .wp-block-file__button:hover {
  background-color: #ed703b;
}

.wp-block-gallery {
  margin-block: 3rem;
}
.wp-block-gallery.is-layout-flex {
  align-items: normal;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 0.75rem !important;
}
.wp-block-gallery.columns-default .wp-block-image {
  width: calc(33% - 0.75rem);
}
.wp-block-gallery.columns-1 .wp-block-image {
  width: 100%;
}
.wp-block-gallery.columns-2 .wp-block-image {
  width: calc(50% - 0.75rem);
}
.wp-block-gallery.columns-3 .wp-block-image {
  width: calc(33% - 0.75rem);
}
.wp-block-gallery.columns-4 .wp-block-image {
  width: calc(25% - 0.75rem);
}
.wp-block-gallery.columns-5 .wp-block-image {
  width: calc(20% - 0.75rem);
}
.wp-block-gallery.columns-6 .wp-block-image {
  width: calc(16% - 0.75rem);
}
.wp-block-gallery .wp-block-image {
  flex-grow: 1;
  position: relative;
}
.wp-block-gallery .wp-block-image img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}
.wp-block-gallery .wp-block-image .wp-element-caption {
  background-image: linear-gradient(to top, rgba(17, 19, 24, 0.75), transparent);
  color: hsl(221, 19%, 98%);
  font-style: normal;
  inset: auto 0 0 0;
  padding-block: 0.75rem 0.375rem;
  padding-inline: 0.25rem;
  position: absolute;
}
.wp-block-gallery .blocks-gallery-caption {
  flex-basis: 100%;
  flex-grow: 1;
  margin-block: 0;
}

.wp-block-image figure.alignleft {
  float: left;
  margin-right: 1.5rem;
  margin-bottom: 1.5rem;
}
.wp-block-image figure.alignright {
  float: right;
  margin-left: 1.5rem;
  margin-bottom: 1.5rem;
}
.wp-block-image figure.aligncenter {
  margin-block: 3rem;
}
.wp-block-image figure.aligncenter img {
  margin-inline: auto;
}
.wp-block-video {
  margin-block: 1.5rem;
}
.wp-block-video video {
  height: auto;
  width: 100%;
}
.wp-block-video figcaption {
  color: hsl(221, 13%, 38%);
  font-size: 0.875rem;
  line-height: 1.3125;
  margin-block: 0.375rem 0;
  text-align: center;
}

h2.wp-block-heading {
  font-size: 1.25rem;
  font-weight: 600;
  margin-block: 3rem 1.5rem;
}
.wp-block-gallery + h2.wp-block-heading, .wp-block-image + h2.wp-block-heading {
  margin-block: 3rem -1.5rem;
}

h3.wp-block-heading {
  font-size: 1.125rem;
  font-weight: 500;
  margin-block: 3rem 1.5rem;
}

.content h2.wp-block-heading,
.content h3.wp-block-heading,
.content h4.wp-block-heading,
.content h5.wp-block-heading,
.content h6.wp-block-heading {
  color: hsl(221, 59%, 17%);
}
.content h2.wp-block-heading:first-child,
.content h3.wp-block-heading:first-child,
.content h4.wp-block-heading:first-child,
.content h5.wp-block-heading:first-child,
.content h6.wp-block-heading:first-child {
  margin-block: 0 1.5rem;
}

body.contrast-mode .content h2.wp-block-heading,
body.contrast-mode .content h3.wp-block-heading,
body.contrast-mode .content h4.wp-block-heading,
body.contrast-mode .content h5.wp-block-heading,
body.contrast-mode .content h6.wp-block-heading {
  color: hsl(0, 0%, 100%);
}

ul,
ol {
  color: hsl(221, 13%, 38%);
}

body.contrast-mode ul,
body.contrast-mode ol {
  color: hsl(0, 0%, 100%);
}

p {
  color: hsl(221, 13%, 38%);
}

body.contrast-mode p {
  color: hsl(0, 0%, 100%);
}

.wp-block-table {
  font-size: 1rem;
  margin-block: 1.5rem;
}
.wp-block-table table {
  border-collapse: collapse;
  text-align: left;
  width: 100%;
}
.wp-block-table thead th,
.wp-block-table tfoot td {
  background-color: hsl(221, 17%, 88%);
}
.wp-block-table th,
.wp-block-table td {
  border: 0.0625rem solid #868fa2;
  padding: 0.1875rem 0.375rem;
}
.wp-block-table figcaption {
  color: hsl(221, 13%, 38%);
  font-size: 0.875rem;
  line-height: 1.3125;
  margin-block: 0.375rem 0;
  text-align: center;
}

.wp-block-embed {
  margin-block: 1.5rem;
}

.is-type-video iframe {
  aspect-ratio: 16/9;
  display: block;
  height: auto;
  margin-inline: auto;
  width: 100%;
}

.has-text-align-left {
  text-align: left;
}

.has-text-align-center {
  text-align: center;
}

.has-text-align-right {
  text-align: right;
}