/*--------------------------------------------

    # Main
        ## Header

----------------------------------------------*/
:root {
    scroll-snap-type: y mandatory;
    min-height: -webkit-fill-available;
    scroll-behavior: smooth;
    /*overflow-x: hidden;*/
}
:root.has-modal-open {
    overflow: visible;
}
:root.has-modal-open body {
    overflow: hidden;
}
:root.has-modal-open .is-position-sticky {
    z-index: 3;
}
body {
    display: flex;
    flex-direction: column;
    min-height: calc(100vh - var(--wp-admin--admin-bar--height, 0px));
    /*min-height: -webkit-fill-available;*/
    word-break: break-word;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}
iframe {
    border: none;
    display: block;
}
::selection {
    background-color: var(--wp--preset--color--primary-dark, initial);
    color: var(--wp--preset--color--white, initial);
}

/*---------------- End main ----------------*/


/*--------------------------------------------

    # Typography
        ## Common
        ## SVG
        ## Lists
        ## Headings

----------------------------------------------*/
/* Common */
strong {
    font-weight: bold;
}
svg:not([color]) {
    color: inherit;
}
svg:not([fill]) {
    fill: currentColor;
}
svg:not([stroke]) {
    stroke: currentColor;
    stroke-width: 0;
}
:where(a, button) {
    transition-duration: var(--wp--custom--transition--duration);
}
code {
    -webkit-text-stroke-width: initial;
}
pre {
    overflow-x: auto;
}
ins {
    text-decoration: none;
}
abbr {
    text-decoration: none;
}
sup {
    font-size: min(0.85em, 1rem);
}
:where(mark) {
    background-color: transparent;
}
:where(button) {
    font-family: inherit;
    font-size: inherit;
    line-height: var(--wp--custom--typography--line-height--small);
    font-weight: inherit;
}
:where(button):hover {
    cursor: pointer;
}
:where(figcaption) {
    text-align: center;
}
/*[hidden] {
    display: none !important;
}*/

/*--------------------------------------------

    # Paragraph

----------------------------------------------*/
:where(p) {
    box-sizing: border-box;
}
p:empty {
    display: none;
}
/*---------------- End paragraph ----------------*/


/*--------------------------------------------

    # Lists

----------------------------------------------*/
ul,
ol {
    box-sizing: border-box;
}
/*---------------- End lists ----------------*/

/*--------------------------------------------

    # Headings

----------------------------------------------*/
:where(h1,h2,h3,h4,h5,h6) {
    word-break: break-word;
    text-indent: 0;
    box-sizing: border-box;
}
:where(h1,h2,h3,h4,h5,h6)[id] {
    scroll-margin-top: calc(var(--wp-admin--admin-bar--height, 0) + 1em);
}
:where(h1,h2,h3,h4,h5,h6) a {
    text-decoration: inherit;
    font-family: inherit;
}
h1.has-background,
h2.has-background {
    padding: 0.8em 1.2em;
}
h3.has-background,
h4.has-background,
h5.has-background,
h6.has-background {
    padding: 1em 1.4em;
}
/*---------------- End headings ----------------*/


/*--------------------------------------------

    # Tables

----------------------------------------------*/
table {
    border-collapse: collapse;
}
th, 
td {
    padding: 0.2em 0.5em;
}
th {
    font-weight: bolder;
}
tbody th {
    text-align: left;
}
/*---------------- End Tables ----------------*/


/*--------------------------------------------

    # Media
        ## Image

----------------------------------------------*/
/* Image */
img,
video {
    max-width: 100%; /* responsive image & video */
    height: auto;
}
:where(figure) {
    margin: 0;
}
:where(img[class*="wp-image-"]) {
    vertical-align: middle; /* align center inline image */
    /*max-width: none;*/
}
/*---------------- End Media ----------------*/


/*--------------------------------------------

    # Blockuote

----------------------------------------------*/
blockquote {
    box-sizing: border-box;
}
blockquote cite {
    display: block;
    margin-top: 1.2em;
}
/*---------------- End blockquote ----------------*/


