/* #region - reset */

html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
    display: block;
}

body {
    line-height: 1;
}

ol,
ul {
    list-style: none;
}

blockquote,
q {
    quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
    content: '';
    content: none;
}

table {
    border-collapse: collapse;
    border-spacing: 0;
}

/* #endregion */
/* #region - fonts */

/* DIN Next LT Pro */

@font-face {
    font-family: 'DIN Next LT Pro';
    src:
        url('../fonts/DINNextLTPro/DINNextLTPro-Light.woff2') format('woff2'),
        url('../fonts/DINNextLTPro/DINNextLTPro-Light.woff') format('woff');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'DIN Next LT Pro';
    src:
        url('../fonts/DINNextLTPro/DINNextLTPro-Regular.woff2') format('woff2'),
        url('../fonts/DINNextLTPro/DINNextLTPro-Regular.woff') format('woff');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'DIN Next LT Pro';
    src:
        url('../fonts/DINNextLTPro/DINNextLTPro-Medium.woff2') format('woff2'),
        url('../fonts/DINNextLTPro/DINNextLTPro-Medium.woff') format('woff');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'DIN Next LT Pro';
    src:
        url('../fonts/DINNextLTPro/DINNextLTPro-Bold.woff2') format('woff2'),
        url('../fonts/DINNextLTPro/DINNextLTPro-Bold.woff') format('woff');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

/* #endregion */
/* #region - global */

*,
*::before,
*::after {
    box-sizing: border-box;
}

:root {
    /* colors */
    --c-black: #000000;
    --c-emperor: #555555;
    --c-dove-gray: #707070;
    --c-abbey: #56595a;
    --c-porcelain: #ECF0F0;
    --c-white: #FFFFFF;
    --c-lima: #78BE21;
    --c-razzmatazz: #D00070;
    --c-lipstick: #C00067;
    --c-tangerine: #ED8B00;
    --c-bondi-blue: #0092BC;
    --c-geyser: #D9E1E2;
    --c-marzipan: #F8E08E;
    --c-swirl: #D6D2C4;
    --c-primrose: #D4EC8E;
    --c-cavern-pink: #E9C5C7;
    --c-gradient: linear-gradient(180deg, rgba(246, 248, 247, 1) 0%, rgba(217, 225, 226, 1) 100%);
    /* width */
    --w-max-l: 120rem;
    --w-max: 100rem;
    --w-max-m: 90rem;
    --w-max-s: 80rem;
    --w-max-xs: 70rem;
    --w-max-xxs: 60rem;
    /* font-size: 1.250 scale */
    --fs-xl: 4.768em;
    --fs-l: 3.815em;
    --fs-h1: 3.052em;
    --fs-h2: 2.441em;
    --fs-h3: 1.953em;
    --fs-h4: 1.563em;
    --fs-h5: 1.25em;
    --fs-body: 1em;
    --fs-s: .8em;
    --fs-xs: .64em;
    /* line-height */
    --lh-reset: 1;
    --lh-s: 1.125;
    --lh-m: 1.3;
    --lh-l: 1.75;
    /* easing */
    --e-hover: cubic-bezier(.4, 0, .2, 1);
    /* header */
    --hd-height: 8em;
    --hd-t-height: calc(var(--hd-height) + 4em);
    --hd-logo: calc(var(--hd-height) - 2em);
    --hd-t-logo: calc(var(--hd-t-height) - 1em);
    /* plyr */
    --plyr-color-main: var(--c-lipstick);
    --plyr-font-size-large: 1.563em;
    --plyr-font-size-base: 1em;
}

@media screen and (max-width: 90em) {

    :root {
        /* font-size: 1.200 scale */
        --fs-xl: 3.583em;
        --fs-l: 2.986em;
        --fs-h1: 2.488em;
        --fs-h2: 2.074em;
        --fs-h3: 1.728em;
        --fs-h4: 1.44em;
        --fs-h5: 1.2em;
        --fs-s: .833em;
        --fs-xs: .694em;
    }

}

@media screen and (max-width: 40em) {

    :root {
        /* font-size: 1.125 scale */
        --fs-xl: 2.281em;
        --fs-l: 2.027em;
        --fs-h1: 1.802em;
        --fs-h2: 1.602em;
        --fs-h3: 1.424em;
        --fs-h4: 1.266em;
        --fs-h5: 1.25em;
        --fs-s: .889em;
        --fs-xs: .79em;
    }

}

body {
    font-family: 'DIN Next LT Pro', sans-serif;
    font-size: var(--fs-body);
    font-weight: 300;
    line-height: var(--lh-m);
    letter-spacing: -.01em;
    color: var(--c-emperor);
    background-color: var(--c-white);
    height: 100vh;
    display: flex;
    flex-direction: column;
}

/* Hide content first for ie10 and above */
@media all and (-ms-high-contrast: none),
(-ms-high-contrast: active) {

    body {
        visibility: hidden;
    }

    .js-cssvars-loaded {
        visibility: visible;
    }

}

/**/

strong {
    font-weight: 700;
}

em {
    font-style: italic;
}

/* all */

.is-ie * {
    min-height: 1px;
}

* {
    -webkit-appearance: none;
    -webkit-tap-highlight-color: transparent;
}

*:focus {
    z-index: 1;
}

.no-transition * {
    transition-duration: 0s !important;
}

.page--is-resizing>* {
    opacity: 0;
    transition: all .3s var(--e-hover);
    transition-property: opacity, transform;
}

/* links */

a {
    color: var(--c-lipstick);
    text-decoration: none;
    transition: color .3s var(--e-hover);
    transition-property: color, background, border;
}

a:hover {
    color: var(--c-lipstick);
    text-decoration: underline;
    text-underline-offset: 2px;
    text-decoration-thickness: 2px;
}

[data-item-href] {
    cursor: pointer;
}

/* input */

input,
textarea,
select,
button {
    font-family: inherit;
    font-size: inherit;
    line-height: var(--lh-m);
    background-color: transparent;
    border: 1px solid;
    border-radius: 5px;
    padding: .5em;
    -webkit-appearance: none;
}

::placeholder {
    color: var(--c-emperor);
    opacity: .6;
}

:-moz-focusring {
    outline: 2px dotted;
}

.select {
    position: relative;
}

.select:after {
    content: '\f078';
    font-family: 'Font Awesome 6 Pro';
    font-weight: 300;
    line-height: 1;
    position: absolute;
    top: 0;
    right: .5em;
    height: 100%;
    padding: .5em 0;
    display: flex;
    align-items: center;
    pointer-events: none;
}

.select>select {
    background-color: transparent;
    border: 1px solid;
    width: 100%;
    padding: .5em 1.75em .5em .5em;
}

.is-ie .select>select::-ms-expand {
    opacity: 0;
}

[data-select-list] {
    position: relative;
    margin: 0;
    display: table;
}

[data-select-list] li {
    display: none;
}

/* media */

iframe,
svg {
    display: block;
}

img,
video {
    max-width: 100%;
    width: auto;
    height: auto;
    display: block;
}

img[data-object-fit],
video[data-object-fit] {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    font-family: 'object-fit: cover';
}

img[data-object-fit='contain'],
video[data-object-fit='contain'] {
    object-fit: contain;
    font-family: 'object-fit: contain';
}

.video {
    background-color: var(--c-black);
    position: relative;
    width: 100%;
    padding-bottom: 56.25%;
}

.video>* {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.inline-svg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: visible;
}

.is-ie .object-fit-polyfill {
    position: absolute !important;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

[class*='__background'] {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

[class*='__background'] picture,
.is-ie [class*='__background'] picture {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: 100%;
    transform: translate(-50%, -50%);
}

[class*='__background']+[class*='__container'] {
    position: relative;
}

/* modifiers */

.is-fs-l {
    font-size: 110%;
}

.is-fullwidth {
    position: relative;
    left: 50%;
    right: 50%;
    width: 100vw;
    margin-left: -50vw;
    margin-right: -50vw;
}

.is-fullheight {
    min-height: calc(100vh - var(--hd-height));
    display: flex;
    flex-direction: column;
    flex: 1 0 auto;
}

.is-overflow-left,
.is-overflow-right {
    position: relative;
}

.v-hidden,
.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
}

/* container */

[class*='__container'] {
    max-width: var(--w-max-l);
    width: 100%;
    padding: 3em 4.5em;
    margin: auto;
}

[class*='__row'] {
    margin: -1.5em;
    display: flex;
    flex-wrap: wrap;
}

[class*='__col'] {
    margin: 1.5em;
    flex: 1 1 20rem;
}


@media screen and (max-width: 90em) {

    [class*='__container'] {
        padding-left: 3em;
        padding-right: 3em;
    }

}

@media screen and (max-width: 40em) {

    [class*='__container'] {
        padding: 2em 1.5em;
    }

    [class*='__row'] {
        margin: -1em -.75em;
    }

    [class*='__col'] {
        margin: 1em .75em;
    }

}

/* sections */

.is-scrolled-top .page__header {
    height: var(--hd-t-height);
}

.page__header {
    font-weight: 400;
    line-height: 1.2;
    letter-spacing: -.02em;
    text-align: center;
    background-color: var(--c-white);
    box-shadow: none;
    /* 0 .1em 1em 0 rgba(0, 0, 0, .1); */
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: var(--hd-height);
    padding: 0;
    z-index: 99;
    transform: translate3d(0, 0, 0);
    transition: all .3s var(--e-hover);
    transition-property: background-color, height;
}

.page__main {
    padding-top: var(--hd-t-height);
    overflow: hidden;
    display: flex;
    justify-content: center;
    flex-direction: column;
    flex: 1 0 auto;
}

.page__footer {
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    flex: 0 0 auto;
}

/* buttons */

.button {
    font-weight: 700;
    line-height: var(--lh-m);
    text-align: center;
    color: var(--c-black);
    background-color: transparent;
    border: 2px solid var(--c-black);
    border-radius: 50px;
    position: relative;
    padding: .5em 1em;
    margin: 0;
    display: table;
    transition: all .2s ease-out;
    /* all .3s var(--e-hover); */
    transition-property: box-shadow;
    cursor: pointer;
}

.is-ie .button {
    line-height: 1.25;
}

.button:hover {
    text-decoration: none;
    color: var(--c-white);
    background-color: var(--c-black);
    box-shadow: 0 0 0 .2em var(--c-black);
}

.button>span {
    position: relative;
    display: flex;
    align-items: center;
    pointer-events: none;
}

.button i {
    font-size: 1.5em;
    margin: -.25em -.4em -.25em .4em;
}

/* #endregion */
/* #region - header */

.header__desktop,
.header__mobile {
    position: relative;
    max-width: var(--w-max-l);
    width: 100%;
    height: 100%;
    padding: 0 4.5em;
    margin: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.header__desktop a,
.header__mobile a {
    color: inherit;
}

.header__desktop a:hover,
.header__mobile a:hover {
    text-decoration: none;
}

.header__mobile a:hover>span:not(.nav__expand),
.header__mobile .nav__link:hover {
    text-decoration: underline;
}

.header__logo {
    margin-right: 4.5em;
    flex: 0 0 auto;
}

.is-scrolled-top .header__logo-link {
    height: var(--hd-t-logo);
    margin-top: 4em;
}

.header__logo-link {
    position: relative;
    height: var(--hd-logo);
    display: block;
}

.is-scrolled-top .header__logo-link:before {
    top: -3em;
    height: calc(100% + 6em);
    transition: all .3s ease-out;
}

.header__logo-link:before {
    content: '';
    background-color: var(--c-geyser);
    position: absolute;
    top: calc((var(--hd-height) - var(--hd-logo)) / -2);
    left: -4.5em;
    width: calc(100% + 9em);
    height: var(--hd-height);
    z-index: -1;
    transition: all .3s var(--e-hover);
}

.header__logo-image--primary,
.header__logo-image--secondary {
    height: 100%;
}

.is-scrolled-top .header__logo-image--primary {
    display: block;
}

.is-scrolled-top .header__logo-image--secondary {
    display: none;
}

.header__logo-image--primary {
    display: none;
}

.header__logo-image--secondary {
    display: block;
}

/* desktop nav */

.header__desktop {
    display: flex;
}

.header__desktop .header__group {
    width: 100%;
    height: 100%;
    padding: .5em 0;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
}

.is-scrolled-top .header__desktop .header__primary,
.is-scrolled-top .header__desktop .header__secondary {
    width: 100%;
}

.header__desktop .header__primary,
.header__desktop .header__secondary {
    width: auto;
    display: flex;
    justify-content: flex-end;
}

.is-scrolled-top .header__desktop .header__primary {
    margin: 0 -1.25em;
    order: 1;
}

.header__desktop .header__primary {
    margin: 0 auto;
    order: -1;
}

.header__desktop .header__secondary {
    margin: 0 -1.25em;
}

.is-ie .header__desktop .header__primary,
.is-ie .header__desktop .header__secondary {
    margin: 0;
}

/* custom button */

.header__nav .button-li a {
    font-weight: 700;
    color: var(--c-black);
    background-color: transparent;
    border: 2px solid var(--c-black);
    border-radius: 50px;
    position: relative;
    padding: .5em 1em;
    margin: 0 1em;
    display: flex;
    transition: all .2s ease-out;
    transition-property: box-shadow;
    /* transition: all .3s var(--e-hover); */
}

.header__nav .button-li a:before {
    display: none;
}

.header__nav .button-li a:after {
    content: '\f0a9';
    font-family: 'Font Awesome 6 Pro';
    font-weight: 300;
    font-size: 1.5em;
    margin: -.25em -.4em -.25em .4em;
}

.header__nav .button-li a:hover {
    text-decoration: none;
    color: var(--c-white);
    background-color: var(--c-black);
    box-shadow: 0 0 0 .2em var(--c-black);
}

/* secondary */

.button-fontsize,
.button-language {
    padding: 1em;
    margin: 0 .25em;
    display: flex;
    align-items: center;
}

.button-fontsize img {
    visibility: hidden;
}

.button-fontsize img,
.button-fontsize svg,
.button-language i {
    line-height: inherit;
    fill: var(--c-emperor);
    width: 1.25em;
    margin-right: .5em;
}

.is-ie .button-fontsize svg {
    height: 1em;
}

.button-fontsize span {
    flex: 1 0 auto;
}

/* primary */

.header__desktop .nav__list {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.header__desktop .nav__item {
    position: relative;
}

.header__desktop .nav__list>.nav__item {
    margin: 0 .25em;
}

.header__desktop .nav__list>.nav__item--has-children:hover {
    z-index: 1;
}

.header__desktop .nav__link {
    color: inherit;
    position: relative;
    padding: 1em;
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.header__desktop .nav__item--has-children>.nav__link {
    padding-right: 2em;
}

.header__desktop .nav__item--is-current>.nav__link,
.header__desktop .nav__item--child-is-current>.nav__link {
    color: inherit;
}

.header__desktop .nav__item--has-children>.nav__link:after,
.header__desktop .nav__item--has-children>.nav__link>.nav__expand:after {
    content: '\f107';
    font-family: 'Font Awesome 6 Pro';
    font-size: .8em;
    position: relative;
    margin: 0 -1.75em 0 .25em;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    cursor: pointer;
}

.header__desktop .nav__item--has-children>.nav__link:after {
    display: none;
}

.header__desktop .nav__item--has-children>.nav__link>.nav__expand {
    width: 0;
    margin-left: auto;
}

.header__desktop .nav__sublist {
    text-align: left;
    white-space: nowrap;
    color: inherit;
    background-color: var(--c-geyser);
    border: 0;
    box-shadow: none;
    /* 0 .1em 1em 0 rgba(0, 0, 0, .1); */
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 100%;
    padding: .25em 0;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-1em);
    pointer-events: none;
}

.header__desktop .nav__item:hover>.nav__sublist,
.header__desktop .nav__link[aria-expanded='true']~.nav__sublist {
    opacity: 1;
    visibility: visible;
    transform: translate(0);
    transition: all .4s var(--e-hover);
    transition-property: opacity, transform;
    pointer-events: all;
}

.header__desktop .nav__sublist .nav__sublist {
    top: -.25em;
    left: 100%;
    min-width: 100%;
    z-index: -1;
    transform: translateX(-1em);
}

.header__desktop .nav__sublist .nav__link {
    text-transform: none;
    padding: .5em 2em .5em 1em;
    overflow: hidden;
}

.header__desktop .nav__sublist .nav__link:before {
    content: '\f061';
    font-family: 'Font Awesome 6 Pro';
    width: 0;
    opacity: 0;
    transform: translateX(-2em);
    transition: all .4s var(--e-hover);
    transition-property: width, opacity, transform;
}

.header__desktop .nav__sublist .nav__link:hover:before,
.header__desktop .nav__sublist .nav__item--is-current .nav__link:before {
    width: 1.5em;
    opacity: 1;
    transform: translateX(0);
}

.header__desktop .nav__sublist .nav__link:hover,
.header__desktop .nav__sublist .nav__link[aria-expanded='true'],
.header__desktop .nav__sublist .nav__item--has-children:hover>.nav__link {
    background-color: var(--c-porcelain);
}

.header__desktop .nav__sublist .nav__item--has-children>.nav__link:after,
.header__desktop .nav__sublist .nav__item--has-children>.nav__link>.nav__expand:after {
    content: '\f105';
}

/* underline */

.header__desktop .nav__list>.nav__item>.nav__link,
.header__desktop .header__secondary a {
    position: relative;
}

.header__desktop .nav__list>.nav__item>.nav__link:before,
.header__desktop .header__secondary a:before {
    content: '';
    border-bottom: 2px solid;
    width: 100%;
    position: absolute;
    bottom: .25em;
    left: 0;
    opacity: 0;
    transform: scaleX(.5);
    transition: all .3s var(--e-hover);
    transition-property: opacity, transform;
}

.header__desktop .nav__list>.nav__item>.nav__link:hover:before,
.header__desktop .nav__list>.nav__item>.nav__link[aria-expanded='true']:before,
.header__desktop .header__secondary a:hover:before {
    opacity: 1;
    transform: scaleX(1);
}

/* mobile nav */

.header__mobile {
    display: none;
}

.header__mobile .header__group {
    display: flex;
    align-items: center;
}

.header__toggle {
    color: inherit;
    position: relative;
    width: 1.5em;
    height: 1em;
    margin-left: 1.25em;
    z-index: 2;
    display: block;
    flex: 0 0 auto;
    cursor: pointer;
}

.nav--is-active .header__toggle {
    pointer-events: all;
}

.nav--is-active .header__toggle:after {
    opacity: 0;
    visibility: hidden;
}

.header__toggle span {
    background-color: var(--c-black);
    border-radius: 2px;
    position: absolute;
    left: 0;
    width: 100%;
    height: 2px;
    display: block;
    opacity: 1;
    transform: rotate(0deg);
    transition: .3s var(--e-hover);
    pointer-events: none;
}

.header__toggle span:nth-child(1) {
    top: 0;
}

.header__toggle span:nth-child(2),
.header__toggle span:nth-child(3) {
    top: .45em;
}

.header__toggle span:nth-child(4) {
    top: .9em;
}

.nav--is-active .header__toggle span {
    background-color: var(--c-black);
}

.nav--is-active .header__toggle span:nth-child(1),
.nav--is-active .header__toggle span:nth-child(4) {
    top: .45em;
    left: 50%;
    width: 0;
}

.nav--is-active .header__toggle span:nth-child(2) {
    transform: rotate(45deg);
}

.nav--is-active .header__toggle span:nth-child(3) {
    transform: rotate(-45deg);
}

.header__toggle:hover span {
    background-color: var(--c-lipstick);
}

.header__toggle i {
    width: 100%;
    height: 100%;
    display: block;
}

.is-scrolled-top .header__drawer {
    top: var(--hd-t-height);
    max-height: calc(100vh - var(--hd-t-height));
}

.header__drawer {
    line-height: 1.5;
    text-align: left;
    color: inherit;
    background-color: var(--c-geyser);
    box-shadow: none;
    /* 0 .1em 1em 0 rgba(0, 0, 0, .1); */
    position: fixed;
    top: var(--hd-height);
    right: 0;
    max-width: 30rem;
    width: 100%;
    max-height: calc(100vh - var(--hd-height));
    z-index: 1;
    transform: translateX(100%);
    transition: all .3s var(--e-hover);
    will-change: transform;
    pointer-events: none;
}

.nav--is-active .header__drawer {
    transform: translateX(0);
    pointer-events: all;
}

.is-scrolled-top .header__scroll {
    max-height: calc(100vh - var(--hd-t-height));
}

.header__scroll {
    position: relative;
    max-width: 30rem;
    width: 100%;
    max-height: calc(100vh - var(--hd-height));
    padding: 1.5em;
    overflow: auto;
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    flex-direction: column;
    flex: none;
    transition: padding .3s var(--e-hover);
}

.header__mobile .header__nav {
    width: 100%;
}

.header__mobile .nav__list {
    position: relative;
    margin: 0;
    align-items: flex-start;
    flex-direction: column;
}

.header__mobile .nav__item,
.header__mobile .nav__list>.nav__item {
    border: 0;
    width: 100%;
    padding: 0 0 .5em;
    margin: 0 0 .5em;
}

.header__mobile .nav__item {
    pointer-events: none;
}

.header__mobile .nav__item:last-child {
    border: 0;
    padding-bottom: 0;
    margin-bottom: 0;
}

.header__mobile .nav__item--has-children {
    pointer-events: all;
}

.header__mobile .nav__control {
    color: inherit;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    transition: none;
    cursor: default;
}

.header__mobile .nav__list>.nav__item>.nav__control,
.header__mobile .nav__sublist>.nav__item>.nav__control {
    font-size: inherit;
    font-weight: inherit;
}

.header__mobile .nav__item.open>.nav__control {
    color: inherit;
}

.header__mobile .nav__control:hover {
    color: inherit;
}

.header__mobile .nav__control:after,
.header__mobile .nav__expand:after {
    font-family: 'Font Awesome 6 Pro';
    font-size: inherit;
    content: '\f055';
    font-weight: 300;
    color: inherit;
    display: none;
}

.header__mobile .nav__control:after,
.header__mobile .nav__expand {
    order: -1;
}

.header__mobile .nav__item.open>.nav__control:after,
.header__mobile .nav__control[aria-expanded='true']>.nav__expand:after {
    content: '\f056';
    color: inherit;
}

.header__mobile .nav__item--has-children>.nav__control:after,
.header__mobile .nav__item--has-children>.nav__control>.nav__expand:after {
    display: block;
}

.header__mobile .nav__item--has-children>.nav__control:after {
    display: none;
}

.header__mobile .nav__link {
    color: inherit;
    position: relative;
    padding-right: 0;
    margin-right: 0;
    display: inline;
    transition: color .3s var(--e-hover);
    pointer-events: all;
}

.header__mobile .nav__item--has-children>.nav__control>.nav__link {
    margin: 0 .5em;
}

.header__mobile .nav__link:hover {
    color: inherit;
}

.header__mobile .nav__inner {
    padding: 1em 0 .1em 1.5em;
}

.header__mobile .nav__sublist {
    pointer-events: all;
}

.header__mobile .nav__sublist .nav__sublist {
    margin-bottom: 0;
}

.header__mobile .nav__sublist .nav__link {
    text-transform: none;
}

.header__mobile .header__secondary {
    display: flex;
}

.header__drawer .button-li a {
    margin: 0;
}

.header__drawer .header__secondary {
    margin: 1em -1em -1em;
    display: none;
}

.header__drawer .header__secondary a {
    padding: 0;
    margin: 1em;
}

/* enable drawer */

@media screen and (max-width: 100em) {

    :root {
        --hd-height: 6em;
    }

    .header__desktop {
        display: none;
    }

    .header__mobile {
        display: flex;
    }

    .header__desktop,
    .header__mobile {
        padding-left: 3em;
        padding-right: 3em;
    }

    .header__logo {
        margin-right: 3em;
    }

    .header__logo-link:before {
        left: -3em;
        width: calc(100% + 6em);
    }

}

@media screen and (max-width: 50em) {

    .header__mobile .header__secondary {
        display: none;
    }

    .header__drawer .header__secondary {
        display: flex;
    }

}

@media screen and (max-width: 40em) {

    :root {
        --hd-height: 4em;
        --hd-logo: calc(var(--hd-height) - 1em);
    }

    .header__desktop,
    .header__mobile {
        padding: 0 1.5em;
    }

    .header__logo {
        margin-right: 1.5em;
    }

    .is-scrolled-top .header__logo-link:before,
    .header__logo-link:before {
        width: calc(100% + 4.5em);
    }

}

/* #endregion */
/* #region - footer */

.page__footer {
    background: var(--c-gradient);
    background-color: var(--c-porcelain);
}

.page__container {
    display: flex;
    flex-direction: column;
}

/* primary */

.footer__primary {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
}

.footer__col {
    flex: 0 0 auto;
}

.footer__lc-logo {
    max-width: 8rem;
    width: calc(4rem + 2vw);
    margin-bottom: 1.5em;
}

.footer__lc-contact p:not(:last-child) {
    margin-bottom: 1em;
}

.footer__ul {
    max-width: 15rem;
}

.footer__ul-title {
    font-weight: 700;
    color: var(--c-black);
    margin-bottom: 1em;
}

.footer__ul-item {
    margin-bottom: .75em;
}

.footer__ul-item:last-child {
    margin-bottom: 0;
}

.footer__ul-link {
    font-weight: 400;
    color: inherit;
}

.footer__ab {
    max-width: 8rem;
}

.footer__ab-title {
    font-weight: 700;
    color: var(--c-black);
    margin-bottom: 1.25em;
}

.footer__ab-list {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-wrap: wrap;
}

.footer__ab-link {
    margin-bottom: 1.5em;
}

.footer__ab-image {
    max-width: 8rem;
    width: calc(4rem + 2vw);
}

.footer__lc,
.footer__st {
    flex: 0 0 auto;
}

.scroll-top {
    font-size: var(--fs-h3);
    color: inherit;
}

/* secondary */

.footer__secondary {
    margin-top: 1em;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
}

.footer__sns-items {
    margin: 0 -1em;
    display: flex;
}

.footer__sns-item {
    margin: 0 1em;
}

.footer__sns-link {
    color: inherit;
}

.footer__md {
    display: flex;
    align-items: center;
}

.footer__md img {
    max-width: 1.75em;
    margin-left: .5em;
}

@media screen and (max-width: 80em) {

    .footer__ab {
        max-width: none;
        width: 100%;
        flex: 1 1 auto;
    }

    .footer__ab-link {
        margin: 0 1em 0 0;
    }

    .footer__st {
        position: absolute;
        right: 1.5em;
        bottom: 1.5em;
    }

    .footer__secondary {
        padding-right: 4.5em;
        align-items: flex-start;
        flex-direction: column;
    }

    .footer__sns {
        margin-bottom: 0;
        order: -1;
    }

    .footer__md {
        margin-bottom: .5em;
    }

    .footer__cr {
        margin-top: 0;
        order: 1;
    }

}

@media screen and (max-width: 60em) {

    .footer__ul {
        max-width: none;
        width: 100%;
        flex: 1 1 auto;
    }

}

@media screen and (max-width: 40em) {

    .footer__st {
        right: .75em;
    }

}

/* #endregion */
/* #region - wysiwyg */

.wysiwyg {
    display: flex;
    flex-direction: column;
}

.wysiwyg:after {
    content: '';
    margin-bottom: -1.5em;
    display: block;
}

.wysiwyg h1 {
    font-size: var(--fs-l);
    font-weight: 700;
    letter-spacing: -.03em;
    line-height: var(--lh-s);
    color: var(--c-black);
    margin-bottom: .5em;
}

.wysiwyg h2 {
    font-size: var(--fs-h2);
    font-weight: 700;
    letter-spacing: -.03em;
    line-height: var(--lh-s);
    color: var(--c-black);
    margin-bottom: .6em;
}

.wysiwyg h3,
.wysiwyg .highlight {
    font-size: var(--fs-h5);
    font-weight: 700;
    line-height: var(--lh-s);
    color: var(--c-black);
    margin-bottom: 1.1em;
}

.wysiwyg .highlight {
    max-width: 40em;
    margin: 0;
    display: block;
}

.wysiwyg p,
.wysiwyg ul,
.wysiwyg ol {
    margin-bottom: 1.5em;
}

.wysiwyg ul,
.wysiwyg ol {
    padding-left: 1.25em;
}

.wysiwyg ul {
    list-style-type: disc;
}

.wysiwyg ol {
    list-style-type: decimal;
}

.wysiwyg li>ul,
.wysiwyg li>ol {
    margin: .5em 0;
}

.wysiwyg li:last-child>ul,
.wysiwyg li:last-child>ol {
    margin-bottom: 0;
}

.wysiwyg ul>li,
.wysiwyg ol>li {
    position: relative;
    padding-left: .5em;
    margin-bottom: .5em;
}

.wysiwyg ul>li:last-child,
.wysiwyg ol>li:last-child {
    margin-bottom: 0;
}

.wysiwyg p>img {
    margin-top: .5em;
    margin-bottom: .25em;
}

.wysiwyg .button {
    margin: .25em 0 1.5em;
}

.wysiwyg figure {
    margin-top: .5em;
    margin-bottom: 1.75em;
}

.wysiwyg figcaption {
    font-size: var(--fs-s);
    color: var(--c-emperor);
    margin: 1em 0 0;
}

.wysiwyg hr {
    border-bottom: 2px solid var(--c-dove-gray);
    width: 100%;
    margin-top: .25em;
    margin-bottom: 1.75em;
}

.wysiwyg .table-overflow {
    max-width: calc(100vw - 3em);
    margin-top: .5em;
    margin-bottom: 1.5em;
    overflow-x: auto;
}

.wysiwyg table {
    width: 100%;
}

.wysiwyg thead {
    font-weight: 700;
    text-align: left;
    background-color: var(--c-geyser);
}

.wysiwyg tr:nth-child(even) {
    background-color: var(--c-porcelain);
}

.wysiwyg th,
.wysiwyg td {
    padding: .75em 1em;
}

.wysiwyg table ul,
.wysiwyg table ol,
.wysiwyg table li {
    margin: 0;
}

.wysiwyg .cite {
    font-size: var(--fs-h5);
    font-weight: 400;
    line-height: var(--lh-s);
    letter-spacing: -.02em;
}

.wysiwyg .cite:before {
    content: '';
    border-top: 1px solid;
    width: 3em;
    margin-top: 1.5em;
    display: block;
}

.wysiwyg .note-default,
.wysiwyg .note-warning {
    font-size: var(--fs-h5);
    font-weight: 400;
    line-height: var(--lh-s);
    letter-spacing: -.02em;
    border-radius: 10px;
    position: relative;
    padding: 1em 1em 1em 3.25em;
    display: block;
}

.wysiwyg .note-default:before,
.wysiwyg .note-warning:before {
    font-family: 'Font Awesome 6 Pro';
    font-size: 1.5em;
    font-weight: 300;
    text-align: center;
    position: absolute;
    top: 50%;
    left: .4em;
    width: 1.5em;
    transform: translate(0, -50%);
}

.wysiwyg .note-default {
    background-color: var(--c-primrose);
    background-color: rgba(212, 236, 142, .5);
}

.wysiwyg .note-default:before {
    content: '\f15c';
}

.wysiwyg .note-warning {
    background-color: var(--c-cavern-pink);
}

.wysiwyg .note-warning:before {
    content: '\f071';
}

@media screen and (max-width: 40em) {

    .wysiwyg h1 {
        margin-bottom: .75em;
    }

    .wysiwyg h2 {
        margin-bottom: .9em;
    }

    .wysiwyg h3 {
        margin-bottom: 1.1em;
    }

}

/* #endregion */
/* #region - single */

.s-post__container {
    max-width: var(--w-max-s);
}

.s-post__wrapper {
    display: flex;
    flex-direction: column;
}

.s-post__wrapper:after {
    content: '';
    margin-bottom: -1.5em;
    display: block;
}

.s-post__header {
    max-width: 40em;
}

.s-post__title {
    font-size: var(--fs-h2);
    font-weight: 700;
    letter-spacing: -.03em;
    line-height: var(--lh-s);
    color: var(--c-black);
    margin-bottom: .5em;
}

.s-post .s-post__meta {
    list-style-type: none;
    padding: 0;
    margin: -1em -.25em 1em;
    display: flex;
    flex-wrap: wrap;
}

.s-post .s-post__meta>li {
    padding: 0;
    margin: .25em;
}

.s-post .s-post__meta>li:last-child {
    margin-bottom: .5em;
}

.s-post__meta-terms {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
}

.s-post__meta-terms .separator {
    margin-right: .25em;
}

.s-post__image {
    position: relative;
    margin: .5em 0 1.75em;
}

.s-post__image:after {
    content: '';
    padding-bottom: 56.25%;
    display: block;
}

.s-post h1 {
    font-size: var(--fs-h1);
    font-weight: 700;
    letter-spacing: -.03em;
    line-height: var(--lh-s);
    color: var(--c-black);
    margin-bottom: .5em;
}

.s-post h2,
.s-post p.h2 {
    font-size: var(--fs-h2);
    font-weight: 700;
    letter-spacing: -.03em;
    line-height: var(--lh-s);
    color: var(--c-black);
    margin-bottom: .6em;
}

.s-post h3,
.s-post p.h3 {
    font-size: var(--fs-h5);
    font-weight: 700;
    line-height: var(--lh-s);
    color: var(--c-black);
    margin-bottom: 1.1em;
}

.s-post p,
.s-post ul,
.s-post ol {
    margin-bottom: 1.5em;
}

.s-post ul,
.s-post ol {
    padding-left: 1.25em;
}

.s-post ul {
    list-style-type: disc;
}

.s-post ol {
    list-style-type: decimal;
}

.s-post li>ul,
.s-post li>ol {
    margin: .5em 0;
}

.s-post li:last-child>ul,
.s-post li:last-child>ol {
    margin-bottom: 0;
}

.s-post ul>li,
.s-post ol>li {
    position: relative;
    padding-left: .5em;
    margin-bottom: .5em;
}

.s-post ul>li:last-child,
.s-post ol>li:last-child {
    margin-bottom: 0;
}

.s-post figure {
    margin-top: .5em;
    margin-bottom: 1.75em;
}

.s-post figcaption {
    font-size: var(--fs-s);
    color: var(--c-emperor);
    margin: 1em 0 0;
}

.s-post hr {
    border-bottom: 2px solid var(--c-dove-gray);
    width: 100%;
    margin-top: .25em;
    margin-bottom: 1.75em;
}

.s-post .table-overflow {
    max-width: calc(100vw - 3em);
    margin-top: .5em;
    margin-bottom: 1.5em;
    overflow-x: auto;
}

.s-post table {
    width: 100%;
}

.s-post thead {
    font-weight: 700;
    text-align: left;
    background-color: var(--c-geyser);
}

.s-post tr:nth-child(even) {
    background-color: var(--c-porcelain);
}

.s-post th,
.s-post td {
    padding: .75em 1em;
}

.s-post table ul,
.s-post table ol,
.s-post table li {
    margin: 0;
}

.s-post__footer {
    border-top: 2px solid;
    margin: .5em 0 1.5em;
    padding-top: 2em;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
}

.s-post__back-button i {
    margin-left: -.4em;
    margin-right: .4em;
}

.s-post .s-post__event {
    list-style-type: none;
    padding: 0;
}

.s-post .s-post__event>li {
    padding: 0;
}

.s-post .s-post__event i {
    font-size: .9em;
    text-align: center;
    width: 1em;
    margin-right: .5em;
}

/* gallery */

.s-post__gallery {
    position: relative;
    margin: -1em -1em 1em -1em;
    display: flex;
    flex-wrap: wrap;
}

.s-post__gallery-item {
    position: relative;
    width: calc(50% - 2em);
    margin: 1em;
}

.s-post__gallery-item:after {
    content: '';
    padding-bottom: 62.5%;
    display: block;
}

.s-post__gallery-image {
    background-color: var(--c-porcelain);
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.s-post .s-post__gallery-image {
    margin: auto;
}

.s-post__gallery-image img {
    margin: 0;
    transition: transform .3s var(--e-hover);
}

.s-post__gallery-item:hover .s-post__gallery-image img {
    transform: scale(1.2);
}

.s-post__gallery-image:before {
    content: '\f424';
    font-family: 'Font Awesome 6 Pro';
    font-size: var(--fs-h3);
    font-weight: 300;
    color: var(--c-white);
    background-color: rgba(0, 0, 0, .6);
    border-radius: 50%;
    position: absolute;
    top: 50%;
    left: 50%;
    width: 2em;
    height: 2em;
    margin: -1em;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transform: scale(0);
    transition: all .3s var(--e-hover);
    transition-property: opacity, transform;
}

.s-post__gallery-item:hover .s-post__gallery-image:before {
    opacity: 1;
    transform: scale(1);
}

/* content block */

.s-post .wp-block-columns {
    margin: 0;
}

@media screen and (max-width: 40em) {

    .s-post h1 {
        margin-bottom: .75em;
    }

    .s-post h2,
    .s-post p.h2 {
        margin-bottom: .9em;
    }

    .s-post h3,
    .s-post p.h3 {
        margin-bottom: 1.1em;
    }

    .s-post__gallery-item {
        width: calc(50% - 1.5em);
        margin: .75em;
    }

}

@media screen and (max-width: 30em) {

    .s-post__gallery-item {
        width: calc(100% - 1.5em);
    }

}

/* #endregion */
/* #region - accordion */

.accordion__list {
    width: 100%;
}

.accordion__item {
    border-bottom: 1px solid var(--c-dove-gray);
}

.accordion__control {
    position: relative;
    padding: 1.5em 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    transition: color .3s var(--e-hover);
    cursor: pointer;
}

.accordion__item.open>.accordion__control {
    color: inherit;
}

.accordion__control:hover {
    color: inherit;
}

.accordion__title,
.accordion__link {
    font-size: var(--fs-h5);
    font-weight: 700;
    line-height: var(--lh-s);
    letter-spacing: -.02em;
    color: var(--c-black);
    margin-right: 1em;
}

.accordion__link {
    color: inherit;
    transition: none;
}

.accordion__expand {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    order: 1;
}

.accordion__control:after,
.accordion__expand:after {
    content: '\f055';
    font-family: 'Font Awesome 6 Pro';
    font-size: var(--fs-h2);
    font-weight: 300;
    color: inherit;
}

.accordion__control:after {
    display: none;
}

.accordion__item.open>.accordion__control:after,
.accordion__control[aria-expanded='true']>.accordion__expand:after {
    content: '\f056';
    color: inherit;
}

.accordion__content {
    max-height: 0;
    overflow: hidden;
    visibility: hidden;
}

.accordion__item.open>.accordion__content {
    visibility: visible;
}

.accordion__inner {
    padding: 2em 0;
    padding-top: 0;
}

/* #endregion */
/* #region - form */

.form form {
    display: flex;
    flex-direction: column;
}

.form__header {
    margin-bottom: 1.5em;
    order: -1;
}

.form__header h2 {
    font-size: var(--fs-h2);
    font-weight: 700;
    letter-spacing: -.03em;
    line-height: var(--lh-s);
    color: var(--c-black);
}

.form__main {
    padding: 0;
    margin: 0 -.75em;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}

.form__main>div {
    width: 100%;
    margin: 0 .75em 1.5em;
}

.form__main>div.is-half {
    min-width: calc(50% - 1.5em);
    flex: 1 1 20rem;
}

.form__main input,
.form__main textarea,
.form__main select {
    border-color: var(--c-dove-gray);
    width: 100%;
    display: block;
    resize: none;
}

.form__main input:focus,
.form__main textarea:focus,
.form__main select:focus {
    border-color: var(--c-black);
}

.form__main label>span:first-child {
    font-weight: 700;
    margin-bottom: .5em;
    display: block;
}

.form__main label>span.is-required:after {
    content: '*';
    color: var(--c-lipstick);
    margin-left: .25em;
}

.form__footer {
    width: 100%;
    margin: 0 0 0 auto;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.form__footer .form__submit {
    position: relative;
    margin: .25em 0 0;
    display: flex;
}

.form__footer input[type='submit'] {
    text-indent: -99em;
    border: 0;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    cursor: pointer;
}

.form__footer input[type='submit']:hover~.button {
    text-decoration: none;
    color: var(--c-white);
    background-color: var(--c-black);
    box-shadow: 0 0 0 .2em var(--c-black);
}

/* loader */

.form .wpcf7-spinner {
    background: none;
    border-radius: 0;
    position: relative;
    left: 1em;
    width: auto;
    height: auto;
    padding: 0;
    margin: 0;
    display: flex;
    align-items: center;
    order: 2;
    opacity: 1;
}

.form .wpcf7-spinner:before {
    content: '\e1d4';
    font-family: 'Font Awesome 6 Pro';
    font-size: var(--fs-h4);
    font-weight: 300;
    line-height: 1;
    color: var(--c-lipstick);
    background: none;
    border-radius: 0;
    position: absolute;
    top: auto;
    left: auto;
    width: auto;
    height: auto;
    transform-origin: center;
    animation: loading 1.2s linear infinite;
}

@keyframes loading {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

/* validation */

.form .is-invalid input,
.form .is-invalid textarea,
.form .is-invalid select {
    border-color: var(--c-lipstick);
}

.form .wpcf7-not-valid-tip {
    font-size: var(--fs-s);
    color: var(--c-lipstick);
    margin: .5em 0 0;
    display: block;
}

.form form .wpcf7-response-output {
    font-weight: 400;
    background-color: var(--c-geyser);
    border: 0;
    border-radius: 10px;
    position: relative;
    padding: 1.5em;
    margin: 0 0 1.5em;
    display: block;
    order: -1;
}

.form form.sent .wpcf7-response-output {
    background-color: var(--c-primrose);
}

.form form.invalid .wpcf7-response-output {
    background-color: var(--c-cavern-pink);
}

.form form .wpcf7-response-output p {
    font-size: var(--fs-h5);
    font-weight: 700;
    line-height: var(--lh-s);
    display: flex;
    align-items: center;
}

.form form .wpcf7-response-output p:before {
    font-family: 'Font Awesome 6 Pro';
    font-size: 1.5em;
    font-weight: 300;
    text-align: center;
    width: 1em;
    margin-right: .5em;
}

.form form.sent .wpcf7-response-output p:before {
    content: '\f058';
}

.form form.invalid .wpcf7-response-output p:before {
    content: '\f071';
}

.form form .wpcf7-response-output ul {
    list-style-type: disc;
    padding-left: 1.25em;
    margin-top: 1em;
}

.form form .wpcf7-response-output ul>li:not(:last-child) {
    margin-bottom: .5em;
}

/* #endregion */
/* #region - plyr */

.plyr [class*='__container'] {
    max-width: none;
    width: auto;
    padding: 0;
}

/* #endregion */
/* #region - swiper & lightbox */

.swiper {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    flex: 1 0 auto;
}

.swiper-container {
    max-width: 100%;
    width: 100%;
}

.swiper-slide {
    background-size: cover;
    background-position: center;
    height: auto;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.swiper-lazy {
    opacity: 0;
    transition: opacity .3s var(--e-hover);
}

.swiper-lazy-loaded {
    opacity: 1;
}

.swiper-lazy-preloader {
    border: none;
    border-radius: 0;
    position: absolute;
    width: auto;
    height: auto;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    animation: none;
}

.swiper-lazy-preloader:before {
    content: '\e1d4';
    font-family: 'Font Awesome 6 Pro';
    font-size: var(--fs-h1);
    font-weight: 300;
    line-height: 1;
    color: var(--c-lipstick);
    width: 1em;
    height: 1em;
    margin: -.5em;
    animation: spin 1.2s linear infinite;
}

.swiper-navigation {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: 100%;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
    transform: translate(-50%, -50%);
    pointer-events: none;
}

.swiper-navigation .swiper-button-prev,
.swiper-navigation .swiper-button-next {
    font-size: 1.5em;
    font-weight: 300;
    line-height: 0;
    color: var(--c-white);
    background: transparent;
    position: relative;
    top: auto;
    left: auto;
    right: auto;
    width: 1em;
    height: 1em;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    transition: all .3s var(--e-hover);
    transition-property: background, color, opacity;
    cursor: pointer;
    pointer-events: all;
}

.swiper-container-rtl~.swiper-navigation .swiper-button-prev,
.swiper-container-rtl~.swiper-navigation .swiper-button-next {
    transform: scaleX(-1);
}

.swiper-navigation .swiper-button-prev:hover,
.swiper-navigation .swiper-button-next:hover {
    color: var(--c-lipstick);
}

.swiper-navigation .swiper-button-prev:before,
.swiper-navigation .swiper-button-next:before {
    content: '\f0a9';
    font-family: 'Font Awesome 6 Pro';
}

.swiper-navigation .swiper-button-prev:before {
    content: '\f0a8';
}

.swiper-navigation .swiper-button-prev:after,
.swiper-navigation .swiper-button-next:after {
    display: none;
}

.swiper-navigation .swiper-button-prev.swiper-button-disabled,
.swiper-navigation .swiper-button-next.swiper-button-disabled {
    opacity: .25;
    pointer-events: none;
}

.swiper-pagination {
    position: relative;
    width: 100%;
    padding: 0 3em;
    margin-top: 3em;
    display: flex;
    align-items: center;
    justify-content: center;
}

.swiper-pagination .swiper-pagination-bullet {
    background-color: var(--c-white);
    border: 0;
    border-radius: 50%;
    width: .8em;
    height: .8em;
    margin: 0 1.2em;
    opacity: .5;
    transition: all .3s var(--e-hover);
}

.swiper-pagination .swiper-pagination-bullet-active {
    opacity: 1;
    border-radius: 5px;
    width: 2em;
}

.swiper-button-lock,
.swiper-pagination-lock {
    display: none;
}

/* swiper lightbox */

.lb--is-active {
    overflow: hidden;
}

.lb__link>.lb__item {
    display: none;
}

.lb__link {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}

.lb {
    background-color: rgba(0, 0, 0, .8);
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 99;
    display: none;
    flex-direction: column;
}

.lb--is-opened {
    display: flex;
}

.lb__close,
.lb .swiper-navigation .swiper-button-prev,
.lb .swiper-navigation .swiper-button-next {
    font-size: var(--fs-l);
    font-weight: 300;
    line-height: 0;
    color: var(--c-white);
    background: transparent;
    border-radius: 50%;
    position: relative;
    top: auto;
    left: auto;
    width: 1em;
    height: 1em;
    margin: .5em;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    transition: all .4s var(--e-hover);
    transition-property: background, color, opacity;
    cursor: pointer;
}

.lb__close:hover,
.lb .swiper-navigation .swiper-button-prev:hover,
.lb .swiper-navigation .swiper-button-next:hover {
    color: var(--c-lipstick);
    text-decoration: none;
}

.lb .swiper-navigation .swiper-button-prev.swiper-button-disabled,
.lb .swiper-navigation .swiper-button-next.swiper-button-disabled {
    opacity: 0;
}

.lb__close {
    color: var(--c-black);
    background: var(--c-white);
    position: absolute;
    top: 0;
    right: 0;
    width: 1.5em;
    height: 1.5em;
    transform: scale(.67);
    transform-origin: top right;
}

.lb__close:before,
.lb .swiper-navigation .swiper-button-prev:before,
.lb .swiper-navigation .swiper-button-next:before {
    font-family: 'Font Awesome 6 Pro';
    margin: 0;
    transition: transform .4s ease;
}

.lb__close:before {
    content: '\f057';
}

.lb .swiper-navigation .swiper-button-prev:before {
    content: '\f0a8';
}

.lb .swiper-navigation .swiper-button-next:before {
    content: '\f0a9';
}

.lb .swiper-navigation .swiper-button-lock {
    opacity: 0;
    transition: none;
}

.lb__swiper .swiper-slide {
    padding: 3em;
    align-items: center;
    justify-content: center;
}

.lb__item-image,
.lb__item-html5,
.lb__item-embed {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    padding: 0;
    margin: auto;
}

.lb__item-image {
    max-width: calc(100vw - 3em);
    width: 100%;
    max-height: calc(100vh - 3em);
    height: 100%;
}

.lb__item-image picture {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
}

.lb__item-image img {
    max-width: 100%;
    width: auto;
    max-height: 100%;
    height: auto;
    padding: 0;
    margin: auto;
    flex: 0 0 auto;
}

.lb__item-image figcaption {
    text-align: center;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    padding: 0 1.5em;
    display: flex;
    justify-content: center;
}

.lb__item-image figcaption>span {
    background-color: rgba(255, 255, 255, .9);
    max-width: var(--w-max-xxs);
    padding: .5em 1em;
}

.lb__item-html5,
.lb__item-embed {
    max-width: calc(16 / 9 * (80vh - 3em));
    width: calc(100vw - 3em);
    max-height: calc(80vh - 3em);
    height: calc(9 / 16 * (100vw - 3em));
}

/* #endregion */
/* #region - home */

.h-hb {
    position: relative;
    min-height: calc(100vh - var(--hd-t-height));
    flex: 1;
}

.h-hb__container,
.h-hb__row {
    position: relative;
    height: 100%;
    padding: 0;
    margin: auto;
}

.h-hb__col {
    margin: 0;
}

.h-hb__text {
    color: var(--c-black);
    background-color: var(--c-tangerine);
    position: relative;
    padding: 3em 4.5em;
    z-index: 1;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    flex-direction: column;
    flex: 1 1 25rem;
}

.h-hb__text:before {
    content: '';
    background-image: url('../images/patterns/pattern-5.svg');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: bottom;
    position: absolute;
    bottom: 0;
    left: 60%;
    width: 150%;
    height: 100%;
    z-index: 1;
    pointer-events: none;
}

.is-ie .h-hb__text>* {
    max-width: 100%;
}

.h-hb__text h1 {
    font-size: var(--fs-xl);
    font-weight: 700;
    letter-spacing: -.03em;
    line-height: var(--lh-reset);
    margin-bottom: .5em;
}

.h-hb__button {
    z-index: 2;
}

.h-hb__media {
    position: relative;
    flex: 4 1 30rem;
}

.h-hb__image {
    background-color: var(--c-porcelain);
    width: 100%;
    height: 100%;
}

.h-hb__lb {
    position: relative;
}

@media screen and (max-width: 90em) {

    .h-hb__text {
        padding-left: 3em;
        padding-right: 3em;
    }

}

@media screen and (max-width: 60em) {

    .h-hb__text {
        position: absolute;
        bottom: 0;
        width: 100%;
    }

}

@media screen and (max-width: 40em) {

    .h-hb__text {
        padding: 2em 1.5em;
    }

}

/* updates */

.h-ud {
    position: fixed;
    bottom: 0;
    width: 100%;
    min-height: 3em;
    z-index: 98;
    transform: translateY(100%);
    transition: transform .3s var(--e-hover);
}

.h-ud.show {
    transform: translateY(0%);
}

.h-ud__container {
    background-color: var(--c-geyser);
    height: 100%;
    padding-top: 0;
    padding-bottom: 0;
}

.h-ud__row {
    height: 100%;
    padding: 1em 0;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: nowrap;
}

.h-ud p {
    margin-right: 1.5em;
}

.h-ud__button {
    font-size: var(--fs-h4);
    color: inherit;
}

/* sitelinks */

.h-sl__container:nth-child(1) {
    max-width: var(--w-max-s);
}

.h-sl__container:nth-child(2) {
    margin-top: -3em;
    margin-bottom: -3em;
}

.h-sl__cta {
    padding: 6em 0;
}

.h-sl__cta-text {
    flex: 3 1 30rem;
}

.h-sl__cta-text h2 {
    font-size: var(--fs-h1);
    font-weight: 700;
    letter-spacing: -.03em;
    line-height: var(--lh-s);
    color: var(--c-black);
}

.h-sl__cta-items {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    flex-direction: column;
    flex: 1 1 auto;
}

.h-sl__cta-link {
    font-size: var(--fs-h3);
    font-weight: 400;
    line-height: var(--lh-s);
    letter-spacing: -.02em;
    color: var(--c-dove-gray);
    position: relative;
    width: 100%;
    padding: .5em 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: all .3s var(--e-hover);
    transition-property: color, width;
}

.h-sl__cta-link:first-child {
    margin-top: -.5em;
}

.h-sl__cta-link:after {
    content: '';
    border-bottom: 1px solid var(--c-dove-gray);
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 100%;
}

.h-sl__cta-link:hover {
    width: calc(100% + 1em);
    text-decoration: none;
}

.h-sl__cta-link i {
    font-size: .8em;
    padding-left: .5em;
    margin-left: auto;
}

.h-sl__items {
    position: relative;
    margin: -.25em;
    display: flex;
    flex-wrap: nowrap;
}

.h-sl__items:before {
    content: '';
    background-color: var(--c-porcelain);
    position: absolute;
    bottom: -1.5em;
    right: 50%;
    left: 50%;
    width: 100vw;
    height: 60%;
    margin-left: -50vw;
    margin-right: -50vw;
}

.h-sl__item {
    position: relative;
    width: calc(25% - .5em);
    margin: .25em;
    flex: 1 1 15rem;
}

.h-sl__item:before {
    content: '';
    padding-bottom: 110%;
    display: block;
}

.h-sl__link,
.h-sl__link>div {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.h-sl__link {
    font-size: var(--fs-h2);
    font-weight: 400;
    line-height: var(--lh-s);
    letter-spacing: -.03em;
    color: var(--c-black);
    background-color: var(--c-geyser);
    z-index: 1;
    transition: all .3s var(--e-hover);
}

.h-sl__link:hover {
    color: var(--c-white);
    text-decoration: none;
    height: 120%;
    top: -10%;
    width: 100%;
    z-index: 2;
}

.h-sl__link>div:nth-child(1) {
    background-image: url('../images/patterns/pattern-1.svg');
    background-size: cover;
    opacity: 0;
    transition: opacity .3s var(--e-hover);
}

.h-sl__link:hover>div:nth-child(1) {
    opacity: 1;
}

.h-sl__link>div:nth-child(2) {
    padding: .8em;
    display: flex;
    justify-content: space-between;
    flex-direction: column;
}

.h-sl__link span {
    max-width: 4em;
}

.h-sl__link i {
    font-size: 1.5em;
    align-self: flex-end;
    order: -1;
}

@media screen and (max-width: 60em) {

    .h-sl__items {
        flex-wrap: wrap;
    }

    .h-sl__items:before {
        height: 75%;
    }

    .h-sl__item {
        width: calc(50% - .5em);
        flex: 1 1 auto;
    }

    .h-sl__item:before {
        min-height: 15rem;
        padding-bottom: 56.25%;
    }

}

@media screen and (max-width: 40em) {

    .h-sl__container:nth-child(2) {
        margin-top: -1.5em;
        margin-bottom: -1.5em;
    }

    .h-sl__cta {
        padding: 1em 0;
    }

    .h-sl__item:before {
        min-height: 8rem;
        padding-bottom: 62.5%;
    }

}

@media screen and (max-width: 25em) {

    .h-sl__items:before {
        height: 90%;
    }

    .h-sl__item {
        width: calc(100% - .5em);
    }

    .h-sl__item:before {
        padding-bottom: 30%;
    }

}

/* director's message */

.h-dm {
    background-color: var(--c-porcelain);
    position: relative;
}

.h-dm__container {
    max-width: var(--w-max);
}

.h-dm__row {
    margin-top: -4.5em;
    margin-bottom: -4.5em;
}

.h-dm__media {
    position: relative;
    display: flex;
    align-items: flex-end;
    flex: 0 1 auto;
}

.h-dm__media:before {
    content: '';
    background-image: url('../images/patterns/pattern-2.svg');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: bottom right;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 150%;
    height: 100%;
    pointer-events: none;
}

.h-dm__image {
    z-index: 1;
}

.h-dm__text {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    flex-direction: column;
    flex: 3 1 20rem;
}

.is-ie .h-dm__text>* {
    max-width: 100%;
}

@media screen and (max-width: 60em) {

    .h-dm__row {
        margin-top: -1.5em;
        margin-bottom: -1.5em;
    }

    .h-dm__media {
        max-width: 60%;
    }

    .h-dm__media:after {
        content: '';
        border-bottom: 1px solid var(--c-geyser);
        position: absolute;
        bottom: 0;
        left: 0;
        width: calc(100vw - 6em);
    }

    .h-dm__text {
        max-width: 40rem;
        width: 100%;
        flex: auto;
    }

}

@media screen and (max-width: 40em) {

    .h-dm__row {
        margin-top: -.75em;
        margin-bottom: -.75em;
    }

}

/* #endregion */
/* #region - ajax */

[data-ajax-loader] {
    height: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: all .3s var(--e-hover);
}

[data-ajax-loader]:before {
    content: '\e1d4';
    font-family: 'Font Awesome 6 Pro';
    font-size: var(--fs-h3);
    font-weight: 300;
    line-height: 1;
    color: var(--c-lipstick);
    position: relative;
    top: .5em;
    width: 1em;
    height: 1em;
    animation: spin 1.2s linear infinite;
}

[data-ajax-container].is-loading [data-ajax-loader] {
    height: 6em;
    opacity: 1;
}

[data-ajax-footer] {
    opacity: 1;
    transition: opacity .2s ease;
}

[data-ajax-container].is-loading [data-ajax-footer] {
    opacity: .2;
    pointer-events: none;
}

@keyframes spin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

/* #endregion */
/* #region - b: news and events */

.b-ne+.b-ne {
    margin-top: -6em;
}

.b-ne__container {
    max-width: var(--w-max-s);
}

.b-ne__wrapper {
    padding: 3em 0;
}

.b-ne__header {
    margin-bottom: 2em;
}

.b-ne__title {
    font-size: var(--fs-h2);
    font-weight: 700;
    letter-spacing: -.03em;
    color: var(--c-black);
    line-height: var(--lh-s);
}

.b-ne__articles {
    position: relative;
    margin: -1em;
    display: flex;
    flex-wrap: wrap;
}

.b-ne__article {
    position: relative;
    width: calc(33.33% - 2em);
    margin: 1em;
}

.a-hl .b-gallery .b-ne__article {
    width: calc(50% - 2em);
}

.b-ne__article-media {
    margin-bottom: 1em;
}

.b-ne__article-image {
    background-color: var(--c-porcelain);
    position: relative;
    overflow: hidden;
}

.b-gallery .b-ne__article-image:before {
    content: '\f055';
    font-family: 'Font Awesome 6 Pro';
    font-size: var(--fs-h3);
    font-weight: 300;
    color: var(--c-white);
    background-color: rgba(0, 0, 0, .6);
    border-radius: 50%;
    position: absolute;
    bottom: .5em;
    right: .5em;
    width: 1.5em;
    height: 1.5em;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
}

.b-ne__article-image:after {
    content: '';
    padding-bottom: 56.25%;
    display: block;
}

.b-ne__article-image img {
    transition: transform .3s var(--e-hover);
}

[data-item-href]:hover .b-ne__article-image img {
    transform: scale(1.2);
}

.has-no-image {
    position: relative;
}

.has-no-image:before {
    content: '\f1c5';
    font-family: 'Font Awesome 6 Pro';
    font-size: 3em;
    font-weight: 100;
    color: var(--c-geyser);
    background-color: var(--c-porcelain);
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.has-no-image:after {
    content: '';
    padding-bottom: 56.25%;
    display: block;
}

.b-ne__article-text {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    flex-direction: column;
}

.is-ie .b-ne__article-text>* {
    max-width: 100%;
}

.b-ne__article-text>*:last-child {
    margin-bottom: 0;
}

.b-ne__article-date {
    color: var(--c-abbey);
    margin-bottom: .5em;
    order: -1;
}

.b-ne__article-title {
    font-size: var(--fs-h5);
    font-weight: 700;
    line-height: var(--lh-s);
    letter-spacing: -.02em;
    color: var(--c-black);
    margin-bottom: .25em;
}

.b-ne__article-link {
    color: inherit;
}

.b-ne__article-excerpt {
    color: var(--c-emperor);
    max-height: calc(var(--lh-m) * 3em);
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.b-ne__article-event-date,
.b-ne__article-event-time,
.b-ne__article-event-location {
    color: var(--c-emperor);
    margin-bottom: .25em;
}

.b-ne__article-event-date i,
.b-ne__article-event-time i,
.b-ne__article-event-location i {
    font-size: .9em;
    text-align: center;
    width: 1em;
    margin-right: .5em;
}

.b-ne__article-photos {
    font-size: var(--fs-h5);
    font-weight: 400;
    line-height: var(--lh-s);
    letter-spacing: -.02em;
}

.b-ne__article-media {
    position: relative;
}

.b-ne__article-calendar-button {
    font-weight: 700;
    color: var(--c-black);
    background-color: var(--c-white);
    border-radius: 50px;
    position: absolute;
    right: 1em;
    bottom: 1em;
    width: 2.5em;
    height: 2.5em;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    transition: all .3s var(--e-hover);
    transition-property: width, transform;
}

.b-ne__article-calendar-button * {
    pointer-events: none;
}

.b-ne__article-calendar-button:hover {
    text-decoration: none;
    color: var(--c-black);
    width: 10.5em;
}

.b-ne__article-calendar-button i {
    font-size: 1.25em;
    font-weight: 300;
    padding: .6em;
}

.b-ne__article-calendar-button span {
    white-space: nowrap;
}

.is-ie .b-ne__article-calendar-button span {
    overflow: hidden;
}

.b-ne__footer {
    border-top: 2px solid;
    margin: 2em 0 -.5em;
    padding-top: 1em;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
}

.b-ne__footer>* {
    margin: .5em 0;
}

.b-ne__cta {
    font-size: var(--fs-h5);
    font-weight: 400;
    line-height: var(--lh-s);
    letter-spacing: -.02em;
    margin-right: .5em;
}

@media screen and (max-width: 60em) {

    .b-ne__article {
        width: calc(50% - 2em);
    }

}

@media screen and (max-width: 40em) {

    .b-ne+.b-ne {
        margin-top: -3em;
    }

    .b-ne__wrapper {
        padding: 1em 0;
    }

    .b-ne__articles {
        margin: -.75em;
    }

    .b-ne__article,
    .a-hl .b-news .b-ne__article,
    .a-hl .b-gallery .b-ne__article {
        width: calc(50% - 1.5em);
        margin: .75em;
    }

    .b-ne__article-calendar-button:hover {
        width: 2.5em;
        transform: scale(1.2);
    }

}

@media screen and (max-width: 30em) {

    .b-ne__article,
    .a-hl .b-news .b-ne__article,
    .a-hl .b-gallery .b-ne__article {
        width: calc(100% - 1.5em);
    }

}

/* #endregion */
/* #region - b: hero banner */

.b-hb {
    position: relative;
    min-height: calc(100vh - var(--hd-t-height));
    flex: 1;
}

.b-hb__container,
.b-hb__row {
    position: relative;
    height: 100%;
    padding: 0;
    margin: auto;
}

.b-hb__col {
    margin: 0;
}

.b-hb__text {
    color: var(--c-black);
    background-color: var(--c-tangerine);
    padding: 3em 4.5em;
    z-index: 1;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    flex-direction: column;
    flex: 1 1 25rem;
}

[class*='p-au'] .b-hb__text {
    background-color: var(--c-lima);
}

[class*='p-lrn'] .b-hb__text {
    background-color: var(--c-primrose);
}

[class*='p-adm'] .b-hb__text {
    background-color: var(--c-marzipan);
}

[class*='p-cu'] .b-hb__text {
    background-color: var(--c-bondi-blue);
}

[class*='p-hl'] .b-hb__text,
[class*='a-hl'] .b-hb__text,
[class*='s-hl'] .b-hb__text,
[class*='p-pn'] .b-hb__text {
    color: var(--c-white);
    background-color: var(--c-razzmatazz);
}

.is-ie .b-hb__text>* {
    max-width: 100%;
}

.b-hb__text h1 {
    font-size: var(--fs-xl);
    font-weight: 700;
    letter-spacing: -.03em;
    line-height: var(--lh-reset);
}

.b-hb__media {
    position: relative;
    display: flex;
    flex-direction: column;
    flex: 4 1 30rem;
}

.b-hb__link {
    width: 100%;
    height: 100%;
}

.b-hb__image {
    background-color: var(--c-porcelain);
    position: relative;
    width: 100%;
    height: 100%;
}

/* hero banner v2 */

.b-hbv2 {
    position: relative;
    min-height: calc(100vh - var(--hd-t-height));
    display: flex;
    align-items: flex-end;
}

.b-hbv2__image {
    background-color: var(--c-porcelain);
    width: 100%;
    height: 100%;
}

.b-hbv2__container {
    padding-bottom: 0;
    margin-bottom: 0;
    max-width: var(--w-max-m);
}

.b-hbv2__wrapper {
    padding: 0 0 6em;
    background-color: var(--c-white);
    display: flex;
}

.b-hbv2__wrapper:before {
    content: '';
    background-color: var(--c-tangerine);
    width: 25%;
}

[class*='p-au'] .b-hbv2__wrapper:before {
    background-color: var(--c-lima);
}

[class*='p-lrn'] .b-hbv2__wrapper:before {
    background-color: var(--c-primrose);
}

[class*='p-adm'] .b-hbv2__wrapper:before {
    background-color: var(--c-marzipan);
}

[class*='p-cu'] .b-hbv2__wrapper:before {
    background-color: var(--c-bondi-blue);
}

[class*='p-hl'] .b-hbv2__wrapper:before,
[class*='a-hl'] .b-hbv2__wrapper:before,
[class*='s-hl'] .b-hbv2__wrapper:before,
[class*='p-pn'] .b-hbv2__wrapper:before {
    color: var(--c-white);
    background-color: var(--c-razzmatazz);
}

.b-hbv2 .b-bc {
    position: relative;
}

.b-hbv2+.b-wosb .b-fc__container {
    margin-top: -6em;
}

@media screen and (max-width: 95em) {

    .b-hbv2__container {
        padding: 0;
    }

}

@media screen and (max-width: 90em) {

    .b-hb__text {
        padding-left: 3em;
        padding-right: 3em;
    }

}

@media screen and (max-width: 60em) {

    .b-hb__row {
        flex-direction: column;
    }

    .b-hb__text {
        flex: 0 0 auto;
        order: 2;
    }

    .b-hb__media {
        flex: 1 1 auto;
    }

}

@media screen and (max-width: 40em) {

    .b-hb__text {
        padding: 2em 1.5em;
    }

}

/* #endregion */
/* #region - b: breadcrumb */

.b-bc {
    width: 100%;
    background-color: var(--c-white);
    padding: 2em 1.5em;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
}

.b-bc>* {
    margin-right: .5em;
}

.b-bc span:first-child,
.b-bc span:last-child {
    font-weight: 700;
}

.b-bc a {
    color: inherit;
}

/* mobile breadcrumb */

.b-mbc {
    position: relative;
    margin-bottom: -3em;
    display: none;
}

.b-mbc .b-bc {
    position: relative;
    padding: 0;
}

@media screen and (max-width: 60em) {

    .b-hb__media .b-bc {
        display: none;
    }

    .b-mbc {
        display: block;
    }

}

@media screen and (max-width: 40em) {

    .b-bc {
        padding: 1.5em;
    }

    .b-mbc {
        margin-bottom: -2em;
    }

}

/* #endregion */
/* #region - b: sidebar */

.b-sb {
    display: flex;
    flex-direction: column;
    flex: 1 1 23rem;
}

.b-sb:before {
    content: '';
    background-image: url('../images/patterns/pattern-4.svg');
    background-size: contain;
    background-repeat: no-repeat;
    position: absolute;
    top: 30em;
    left: 0;
    min-width: 20rem;
    max-width: 30rem;
    width: 25%;
    height: 100%;
    z-index: -1;
    pointer-events: none;
}

[class*='p-adm'] .b-sb:before {
    background-image: url('../images/patterns/pattern-8.svg');
}

.b-sb__list {
    max-width: 20rem;
    margin-left: auto;
}

.b-sb__sublist {
    margin-top: -.5em;
}

.b-sb__item {
    border-bottom: 1px solid var(--c-dove-gray);
}

.b-sb__sublist .b-sb__item {
    border: 0;
}

.b-sb__control {
    padding: 0;
    cursor: initial;
}

.b-sb__item--has-children>.b-sb__control {
    cursor: pointer;
}

.b-sb__control:after,
.b-sb__expand:after {
    font-size: 1.5em;
}

.b-sb__link {
    font-size: var(--fs-h5);
    letter-spacing: -.02em;
    color: inherit;
    position: relative;
    padding: 1em 0;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.b-sb__link:hover {
    text-decoration: none;
}

.b-sb__link:before {
    content: '\f061';
    font-family: 'Font Awesome 6 Pro';
    font-size: .75em;
    width: 0;
    opacity: 0;
    transform: translateX(-2em);
    transition: all .4s var(--e-hover);
    transition-property: width, opacity, transform;
}

.b-sb__link:hover:before,
.b-sb__item--is-current>.b-sb__link:before,
.b-sb__item--is-current>.b-sb__control>.b-sb__link:before,
.b-sb__item--child-is-current>.b-sb__link:before,
.b-sb__item--child-is-current>.b-sb__control>.b-sb__link:before {
    width: 1.5em;
    opacity: 1;
    transform: translateX(0);
}

.b-sb__sublist .b-sb__link {
    padding: .5em 0;
}

.b-sb__link i {
    font-size: var(--fs-h4);
    width: 1.5em;
    text-align: center;
    margin-right: .5em;
}

.b-sb__inner {
    padding: 0 0 1em 1.5em;
}

@media screen and (max-width: 90em) {

    .b-sb {
        flex-basis: 24em;
    }

}

@media screen and (max-width: 80em) {

    .b-sb__list {
        max-width: none;
    }

}

@media screen and (max-width: 70em) {

    .b-sb__list {
        margin-top: -1em;
    }

}

@media screen and (max-width: 40em) {

    .b-sb__nav {
        margin: 0 0 1em;
    }

}

/* #endregion */
/* #region - b: main content */

.b-fc {
    position: relative;
}

.b-mc {
    flex: 4 1 40rem;
}

.b-mc>*:not(:last-child) {
    margin-bottom: 3em;
}

.b-wosb .b-fc__container {
    max-width: var(--w-max-s);
}

@media screen and (max-width: 40em) {

    .b-mc>*:not(:last-child) {
        margin-bottom: 2em;
    }

}

/* #endregion */
/* #region - b: vision, mission, motto */

.b-mvm__row {
    padding: 0;
    margin: -.5em;
}

.b-mvm__col {
    border: 1px solid var(--c-dove-gray);
    padding: 3em;
    margin: .5em;
    display: flex;
    flex-direction: column;
    flex: 1 1 25rem;
}

.b-mvm h2 {
    font-size: var(--fs-h5);
    font-weight: 700;
    line-height: var(--lh-s);
    letter-spacing: -.02em;
    color: var(--c-black);
    margin-bottom: .75em;
}

.b-mvm__vm p {
    font-size: var(--fs-h2);
    letter-spacing: -.03em;
    line-height: var(--lh-s);
    color: var(--c-emperor);
    border-bottom: 1px solid var(--c-dove-gray);
    padding-bottom: .5em;
    margin-bottom: 1em;
}

.b-mvm__vm p:last-child {
    margin-bottom: 0;
}

.b-mvm__sm {
    position: relative;
}

.b-mvm__sm:before {
    content: '';
    background-image: url('../images/patterns/pattern-6.svg');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: top right;
    position: absolute;
    top: 0;
    right: 0;
    width: 40%;
    height: 100%;
    pointer-events: none;
}

.b-mvm__sm ul {
    max-width: 75%;
    margin: auto 0;
}

.b-mvm__sm ul>li {
    font-size: var(--fs-l);
    font-weight: 700;
    letter-spacing: -.03em;
    line-height: var(--lh-s);
    color: var(--c-black);
    border-bottom: 1px solid var(--c-dove-gray);
    padding-bottom: .25em;
    margin-bottom: .5em;
}

.b-mvm__sm ul>li:last-child {
    border-bottom: 0;
    padding-bottom: 0;
    margin-bottom: 0;
}

@media screen and (max-width: 40em) {

    .b-mvm__col {
        padding: 1.5em;
    }

}

/* #endregion */
/* #region - b: values */

.b-ov__title {
    font-size: var(--fs-h2);
    font-weight: 700;
    letter-spacing: -.03em;
    line-height: var(--lh-s);
    color: var(--c-black);
    margin-bottom: .8em;
}

.b-ov__items {
    margin: -.5em;
    display: flex;
    flex-wrap: wrap;
}

.b-ov__item {
    border: 1px solid var(--c-dove-gray);
    width: calc(50% - 1em);
    padding: 3em;
    margin: .5em;
    display: flex;
    flex-direction: column;
    flex: 1 0 auto;
}

.b-ov__item-image {
    background-color: var(--c-geyser);
    border-radius: 50%;
    max-width: 8rem;
    margin-bottom: 1.5em;
}

.b-ov__item-text>* {
    max-width: 25rem;
}

.b-ov__item h3 {
    font-size: var(--fs-h2);
    font-weight: 700;
    letter-spacing: -.03em;
    line-height: var(--lh-s);
    color: var(--c-black);
    margin-bottom: .25em;
}

.b-ov__item p {
    font-size: var(--fs-h5);
    font-weight: 400;
    line-height: var(--lh-s);
    letter-spacing: -.02em;
}

@media screen and (max-width: 40em) {

    .b-ov__title {
        margin-bottom: 1.15em;
    }

    .b-ov__item {
        padding: 1.5em;
        flex: 1 1 20rem;
    }

    .b-ov__item-image {
        margin-bottom: 1em;
    }

}

/* #endregion */
/* #region - b: team members */

.b-tm__title {
    font-size: var(--fs-h2);
    font-weight: 700;
    letter-spacing: -.03em;
    line-height: var(--lh-s);
    color: var(--c-black);
    margin-bottom: .8em;
}

.b-tm__items {
    position: relative;
    margin: -1em;
    display: flex;
    flex-wrap: wrap;
}

.b-tm__item {
    position: relative;
    width: calc(33.33% - 2em);
    margin: 1em;
}

.b-tm__item-media {
    margin-bottom: 1em;
}

.b-tm__item-image {
    background-color: var(--c-porcelain);
    position: relative;
    overflow: hidden;
}

.b-tm__item-image:after {
    content: '';
    padding-bottom: 120%;
    display: block;
}

.b-tm__item-media.has-no-image:before {
    content: '\e461';
}

.b-tm__item-media.has-no-image:after {
    padding-bottom: 120%;
}

.b-tm__item-name {
    font-weight: 700;
    text-transform: uppercase;
    margin-bottom: .25em;
}

.b-tm__item-workplace,
.b-tm__item-position {
    color: var(--c-emperor);
}

@media screen and (max-width: 40em) {

    .b-tm__title {
        margin-bottom: 1.15em;
    }

    .b-tm__items {
        margin: -.75em;
    }

    .b-tm__item {
        width: calc(50% - 1.5em);
        margin: .75em;
    }

}

@media screen and (max-width: 25em) {

    .b-tm__item {
        width: calc(100% - 1.5em);
    }

}

/* #endregion */
/* #region - b: cta */

.b-cta__container {
    max-width: var(--w-max-m);
}

.b-cta__items {
    position: relative;
    margin: -.25em;
    display: flex;
    flex-wrap: nowrap;
}

.b-cta__item {
    position: relative;
    width: calc(25% - .5em);
    margin: .25em;
    flex: 1 1 15rem;
}

.b-cta__item:before {
    content: '';
    padding-bottom: 62.5%;
    display: block;
}

.b-cta__link,
.b-cta__link>div {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.b-cta__link {
    font-size: var(--fs-h2);
    font-weight: 400;
    line-height: var(--lh-s);
    letter-spacing: -.03em;
    color: var(--c-black);
    background-color: var(--c-geyser);
    z-index: 1;
    transition: all .3s var(--e-hover);
}

.b-cta__link:hover {
    color: var(--c-white);
    text-decoration: none;
    height: 120%;
    top: -10%;
    width: 100%;
    z-index: 2;
}

.b-cta__link>div:nth-child(1) {
    background-image: url('../images/patterns/pattern-3.svg');
    background-size: cover;
    opacity: 0;
    transition: opacity .3s var(--e-hover);
}

.b-cta__link:hover>div:nth-child(1) {
    opacity: 1;
}

.b-cta__link>div:nth-child(2) {
    padding: .8em;
    display: flex;
    justify-content: flex-end;
    flex-direction: column;
}

.b-cta__link span {
    max-width: 4em;
}

.b-cta__link i {
    font-size: var(--fs-h1);
    align-self: flex-end;
    order: -1;
}

@media screen and (max-width: 60em) {

    .b-cta__items {
        flex-wrap: wrap;
    }

    .b-cta__item {
        width: calc(50% - .5em);
        flex: 1 1 auto;
    }

    .b-cta__item:before {
        padding-bottom: 56.25%;
        min-height: 8rem;
    }

}

@media screen and (max-width: 25em) {

    .b-cta__item {
        width: calc(100% - .5em);
    }

    .b-cta__item:before {
        padding-bottom: 30%;
    }

}

/* #endregion */
/* #region - b: accordion */

.b-ac .accordion__item:first-child .accordion__control {
    margin-top: -1.5em;
}

/* #endregion */
/* #region - b: tables */

/* table v2 */

.b-tbv2 .table-overflow {
    margin-top: 0;
}

.b-tbv2 tr:nth-child(even) {
    background: none;
}

.b-tbv2 td {
    padding: 1em 0;
}

.b-tbv2 td:first-child {
    font-weight: 700;
    padding-right: 2em;
}

/* table v3 */

.b-tbv3 tbody tr {
    border-bottom: 1px solid var(--c-dove-gray);
}

.b-tbv3 tr:nth-child(even) {
    background: none;
}

.b-tbv3 th,
.b-tbv3 td {
    padding: 1.25em 1.5em;
}

/* #endregion */
/* #region - b: staff */

.b-staff__container {
    max-width: var(--w-max-m);
}

.b-staff__row {
    background-color: var(--c-primrose);
    position: relative;
    padding: 0;
    margin: -3em 0;
}

.b-staff__row:before {
    content: '';
    background-image: url('../images/patterns/pattern-7.svg');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: bottom right;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    pointer-events: none;
}

.b-staff__col {
    margin: 0;
}

.b-staff__text {
    padding: 3em;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    flex-direction: column;
}

.is-ie .b-staff__text>* {
    max-width: 100%;
}

.b-staff__text h2 {
    font-size: var(--fs-xl);
    font-weight: 700;
    letter-spacing: -.03em;
    line-height: var(--lh-reset);
    color: var(--c-black);
    margin-bottom: .4em;
}

.b-staff__media {
    display: flex;
    align-items: flex-end;
}

.b-staff__image {
    max-width: 90%;
    margin: 1em auto 0;
}

@media screen and (max-width: 60em) {

    .b-staff__image {
        margin-top: 0;
    }

}

@media screen and (max-width: 40em) {

    .b-staff__row {
        margin: -2em 0;
    }

    .b-staff__text {
        padding: 1.5em;
    }

}

/* #endregion */
/* #region - b: form */

.b-form {
    max-width: 30em;
}

/* #endregion */
/* #region - b: text + image */

.b-ti {
    margin-left: -5em;
    margin-right: -5em;
    display: flex;
}

.b-ti__row {
    width: 100%;
    margin: 0;
}

.b-ti__col {
    margin: 0;
    flex: 1 1 30rem;
}

.b-ti.image-text .b-ti__text {
    order: 2;
}

.b-ti__text {
    background-color: var(--c-swirl);
    padding: 3em 5em;
    justify-content: center;
}

.b-ti__media {
    position: relative;
}

.b-ti__image {
    background-color: var(--c-porcelain);
}

.b-ti__image:after {
    content: '';
    padding-bottom: 100%;
    display: block;
}

@media screen and (max-width: 60em) {

    .b-ti__image:after {
        padding-bottom: 56.25%;
    }

}

@media screen and (max-width: 40em) {

    .b-ti__text {
        padding-top: 2em;
        padding-bottom: 2em;
    }

}

/* #endregion */
/* #region - b: video */

.b-video {
    display: flex;
    flex-direction: column;
}

.b-video__title {
    font-size: var(--fs-h2);
    font-weight: 700;
    letter-spacing: -.03em;
    line-height: var(--lh-s);
    color: var(--c-black);
    margin-bottom: .8em;
}

.b-video__lb {
    position: relative;
}

.b-video__lb:after {
    content: '\f144';
    font-family: 'Font Awesome 6 Pro';
    font-size: calc(var(--fs-xl) * 1.5);
    font-weight: 300;
    line-height: 1;
    color: var(--c-white);
    position: absolute;
    top: 50%;
    left: 50%;
    width: 1em;
    height: 1em;
    margin: -.5em;
    z-index: 1;
    pointer-events: none;
}

.b-video__image:before {
    content: '';
    background-color: rgba(0, 0, 0, .6);
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.b-video__image:after {
    content: '';
    padding-bottom: 56.25%;
    display: block;
}

@media screen and (max-width: 40em) {

    .b-video__title {
        margin-bottom: 1.15em;
    }

}

/* #endregion */
/* #region - b: pue-newsletter */

.b-pn__items {
    margin: -1em;
    display: flex;
    flex-wrap: wrap;
}

.b-pn__item {
    text-align: center;
    width: calc(16.66% - 2em);
    margin: 1em;
    display: flex;
    align-items: center;
    flex-direction: column;
}

.b-pn__item-icon {
    font-size: 3em;
    color: var(--c-lipstick);
    margin-bottom: .1em;
}

.b-pn__item-title {
    font-size: var(--fs-h5);
    font-weight: 700;
    line-height: var(--lh-s);
    letter-spacing: -.02em;
    margin-bottom: .3em;
}

.b-pn__item-link {
    color: inherit;
    font-weight: 400;
}

.b-pn__item-link i {
    margin-right: .25em;
}

.p-pn .accordion__title,
.p-pn .accordion__link {
    font-size: var(--fs-h2);
    font-weight: 400;
    letter-spacing: -.03em;
    line-height: var(--lh-s);
    margin-right: 1em;
}

.p-pn .accordion__control {
    border-bottom: 1px solid var(--c-dove-gray);
}

.p-pn .accordion__inner {
    padding: 3em 0;
}

.p-pn .accordion__item {
    border-bottom: 0;
}

@media screen and (max-width: 60em) {

    .b-pn__item {
        width: calc(25% - 2em);
    }

}

@media screen and (max-width: 40em) {

    .b-pn__item {
        width: calc(33.33% - 1.5em);
        margin: .75em;
    }

}

@media screen and (max-width: 25em) {

    .b-pn__item {
        width: calc(50% - 1.5em);
    }

}

/* #endregion */
/* #region - modifiers */

.m-bgc {
    position: relative;
    padding-bottom: 3em;
    /* margin-bottom: -3em; */
}

.m-bgc:before {
    content: '';
    background-color: var(--c-porcelain);
    position: absolute;
    top: 10%;
    left: 50%;
    right: 50%;
    width: 100vw;
    height: 90%;
    margin-left: -50vw;
    margin-right: -50vw;
    z-index: -1;
}

@media screen and (max-width: 40em) {

    .m-bgc {
        padding-bottom: 1.5em;
    }

}

.m-lt .table-overflow {
    font-size: var(--fs-h5);
    font-weight: 400;
    line-height: var(--lh-s);
    letter-spacing: -.02em;
}

/* #endregion */
/* #region - altered */

.p-lrn .b-text:first-child h2 {
    font-size: var(--fs-l);
}

.p-lrn .accordion__title,
.p-lrn .accordion__link {
    font-size: var(--fs-h2);
    font-weight: 700;
    letter-spacing: -.03em;
    line-height: var(--lh-s);
    margin-right: 1em;
}

.p-lrn-fas .b-tm__title {
    font-size: var(--fs-l);
}

/**/

.p-adm-gaac {
    overflow: visible;
}

.p-adm-gaac p+.table-overflow {
    border-top: 1px solid var(--c-dove-gray);
    margin-top: 0;
    padding-top: 1.5em;
}

/**/

.p-cu .b-hb__text>*:last-child,
.p-cu .b-hb__text ul>li:last-child {
    margin-bottom: 0;
}

.p-cu .b-hb__text h1 {
    margin-bottom: .5em;
}

.p-cu .b-hb__text p {
    font-size: var(--fs-h5);
    font-weight: 400;
    line-height: var(--lh-s);
    margin-bottom: .75em;
}

.p-cu .b-hb__text a {
    color: inherit;
}

.p-cu .b-hb__text ul {
    font-size: var(--fs-h5);
    font-weight: 400;
    line-height: var(--lh-s);
    margin-bottom: 1.5em;
}

.p-cu .b-hb__text ul>li {
    margin-bottom: .5em;
}

.p-cu .b-hb__text i {
    text-align: center;
    width: 1em;
    margin-right: .5em;
}

.p-cu .b-wosb:before {
    content: '';
    background-image: url('../images/patterns/pattern-9.svg');
    background-size: contain;
    background-repeat: no-repeat;
    position: absolute;
    top: 10em;
    left: 0;
    min-width: 15rem;
    max-width: 25rem;
    width: 20%;
    height: 100%;
    z-index: -1;
    pointer-events: none;
}

.p-cu .b-form {
    margin: auto;
}

@media screen and (max-width: 70em) {

    .p-cu .b-form {
        margin: 0;
    }

}

@media screen and (max-width: 40em) {

    .p-cu .b-hb__text h1 {
        margin-bottom: .75em;
    }

}

/* #endregion */
/* #region - 404 error */

.p-404 {
    background-color: var(--c-porcelain);
    min-height: 30rem;
}

.error-404 {
    font-size: var(--fs-h5);
    line-height: var(--lh-s);
    text-align: center;
}

.error-404 i {
    font-size: 3em;
    margin-bottom: .5em;
}

/* #endregion */