.wp-site-blocks {
    padding-top: 0 !important;
}

@media screen and (max-width: 1000px) {

    /* hamburger button */
    .wp-block-navigation__responsive-container-open {
        display: block !important;
    }

    /* full menu */
    .wp-block-navigation__responsive-container:not(.is-menu-open.has-modal-open) {
        display: none !important;
    }
}

cite,
.cb-noWrap {
    white-space: nowrap;
}

cite.cb-canWrap,
span.cb-canWrap {
    white-space: normal !important;
}

p,
h1,
h2,
h3,
h4,
h5,
h6 {
    word-wrap: normal;
    text-wrap: balance;
}

cite,
p span,
h1 span,
h2 span,
h3 span,
h4 span,
h5 span,
h6 span,
.cb-noWrap {
    white-space: nowrap;
}

.cb-canWrap {
    white-space: normal;
}

.cb-radius {
    border-radius: 5px;
}

.cb-radius-inner {
    border-radius: 3px;
}

figure.is-type-video iframe {
    border-radius: 5px;
}

.cb-natural-shadow {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.wp-block-button {
    width: 25ch;
}

.wp-block-button__link,
.wp-block-file__button {
    color: black !important;
    background-color: transparent !important;
    border: 2px solid black !important;
    border-radius: 3px !important;
}

.cb-invertButton .wp-block-button__link {
    color: white !important;
    border: 2px solid white !important;
    background-color: #00000022 !important;
}

.wp-block-button:hover .wp-block-button__link,
.wp-block-file__button:hover {
    color: white !important;
    background-color: black !important;
    border: 2px solid white !important;
}

.cb-invertButton .wp-block-button:hover .wp-block-button__link {
    color: black !important;
    background-color: white !important;
    border: 2px solid black !important;
}

article,
section {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    max-width: 100% !important;
    min-width: 100% !important;
    width: 100% !important;
    background: transparent;
}

.cb-outdent {
    padding-left: 1rem;
}

.cb-outdent>* {
    text-indent: -1rem;
}

.wp-block-file {
    font-size: var(--wp--font--size--medium) !important;
}

.wp-block-file__button {
    width: 8rem;
}

.cb-narrow-link {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.cb-narrow-link a:first-of-type {
    font-size: .9em;
    text-align: center;
}

.cb--font-scale--medium,
:root,
html,
body {
    --wp--preset--font-size--small: clamp(0.7rem, calc(0.7rem + (100vw - 320px) * 0.000328), 1.185rem);
    --wp--preset--font-size--medium: clamp(1rem, calc(1rem + (100vw - 320px) * 0.000236), 1.35rem);
    --wp--preset--font-size--large: clamp(1.25rem, calc(1.25rem + (100vw - 320px) * 0.000296), 1.688rem);
    --wp--preset--font-size--x-large: clamp(1.6rem, calc(1.6rem + (100vw - 320px) * 0.000504), 2.345rem);
    --wp--preset--font-size--xx-large: clamp(2.8rem, calc(2.8rem + (100vw - 320px) * 0.000615), 3.71rem);
}

.cb--font-scale--large {
    --wp--preset--font-size--small: clamp(0.85rem, calc(0.85rem + (100vw - 320px) * 0.000399), 1.441rem);
    --wp--preset--font-size--medium: clamp(1.125rem, calc(1.125rem + (100vw - 320px) * 0.000263), 1.514rem);
    --wp--preset--font-size--large: clamp(1.425rem, calc(1.425rem + (100vw - 320px) * 0.000539), 2.223rem);
    --wp--preset--font-size--x-large: clamp(1.8rem, calc(1.8rem + (100vw - 320px) * 0.001135), 3.476rem);
    --wp--preset--font-size--xx-large: clamp(3rem, calc(3rem + (100vw - 320px) * 0.001017), 4.505rem);
}

.cb--font-scale--banner,
.cb--font-scale--x-large {
    --wp--preset--font-size--small: clamp(1rem, calc(1rem + (100vw - 320px) * 0.001351), 18px);
    --wp--preset--font-size--medium: clamp(1.25rem, calc(1.25rem + (100vw - 320px) * 0.001689), 22.5px);
    --wp--preset--font-size--large: clamp(1.6rem, calc(1.6rem + (100vw - 320px) * 0.007027), 36px);
    --wp--preset--font-size--x-large: clamp(2rem, calc(2rem + (100vw - 320px) * 0.014865), 54px);
    --wp--preset--font-size--xx-large: clamp(3.2rem, calc(3.2rem + (100vw - 320px) * 0.032838), 99px);
}

body {
    -webkit-text-size-adjust: 100% !important;
    text-size-adjust: 100% !important;
}

/* Begin: Download button styling */

.cb-stackDownloadButton {
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* End: Download button styling */

.wp-block-button.cb-naturalWidthButton {
    width: auto;
}

.cb-twoLineButton>.wp-block-button__link {
    line-height: 1.1em !important;
}

.cb-twoLineButton>.wp-block-button__link>span {
    font-size: var(--wp--preset--font-size--small);
    text-transform: none;
}

/* Two column grid layout with min-width for each column */
/* Grids are better when column-gap is set elsewhere. */
.cb-twoColumnGrid,
.cb-threeColumnGrid {
    display: grid !important;
}

.cb-twoColumnGrid {
    grid-template-columns: repeat(12, 1fr);
}

.cb-twoColumnGrid>* {
    grid-column: span 6;
}

.cb-twoColumnGrid>*:last-child:nth-child(odd) {
    grid-column: 4 / span 6;
}

.cb-twoColumnGrid.cb-wideLastRow>*:last-child:nth-child(odd) {
    grid-column: 3 / span 8;
}

.cb-threeColumnGrid {
    grid-template-columns: repeat(12, 1fr);
}

.cb-threeColumnGrid>* {
    grid-column: span 4;
}

.cb-threeColumnGrid>*:last-child:nth-child(3n + 1) {
    grid-column: 5 / span 4;
}

.cb-threeColumnGrid.cb-wideLastRow>*:last-child:nth-child(3n + 1) {
    grid-column: 4 / span 6;
}

.cb-threeColumnGrid.cb-moreWideLastRow>*:last-child:nth-child(3n + 1) {
    grid-column: 3 / span 8;
}

.cb-threeColumnGrid>*:nth-last-child(2):nth-child(3n + 1) {
    grid-column: 3 / span 4;
}

.cb-threeColumnGrid.cb-wideLastRow>*:nth-last-child(2):nth-child(3n + 1), .cb-threeColumnGrid.cb-moreWideLastRow>*:nth-last-child(2):nth-child(3n + 1) {
    grid-column: 2 / span 5;
}

.cb-threeColumnGrid>*:last-child:nth-child(3n + 2) {
    grid-column: 7 / span 4;
}

.cb-threeColumnGrid.cb-wideLastRow>*:last-child:nth-child(3n + 2), .cb-threeColumnGrid.cb-moreWideLastRow>*:last-child:nth-child(3n + 2) {
    grid-column: 7 / span 5;
}

@media (max-width: 900px) {
    .cb-twoColumnGrid {
        grid-template-columns: repeat(1, 1fr) !important;;
    }

    .cb-twoColumnGrid>* {
        grid-column: span 1 !important;
    }

    .cb-threeColumnGrid {
        grid-template-columns: repeat(12, 1fr) !important;
    }

    .cb-threeColumnGrid>* {
        grid-column: span 6 !important;
    }

    .cb-threeColumnGrid>*:last-child:nth-child(odd) {
        grid-column: 4 / span 6 !important;
    }

    .cb-threeColumnGrid.cb-wideLastRow>*:last-child:nth-child(odd) {
        grid-column: 3 / span 8 !important;
    }
}

@media (max-width: 600px) {
    .cb-threeColumnGrid {
        grid-template-columns: repeat(1, 1fr) !important;
        grid-auto-flow: row !important;
        grid-auto-columns: 1fr !important;
    }

    .cb-threeColumnGrid>*, 
    .cb-threeColumnGrid>*:last-child:nth-child(odd),
    .cb-threeColumnGrid.cb-wideLastRow>*:last-child:nth-child(odd)  {
        grid-column: 1 / -1 !important;
        width: 100% !important;
    }
}

/* End two column grid layout with min-width for each column */

@media (max-width: 781px) {

    .wp-block-columns:not(.is-not-stacked-on-mobile).cb-centerTextOnOneColumn,
    .wp-block-columns:not(.is-not-stacked-on-mobile) .cb-centerTextOnOneColumn {
        text-align: center;
    }


    .cb-centerTextOnSmallDevice,
    .cb-onSmall-alignCenter,
    .cb-onSmall-alignCenter * {
        text-align: center !important;
    }

    .cb-onSmall-alignLeft,
    .cb-onSmall-alignLeft * {
        text-align: left !important;
    }
}

/* Begin: Inline headers. */
.cb-inlineHeader>*:first-child,
.cb-inlineHeader>*:nth-child(2) {
    display: inline;
}

/* End: Inline headers. */

/* Begin: Site-wide layout customizations */
@media screen and (max-width: 1000px) {

    /* hamburger button */
    .wp-block-navigation__responsive-container-open {
        display: block !important;
    }

    /* full menu */
    .wp-block-navigation__responsive-container:not(.is-menu-open.has-modal-open) {
        display: none !important;
    }
}

.wp-block-navigation-item__label {
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

/* End: Site-wide layout customizations */

#banner {
    position: relative;
    width: 100% !important;
    min-height: 320px !important;
    height: 100vh !important;
    height: 100lvh !important;

    overflow: hidden;
    background-size: cover;
    background-position: var(--banner-imageFocusPosition, 50% 100%);

    margin-left: 0 !important;
    margin-right: 0 !important;
    margin-top: 0 !important;
    padding: 0 !important;
}

@media (max-width: 768px) {
    #banner {
        height: calc(100vh + var(--banner-mobile-extra-height, 12vh)) !important;
        height: calc(100lvh + var(--banner-mobile-extra-height, 12lvh)) !important;
    }
}

#banner .backgroundFigure,
#banner .backgroundFigure a,
#banner .backgroundFigure img {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

#banner .backgroundFigure a {
    display: block;
}

#banner .backgroundFigure img {
    object-fit: cover;
    object-position: var(--banner-imageFocusPosition, 50% 100%);
}