/*--------------------------------------------

    # Blocks
        ## Common
        ## Root layout
        ## Alignment
        ## Layout
        ## Dim ratio
        ## Content
        ## Template parts

----------------------------------------------*/
/* Common */
.wp-element-button {
    display: inline-block;
    box-sizing: border-box;
    word-break: normal;
    flex-shrink: 0;
    transition-duration: var(--wp--custom--transition--duration);
}
.wp-element-button:hover,
.wp-element-button:focus,
.wp-element-button:active {
    filter: var(--wp--custom--filter--brightness--dimmer);
}
/*.screen-reader-text {
    display: none;
}*/
.has-text-align-left {
    text-align: left !important;
}
.has-text-align-center {
    text-align: center !important;
}
.has-text-align-right {
    text-align: right !important;
}
.has-text-align-justify {
    text-align: justify !important;
}
.has-background {
    box-sizing: border-box;
}
.has-drop-cap:not(:focus) {
    text-indent: 0 !important;
}
.has-drop-cap:not(:focus)::first-letter {
    font-size: 3em;
    font-weight: 300;
    font-style: inherit;
    line-height: 1;
    margin: 0 0.25em 0 0;
    color: var(--wp--preset--color--primary, inherit);
}
.has-text-color .has-drop-cap::first-letter,
.has-text-color.has-drop-cap::first-letter {
    color: inherit;
}
[style*="text-decoration:"] a,
[style*="text-decoration:"] button,
[style*="text-decoration:"] .wp-element-button {
    text-decoration: inherit;
}
[style*="line-height:"] a,
[style*="line-height:"] button,
[style*="line-height:"] .wp-element-button {
    line-height: inherit;
}
[style*="text-transform:"] a,
[style*="text-transform:"] button,
[style*="text-transform:"] .wp-element-button {
    text-transform: inherit;
}

/* Root container blocks */
.wp-site-blocks {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    min-height: calc(100vh - var(--wp-admin--admin-bar--height, 0px));
}
:where(.wp-site-blocks > header:first-child) {
    z-index: 2; /* fix dropdown menu */
}
:where(.wp-site-blocks > .wp-block-post-content) {
    margin-top: 0;
    margin-bottom: 0;
}
.wp-site-blocks > footer {
    margin-top: auto;
}

/* Position */
:where([class*="wp-container-"]) {
    position: relative;
}
.is-position-sticky {
    position: sticky;
    /*overflow: hidden;
    max-height: calc(100vh - var(--wp-admin--admin-bar--height, 0px));*/
    z-index: 10;
}
.is-position-sticky * {
    scroll-margin-top: calc(var(--wp-admin--admin-bar--height, 0) + 4em);
}
.is-position-sticky.is-colored {
    transition-duration: var(--wp--custom--transition--duration);
    transition-timing-function: linear;
    transition-delay: var(--wp--custom--transition--delay);
}
/*.is-position-sticky.is-colored a {
    transition-duration: revert;
    transition-delay: revert;
}*/
.wp-site-blocks > *:last-child.is-position-sticky {
    top: auto;
    bottom: 0;
}
.has-modal-open .is-position-sticky {
    transition-duration: 0ms;
    transition-delay: 0ms;
}
.is-position-fixed {
    position: fixed;
    top: var(--wp-admin--admin-bar--height);
    left: 0;
    right: 0;
    z-index: 10;
}
.is-position-absolute {
    position: absolute;
    z-index: 1;
}

/* Alignment */
:where(.alignnone) {
    float: none;
}
:where(.alignleft) {
    display: block;
    float: left;
    margin-right: min(1.5em, 5%) !important;
    width: auto;
}
:where(.alignright) {
    display: block;
    float: right;
    margin-left: min(1.5em, 5%) !important;
    width: auto;
}
:where(.aligncenter) {
    display: block;
    margin-left: auto;
    margin-right: auto;
    width: auto;
    justify-content: center; /* for flex elements */
}
@media (max-width: 600px) {
    :where(.alignleft, .alignright) {
        max-width: calc(50vw - min(1.5em, 5%));
    }
}

