:root {
    --textDarker: black;
    --textDark: black;
    --textMedium: rgba(0,0,0,0.7);
    --borderMedium: rgba(0,0,0,0.2);
    --borderLight: rgba(0,0,0,0.075);
    --accent: black;
    --accentDarker: black;
    --light: rgba(0,0,0,0.03);
}
img {filter: grayscale(100%);}

* {padding: 0; margin: 0; box-sizing: border-box;}
html {font-size: clamp(14px, 2vw, 16px); line-height: 1.7; height: 100%; scroll-behavior: smooth; background: var(--light); scroll-padding-top: 10rem;}
body {font-size: 1rem; background: var(--light);}
p {font-size: 1.125rem;}
.innerbody {margin: 0 auto; background: white;}
.innerbody, .innerbody header {max-width: 100%;}
.container {margin: 0 auto; max-width: 84rem; padding: 0 clamp(1rem,4vw,3rem);}
img, figure, video, audio {max-width: 100%; display: block;}
a {color: #3b82f6;}
h1, h2 {line-height: 1.1; font-size: 2.6rem; color: var(--textDark);}
a.logo {line-height: 1.15; color: var(--textDark);}
h1 {font-size: 3.25rem; margin-bottom: 1.75rem;}
h1 + p {padding-top: 0.5rem;}
h2 {margin-top: 3.5rem; margin-bottom: 1.25rem;}
h2:first-child {margin-top: 0;}
section.docs h2,
.container.post h2,
h3 {color: var(--textDark); line-height: 1.3; font-size: 1.5rem; margin-top: 0; margin-bottom: 0.4rem; padding-top: 1.5rem; font-weight: bold;}
h2 + h3 {padding-top: 0;}
section.docs h3,
.container.post h3,
h4 {color: var(--textDark); line-height: 1.4; font-size: 1.1rem; margin-bottom: 0.2rem; padding-top: 1rem;}
div + h3 {padding-top: 3rem;}
p, ul, ol, blockquote, pre, .box.map, figure, details {margin-bottom: 1.5rem;}
ul {margin-left: 1rem;}
ol {margin-left: 2rem;}
hr {margin: 3.5rem 0; height: 1px; background: rgba(0,0,0,0.1); border: 0;}
p img, p img:last-child {border-radius: 1rem; overflow: hidden; margin-block: 2.25rem;}
pre {
    overflow: auto; 
    background: var(--light); 
    padding: 0.75rem 1rem; 
    border: 0.1rem solid var(--light); 
    border-radius: 0.25rem; 
    font-size: 0.95rem;
    white-space: pre-wrap; 
}
blockquote {border-left: 0.25rem solid var(--borderMedium); padding-left: 1.25rem;}
video, audio {width: 100%;}
.sr-only {display: none!important;}
:not(pre) > code {
    background: var(--light);
    padding: 0.15rem 0.3rem;
    border: 0.1rem solid var(--light);
    border-radius: 0.25rem;
}

/*------------------------*/
/* fonts
/*------------------------*/

.container.post h2, section.docs h2,
body, input, textarea, select, a.logo > div.has_subtitle > div span:nth-child(2) {font-family: var(--fontBody);}
h1, h2, a.logo {font-family: var(--fontTitles);}

/*------------------------*/
/* logo
/*------------------------*/

a.logo {font-size: 1.8rem; font-weight: bold; text-decoration: none; color: var(--textDark);}
a.logo img {height: 3rem;}
a.logo img.inline {height: 2rem;}
a.logo > div {display: flex; gap: 0.8rem; align-items: center;}
a.logo > div > div span {display: block;}
a.logo > div.has_subtitle {gap: 1rem;}
a.logo > div.has_subtitle > div span:nth-child(1) {line-height: 1.2;}
a.logo > div.has_subtitle > div span:nth-child(2) {font-size: 0.75rem; font-weight: normal;}

/*------------------------*/
/* sections general
/*------------------------*/

section {color: var(--textMedium);}
section, section.image.alt {padding: 4.5rem 0 0;}
section .twocols {display: grid; grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr)); grid-gap: 5.5rem clamp(2rem, 5vw, 5rem);}
section .twocols > div {display: flex; flex-direction: column; justify-content: center;}
section .container.small {max-width: 40rem;}
section.hasbackgroundcolor {padding: 0; margin-top: 2rem;}
section.hasbackgroundcolor + section.hasbackgroundcolor {padding-top: 3.5rem;}
section.bgimage.hasbackgroundcolor + section:not(.hasbackgroundcolor) {margin-top: 1.5rem;}
section :last-child {margin-bottom: 0;}
section:not(.hasbackgroundcolor) + section:not(.hasbackgroundcolor) {padding-top: 2rem;}
section.hasbackgroundcolor + footer {margin-top: 7.5rem;}
section.stickstofooter + footer {margin-top: 0; border-top: 0;}