#banner .titleArea {
    position: absolute;
    max-width: var(--banner-titleMaxWidth, 85%);
    top: var(--banner-titleTop, 10vh);
    top: var(--banner-titleTop, 10lvh);
    left: var(--banner-titleLeft, 5vw);
    bottom: var(--banner-titleBottom, auto);
    right: var(--banner-titleRight, auto);
    margin: 0;
}

#banner .subtitleArea {
    position: absolute;
    max-width: var(--banner-subtitleMaxWidth, 85%);
    top: var(--banner-subtitleTop, auto);
    left: var(--banner-subtitleLeft, 5vw);
    bottom: var(--banner-subtitleBottom, 10vh);
    bottom: var(--banner-subtitleBottom, 10lvh);
    right: var(--banner-subtitleRight, auto);
}

a.cb-coverAnchor {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    max-height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Images are hidden until fully loaded, then fade in quickly. */
.cb-image-fade img {
    opacity: 0;
    transition: opacity 220ms ease-out;
}

.cb-image-fade img.is-loaded {
    opacity: 1;
}

/* Progressive pair states:
   preload image loads first.
   fullload image starts hidden, then JS reveals and fades it in. */
figure.cb-fullload {
    opacity: 0;
    transition: opacity 360ms ease-out;
}

figure.cb-fullload.cb-fullload-loaded {
    opacity: 1;
}
    
figure.cb-fullload:not(.cb-fullload-ready) {
    display: none;
}

@media (orientation: portrait) {
    .cb-fullload-n:not(.cb-portrait) {
        display: none !important;
    }   
}

@media not (orientation: portrait) {
    .cb-fullload-n.cb-portrait {
        display: none !important;
    }   
}
/* Respect reduced motion settings. */
@media (prefers-reduced-motion: reduce) {

    .cb-image-fade img,
    figure.cb-fullload.cb-fullload-ready {
        transition: none;
    }
}