/* Layout */
:where([class*="is-layout-"]) {
    box-sizing: border-box;
}
:where(.is-horizontal) {
    flex-direction: row;
}
:where(.is-vertical) {
    flex-direction: column;
}
:where(.is-nowrap) {
    flex-wrap: nowrap;
}
:where(.items-justified-left,
.is-content-justification-left) {
    justify-content: flex-start;
}
:where(.items-justified-right,
.is-content-justification-right) {
    justify-content: flex-end;
}
:where(.items-justified-center,
.is-content-justification-center) {
    justify-content: center;
}
:where(.items-justified-space-between,
.is-content-justification-space-between) {
    justify-content: space-between;
}
:where(.are-vertically-aligned-top) {
    align-items: flex-start;
}
:where(.are-vertically-aligned-center) {
    align-items: center;
}
:where(.are-vertically-aligned-bottom) {
    align-items: flex-end;
}
:where(.are-vertically-aligned-stretch) {
    align-items: stretch;
}
:where(.is-content-justification-left) {
    align-items: flex-start;
}
:where(.is-content-justification-right) {
    align-items: flex-end;
}
:where(.is-content-justification-center) {
    align-items: center;
}
@media (max-width: 600px) {
    .is-mobile-reverse,
    .is-horizontal.is-mobile-reverse {
        flex-direction: row-reverse;
    }
    .is-vertical.is-mobile-reverse {
        flex-direction: column-reverse;
    }
}

/* Dim ratio */
.has-background-dim.has-background-dim-0 {
    opacity: 0;
}
.has-background-dim.has-background-dim-10 {
    opacity: 0.1;
}
.has-background-dim.has-background-dim-20 {
    opacity: 0.2;
}
.has-background-dim.has-background-dim-30 {
    opacity: 0.3;
}
.has-background-dim.has-background-dim-40 {
    opacity: 0.4;
}
.has-background-dim.has-background-dim-50 {
    opacity: 0.5;
}
.has-background-dim.has-background-dim-60 {
    opacity: 0.6;
}
.has-background-dim.has-background-dim-70 {
    opacity: 0.7;
}
.has-background-dim.has-background-dim-80 {
    opacity: 0.8;
}
.has-background-dim.has-background-dim-90 {
    opacity: 0.9;
}
.has-background-dim.has-background-dim-100 {
    opacity: 1.0;
}

/* Content */
.wp-block-post-content span[id^="more-"] {
    scroll-margin-top: calc(var(--wp-admin--admin-bar--height, 0) + 5rem);
}

/* Template parts */
.wp-block-template-part.has-area-sidebar {
    --wp-sidebar--close-button--size: 2rem;
    --wp-sidebar--close-button--spacing: 3px;

    position: sticky;
    top: var(--wp-admin--admin-bar--height, 0);
    width: 0;
    max-width: 600px;
    min-height: calc(100vh - var(--wp-admin--admin-bar--height, 0));
    align-self: stretch;
    z-index: 10;
}
.wp-block-template-part.has-area-sidebar.has-left-sidebar {
    left: 0;
}
.wp-block-template-part.has-area-sidebar.is-open {
    width: auto;
}
.wp-block-template-part.has-area-sidebar .wp-block-template-part__close-button {
    background-color: var(--wp--preset--color--gray-dark);
    color: var(--wp--preset--color--white);
    border: none;
    display: flex;
    padding: 0;
    box-sizing: border-box;
    cursor: pointer;
    position: absolute;
    top: 0;
    left: 100%;
    width: var(--wp-sidebar--close-button--size);
    height: var(--wp-sidebar--close-button--size);
    padding: var(--wp-sidebar--close-button--spacing);
    margin: 5px;
    border: 1px solid;
    box-shadow: 0 0 4px rgba(0, 0, 0, 0.4);
    border-radius: var(--wp--custom--border--radius--default);
    z-index: 1;
}
.wp-block-template-part.has-area-sidebar .wp-block-template-part__close-button svg {
    color: inherit;
    width: 100%;
    height: 100%;
}
.wp-block-template-part.has-area-sidebar.is-open .wp-block-template-part__close-button svg rect:first-child {
    transform: translate(-11%, 11%) rotate(45deg);
    transform-origin: center center;
}
.wp-block-template-part.has-area-sidebar.is-open .wp-block-template-part__close-button svg rect:last-child {
    transform: translate(-11%, -11%) rotate(-45deg);
    transform-origin: center center;
}
.wp-block-template-part.has-area-sidebar .wp-block-template-part__inner-container {
    display: none;
    overflow-y: auto;
    max-height: calc(100vh - var(--wp-admin--admin-bar--height, 0));
}
.wp-block-template-part.has-area-sidebar.is-open .wp-block-template-part__inner-container {
    display: block;
}
@media (max-width: 782px) {
    .wp-block-template-part.has-area-sidebar {
        background-color: inherit;
        /*max-width: calc(100vw - var(--wp-sidebar--close-button--size) - (var(--wp-sidebar--close-button--spacing) * 4));*/
    }
    .wp-block-template-part.has-area-sidebar.is-open {
        width: 100vw;
    }
    .wp-block-template-part.has-area-sidebar.is-position-fixed {
        position: fixed;
    }
}