/*------------------------*/
/* box
/*------------------------*/

.box {background: var(--light); border: 0.1rem solid var(--borderLight); padding: 3.5rem clamp(2rem, 5vw, 5rem); border-radius: 1rem; position: relative;}
.box:not(:last-child) {margin-bottom: 1.7em;}
.box p img {border-radius: 0;}

/*------------------------*/
/* map
/*------------------------*/

.map:not(section) {aspect-ratio: 2.25; width: 100%; border-radius: 1rem;}
.map:not(section) {position: relative; background-position: center calc(50% + 2rem); background-repeat: repeat;}
.map:not(section)::after {
    content: ""; 
    width: 100%; 
    height: 100%; 
    background: url(/img/marker.svg) center center / auto 4rem no-repeat; 
    left: 0; 
    top: 0;
    position: absolute;
    display: block;
}

/*------------------------*/
/* image
/*------------------------*/

figure {border-radius: 1rem; overflow: hidden;}
div:not(.box) > div.image img {border-radius: 0;}
@media (max-width: 600px) {
    div:not(.box) > div.image {padding: 0;}
    div:not(.box) > div.image img {max-width: 100%;}
}

/*------------------------*/
/* forms
/*------------------------*/

form > div {display: flex; flex-direction: column; gap: 0.25rem; margin-bottom: 1rem;}
form > div.radio + div.radio {margin-top: -1rem;}
input, textarea, select {
    font-size: 1rem;
    padding: 0.5em 0.5em;
    border: 1px solid var(--borderMedium);
    color: var(--textDark);
    border-radius: 0.25rem;
}
textarea {resize: vertical; height: 9rem;}
input[type="checkbox"], input[type="radio"] {margin-right: 0.5rem; cursor: pointer;} 
form > div.submit {padding-top: 0.55rem;}
form h3 {padding-top: 0; padding-bottom: 1rem;}
label.inborder {
    position: absolute; 
    background: white; 
    font-size: 0.85rem; 
    line-height: 1;
    padding: 0 0.25rem;
    margin-left: 0.6rem;
    display: inline-block;
    z-index: 2;
}
label.inborder + * {margin-top: 0.5rem;}
div.box label.inborder::after {
    background: linear-gradient(var(--light) 50%, white 50%);
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    content: "";
    position: absolute;
    z-index: -1;
}

/*------------------------*/
/* buttons
/*------------------------*/

.button, button {
    background: var(--accent); 
    color: white;
    text-decoration: none;
    padding: 0.7em 1.25em;
    font-weight: bold;
    display: inline-block;
    font-size: 1rem;
    border-radius: 0.4rem;
    border: 0;
    cursor: pointer;
    letter-spacing: 0.02em;
    transition: transform 0.075s ease-in-out;
    white-space: nowrap;
}
@media (min-width: 600px) {
.button:hover, button:hover {transform: scale(1.035);}
}
.button.secondary {background: var(--textDark);}
.button.secondary.ghost {background: transparent; color: var(--textDark); box-shadow: inset 0 0 0 0.1rem var(--textDark);}
.button.icon {
    padding: 0; 
    position: relative; 
    display: flex; 
    justify-content: center; 
    align-items: center;
    aspect-ratio: 1;
    width: 2.25rem;
}
.button.icon img {
    width: calc(100% - 1.25em); 
    height: calc(100% - 1.25em);
    filter: invert(1);
}
.button.ghost {background: transparent; color: var(--accentDarker); box-shadow: inset 0 0 0 0.1rem var(--accent);}
.button.smaller {padding: 0.4rem 1rem;}
p > .button {margin: 0.5rem 0;}
ul.buttons {gap: 1rem; margin-left: 0; display: flex; padding: 0.5rem 0;}
ul.buttons li {list-style: none;}
ul.buttons.social .button {background: var(--textDark);}

