/* 
	longform.scss
	styles for fullscreen story 
	used by view/layout-fullscreen
*/
/* global constants */
/*
	_global.scss
	global constants
*/
/* color constants */
/* CSS Document */
/* background colors for media containers (scrollbox) */
.bg-gray {
  background-color: #aaa; }

.bg-red {
  background-color: #FC7C6D; }

.bg-light-red {
  background-color: #FDA298; }

.bg-black {
  background-color: #000; }

.bg-white {
  background-color: #fff; }

.bg-dark-blue {
  background-color: #162063; }

.bg-blue {
  background-color: #0079CF; }

/* but backgrounds don't apply to scrollbox-textSection (only scrollbox-mediaContainer ) */
.scrollbox-textSection.bg-gray,
.scrollbox-textSection.bg-red,
.scrollbox-textSection.bg-light-red,
.scrollbox-textSection.bg-black,
.scrollbox-textSection.bg-white,
.scrollbox-textSection.bg-dark-blue,
.scrollbox-textSection.bg-blue {
  background-color: inherit; }

.scrollbox-textSection.text-bg-white .scrollbox-textSectionCard {
  background-color: rgba(255, 255, 255, 0.8); }

.text-color-white {
  color: #fff; }

/* top menu 
@import "top-menu"; */
/* new top menu */
/* 
    topmenu for all pages on www.cmi.no
*/
.topmenu-header {
  position: sticky;
  top: -36px;
  width: 100%;
  padding: 0;
  color: #0F173D;
  height: 114px;
  z-index: 1000;
  font-size: 23px; }

.hasScrolled .topmenu-header {
  background-color: #fff; }

.topmenu-container {
  max-width: 1390px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 22px; }

.topmenu-logo {
  background-color: #151F62;
  height: 114px;
  display: flex;
  align-items: flex-end; }
  .topmenu-logo svg {
    width: 218px; }

.topmenu-nav {
  display: none;
  flex-direction: column;
  width: 100%;
  background-color: #fff;
  position: absolute;
  top: 100%;
  left: 0; }

.topmenu-nav.active {
  display: flex; }

.topmenu-ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column; }

.topmenu-li {
  margin: 0 22px;
  padding: .8em 0;
  border-bottom: 1px solid #6E749D; }

.topmenu-link, .topmenu-button {
  position: relative;
  color: #0F173D;
  text-decoration: none;
  padding: 0;
  display: inline-block;
  cursor: pointer;
  text-align: left;
  width: 100%;
  background: none;
  border: none;
  letter-spacing: 0.5px; }

.topmenu-link:hover, .topmenu-button:hover {
  text-decoration: underline;
  color: inherit; }

.topmenu-submenu .topmenu-ul {
  flex-direction: column;
  background-color: #fff; }

.topmenu-submenu[aria-expanded="true"] > .topmenu-submenu-wrapper {
  display: block; }

.topmenu-submenu-wrapper {
  top: 100%;
  width: 100%;
  background-color: #fff;
  display: none; }

.topmenu-submenu-box {
  margin: 0 auto;
  padding: 10px 0 0; }
  .topmenu-submenu-box .topmenu-li {
    border-bottom: 0;
    padding: 6px 0; }

.topmenu-button::after {
  content: '';
  display: block;
  position: absolute;
  right: 0;
  bottom: 5px;
  width: 1em;
  height: 1em;
  background-repeat: no-repeat;
  background-size: contain;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="1 7 12 18 23 7"/></svg>');
  transition: transform 0.3s ease; }

.topmenu-button[aria-expanded="true"]::after {
  transform: rotate(180deg);
  /* Rotate caret when expanded */ }

.topmenu-search-box {
  position: relative;
  padding: 1.5em 0;
  display: flex;
  align-items: center; }
  .topmenu-search-box.topmenu-li {
    border-bottom: 0; }
  .topmenu-search-box form {
    flex-grow: 1; }

.topmenu-search-input {
  width: 100%;
  padding: 10px;
  padding-left: 30px;
  border: 1px solid #0F173D;
  border-radius: 50px;
  background: none;
  font-size: 17px; }

.topmenu-search-icon {
  position: absolute;
  left: 10px; }

.topmenu-toggle {
  padding-top: 36px;
  background: none;
  border: none;
  color: #0F173D;
  font-size: 1.5em;
  cursor: pointer;
  display: block; }
  .topmenu-toggle svg {
    width: 100%;
    height: 100%; }
  .topmenu-toggle .line1, .topmenu-toggle .line2 {
    transition: transform 0.3s ease;
    transform-origin: center; }
  .topmenu-toggle.active .line1 {
    transform: rotate(45deg) translate(0, 6px); }
  .topmenu-toggle.active .line2 {
    transform: rotate(-45deg) translate(0, -6px); }

.topmenu-search-box-desktop {
  display: none; }

@media (min-width: 1024px) {
  .topmenu-header {
    font-size: 17px; }

  .topmenu-container {
    flex-direction: row; }

  .topmenu-nav {
    display: flex;
    flex-direction: row;
    position: static;
    width: auto;
    padding-top: 35px; }

  .topmenu-ul {
    display: flex;
    flex-direction: row;
    padding-left: 22px; }

  .topmenu-li {
    border-bottom: 0; }

  .topmenu-search-box {
    display: none; }

  .topmenu-search-box-desktop {
    position: relative;
    display: flex;
    align-items: center;
    margin-left: auto;
    padding-top: 35px; }

  .topmenu-search-input {
    width: 150px;
    transition: width 0.3s ease;
    transform-origin: right; }

  .topmenu-search-input:focus {
    width: 200px;
    /* Increase width on focus */
    outline: none;
    /* Remove default outline */
    border-width: 2px; }

  .topmenu-button {
    padding-right: 1em; }

  .topmenu-button::after {
    width: .8em;
    height: .8em; }

  .topmenu-submenu-wrapper {
    position: absolute;
    left: 0;
    box-shadow: 0px 5px 5px rgba(0, 0, 0, 0.2); }

  .topmenu-submenu-box {
    max-width: 1390px;
    margin: 0 auto;
    padding: 10px 20px 10px 264px; }

  .topmenu-toggle {
    display: none; } }
@media (min-width: 1248px) {
  .topmenu-search-input:focus {
    width: 300px; } }
/* tweet */
/* tweet */
.icon.tweet:before {
  content: ''; }

a.tweet,
.longform a.tweet {
  display: block;
  margin-top: 2em;
  font-family: "Lato", "Lato-fallback", sans-serif;
  font-size: 16px;
  font-weight: bold;
  text-transform: lowercase;
  color: #fb6157;
  margin-left: 1em;
  border-bottom: 0; }
  a.tweet:hover,
  .longform a.tweet:hover {
    border-bottom: 0;
    text-decoration: underline; }

a.tweet:before {
  height: 1.5em;
  width: 100%;
  display: block;
  background: linear-gradient(#fb6157, #fb6157) no-repeat center/1px 100%;
  margin-bottom: .5em; }

/* tiles */
/*
	_tiles.scss
*/
/* breakpoints */
/* tiles container contains tile-columns */
.tiles {
  display: block;
  clear: both;
  width: 100%;
  margin: 0 auto;
  padding: 0;
  max-width: 1300px;
  overflow: auto; }

/* top-tiles have one featured tile-column first/on top */
/* plain-tiles have 4 equal tile-columns */
/* full width on mobile */
.tile-column {
  width: 100%;
  float: none;
  box-sizing: border-box;
  position: relative;
  padding: 0 16px; }

.tile {
  width: 100%;
  box-sizing: border-box;
  display: table;
  padding-bottom: 16px;
  border-bottom: 1px solid #B8BBD0;
  margin-bottom: 16px; }

/* left-aligned image on mobile */
.tile-image-wrapper {
  display: table-cell;
  width: 33%; }

.tile-image {
  width: 100%;
  height: 0;
  padding-bottom: 150%;
  /* image ratio */
  position: relative;
  overflow: hidden; }

/* show border around space where image is missing */
.empty-image {
  border: 1px solid #eee; }

/* top-tiles item 4 and plain-tiles item 2 and 4 have square image */
.plain-tiles .tile.item2 .tile-image,
.tile.item4 .tile-image {
  padding-bottom: 100%; }

.tile-image img {
  position: absolute;
  height: 100%;
  /* if object-fit not supported */
  width: auto;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%); }

/* if object-fit supported */
@supports (object-fit: cover) {
  .tile-image img {
    object-fit: cover;
    width: 100%; } }
.tile-image-label {
  position: absolute;
  box-sizing: border-box;
  right: 0;
  bottom: 0px;
  text-transform: uppercase;
  letter-spacing: .05em;
  font-size: 12px;
  font-family: "Lato";
  color: #fff;
  background-color: #FB4631;
  padding: 6px 10px; }

.tile-text {
  display: table-cell;
  vertical-align: top;
  box-sizing: border-box;
  background-color: #fff;
  padding-left: 16px;
  font-size: 12px;
  color: #5C6392; }

.tile-text-label {
  text-transform: uppercase;
  font-size: 12px;
  font-family: "Lato";
  letter-spacing: .05em;
  padding: 0 0 6px; }

.tile-text-title {
  font-size: 22px;
  font-family: "Playfair Display";
  font-weight: normal;
  line-height: 1.3;
  margin-top: 0;
  color: #162063; }

/* special tiles have different font ( currently all have it ) */
.special .tile-text-title {
  font-family: "Playfair Display"; }

.tile-text .tile-text-content {
  font-size: 15px;
  font-family: "Playfair Display";
  font-weight: normal; }

.tile-text-content::before {
  content: '';
  display: block;
  width: 35px;
  border-bottom: 1px solid #5C6392;
  margin: .6em 0; }

/* on blue background white text */
.bg-blue .tile-text {
  background-color: #0079CF;
  color: #fff; }
  .bg-blue .tile-text a, .bg-blue .tile-text a:hover, .bg-blue .tile-text a:active {
    color: #fff; }

/* columns and img on top (not left ) */
@media (min-width: 500px) {
  .tile-column {
    width: 50%;
    float: left; }

  /* top tiles first column full width */
  .top-tiles .tile-column.first {
    width: 100%; }
    .top-tiles .tile-column.first .tile-image-label {
      bottom: 91px; }
    .top-tiles .tile-column.first .tile-text {
      margin-top: -91px;
      margin-left: 41px;
      padding: 25px 32px; }
    .top-tiles .tile-column.first .tile-text-title {
      font-size: 32px; }

  /* plain tiles break after two */
  .plain-tiles .tile-column:nth-child(2n+1) {
    clear: both; }

  .tile {
    display: block;
    border-bottom: 0; }

  .tile-image-wrapper {
    display: inherit;
    width: 100%; }

  .tile-image-label {
    font-size: 15px;
    padding: 10px 32px;
    bottom: 32px; }

  .tile-text {
    position: relative;
    display: inherit;
    margin-left: 16px;
    margin-top: -32px;
    padding: 16px;
    font-size: 15px; }

  .tile-text-label {
    font-size: 15px; }

  .tile-text-title {
    font-size: 22px; }

  .tile-text .tile-text-content {
    font-size: 22px; } }
@media (min-width: 800px) {
  .tile-column {
    width: 25%; }

  /* top tiles first column half width */
  .top-tiles .tile-column.first {
    width: 50%; }

  /* plain tiles undo break */
  .plain-tiles .tile-column:nth-child(2n+1) {
    clear: none; }

  .tile-text .tile-text-content {
    font-size: 22px; } }
/* tiles */
/*
	_tileaside.scss
*/
/* tileaside has text to one side, image to the other */
.tileaside {
  display: block;
  clear: both;
  width: 100%;
  margin: 50px auto;
  padding: 0;
  max-width: 1300px;
  overflow: auto; }

.tileaside-image-wrapper {
  float: left;
  width: 33%;
  padding: 0 16px; }

.tileaside-image {
  width: 100%;
  height: 0;
  padding-bottom: 150%;
  /* image ratio */
  position: relative;
  overflow: hidden; }

.tileaside-image img {
  position: absolute;
  height: 100%;
  /* if object-fit not supported */
  width: auto;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%); }

/* if object-fit supported */
@supports (object-fit: cover) {
  .tileaside-image img {
    object-fit: cover;
    width: 100%; } }
.tileaside-text {
  width: 66%;
  padding: 0 16px;
  display: table-cell;
  vertical-align: top;
  box-sizing: border-box;
  background-color: #fff;
  font-size: 15px;
  font-family: "Playfair Display";
  color: #5C6392; }
  .tileaside-text p, .tileaside-text li {
    font-family: "Playfair Display"; }

.tileaside-text-title {
  font-size: 32px;
  font-family: "Playfair Display";
  font-weight: normal;
  line-height: 1.3;
  margin-top: 0;
  color: #162063; }

/* columns and img on top (not left ) */
@media (min-width: 500px) {
  .tileaside-image-wrapper {
    width: 50%; }

  .tileaside-text-title {
    font-size: 32px; }

  .tileaside-text {
    width: 50%; }
    .tileaside-text p, .tileaside-text li {
      font-size: 22px; } }
/* scrollbox */
/*
	scrollbox has image sections in the background and text sections that scroll over them
	onscroll.js script adds class is-outside to textSections out of view
	mediaContainers have position: sticky and flex display order: -1 so on top
	when textSection comes into view mediaContainer immediately below get opacity 1 (visible)
*/
.scrollbox-outer-container {
  width: 100%;
  margin: 0;
  clear: both; }

.scrollbox-inner-container {
  position: relative;
  display: flex;
  flex-direction: column; }

.scrollbox-textSection {
  padding-top: 1px;
  min-height: 100vh; }

.scrollbox-textSectionCard {
  margin: 0 auto;
  padding: 30px;
  max-width: 780px;
  position: relative;
  z-index: 2;
  background: none;
  font-family: Georgia; }

.scrollbox-mediaContainer {
  position: relative;
  width: 100%;
  height: 100vh;
  margin-top: -100vh;
  /* move up to align with textSection above */
  top: 0;
  z-index: 0;
  opacity: 1;
  will-change: opacity, background-color;
  transition: opacity .35s, background-color .35s ease-out .35s; }

.scrollbox-media {
  position: absolute;
  top: 0;
  bottom: 1px;
  left: 0;
  right: 0; }

.scrollbox-mediaImage img,
.scrollbox-mediaImage video,
.scrollbox-mediaImage picture {
  width: 100%; }

/* create scroll effect if position sticky supported */
@supports (position: sticky) {
  .scrollbox-inner-container {
    padding-top: 100vh; }

  .scrollbox-textSection {
    padding-bottom: 100vh; }

  .scrollbox-mediaContainer {
    position: sticky;
    opacity: 1;
    order: -1;
    will-change: opacity, background-color;
    transition: opacity .35s ease-out .35s, background-color .35s ease-out .35s; }
    .scrollbox-mediaContainer img {
      transition: opacity .35s ease-out .35s, background-color .35s ease-out .35s; }

  /* mediaContainer immediately after textSection is invisible if out of view */
  .scrollbox-textSection.is-outside + .scrollbox-mediaContainer {
    opacity: 0; }

  /* and overlay is not shown if out of view */
  .scrollbox-textSection.is-outside + .scrollbox-mediaContainer.overlay {
    background-color: transparent; }
    .scrollbox-textSection.is-outside + .scrollbox-mediaContainer.overlay img {
      opacity: 1; }

  /* except very first one which is visible but behind the other ones (z-index: 0) */
  .scrollbox-inner-container > div:first-child + .scrollbox-mediaContainer {
    opacity: 1;
    z-index: 0; }

  /* very first scrollbox-textSection is header section */
  .itemNumber1.scrollbox-textSection {
    margin-top: -100vh; } }
/* make sure video fills screen (should work with only object-fit: cover) */
.scrollbox-mediaImage video {
  position: absolute;
  min-width: 100%;
  min-height: 100%;
  width: auto;
  height: auto;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%); }

@supports (object-fit: cover) {
  .scrollbox-mediaImage img,
  .scrollbox-mediaImage video,
  .scrollbox-mediaImage picture {
    width: 100%;
    height: 100%;
    object-fit: cover; } }
/* for text inside scrolled boxes (on top of background) */
.scrollbox-textSection {
  font-size: 20px; }
  .scrollbox-textSection blockquote {
    font-family: 'Playfair Display';
    font-size: 20px;
    margin: 2em auto; }
  .scrollbox-textSection .ingress {
    font-size: 20px;
    line-height: 1.4em; }
  .scrollbox-textSection h1, .scrollbox-textSection h2, .scrollbox-textSection h3 {
    font-family: 'Playfair Display';
    font-weight: 100; }

/* very first scrollbox-textSection is header section */
.itemNumber1.scrollbox-textSection {
  padding-top: 20vh; }
  .itemNumber1.scrollbox-textSection .scrollbox-textSectionCard {
    max-width: 100vw;
    padding-left: 10px;
    padding-right: 10px;
    text-align: center;
    color: white; }
    .itemNumber1.scrollbox-textSection .scrollbox-textSectionCard h1 {
      font-size: 37px;
      line-height: 1.2em; }
    .itemNumber1.scrollbox-textSection .scrollbox-textSectionCard h2 {
      font-size: 22px;
      line-height: 1.2em; }
    .itemNumber1.scrollbox-textSection .scrollbox-textSectionCard p {
      font-family: Lato;
      font-size: 11px; }
      .itemNumber1.scrollbox-textSection .scrollbox-textSectionCard p.ingress {
        font-family: 'Playfair Display';
        font-size: 20px;
        line-height: 1.4em; }
    .itemNumber1.scrollbox-textSection .scrollbox-textSectionCard h1, .itemNumber1.scrollbox-textSection .scrollbox-textSectionCard h2, .itemNumber1.scrollbox-textSection .scrollbox-textSectionCard h3, .itemNumber1.scrollbox-textSection .scrollbox-textSectionCard p {
      color: white; }
    .itemNumber1.scrollbox-textSection .scrollbox-textSectionCard a, .itemNumber1.scrollbox-textSection .scrollbox-textSectionCard a:hover, .itemNumber1.scrollbox-textSection .scrollbox-textSectionCard a:focus, .itemNumber1.scrollbox-textSection .scrollbox-textSectionCard a:visited {
      color: white; }
    .itemNumber1.scrollbox-textSection .scrollbox-textSectionCard a:hover {
      text-decoration: underline; }

@media (min-width: 720px) {
  .itemNumber1.scrollbox-textSection .scrollbox-textSectionCard {
    max-width: 960px;
    padding-left: 30px;
    padding-right: 30px;
    text-align: center;
    color: white; }
    .itemNumber1.scrollbox-textSection .scrollbox-textSectionCard h1 {
      font-size: 100px; }
    .itemNumber1.scrollbox-textSection .scrollbox-textSectionCard h2 {
      font-size: 32px; }
    .itemNumber1.scrollbox-textSection .scrollbox-textSectionCard p {
      font-size: 15px; }
      .itemNumber1.scrollbox-textSection .scrollbox-textSectionCard p.ingress {
        font-family: 'Playfair Display';
        font-size: 32px; }

  .scrollbox-textSection p {
    font-size: 22px; }
  .scrollbox-textSection blockquote {
    font-size: 32px; }
  .scrollbox-textSection .ingress {
    font-size: 32px; } }
/* img barely visible behind background */
.overlay img {
  opacity: 0.2; }

/* img quite visible behind overlay */
.overlay-light img {
  opacity: 0.8; }

/* share buttons */
/* 
	_sharebuttons.scss
	styles for longform article
*/
.sharebuttons {
  text-align: center;
  margin-top: 2em; }

.sharebuttons a {
  font-size: 1.2em;
  display: inline-block;
  width: 2.2em;
  height: 2.2em;
  padding: .2em;
  margin: 0 .2em;
  border: 1px solid #fff;
  border-radius: 100px; }

/* guide */
/* 
	styles for cmi guide
	potentially some reusable components here
*/
html {
  scroll-behavior: smooth; }

.guide-grid {
  max-width: 1280px;
  margin: 0 auto;
  position: relative;
  display: grid;
  grid-gap: 10px;
  grid-template-columns: 10px 1fr 10px;
  grid-template-areas: ". main ." ". side .";
  justify-content: center; }
  @media screen and (min-width: 900px) {
    .guide-grid {
      grid-template-columns: 10px 3fr 1fr 10px;
      grid-template-areas: ". main side ."; } }

.guide-header {
  position: relative;
  width: 100%;
  max-width: 1260px;
  margin: auto;
  padding-top: 100px;
  text-align: center;
  color: #000;
  /* iframe inside will be a video embed */ }
  .guide-header h1 {
    position: relative;
    font-family: "Playfair Display";
    font-size: 50px;
    font-weight: normal;
    line-height: 58px;
    color: #000;
    margin: 1em .5em 1em; }
  .guide-header h1::after {
    content: "";
    position: absolute;
    border-top: 3px solid #162063;
    left: 50%;
    bottom: -30px;
    margin-left: -30px;
    width: 60px;
    height: 0px; }
  .guide-header iframe {
    width: 100%; }

.guide-header + .guide-header {
  padding-top: 0; }

.guide-content {
  position: relative;
  width: 100%;
  max-width: 1260px;
  margin: auto;
  text-align: left;
  margin-top: 2em;
  clear: both;
  overflow: auto; }

.guide-main {
  grid-area: main; }

.guide-side {
  grid-area: side;
  position: sticky;
  top: 50px;
  height: 100vh; }
  .guide-side h1 {
    font-family: "Playfair Display";
    font-size: 47px;
    font-weight: bold;
    color: #162063; }
  .guide-side ol {
    padding-left: 0;
    list-style: none; }
  .guide-side a {
    font-family: Lato, sans-serif;
    font-size: 16px;
    font-weight: normal;
    line-height: 40px;
    color: #0079CF;
    text-transform: uppercase; }
  .guide-side a:hover {
    color: #162063; }
  .guide-side .guide-side-link-button {
    display: block;
    width: 100%;
    border: 1px solid #162063;
    background-color: #162063;
    color: #fff;
    font-family: Lato, sans-serif;
    font-size: 18px;
    font-weight: bold;
    text-transform: uppercase;
    text-align: center;
    padding: 0;
    margin: 10px 0; }
    .guide-side .guide-side-link-button:hover {
      color: #162063;
      background-color: #fff; }

.guide-text {
  width: 100%;
  max-width: 710px;
  font-family: Georgia, serif;
  font-size: 22px;
  line-height: 40px; }
  .guide-text a {
    color: #0079CF; }
  .guide-text a:hover {
    color: #162063; }
  .guide-text h2, .guide-text .heading {
    font-size: 30px;
    font-weight: bold;
    margin: 2.75em 0 1em; }
  .guide-text ul li, .guide-text ol li {
    margin-left: 30px;
    padding-left: 10px;
    margin-bottom: .8em; }
  .guide-text ol {
    padding: 0;
    list-style: none;
    counter-reset: my-counter; }
  .guide-text ol li {
    counter-increment: my-counter; }
  .guide-text ol li::before {
    content: "0" counter(my-counter) " ";
    color: #162063;
    font-family: Lato, sans-serif;
    font-size: 18px;
    font-weight: bold;
    padding-right: 15px;
    margin-left: -40px; }

.highlight {
  width: 100%;
  padding-left: 40px;
  border-left: 1px solid #5C6392; }

.bullet-heading {
  margin-top: 1em;
  font-family: Lato, sans-serif;
  font-size: 18px;
  font-weight: bold;
  line-height: 40px;
  text-transform: uppercase;
  color: #162063; }

/* event series */
/* 
	styles for event series
*/
html {
  scroll-behavior: smooth; }

.singlecolumn-header-grid {
  width: 100%;
  background-color: #FB4631;
  margin: 0 auto;
  padding-top: 100px;
  position: relative;
  display: grid;
  grid-gap: 0;
  grid-template-columns: 1fr;
  grid-template-areas: "main";
  justify-content: center; }
  @media screen and (min-width: 710px) {
    .singlecolumn-header-grid {
      grid-template-columns: 10% 1fr 1fr 10%;
      grid-template-areas: ". img main ."; } }

.singlecolumn-header-img {
  grid-area: main; }
  @media screen and (min-width: 710px) {
    .singlecolumn-header-img {
      grid-area: img; } }
  .singlecolumn-header-img img {
    max-width: 100%; }

.singlecolumn-header-text {
  grid-area: main;
  color: #fff;
  text-align: center; }
  .singlecolumn-header-text h1 {
    position: relative;
    font-family: "Playfair Display";
    font-size: 50px;
    font-weight: normal;
    line-height: 58px;
    margin: 1em .5em 1em;
    color: #fff; }
  .singlecolumn-header-text h1::after {
    content: "";
    position: absolute;
    border-top: 3px solid #fff;
    left: 50%;
    bottom: -30px;
    margin-left: -30px;
    width: 60px;
    height: 0px; }

.singlecolumn-header-intro {
  position: relative;
  font-family: "Playfair Display";
  font-size: 24px;
  font-weight: normal;
  line-height: 34px;
  margin: 1em .5em 1em;
  color: #fff; }

.singlecolumn-header-logo {
  max-height: 91px;
  padding: 10px; }

.singlecolumn-grid {
  margin: 0 auto;
  position: relative;
  display: grid;
  grid-gap: 0;
  grid-template-columns: 1fr;
  grid-template-areas: "main";
  justify-content: center; }
  @media screen and (min-width: 710px) {
    .singlecolumn-grid {
      grid-template-columns: auto 710px auto;
      grid-template-areas: ". main ."; } }

.singlecolumn-main {
  grid-area: main; }

.singlecolumn-text {
  width: 100%;
  max-width: 710px;
  font-family: Georgia, serif;
  font-size: 22px;
  line-height: 40px; }
  .singlecolumn-text a {
    color: #0079CF; }
  .singlecolumn-text a:hover {
    color: #162063; }
  .singlecolumn-text h2, .singlecolumn-text .heading {
    font-size: 30px;
    font-weight: bold;
    margin: 2.75em 0 1em; }
  .singlecolumn-text ul li, .singlecolumn-text ol li {
    margin-left: 30px;
    padding-left: 10px;
    margin-bottom: .8em; }
  .singlecolumn-text ol {
    padding: 0;
    list-style: none;
    counter-reset: my-counter; }
  .singlecolumn-text ol li {
    counter-increment: my-counter; }
  .singlecolumn-text ol li::before {
    content: "0" counter(my-counter) " ";
    color: #162063;
    font-family: Lato, sans-serif;
    font-size: 18px;
    font-weight: bold;
    padding-right: 15px;
    margin-left: -40px; }

.event-series-event {
  margin: 60px 0; }

.event-speakers {
  font-family: Lato, sans-serif;
  font-size: 18px;
  color: #162063;
  font-style: italic;
  font-weight: bold; }

.highlight {
  width: 100%;
  padding-left: 40px;
  border-left: 1px solid #5C6392; }

.bullet-heading {
  margin-top: 1em;
  font-family: Lato, sans-serif;
  font-size: 18px;
  font-weight: bold;
  line-height: 40px;
  text-transform: uppercase;
  color: #162063; }

a.registration-button {
  border: 1px solid #162063;
  background-color: #162063;
  color: #fff;
  font-family: Lato, sans-serif;
  font-size: 18px;
  font-weight: bold;
  text-transform: uppercase;
  text-align: center;
  padding: 10px 30px;
  margin: 10px 0; }
  a.registration-button:hover {
    color: #162063;
    background-color: #fff; }

.person-name {
  font-family: Lato, sans-serif;
  font-size: 20px;
  font-weight: bold;
  color: #162063;
  line-height: 40px; }

.person-position {
  font-family: Lato, sans-serif;
  font-size: 15px;
  color: #162063;
  line-height: 17px; }

.person-institution {
  font-family: Lato, sans-serif;
  font-size: 15px;
  color: #162063;
  line-height: 17px; }

.person-image {
  background-image: url(table.jpg);
  background-size: cover;
  width: 147px;
  height: 147px;
  border-radius: 100px;
  border: 1px solid #162063;
  float: left;
  margin-right: 20px; }

/* longform */
.longform .longtext {
  font-family: Georgia;
  font-size: 18px;
  line-height: 1.6em;
  max-width: 720px;
  margin: 0 auto;
  /* fallback for ie */ }
  .longform .longtext p, .longform .longtext li, .longform .longtext td, .longform .longtext blockquote {
    color: inherit; }
  .longform .longtext hr {
    border: 0;
    height: 1px;
    background-image: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0)); }

.longform h1, .longform h2, .longform h3, .longform h4, .longform h5, .longform h6 {
  color: #162063; }
.longform a, .longform a:hover {
  color: #162063; }

.longform figure {
  margin: 0;
  width: auto; }
  .longform figure figcaption {
    font-family: Lato;
    font-size: 15px;
    font-weight: normal;
    color: #606060;
    line-height: 1.6em;
    text-align: center;
    padding: 10px; }

/* image expands into margin if there is room */
@media (min-width: 720px) {
  .longform figure {
    margin-left: calc( (100vw - 720px) / -5);
    margin-right: calc( (100vw - 720px) / -5); }

  .longform .longtext {
    font-size: 20px; } }
.longform blockquote {
  font-size: 32px;
  color: inherit;
  margin: 2em auto; }

/* container for ordinary text sections */
.text-container {
  max-width: 1300px;
  margin: 4em auto;
  padding-left: 20px;
  padding-right: 20px;
  clear: both; }

/* pagepart section wrapper for custom classes like bg-col */
.pagepart-section-wrapper {
  width: 100%;
  overflow: auto; }

/* headings of pageparts */
.pagepart-section h1 {
  font-family: "Playfair Display";
  font-size: 33px;
  padding-top: 1.5em; }
.pagepart-section p {
  font-family: "Playfair Display";
  font-size: 19px; }
.pagepart-section p.ingress {
  font-size: 26px; }

/* longtext section */
.pagepart-section-text p {
  font-family: "Playfair Display";
  font-size: 19px; }

@media (min-width: 500px) {
  .pagepart-section h1 {
    font-size: 40px; }
  .pagepart-section p {
    font-family: "Playfair Display";
    font-size: 26px; }
  .pagepart-section p.ingress {
    font-size: 32px; }

  .pagepart-section-text p {
    font-size: 19px; } }
@media (min-width: 800px) {
  .pagepart-section h1 {
    font-size: 47px; }
  .pagepart-section p {
    font-family: "Playfair Display";
    font-size: 32px; }
  .pagepart-section p.ingress {
    font-size: 32px; }

  .pagepart-section-text p {
    font-size: 22px; } }