/* Icons */
.has-small-icon-size {
    font-size: 1.1rem !important;
}
.has-normal-icon-size {
    font-size: 1.5rem !important;
}
.has-large-icon-size {
    font-size: 1.8rem !important;
}
.has-huge-icon-size {
    font-size: 2.2rem !important;
}
/*---------------- End block layout ----------------*/


/*--------------------------------------------

    # Forms
        ## Common
        ## Submit

----------------------------------------------*/
:where( fieldset ) {
    margin: 0;
    padding: 0;
    border: none;
    border-radius: var(--wp--custom--border--radius--default, 0);
}
form label [class*="required"] {
    color: red;
    text-decoration: none;
}
input:not([type]),
input[type="text"],
input[type="number"],
input[type="password"],
input[type="search"],
input[type="email"],
input[type="tel"],
input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="file"],
input[type="url"],
select,
textarea {
    /*display: block;*/
    font-family: inherit;
    box-sizing: border-box;
    font-size: inherit;
    padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
    margin: 0;
    border: 1px solid currentColor;
    font-weight: inherit;
    line-height: var(--wp--custom--typography--line-height--small, normal);
    border-radius: var(--wp--custom--border--radius--default, 0);
    color: inherit;
    background-color: transparent;
    min-height: auto;
    height: auto;
    transition: var(--wp--custom--transition--duration);
}
input:not([type]),
input[type="text"]:focus,
input[type="number"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
input[type="date"]:focus,
input[type="time"]:focus,
input[type="datetime-local"]:focus,
input[type="file"]:focus,
input[type="url"]:focus,
select:focus,
textarea:focus {
    box-shadow: 0 1px 7px -2px var(--wp--preset--color--primary-light, currentColor);
    outline: none;
}
input:placeholder-shown,
textarea:placeholder-shown,
input::placeholder,
textarea::placeholder,
input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
    color: inherit;
    font-style: italic;
}
input:disabled,
textarea:disabled,
select:disabled {
    opacity: 0.6;
}
/* Submit */
button[type="submit"]:not(.wp-element-button),
input[type="submit"]:not(.wp-element-button) {
    display: inline-block;
    padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
    font-style: normal;
    text-decoration: none;
    line-height: var(--wp--custom--typography--line-height--small);
    border-radius: var(--wp--custom--border--radius--default, 0);
    box-sizing: border-box;
    border: none;
    /*white-space: pre-wrap;*/
    font-size: inherit;
    font-family: inherit;
    word-break: break-word;
    text-align: center;
    border: 1px solid transparent;
    background-clip: border-box;
    background-color: var(--wp--preset--color--primary);
    color: var(--wp--preset--color--white);
    transition: var(--wp--custom--transition--duration);
}
button[type="submit"]:not(.wp-element-button):hover,
input[type="submit"]:not(.wp-element-button):hover {
    background-color: var(--wp--preset--color--primary-dark);
    cursor: pointer;
}
button[type="submit"]:disabled,
input[type="submit"]:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}
textarea {
    height: 5em; /* default height */
}
/*---------------- End forms ----------------*/


/*--------------------------------------------

    # Basic animation

----------------------------------------------*/
@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}
@keyframes fadeOut {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
    }
}
@keyframes rotateFull {
    to {
        transform: rotate(360deg);
    }
}
/*---------------- End basic animation ----------------*/