/*------------------------*/
/* bgimage
/*------------------------*/

section.bgimage .overlay {position: absolute; left: 0; top: 0; width: 100%; height: 100%; z-index: 1; background: rgba(0,0,0,0.32);}
section.bgimage .bgimage {position: relative; display: flex; flex-direction: column; justify-content: center;}
section.bgimage .container {position: relative; z-index: 2; color: white; padding-top: 5.5rem; padding-bottom: 6rem;} 
section.bgimage .container h1,
section.bgimage .container h2 {color: white;}
section.bgimage h1 + p {padding-top: 0;}

/*------------------------*/
/* breadcrumbs
/*------------------------*/

ul.breadcrumbs {display: block; margin: -1rem 0 0.25rem; font-size: 0.9rem; text-align: center;}
h1 + ul.breadcrumbs {margin: -1rem 0 2rem;}
h1 + ul.breadcrumbs:last-child {margin-bottom: 0;}
ul.breadcrumbs li {list-style: none; display: inline-block;}
ul.breadcrumbs li::before {content: "/"; display: inline-block; padding: 0 0.25rem;}
ul.breadcrumbs li:first-child::before {content: none;}
ul.breadcrumbs li a {text-decoration: none;}
ul.breadcrumbs li::before,
ul.breadcrumbs li a {color: var(--accentDarker);}

/*------------------------*/
/* grid
/*------------------------*/

ul.grid {display: grid; grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr)); grid-gap: 1.55rem 1.5rem; margin: 0; padding-bottom: 1rem;}
ul.grid li {list-style: none; position: relative;}

/*------------------------*/
/* img
/*------------------------*/

a[href] .img img {transform: scale(1); transition: transform 0.35s ease-in-out;}
a[href]:hover .img img {transform: scale(1.075);}

/*------------------------*/
/* avatar
/*------------------------*/

.avatar {border-radius: 100%; object-fit: cover; filter: grayscale(100%);}

/*------------------------*/
/* people
/*------------------------*/

ul.people li {text-align: center;}
ul.people li .box {height: 100%; padding: 2.25rem clamp(2rem, 4vw, 3.5rem);}
ul.people li .avatar {height: 8rem; width: 8rem; margin: 0.5rem auto 0.15rem;}
ul.people li .function {color: var(--textDark); margin: -0.25rem 0 1.5rem;}
ul.people ul.buttons {justify-content: center;}

/*------------------------*/
/* tabs
/*------------------------*/

ul.tabs {
    display: flex; 
    align-items: flex-end;
    margin: 0 0 1.5rem; 
    gap: 2rem; 
    border-bottom: 0.04rem solid rgba(0,0,0,0.15); 
    padding-top: 2rem;
}
ul.tabs li {list-style: none; line-height: 1.3;}
ul.tabs li a {
    text-decoration: none; 
    color: var(--textDark); 
    line-height: 1.15;
    font-size: 1.25rem;
    position: relative;
    display: block;
    font-weight: bold;
    padding-bottom: 0.5rem;
}
ul.tabs li a::after {
    content: "";
    width: 100%;
    background: var(--textDark);
    height: 0.13rem;
    position: absolute;
    left: 0;
    bottom: 0;
    transform: scaleX(0) translateY(50%);
    transition: transform 0.2s ease-in-out;
}
ul.tabs li a:hover::after,
ul.tabs li.selected a::after {transform: scaleX(1) translateY(50%);}
.tabs_container {margin-bottom: 3.5rem;}
.tabs_container .tab h2 {display: none;}


/*------------------------*/
/* gallery
/*------------------------*/

.image-gallery {display: grid; grid-template-columns: repeat(5, 1fr); gap: 0.5rem; margin-left: 0;}
.image-gallery li {list-style: none;}
.image-gallery li a {display: block;}
.image-gallery li a img {width: 100%; display: block; border-radius: 0.5rem;}


