/*--------------------------------------------

    # 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;
}
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 {
    stroke-width: 0;
    stroke: currentColor;
    fill: currentColor;
}
svg:not([color]) {
    color: inherit;
}
: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: var(--wp--preset--color--secondary-light);
}
: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;
}
:where(li:not(ul[class*="is-layout-"] li):not(ol[class*="is-layout-"] li)) {
    margin: 0.25em 0;
}
/*---------------- 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;
    transition-duration: var(--wp--custom--transition--duration);
}
.wp-element-button:hover,
.wp-element-button:focus,
.wp-element-button:active {
    filter: var(--wp--custom--filter--hover);
}
/*.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;
    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:last-child {
    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-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 */
[class*="is-layout-"] {
    box-sizing: border-box;
}
.is-layout-flex.is-horizontal {
    flex-direction: row;
}
.is-layout-flex.is-vertical {
    flex-direction: column;
}
.is-layout-flex.is-nowrap {
    flex-wrap: nowrap;
}
.items-justified-left,
.is-horizontal.is-content-justification-left {
    justify-content: flex-start;
}
.items-justified-right,
.is-horizontal.is-content-justification-right {
    justify-content: flex-end;
}
.items-justified-center,
.is-horizontal.is-content-justification-center {
    justify-content: center;
}
.items-justified-space-between,
.is-horizontal.is-content-justification-space-between {
    justify-content: space-between;
}
@media (max-width: 600px) {
    /* Default mobile grid */
    .is-layout-grid:not([grid-template-columns*="auto-fill"]) {
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }
}

/* 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;
    }
}
/*---------------- End block layout ----------------*/


/*--------------------------------------------

    # Forms
        ## Common
        ## Submit

----------------------------------------------*/
fieldset {
    margin: 0;
    padding: 0;
    border: none;
}
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;
    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,
::-webkit-input-placeholder {
    color: var(--wp--preset--color--gray);
}
/* 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 */
}
/* Form layout */
:where(form[class*="is-layout-"]) input[type="text"],
:where(form[class*="is-layout-"]) input[type="number"],
:where(form[class*="is-layout-"]) input[type="email"],
:where(form[class*="is-layout-"]) input[type="password"],
:where(form[class*="is-layout-"]) input[type="tel"],
:where(form[class*="is-layout-"]) input[type="date"],
:where(form[class*="is-layout-"]) input[type="time"],
:where(form[class*="is-layout-"]) input[type="datetime-local"],
:where(form[class*="is-layout-"]) input[type="url"],
:where(form[class*="is-layout-"]) input[type="file"],
:where(form[class*="is-layout-"]) textarea,
:where(form[class*="is-layout-"]) select {
    display: block;
    width: 100%;
}
/*---------------- 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 ----------------*/


/*--------------------------------------------

    # Admin bar

----------------------------------------------*/
@media (max-width: 600px) {
    body.admin-bar #wpadminbar {
        position: fixed;
    }
}
/*---------------- End admin bar ----------------*/