/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */

/* Document
   ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */

html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

/* Sections
   ========================================================================== */

/**
 * Remove the margin in all browsers.
 */

body {
  margin: 0;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */

h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */

hr {
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  overflow: visible; /* 2 */
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

pre {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/* Text-level semantics
   ========================================================================== */

/**
 * Remove the gray background on active links in IE 10.
 */

a {
  background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */

abbr[title] {
  border-bottom: none; /* 1 */
  text-decoration: underline; /* 2 */
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted; /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */

b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */

small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
   ========================================================================== */

/**
 * Remove the border on images inside links in IE 10.
 */

img {
  border-style: none;
}

/* Forms
   ========================================================================== */

/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
  margin: 0; /* 2 */
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */

button,
input { /* 1 */
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */

button,
select { /* 1 */
  text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */

button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */

fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */

legend {
  box-sizing: border-box; /* 1 */
  color: inherit; /* 2 */
  display: table; /* 1 */
  max-width: 100%; /* 1 */
  padding: 0; /* 3 */
  white-space: normal; /* 1 */
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */

progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */

textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */

[type="checkbox"],
[type="radio"] {
  box-sizing: border-box; /* 1 */
  padding: 0; /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */

[type="search"] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */

[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/* Interactive
   ========================================================================== */

/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */

details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */

summary {
  display: list-item;
}

/* Misc
   ========================================================================== */

/**
 * Add the correct display in IE 10+.
 */

template {
  display: none;
}

/**
 * Add the correct display in IE 10.
 */

[hidden] {
  display: none;
}

:root {
    --background-color: #263238;
    --background--highlight: #e5dadc;
}

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

html,
body {
    height: 100%;
    width: 100%;
}

html {
    background-color: #263238;
    background-color: var(--background-color);
    color: #e5dadc;
    font-family: 'Helvetica Neue', Helvetica, Geneva, sans-serif;
}

body {
    padding: 10em 2vw 3em 2vw;
}

dd {
    margin-left: 0;
    margin-top: 0.25rem;
    margin-bottom: 1rem;
}

/* Helper classes */

.hidden {
    display: none;
}

.special-color {
    color: #7DCFB6;
}

/**
 * Clearfix
 */

.clearfix::after,
.clearfix::before {
    content: '';
    display: table;
    clear: both;
}

.typo_type-1 {
    font-family: Georgia, serif;
    font-size: 3rem;
}

.typo_type-2 {
    font-size: 1.5rem;
}

.typo_type-3 {
    font-size: 1rem;
    line-height: 1.25;
}

.typo_type-4 {
    font-size: 0.8rem;
}

/* Layout helpers */

.layout-section {
    padding-top: 2rem;
}

.layout-section--highlight {
    background-color: #e5dadc;
    background-color: var(--background--highlight);
    margin-top: 2rem;
    padding-top: 1rem;
    padding-bottom: 2rem;
    color: #263238;
    color: var(--background-color);
}

.layout-section--highlight * {
    color: #263238;
    color: var(--background-color);
}

.layout-section:last-of-type {
    margin-bottom: 5em;
}

.header {
    width: 96vw;
    max-width: 100%;
    margin: 5em auto 1em;
}

@media (max-width: 45em) {
    .header {
        margin-top: 0;
    }
}

.header h1 {
    font-size: 6vw;
    margin: 0;
}

.header h1+p,
.header h3 {
    font-size: 1.75vw;
}

.logo {
    display: inline-block;
    position: relative;
    z-index: 99999;
    height: 7em;
    width: 7em;
    transition: 125ms all ease-in-out;
    will-change: auto;
}

@media (min-width: 45em) {
    .is-narrow .logo {
        position: absolute;
        left: 2vw;
        height: 3.25em;
        width: 3.25em;
    }
}

/* Navigation */

.navigation {
    position: fixed;
    z-index: 100;
    top: 0;
    left: 0;
    right: 0;
    background-color: #e5dadc;
    color: #263238;
    color: var(--background-color);
    text-align: center;
}

@media (max-width: 45em) {
    .navigation {
        position: static;
        margin-left: -1rem;
        margin-right: -1rem;
    }
}

.navigation-list {
    list-style: none;
    padding: 0;
    font-weight: bold;
}

@media (max-width: 56em) {
    .is-narrow .navigation-list {
        padding-right: 2.5rem;
    }
}

.navigation-list li {
    display: inline-block;
    margin: 0 0.5em;
    letter-spacing: 0.05em;
}

.navigation-list a,
.navigation-list a:visited,
.navigation-list a:active {
    display: inline-block;
    padding: 0.25em;
    color: #263238;
    color: var(--background-color);
    text-decoration: none;
}

@media (max-width: 45em) {
    .navigation-list a {
        padding: 0.5em;
        margin: 0.5em;
    }
}

.navigation-list li.is-active a,
.navigation-list a:hover,
.navigation-list a:focus {
    color: #263238;
    color: var(--background-color);
    border-bottom: 2px solid #263238;
    border-bottom: 2px solid var(--background-color);
}

.navigation-list a.button--in-nav {
    display: inline-block;
    transition: none;
    padding: 0.75em 1em;
    background-color: #263238;
    background-color: var(--background-color);
    color: #e5dadc;
    border-radius: 3px;
}

.navigation-list .button--in-nav:hover,
.navigation-list .button--in-nav:focus {
    border-bottom: 0;
    color: #263238;
    color: var(--background-color);
}

/**
 * Ticket
 */

.ticket {
    margin: 0;
    max-width: 45em;
    min-height: 28em;
    padding: 2em 2em 2em 2em;
}

@media (min-width: 45em) {
    .ticket {
        padding-right: 10em;
        background: url('/img/ticket.svg');
        background-size: 100%;
        background-repeat: no-repeat;
    }
}

@media (min-width: 42em) {
    .ticket {
        padding-right: 12em;
    }
}

.ticket .button {
    margin-bottom: 0.5rem;
    margin-right: 0.5rem;
}

.ticket h3 {
    font-size: 2.5em;
    margin: 0;
}

.ticket h3 .normal {
    font-size: 1rem;
    font-weight: normal;
}

.ticket h3,
.ticket strong {
    color: #fff;
}

/* Footer */

.footer {
    text-align: center;
}

.footer ul {
    list-style: none;
    padding: 0;
}

.footer li {
    display: inline-block;
}

/* Footer navigation */

.footer-nav li {
    display: inline-block;
    margin-bottom: 1rem;
}

.footer-nav li a {
    margin: 0.5em;
    padding: 0.25em;
}

.footer-nav li a:hover,
.footer-nav li a:focus {
    text-decoration: none;
}

.footer-organizers {
    padding: 1rem 0;
}

.footer-organizers li {
    display: inline-block;
    width: 5%;
    margin: 1em;
    vertical-align: top;
    min-width: 5rem;
}

.footer-organizers img {
    transition: -webkit-transform 0.3s;
    transition: transform 0.3s;
    transition: transform 0.3s, -webkit-transform 0.3s;
    border-radius: 50%;
    width: 100%;
}

.footer-organizers p {
    font-size: 0.85rem;
}

.footer-organizers a {
    display: block;
    text-decoration: none;
}

.footer-organizers a:hover img,
.footer-organizers a:focus img {
    -webkit-transform: scale(1.1);
            transform: scale(1.1);
}

.footer-partner,
.top-partners {
    margin: 0 -2vw 2rem;
    width: calc(100% + 4vw);
    padding: 2rem 0;
    background-color: #e5dadc;
    background-color: var(--background--highlight);
    text-align: center;
}

.footer-partner h3,
.top-partners h3,
.footer-partner p,
.top-partners p,
.footer-partner a,
.top-partners a,
.footer-partner li,
.top-partners li {
    color: #263238;
    color: var(--background-color);
}

.top-partners {
    position: relative;
    display: inline-block;
    width: 35em;
    padding: 1rem 0 0 0;
    margin-bottom: 0;
    -webkit-transform: skewX(-25deg) translateX(-5rem);
            transform: skewX(-25deg) translateX(-5rem);
    text-align: left;
    overflow: hidden;
}

.top-partners h3 {
    font-size: 1rem;
}

.top-partners>* {
    -webkit-transform: skewX(25deg) translateX(5.5rem);
            transform: skewX(25deg) translateX(5.5rem);
}

.top-partners>p {
    margin: -1rem 0 2rem;
    -webkit-transform: skewX(25deg) translateX(9.75rem);
            transform: skewX(25deg) translateX(9.75rem);
}

.footer-partnerList {
    padding-left: 1.4rem;
}

@media (max-width: 32em) {
    .top-partners {
        width: 100%;
        padding-left: 1rem;
    }
    .top-partners,
    .top-partners>*,
    .top-partners>p {
        -webkit-transform: none;
                transform: none;
    }
}

.footer-partnerList li {
    display: inline-block;
    width: 10%;
    margin: 1em;
    vertical-align: middle;
    min-width: 7rem;
}

.footer-partnerList a:hover img,
.footer-partnerList a:focus img {
    -webkit-transform: scale(1.1);
            transform: scale(1.1);
}

.footer-partnerList img {
    transition: -webkit-transform 0.3s;
    transition: transform 0.3s;
    transition: transform 0.3s, -webkit-transform 0.3s;
    width: 100%;
}

.theme {
    margin-bottom: 3rem;
    width: 60em;
    max-width: 100%;
    text-align: right;
}

.theme-cancellation {
    text-align: left;
}

.theme-cancellation h3 {
    margin-top: 0;
    color: #db222a;
}

.theme-contrast {
    padding: 1rem;
    background-color: #e5dadc;
    color: #263238;
    text-align: left;
}

.theme blockquote,
.theme .subline {
    font-family: Georgia, serif;
    font-size: 2.8em;
    line-height: 1.1;
    margin: 0;
}

.theme .subline--left {
    text-align: left;
}

.theme .subline--small {
    font-size: 2em;
    line-height: 1.4;
}

.theme h3 {
    font-size: 1.5em;
    margin-bottom: 0.5rem;
}

.theme p {
    font-size: 1.2em;
    line-height: 1.4;
    padding-left: 10%;
    margin-top: 0;
    margin-bottom: 2rem;
}

.theme ul p {
    margin-bottom: 1rem;
}

.theme-owl {
    display: none;
}

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

.theme--left p {
    padding-left: 0;
    padding-right: 10%;
}

@media (min-width: 80em) {
    .theme {
        position: relative;
    }
}

/* Newsletter */

.newsletter .email {
    margin-right: 0.5rem;
    margin-bottom: 0.5rem;
}

.newsletter .email,
.newsletter input[type='submit'] {
    max-height: 42px;
}

@media (max-width: 30em) {
    .newsletter .email,
    .newsletter input[type='submit'] {
        width: 100%;
    }
}

.newsletter-form,
.newsletter .description {
    max-width: 45rem;
}

/**
 * COC
 */

.coc-contact {
    width: 35em;
    max-width: 100%;
    margin: 4em auto;
    border: 0.5em solid #e5dadc;
    padding: 1em;
    text-align: center;
}

.coc-contact h4,
.coc-contact p,
.coc-contact a {
    color: #e5dadc;
}

.coc-contact h4 {
    font-size: 1.25em;
    margin: 0.5em 0 0.35em 0;
}

.coc-contact p {
    font-size: 1rem;
    line-height: 2;
}

/* Partners */

.partners {
    margin: 3rem 0 8rem;
}

.partners h4 {
    font-size: 2em;
}

.partner-list,
.image-list,
.friends-list {
    display: flex;
    padding: 0;
    list-style: none;
}

.partner-list .link,
.image-list .link,
.friends-list .link {
    transition: -webkit-transform 0.3s;
    transition: transform 0.3s;
    transition: transform 0.3s, -webkit-transform 0.3s;
}

.partner-list .link:hover,
.image-list .link:hover,
.friends-list .link:hover,
.partner-list .link:focus,
.image-list .link:focus,
.friends-list .link:focus {
    -webkit-transform: scale(1.02);
            transform: scale(1.02);
}

@media (max-width: 45em) {
    .partner-list,
    .friends-list {
        display: block;
    }
}

.partner-list li,
.friends-list li {
    display: flex;
    max-width: 32%;
    margin-right: 2%;
}

.partner-list li:last-child,
.friends-list li:last-child {
    margin-right: 0;
}

@media (max-width: 45em) {
    .partner-list,
    .friends-list {
        display: block;
        max-width: 100%;
        margin-right: 0;
        margin-bottom: 1.3rem;
    }
}

.schedule {
    margin: 1em auto 3em;
    width: 98%;
    max-width: 100%;
    border-spacing: 5px;
}

@media (min-width: 45em) {
    .schedule {
        width: 65%;
    }
}

@media (min-width: 64em) {
    .schedule {
        width: 45%;
    }
}

.schedule td {
    min-width: 5rem;
    padding: 1.5em 0;
    border-top: 2px solid #7DCFB6;
    border-collapse: collapse;
    border-spacing: 0;
    border-left: 0;
    border-right: 2px;
    vertical-align: top;
}

@media (min-width: 45em) {
    .schedule td {
        min-width: 10em;
    }
}

.schedule td:first-of-type {
    padding-right: 1em;
    text-align: right;
}

.schedule h3,
.schedule p {
    margin: 0;
}

.schedule h3 {
    margin-top: -0.15em;
}

.colloq_link {
    margin-top: 2rem;
}

.colloq_icon {
    float: right;
    margin-left: 0.75rem;
    width: 2.6rem;
    height: 2.6rem;
}

.button,
input[type='submit'] {
    cursor: pointer;
    display: inline-block;
    padding: 0.75em 1em;
    font-weight: bold;
    text-decoration: none;
    background-color: #7DCFB6;
    color: #263238;
    color: var(--background-color);
    transition: all 125ms ease-in-out;
}

.button[disabled],
input[type='submit'][disabled] {
    background-color: rgba(#f5f5f5, 0.35);
}

.button:hover input[type='submit']:hover,
.button:focus input[type='submit']:focus {
    background-color: #fff;
}

/**
 * Card
 */

:root {
    --card-border-radius: 3px;
}

.cards {
    display: grid;
    margin-bottom: 2rem;
    grid-template-columns: 1fr;
    grid-gap: 1rem;
}

@media (min-width: 32em) {
    .cards {
        grid-template-columns: 1fr 1fr;
    }
}

@media (min-width: 54em) {
    .cards {
        grid-template-columns: 1fr 1fr 1fr;
    }
}

@media (min-width: 42em) {
    .cards--small {
        grid-template-columns: 1fr 1fr 1fr;
    }
}

@media (min-width: 54em) {
    .cards--small {
        grid-template-columns: 1fr 1fr 1fr 1fr;
    }
}

.cards_title {
    grid-column: 1 / -1;
}

.cards_card {
    position: relative;
    display: block;
    background: rgba(255, 255, 255, 0.2);
    border-radius: var(--speaker-border-radius);
    border-radius: var(--speaker-border-radius);
    overflow: hidden;
    box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.4),
                0 2px 2px 0 rgba(0, 0, 0, 0.3),
                0 3px 1px -2px rgba(0, 0, 0, 0.28);
    text-align: left;
    text-decoration: none;
    padding-bottom: 4.6875rem;
}

.cards_card--light {
    background: rgba(255, 255, 255, 0.4);
}

.cards_card_header {
    display: flex;
    align-items: center;
    padding: 1rem;
    position: relative;
    background-color: #fff;
    min-height: 15rem;
}

.cards_card_header--has-gradient {
    position: relative;
    padding: 0;
}

.cards_card_header--has-gradient::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 50%;
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.7));
}

.cards_card_title {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 1rem;
    font-size: 1.5rem;
    margin: 0;
}

.cards_content {
    margin: 1rem;
}

.cards_card_image {
    display: block;
    max-width: 100%;
    width: 100%;
    border-radius: var(--sponsor-border-radius) var(--sponsor-border-radius) 0 0;
    border-radius: var(--sponsor-border-radius) var(--sponsor-border-radius) 0 0;
    overflow: hidden;
}

.cards_card .button,
.cards_card .button:visited {
    color: #263238;
    color: var(--background-color);
}

.cards_card_footer {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.3);
    padding: 1rem;
}

.article .cards_content p {
    text-decoration: none;
    font-size: 1rem;
    margin: 0;
}

/* Cancellation */

#cancellation h2 {
    color: #db222a;
    border-bottom: 0.4rem solid #db222a;
}

/* Archive */

.archive-dropdown {
    text-align: left;
    position: absolute;
    top: 0;
    right: 1rem;
    z-index: 110;
    background: #263238;
    background: var(--background-color);
    padding: 0.75rem;
    border-radius: 0 0 3px 3px;
}

.is-narrow .archive-dropdown {
    background: #e5dadc;
    top: 8px;
}

.dropdown-handle {
    position: relative;
    margin: 0;
    color: #e5dadc;
    cursor: pointer;
    text-decoration: none;
}

.is-narrow .dropdown-handle {
    color: #263238;
    color: var(--background-color);
}

.dropdown-handleIcon {
    position: relative;
    width: 1em;
    margin-right: 1.5rem;
    top: 0.3rem;
}

.dropdown-handleIcon:before {
    content: "";
    position: absolute;
    width: 1em;
    height: 0.1em;
    background: #e5dadc;
    box-shadow: 0 0.25em 0 0 #e5dadc, 0 0.5em 0 0 #e5dadc;
}

.is-narrow .dropdown-handleIcon:before {
    background: #263238;
    background: var(--background-color);
    box-shadow: 0 0.25em 0 0 #263238, 0 0.5em 0 0 #263238;
    box-shadow: 0 0.25em 0 0 var(--background-color), 0 0.5em 0 0 var(--background-color);
}

.dropdown-handleText {
    margin: 0;
}

.dropdown-content {
    list-style: none;
    display: none;
    text-decoration: none;
    margin-top: 0.5rem;
    margin-bottom: 0;
    padding: 0;
    padding-top: 0.5rem;
    border-top: 1px solid rgba(#e5dadc, 0.75);
}

.is-opened .dropdown-content {
    display: block;
}

.dropdown-listItem {
    padding: 0.5rem 0 0.5rem 1.5rem;
    position: relative;
}

.dropdown-listItem a {
    color: #e5dadc;
    text-decoration: none;
}

.is-narrow .dropdown-listItem a {
    color: #263238;
    color: var(--background-color);
}

.dropdown-listItem a:hover,
.dropdown-listItem a:focus {
    text-decoration: underline;
}

.dropdown-listItem a:before {
    content: '〉';
    position: absolute;
    left: 0.3rem;
    top: 0.55rem;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-weight: bold;
    color: #e5dadc;
}

a,
a:visited,
a:active {
    color: #e5dadc;
}

a:hover,
a:focus {
    color: #e5dadc;
    /* @TODO find better */
}

h2 {
    font-size: 5vw;
    letter-spacing: -0.05em;
    font-weight: bold;
}

h2:after {
    content: '.';
}

h2.no-dot:after {
    content: none;
}

/* Forms */

input[type='text'],
input[type='email'] {
    color: #263238;
    color: var(--background-color);
    border: 0;
    padding: 0.75em 1em;
    text-align: center;
    vertical-align: top;
}

input[type='submit'] {
    position: relative;
    border: 0;
    vertical-align: top;
}

@media (min-width: 45em) {
    .slogan {
        max-width: 50rem;
    }
}

.main {
    min-height: 35em;
}

.article,
.section {
    margin-left: auto;
    margin-right: auto;
    max-width: 60em;
}

.article p {
    font-size: 1.25rem;
}

.util_no-margin--top {
    margin-top: 0;
}

.article .headline--top-line {
    font-family: Georgia, serif;
    font-size: 2rem;
    margin-bottom: 0.5rem;
}

.text-image-overlay {
    position: relative;
    margin: 2em 0;
    width: 80vw;
    max-width: 100%;
}

@media (min-width: 45em) {
    .text-image-overlay {
        height: 40em;
    }
}

.speaker_time {
    right: 0;
    line-height: 3.5;
    padding: 0.75em 1.5em;
    background-color: #e5dadc;
    color: #263238;
    color: var(--background-color);
}

@media (min-width: 60em) {
    .speaker_time {
        position: absolute;
        right: -4.5em;
        line-height: inherit;
    }
    .speaker_time.left {
        left: -4.5em;
        right: auto;
    }
}

.text-image-overlay.align-right {
    text-align: right;
}

@media (max-width: 45em) {
    .text-image-overlay.align-right img,
    .text-image-overlay.text-right img {
        -o-object-position: top left;
           object-position: top left;
    }
}

.text-image-overlay.text-right {
    text-align: right;
}

.text-image-overlay.text-right h4 {
    width: 100%;
}

.text-image-overlay.text-right .content {
    left: 0;
    padding: 2em;
}

.text-image-overlay.text-right .content p {
    max-width: 100%;
}

@media (min-width: 45em) {
    .text-image-overlay.text-right .content p {
        padding-left: 40%;
    }
}

.text-image-overlay.color-inverse h4,
.text-image-overlay.color-inverse p,
.text-image-overlay.color-inverse a,
.text-image-overlay.color-inverse li,
.text-image-overlay .color-inverse {
    color: #263238;
    color: var(--background-color);
}

@media (max-width: 45em) {
    .mobile-contrast.color-inverse h4,
    .mobile-contrast.color-inverse p,
    .mobile-contrast.color-inverse a,
    .mobile-contrast.color-inverse li {
        color: #e5dadc;
    }
}

.text-image-overlay:nth-child(2n+1) {
    left: 16vw;
}

.text-image-overlay .background-image {
    width: 100%;
    height: 100%;
    max-width: 100%;
    min-height: 45rem;
    -o-object-fit: cover;
       object-fit: cover;
    z-index: 0;
}

@media (max-width: 45em) {
    .text-image-overlay .background-image {
        -o-object-position: top right;
           object-position: top right;
        -webkit-filter: brightness(50%) contrast(60%);
                filter: brightness(50%) contrast(60%);
    }
}

@media (min-width: 45em) {
    .text-image-overlay .background-image {
        min-height: 40rem;
    }
}

.text-image-overlay .content {
    position: absolute;
    z-index: 10;
    top: 1em;
    left: 1em;
    bottom: 1em;
    right: 1em;
}

@media (min-width: 45em) {
    .text-image-overlay .content {
        top: 2em;
        left: 2em;
        bottom: 2em;
        right: 3em;
    }
}

.text-image-overlay h4 {
    font-size: 2em;
    width: 100%;
    max-width: 100%;
    line-height: 1;
    margin: 0 0 1rem 0;
}

@media (min-width: 45em) {
    .text-image-overlay .content {
        font-size: 6vw;
        width: 60%;
        margin: 0 0 3rem 0;
    }
}

.text-image-overlay p {
    max-width: 100%;
    width: 100%;
}

@media (min-width: 45em) {
    .text-image-overlay .content {
        font-size: 1em;
        max-width: 75%;
        letter-spacing: 0.05em;
        line-height: 1.8;
    }
}

@media (min-width: 72em) {
    .text-image-overlay .content {
        max-width: 45%;
    }
}

@media (min-width: 45em) {
    .text-image-overlay.wide h4 {
        max-width: 60%;
        float: right;
    }
    .text-image-overlay.wide p {
        max-width: 40%;
        font-size: 1em;
    }
}

@media (min-width: 45em) {
    .text-image-overlay.wide h4 {
        font-size: calc(6vw - 2.5vh);
    }
}

.text-image-overlay.wide.text-right .content {
    padding: 0;
    left: 2em;
}

@media (min-width: 45em) {
    .text-image-overlay.wide.text-right .content p {
        padding-left: 40%;
    }
}

@media (min-width: 64em) {
    .text-image-overlay.wide.text-right .content p {
        padding-left: 60%;
    }
}

.text-image-overlay .links,
.links--fancy {
    list-style: none;
    padding: 0;
    font-size: 0.8em;
}

.text-image-overlay .links li,
.links--fancy li {
    display: inline-block;
    font-weight: bold;
    letter-spacing: 0.25em;
    text-transform: uppercase;
}

.text-image-overlay .links li:before,
.links--fancy li:before {
    content: '»';
    font-size: 1.4rem;
    font-weight: normal;
    position: relative;
    top: 0.1em;
}

.links--fancy li:not(:last-child) {
    margin-right: 0.75em;
}

.links--fancy li a {
    text-decoration: none;
}

.links--fancy li a:hover {
    text-decoration: underline;
}

.text-image-overlay.align-right .links li:not(:first-child),
.links--fancy li:not(:first-child) {
    margin-right: 0.75em;
}

.text-image-overlay.align-right .links li:first-child,
.links--fancy li:first-child {
    margin-right: 0;
}

/* Location/Map */

.map {
    max-width: 100%;
    margin: 2em auto 0;
}

@media (max-width: 42em) {
    .map {
        height: 10em;
    }
}

/* Team Small */

.team--small li :not(:last-of-type)::after {
    content: ',';
}

.link {
    flex: 1;
    display: block;
    text-decoration: none;
    padding: 1.5rem;
    background-color: #fff;
    color: #263238;
    color: var(--background-color);
}

.text {
    margin-bottom: 0;
}

.image {
    height: 165px;
    width: 100%;
}

.image-list li {
    display: flex;
    flex-basis: 100%;
}

.image-list li img {
    width: 100%;
    height: auto;
}

.friends .subline {
    margin-bottom: 2rem;
}

.friends-list {
    margin: 0;
}

@media (max-width: 45em) {
    .friends-list {
        display: flex;
        flex-wrap: wrap;
    }
}

.friends-list li {
    display: flex;
    width: 23.5%;
    max-width: 23.5%;
    margin-right: 2%;
    margin-bottom: 1.3rem;
}

.friends-list li:last-child {
    margin-right: 0;
}

@media (max-width: 45em) {
    .friends-list li {
        display: flex;
        max-width: 47%;
        width: 47%;
    }
}

.link {
    text-align: center;
}

.text {
    padding-top: 0.3rem;
    padding-right: 0;
}

.image {
    height: auto;
    max-height: 150px;
    max-width: 100%;
    width: auto;
}

/* Small screen stuff */

@media (max-width: 45em) {
    body {
        padding-top: 0;
    }
    .header h1 {
        font-size: 2rem;
    }
    .header h3 {
        font-size: 1.25rem;
    }
    .header h1+p,
    .header p {
        font-size: 1rem;
    }
    h2 {
        font-size: 2rem;
    }
    .theme {
        text-align: left;
    }
    .theme p {
        font-size: 1rem;
        padding-left: 0;
    }
    .theme blockquote {
        font-size: 1.5rem;
    }
    .ticket {
        padding: 1em;
    }
}

.atevent h3,
.atevent_headline {
    display: inline-block;
    font-size: 2em;
    padding: 0.25em;
    background-color: #e5dadc;
    color: #263238;
    color: var(--background-color);
}

.atevent hr,
.atevent_divider {
    border-color: transparent;
    margin: 5em auto 1em;
}

.atevent .theme,
.theme-atevent {
    margin-bottom: 0;
}