/*------------------------*/
/* faq
/*------------------------*/
@keyframes opendetails {
  from {grid-template-rows: 0fr;}
  to {grid-template-rows: 1fr;}
}
@keyframes closedetails {
  from {grid-template-rows: 1fr;}
  to {grid-template-rows: 0fr;}
}
details {
    border: 0.1rem solid var(--borderMedium);
    border-left: 0;
    border-right: 0;
}
details summary {
    position: relative;
    display: block;
    cursor: pointer;
    padding: 0.35rem 2rem 0.25rem 0; 
    transition: all 0.15s ease-in-out;
}
details summary::after {
    content: "";
    border: 0.1rem solid var(--textMedium);
    transform: translateY(-50%) rotate(45deg);
    display: block;
    position: absolute;
    width: 0.75rem;
    height: 0.75rem;
    top: 50%;
    border-left: 0;
    border-bottom: 0;
    right: 0.5rem;
}
details summary::-webkit-details-marker,
details summary::marker {
 display: none; 
 content: "";
}
details + details {border-top: 0; margin-top: -1.7rem;}
details > div {
    display: grid;
    grid-template-rows: 0fr;
}
details > div > div {overflow: hidden;}
details > div > div::before {content: ""; display: block; height: 0.75rem;}
details > div > div::after {content: ""; display: block; height: 1.75rem;}
details[open] > div {animation: opendetails .15s 0s 1 normal forwards;}
details[open].closing > div {animation: closedetails .15s 0s 1 normal forwards;}
details[open]:not(.closing) summary {color: var(--textDark); font-weight: 600;}
details summary::after {transition: all 0.15s ease-in-out;}
details[open]:not(.closing) summary::after {
    transform: translateY(calc(-50% + 0.1rem)) rotate(-45deg);
    right: 0.25rem;
}

/*------------------------*/
/* youtube shortcode
/*------------------------*/

.shortcode-youtube {position: relative; display: block; overflow: hidden; border-radius: 1rem;}
.shortcode-youtube::before, .shortcode-youtube::after {
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
}
.shortcode-youtube::before {background: url('/img/youtube_button.svg') center center / auto 4rem no-repeat;}
.shortcode-youtube:hover::before {background-image: url('/img/youtube_button_hover.svg');}
.shortcode-youtube::after {background: url('/img/youtube_text.svg') calc(100% - 1rem) calc(100% - 1rem) / auto 2rem no-repeat;}
.shortcode-youtube img {display: block; margin: 0!important;}
@media (max-width: 45rem) {
    .shortcode-youtube::before {background-size: auto 12vw;}
    .shortcode-youtube::after {background-position: calc(100% - 3vw) calc(100% - 3vw); background-size: auto 6vw;}
}

/*------------------------*/
/* vimeo shortcode
/*------------------------*/

.shortcode-vimeo {
    position: relative; display: block;
}
.shortcode-vimeo::after {
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
} 
.shortcode-vimeo .playbutton {
    position: absolute;
    width: 6rem;
    height: 4rem;
    border-radius: 0.65rem;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    background: rgba(0,0,0,0.6) url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyOC43NTgiIGhlaWdodD0iMjguODQ5IiB2aWV3Qm94PSIwIDAgNy42MDkgNy42MzMiIHhtbG5zOnY9Imh0dHBzOi8vdmVjdGEuaW8vbmFubyI+PHBhdGggZD0iTTAgMHY3LjYzM2w3LjYwOS0zLjg3NHoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=') 55% center / auto 1.9rem no-repeat;
    z-index: 3;
}
.shortcode-vimeo .playbutton:hover {background-color: #00adef;}
.shortcode-vimeo::after {
    background: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgYWx0PSJWaW1lbyIKICAgd2lkdGg9Ijk5LjY0NjYxNCIKICAgaGVpZ2h0PSIyOC4xNjA5OTkiCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2ZzQiCiAgIHNvZGlwb2RpOmRvY25hbWU9InRlc3Quc3ZnIgogICBpbmtzY2FwZTp2ZXJzaW9uPSIxLjEuMiAoMToxLjErMjAyMjAyMDUwOTUwKzBhMDBjZjUzMzkpIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM4IiAvPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0ibmFtZWR2aWV3NiIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBpbmtzY2FwZTpwYWdlY2hlY2tlcmJvYXJkPSIwIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBmaXQtbWFyZ2luLXRvcD0iMCIKICAgICBmaXQtbWFyZ2luLWxlZnQ9IjAiCiAgICAgZml0LW1hcmdpbi1yaWdodD0iMCIKICAgICBmaXQtbWFyZ2luLWJvdHRvbT0iMCIKICAgICBpbmtzY2FwZTp6b29tPSIxMS4yNiIKICAgICBpbmtzY2FwZTpjeD0iNDkuODIyMzgiCiAgICAgaW5rc2NhcGU6Y3k9IjE4LjY1MDA4OSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjM0NDAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTM5MSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iMCIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iMCIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzQiIC8+CiAgPHBhdGgKICAgICBkPSJtIDIyLjI3MiwxMy4yNDIgYyAtMC4xMDQsMi4xNyAtMS42MTgsNS4xNDYgLTQuNTQ0LDguOTEyIC0zLjAzLDMuOTQyIC01LjU5LDUuOTEyIC03LjY4Niw1LjkxMiAtMS4yOTcsMCAtMi4zOTcsLTEuMjA0IC0zLjMsLTMuNiAtMC42LC0yLjIgLTEuMjAyLC00LjM5OCAtMS43OTQsLTYuNTk4IC0wLjY2NCwtMi4zOTYgLTEuMzgsLTMuNiAtMi4xNDcsLTMuNiAtMC4xNjYsMCAtMC43NDcsMC4zNTQgLTEuNzUzLDEuMDUgTCAwLDEzLjk2OCBjIDEuMSwtMC45NjUgMi4xOSwtMS45MyAzLjI1NywtMi45MDUgMS40NjMsLTEuMjY1IDIuNTczLC0xLjk0IDMuMywtMi4wMDIgMS43MzIsLTAuMTY2IDIuOCwxLjAxNyAzLjIwNSwzLjU1OCAwLjQzNSwyLjc0IDAuNzM2LDQuNDQgMC45MDIsNS4xMTUgMC40OTgsMi4yNyAxLjA0OCwzLjQwMiAxLjY1LDMuNDAyIDAuNDY2LDAgMS4xNzIsLTAuNzM3IDIuMTA1LC0yLjIxIDAuOTM0LC0xLjQ3MyAxLjQzMiwtMi41OTMgMS41MDQsLTMuMzcgMC4xMzMsLTEuMjc3IC0wLjM2NSwtMS45MSAtMS41MDYsLTEuOTEgLTAuNTMsMCAtMS4wOCwwLjEyNSAtMS42NSwwLjM2NCAxLjEsLTMuNTkgMy4xODYsLTUuMzMzIDYuMjc3LC01LjIzIDIuMjczLDAuMDczIDMuMzUsMS41NTYgMy4yMjcsNC40NiBtIDEzLjc1NSw3LjAzNCBjIC0wLjkzMywxLjc2NCAtMi4yMiwzLjM3IC0zLjg2LDQuODAzIC0yLjI0LDEuOTMgLTQuNDcsMi45MDUgLTYuNywyLjkwNSAtMS4wMzcsMC4wMDIgLTEuODI2LC0wLjMzIC0yLjM3NiwtMC45OTQgLTAuNTUsLTAuNjYzIC0wLjgxLC0xLjUzNSAtMC43NzcsLTIuNjAzIDAuMDMsLTEuMSAwLjM3MiwtMi44IDEuMDI1LC01LjEwNCAwLjY1NCwtMi4zMDMgMC45NzYsLTMuNTM3IDAuOTc2LC0zLjcwMyAwLC0wLjg2IC0wLjMsLTEuMjk3IC0wLjkwMiwtMS4yOTcgLTAuMTk4LDAgLTAuNzcsMC4zNTMgLTEuNzAyLDEuMDQ4IGwgLTEuMTUyLC0xLjM1IGMgMS4wNywtMC45NjIgMi4xMzcsLTEuOTI3IDMuMjA2LC0yLjkwMiAxLjQzLC0xLjI2NiAyLjUsLTEuOTQgMy4yMDUsLTIuMDAyIDEuMSwtMC4xMDMgMS45MSwwLjIzIDIuNDI4LDAuOTc2IDAuNTE4LDAuNzQ3IDAuNzA1LDEuNzIyIDAuNTgsMi45MTUgLTAuNDM1LDIuMDM0IC0wLjkwMiw0LjYwNyAtMS40LDcuNzMgLTAuMDMsMS40MyAwLjQ4OCwyLjE0NiAxLjU1NiwyLjE0NiAwLjQ2NywwIDEuMjk3LC0wLjQ5OCAyLjUsLTEuNDgzIDAuOTk2LC0wLjgyIDEuODE1LC0xLjU5OCAyLjQ1LC0yLjMyNCBsIDAuOTQyLDEuMjQ0IG0gLTQuMzU3LC0xNy44IGMgLTAuMDMsMC44MyAtMC40NDYsMS42MjggLTEuMjU1LDIuMzk1IC0wLjksMC44NiAtMS45NywxLjI5NiAtMy4yMDQsMS4yOTYgLTEuOSwwIC0yLjgyMiwtMC44MyAtMi43NSwtMi40OSAwLjAzMiwtMC44NiAwLjU0LC0xLjY5IDEuNTI2LC0yLjQ5IEMgMjYuOTcsMC4zOTMgMjguMDU5LDAgMjkuMjYzLDAgYyAwLjcwNSwwIDEuMjg2LDAuMjcgMS43NTMsMC44MiAwLjQ2NywwLjU0IDAuNjg0LDEuMSAwLjY1MywxLjY2IG0gMzUuNjEyLDE3LjggYyAtMC45MzMsMS43NjMgLTIuMjIsMy4zNyAtMy44Niw0LjgwMiAtMi4yNCwxLjkzIC00LjQ3LDIuOTA0IC02LjcsMi45MDQgLTIuMTY4LDAuMDAyIC0zLjIxNiwtMS4yMDIgLTMuMTUzLC0zLjU5OCAwLjAzLC0xLjA3IDAuMjM4LC0yLjM1NSAwLjYyMiwtMy44NSAwLjM4NCwtMS41MDMgMC41OSwtMi42NjUgMC42MjMsLTMuNTA1IDAuMDMsLTEuMjY1IC0wLjM1MywtMS44OTggLTEuMTUyLC0xLjg5OCAtMC44NywwIC0xLjkxLDEuMDM2IC0zLjExMiwzLjEgLTEuMjc2LDIuMTY4IC0xLjk2LDQuMjc0IC0yLjA2NCw2LjMwOCAtMC4wNzMsMS40MyAwLjA3MiwyLjU0IDAuNDI1LDMuMjk4IC0yLjMyNCwwLjA2NCAtMy45NjMsLTAuMzIgLTQuODg2LC0xLjE1IC0wLjgzLC0wLjczNyAtMS4yMTIsLTEuOTUgLTEuMTUsLTMuNjUyIDAuMDMsLTEuMDY4IDAuMTk4LC0yLjEzNyAwLjQ4OCwtMy4yMDUgMC4yOSwtMS4wNyAwLjQ1NywtMi4wMjMgMC40ODgsLTIuODUzIDAuMDYyLC0xLjIzNCAtMC4zODQsLTEuODU3IC0xLjM1LC0xLjg1NyAtMC44NCwwIC0xLjc0LDAuOTU1IC0yLjcwNiwyLjg1MyAtMC45NjYsMS45IC0xLjUwNSwzLjg5IC0xLjYxLDUuOTU2IC0wLjA2LDEuODY3IDAuMDUzLDMuMTc0IDAuMzY0LDMuOSAtMi4yOTMsMC4wNjIgLTMuOTIsLTAuNDE1IC00Ljg3NiwtMS40NTIgLTAuNzk4LC0wLjg2IC0xLjE2LC0yLjE4IC0xLjEsLTMuOTQyIDAuMDMyLC0wLjg2IDAuMTg4LC0yLjA3NSAwLjQ1NywtMy42MiAwLjI4LC0xLjU0NiAwLjQyNSwtMi43NSAwLjQ1NywtMy42MiAwLjA2MiwtMC42MDMgLTAuMDgzLC0wLjkwMyAtMC40NDYsLTAuOTAzIC0wLjE5NywwIC0wLjc2OCwwLjM0IC0xLjcwMiwxLjAxNSBsIC0xLjIwMywtMS4zNDggYyAwLjE2OCwtMC4xMzUgMS4yMTYsLTEuMSAzLjE1NiwtMi45MDUgMS40LC0xLjI5NyAyLjM1NCwtMS45NyAyLjg1MiwtMi4wMDIgMC44NzIsLTAuMDczIDEuNTY3LDAuMjkgMi4xMDYsMS4wOCAwLjUzLDAuNzg3IDAuOCwxLjY5IDAuOCwyLjcyNyAwLDAuMzMyIC0wLjAzMiwwLjY1NCAtMC4xMDUsMC45NTQgMC40OTcsLTAuNzY2IDEuMDgsLTEuNDMgMS43NTIsLTIgMS41MzcsLTEuMzQgMy4yNiwtMi4wODYgNS4xNTcsLTIuMjUyIDEuNjQsLTAuMTM1IDIuOCwwLjI1IDMuNTA1LDEuMTUyIDAuNTcsMC43MzYgMC44MywxLjc4NCAwLjgsMy4xNTMgMC4yMzcsLTAuMTk4IDAuNDg2LC0wLjQxNiAwLjc0NiwtMC42NTQgMC43NjcsLTAuOTAzIDEuNTE0LC0xLjYyIDIuMjUsLTIuMTQ4IDEuMjM1LC0wLjkwMiAyLjUyLC0xLjQgMy44NiwtMS41MDQgMS41OTcsLTAuMTM1IDIuNzUsMC4yNSAzLjQ1NCwxLjE1MiAwLjYwMiwwLjcyNiAwLjg3LDEuNzc0IDAuOCwzLjE0MyAtMC4wMzIsMC45MzMgLTAuMjYsMi4yOCAtMC42NzUsNC4wNjUgLTAuNDE2LDEuNzczIC0wLjYyNCwyLjggLTAuNjI0LDMuMDcgLTAuMDMsMC42OTUgMC4wMywxLjE4MiAwLjE5NywxLjQ0MiAwLjE2NiwwLjI3IDAuNTcsMC4zOTQgMS4yMDMsMC4zOTQgMC40NjcsMCAxLjI5NywtMC40OTcgMi41LC0xLjQ4MiAwLjk5NiwtMC44MiAxLjgxNiwtMS41OTggMi40NSwtMi4zMjQgbCAwLjk2MywxLjI1NCBtIDE4Ljc2NSwtMC4wNTIgYyAtMC45NjUsMS41OTggLTIuODc0LDMuMTk1IC01LjcwNiw0Ljc5MyAtMy41MzgsMi4wMzIgLTcuMTI3LDMuMDUgLTEwLjc1OCwzLjA1IC0yLjcwNiwwIC00LjYzNiwtMC45MDQgLTUuODA4LC0yLjcgLTAuODMsLTEuMjMzIC0xLjIzNCwtMi42OTYgLTEuMjAzLC00LjQwNyAwLjAzLC0yLjY5OCAxLjIzNCwtNS4yNyAzLjYsLTcuNzEgMi42MDMsLTIuNjY1IDUuNjc0LC00LjAwMyA5LjIxLC00LjAwMyAzLjI3LDAgNSwxLjMyOCA1LjIwOCwzLjk5NCAwLjEzNSwxLjcwMiAtMC43OTgsMy40NDUgLTIuOCw1LjI0IC0yLjEzNywxLjk2IC00LjgyNCwzLjIxNSAtOC4wNiwzLjc0NCAwLjYsMC44MyAxLjUwNCwxLjI0NSAyLjcwNywxLjI0NSAyLjM5NiwwIDUuMDIsLTAuNjEzIDcuODYzLC0xLjgzNyAyLjAzMywtMC44NiAzLjYzLC0xLjc1MyA0LjgwMywtMi42NzYgbCAwLjk0NSwxLjI2NSBtIC0xMS4zNiwtNS4yMjggYyAwLjAzMiwtMC44OTIgLTAuMzMsLTEuMzUgLTEuMSwtMS4zNSAtMC45OTQsMCAtMi4wMSwwLjY4NiAtMy4wNDgsMi4wNjYgLTEuMDM4LDEuMzggLTEuNTY3LDIuNjk3IC0xLjU5OCwzLjk2MiAtMC4wMiwwIC0wLjAyLDAuMjE4IDAsMC42NDMgMS42MywtMC42IDMuMDUsLTEuNTE0IDQuMjQyLC0yLjczOCAwLjk2NiwtMS4wNTggMS40NjMsLTEuOTIgMS41MDUsLTIuNTgzIG0gMjQuOTQ2LDEuODY4IGMgLTAuMTM1LDMuMDcyIC0xLjI2NSw1LjcxNyAtMy40MDIsNy45NDcgLTIuMTM1LDIuMjMgLTQuNzksMy4zNSAtNy45NTUsMy4zNSAtMi42MzUsMCAtNC42MzcsLTAuODUgLTYuMDA2LC0yLjU1IC0wLjk5NywtMS4yNjcgLTEuNTU3LC0yLjg1NCAtMS42NSwtNC43NTIgLTAuMTY2LC0yLjg2MyAwLjg2LC01LjQ5OCAzLjEsLTcuODk0IDIuNDA4LC0yLjY2NSA1LjQyNywtMy45OTMgOS4wNTcsLTMuOTkzIDIuMzM0LDAgNC4wOTgsMC43ODggNS4zLDIuMzQ0IDEuMTMyLDEuNDQzIDEuNjUsMy4yOSAxLjU1Nyw1LjU1IG0gLTUuNjY0LC0wLjE4NSBjIDAuMDMsLTAuOTAzIC0wLjA5NCwtMS43MzMgLTAuMzc0LC0yLjQ4IC0wLjI4LC0wLjc0NyAtMC42OTUsLTEuMTMgLTEuMjI0LC0xLjEzIC0xLjcwMiwwIC0zLjEwMiwwLjkyMyAtNC4yMDIsMi43NiAtMC45MzMsMS41MDMgLTEuNDMsMy4xMSAtMS41MDQsNC44MTIgLTAuMDMsMC44NCAwLjExNCwxLjU3NyAwLjQ0NiwyLjIxIDAuMzY0LDAuNzM2IDAuODgyLDEuMSAxLjU1NiwxLjEgMS41MDUsMCAyLjc5LC0wLjg4MyAzLjg2LC0yLjY1NiAwLjg5MiwtMS40NzIgMS4zOCwtMy4wMDggMS40NCwtNC42MTUgaCAwLjAwMiB6IgogICAgIGZpbGw9IiMxMTIyMzMiCiAgICAgaWQ9InBhdGgyIgogICAgIHN0eWxlPSJmaWxsOiNmZmZmZmYiIC8+Cjwvc3ZnPgo=') calc(100% - 1rem) calc(100% - 1rem) / auto 2rem no-repeat;
}
.shortcode-vimeo img {
    display: block;
    aspect-ratio: 1.7777;
    object-fit: cover;
    margin: 0;
}
@media (max-width: 45rem) {
    .shortcode-vimeo .playbutton {width: 16.5vw; height: 11vw; background-size: 5.3vw; border-radius: 1.78vw;}
    .shortcode-vimeo::after {background-position: calc(100% - 3vw) calc(100% - 3vw); background-size: auto 5vw;}
}


/*------------------------*/
/* meta
/*------------------------*/

.meta {color: var(--textDarker); position: relative; margin: 0.5rem 0 1rem; gap: 1rem; font-size: 0.9rem; display: flex; align-items: center; gap: 1rem;}
.meta > div {display: flex; align-items: center; gap: 0.4rem;}
.meta img {height: 1rem; width: 1rem; position: relative; border-radius: 0; display: block; bottom: 0.1rem;}
.meta a {color: var(--textDarker); text-decoration: none;}
.meta ul {margin: 0;display: flex;}
.meta ul li {display: flex;}
.meta ul li::before {content: ","; margin-right: 0.4rem;}
.meta ul li:first-child:before {content: none;}

/*------------------------ CSS overrides below ------------------------*/

@media (max-width: 768px) {
    p {font-size: 1.25rem;}
}

/*------------------------*/
/* posts
/*------------------------*/

a.post-title {text-decoration: none;}

/*------------------------*/
/* table
/*------------------------*/
table {width: 100%; margin-bottom: 1rem; margin-top: 1rem;}

td:first-child {text-align: left; font-size: 1.125rem;}

td {text-align: center; padding: 10px; border-bottom: 1px solid #ddd;}

/*------------------------*/
/* button
/*------------------------*/
a.cta {display: flex; justify-content: center;}