:root {
    --vk-color-text-body: #333333;
    --vk-color-text-link: #666666;
    --vk-color-text-link-hover: #1e73be;
    --vk-color-text-header: #444444;
    --vk-color-text-meta: #666666;
    --vk-color-text-light: #666666;
    --vk-color-border: rgba(0,0,0,0.2);
    --vk-color-border-hr: rgba(0,0,0,0.06);
    --vk-color-border-image: #e5e5e5;
    --vk-color-border-form: rgba(0,0,0,0.2);
    --vk-color-accent-bg: rgba( 0,0,0,0.02 );
    --vk-color-header-bg: #fff;
    --vk-color-footer-bg: #f5f5f5;
    --vk-width-container: 100%;
    --vk-width-container-padding: 15px;
    --vk-width-col-2-main: 66.6%;
    --vk-width-col-2-sub: calc( var(--vk-width-container) * 0.27 );
    --vk-margin-meta: 0.5rem;
    --vk-margin-headding-bottom: 1em;
    --vk-margin-element-bottom: 1.5rem;
    --vk-margin-block-bottom: 2rem;
    --vk-margin-section-bottom: 3rem;
    --vk-size-text: 16px;
    --vk-size-text-meta: 0.75rem;
    --vk-size-text-lg: 1.5rem;
    --vk-size-text-sm: 0.875rem;
    --vk-size-text-xs: 0.75rem;
    --vk-size-radius: 5px;
    --vk-size-radius-sm: calc( var( --vk-size-radius ) * 0.5 );
    --vk-size-radius-lg: calc( var( --vk-size-radius ) * 1.5 );
    --vk-line-height: 1.7em;
    --vk-line-height-low: 1.4em;
}
.nav, nav {
    margin: 0;
    padding: 0;
}
ol, ul {
    box-sizing: border-box;
}
.nav li a, nav li a {
    color: var(--vk-color-text-body);
    text-decoration: none;
}
p {
    line-height: var(--vk-line-height);
    -webkit-margin-before: 0;
    margin-block-start: 0;
}
.wp-block-table, blockquote, dl, iframe, ol, p, ul {
    margin-bottom: var(--vk-margin-element-bottom);
}
*, ::after, ::before {
    box-sizing: border-box;
}

h1, h2, h3, h4, h5, h6 {
    margin-top: 0;
    margin-bottom: var(--vk-margin-headding-bottom);
    line-height: var(--vk-line-height-low);
}
dl+h1, dl+h2, dl+h3, dl+h4, dl+h5, dl+h6, ol+h1, ol+h2, ol+h3, ol+h4, ol+h5, ol+h6, p+h1, p+h2, p+h3, p+h4, p+h5, p+h6, table+h1, table+h2, table+h3, table+h4, table+h5, table+h6, ul+h1, ul+h2, ul+h3, ul+h4, ul+h5, ul+h6 {
    margin-top: 2em;
}
h1 {
    font-size: 2rem;
    margin-top: 2em;
}
h2 {
    font-size: 1.75rem
}

h3 {
    font-size: 1.5rem;
}
h4 {
    font-size: 1.33rem
}
h5 {
    font-size: 1.2rem
}
a {
    text-decoration: none;
    color: var(--vk-color-text-link);
}
li a, p a {
    text-decoration: underline;
    -webkit-text-decoration-style: dotted;
    text-decoration-style: dotted;
    text-underline-offset: 2px;
    -webkit-text-decoration-color: rgba(0, 0, 0, .3);
    text-decoration-color: rgba(0, 0, 0, .3);
    text-decoration-thickness: 1px;
}
img {
    height: auto;
    max-width: 100%;
}
.main-section, .site-body, .site-body-container, .site-footer, .sub-section {
    position: relative;
}
.site-body {
    padding: 2rem 0 2rem;
}

body.custom-background {
    background-image: url(../images/bg_whitesea.jpg);
    background-position: left top;
    background-size: 100%;
    background-repeat: repeat;
    background-attachment: scroll;
}

body, html {
    font-family: 'Noto Serif JP', serif;
    font-size: var(--vk-size-text);
    color: var(--vk-color-text-body);
    padding: 0;
    margin: 0;
    -ms-word-wrap: break-word;
    word-wrap: break-word;
    background-color: #fff;
    overflow-x: hidden;
}
.container, .container-fluid, .container-lg, .container-md, .container-sm, .container-xl {
    width: 100%;
    padding-right: 15px;
    padding-left: 15px;
    margin-right: auto;
    margin-left: auto;
}
.site-body {
    padding: 2rem 0 2rem;
}
.entry-body {
    max-width: 980px;
    margin: 30px auto;
    text-align: center;
}
.topblock p {
    margin: 60px auto;
    line-height: 3rem;
}
@media (min-width: 1200px) {
    .container, .container-lg, .container-md, .container-sm, .container-xl {
        max-width: 1140px;
    }
}

@media (min-width: 992px) {
    .site-body {
        padding: 3rem 0 3.5rem;
    }
    .container, .container-lg, .container-md, .container-sm {
        max-width: 960px;
    }
}
@media (max-width: 991.98px) {
    body, html {
        font-size: calc(var(--vk-size-text) * .875);
    }
}
iframe {
    border: none
}

dt {
    font-weight: 700;
    margin-bottom: .5em
}

dd {
    margin-left: 0
}
/** header **/
.site-header {
    background: #ffffff;
    border-bottom: #000000 3px solid;
}
.site-header {
    width: 100%;
    overflow: visible;
    z-index: 1000;
    position: relative;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .05);
}
.site-header:before {
    position: absolute;
    content: '';
    bottom: 3px;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: #000000;
}

.site-header-logo{
    text-align: center;
    margin-top:0;
    font-weight: 700;
    font-size: 1.5rem;
    white-space: nowrap;
}
.site-header .site-header-logo img {
    width: 200px;
    max-width: 65%;
}
.global-nav-list {
    margin: unset;
    padding: 0;
    display: flex;
    list-style: none;
    position: relative;
    width: -webkit-min-content;
    width: -moz-min-content;
    width: min-content;
}
.global-nav-list li {
    margin: 0;
    list-style: none;
    line-height: 1.4;
    font-size: 12px;
    position: relative;
    text-align: center;
}
.global-nav-list>li .global-nav-name {
    font-size: 14px;
    display: block;
    width: 100%;
    white-space: nowrap;
}
.global-nav-list>li>a {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    text-align: center;
    height: 100%;
}
.header_scrolled .site-header {
    clear: both;
    z-index: 1000;
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    max-width: 100vw;
    min-height: unset;
    box-shadow: 0 1px 3px rgba(0,0,0,.1);
    -webkit-animation: header_drop .5s ease-out 0s 1 alternate none running;
    animation: header_drop .5s ease-out 0s 1 alternate none running
}

.header_scrolled .site-header .site-header-container--scrolled--logo-and-nav-container .site-header-logo,.header_scrolled .site-header .site-header-container--scrolled--logo-and-nav-full .site-header-logo {
    width: auto
}
header_scrolled .header-top, .header_scrolled .site-header-logo, .header_scrolled .site-header-sub, .header_scrolled .vk-campaign-text {
    display: none;
}
.header_scrolled .site-header .global-nav {
    display: block;
    margin-left: auto;
    margin-right: auto
}

.vk-mobile-nav-menu-btn {
    position: fixed;
    top: 5px;
    right: 5px;
    z-index: 2100;
    overflow: hidden;
    border: 1px solid #333;
    border-radius: 2px;
    width: 34px;
    height: 34px;
    cursor: pointer;
    text-indent: -9999px;
    background-size: 24px 24px;
    transition: border-color .5s ease-out
}

.vk-mobile-nav-menu-btn {
    border-color: #333;
    background: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M0 96C0 78.3 14.3 64 32 64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z"/></svg>') center 50% no-repeat rgba(255,255,255,.8);
}    


.vk-mobile-nav-menu-btn.menu-open {
    border-color: #333;
    border: 1px solid rgba(255,255,255,.8);
    background: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z"/></svg>') center 50% no-repeat rgba(255,255,255,.8)
}

.mobile-nav-btn-right .vk-mobile-nav-menu-btn,.vk-mobile-nav-menu-btn.position-right {
    left: inherit;
    right: 5px
}

.vk-mobile-nav {
    position: fixed;
    z-index: 2000;
    width: 100%;
    height: 100%;
    display: block;
    padding: 45px 10px;
    overflow: scroll;
    top: 0;
    transition: all .5s ease-out
}

.vk-mobile-nav .vk-mobile-nav-menu-outer {
    margin-bottom: 1.5em
}

.vk-mobile-nav nav ul {
    padding: 0;
    margin: 0
}

.vk-mobile-nav nav ul li {
    list-style: none;
    line-height: 1.65
}

.vk-mobile-nav nav ul li a {
    padding: .7em .5em;
    position: relative;
    display: block;
    overflow: hidden
}

.vk-mobile-nav nav ul li a:hover {
    text-decoration: none
}
.vk-mobile-nav .widget_nav_menu ul li a, .vk-mobile-nav nav ul li a {
    color: #333;
    border-bottom: 1px solid #ccc;
}
.admin-bar .vk-mobile-nav.vk-mobile-nav-drop-in,.vk-mobile-nav.vk-mobile-nav-drop-in {
    top: -2000px
}
.vk-mobile-nav.vk-mobile-nav-left-in {
    transition: all .2s ease-out;
    left: -100%
}

.vk-mobile-nav.vk-mobile-nav-right-in {
    transition: all .2s ease-out;
    left: 100%
}

.vk-mobile-nav.vk-mobile-nav-open.vk-mobile-nav-drop-in,.vk-mobile-nav.vk-mobile-nav-open.vk-mobile-nav-left-in,.vk-mobile-nav.vk-mobile-nav-open.vk-mobile-nav-right-in {
    top: 0
}
.vk-mobile-nav.vk-mobile-nav-open.vk-mobile-nav-left-in,.vk-mobile-nav.vk-mobile-nav-open.vk-mobile-nav-right-in {
    left: 0
}

.vk-mobile-nav-widget {
    margin-bottom: 1.5em
}

.vk-mobile-nav {
    background-color: #fff;
    border-bottom: 1px solid #e5e5e5
}


@media (min-width: 992px) {
    .site-header--layout--nav-float .site-header-logo {
        margin-right: 2em;
        width: 100%;
    }
    .site-header-logo {
        text-align: left;
        padding-top: 1.1rem;
        margin-bottom: 1rem;
        margin-left: 0;
    }
    .site-header--layout--nav-float .site-header-container {
        display: flex;
        flex-direction: row;
    }
    body:not(.header_scrolled) .global-nav--layout--float-right {
        display: flex;
        justify-content: flex-end;
        align-items: center;
    }
    .global-nav--layout--float-right {
        width: auto;
        margin-left: auto;
    }
    .global-nav-list>li.border-menu {
        border: 1px #000000 solid;
        width: 90px;
        margin: 15px 10px 15px 0;
    }
    .global-nav-list>li>a {
        padding: 5px;
    }
    .global-nav-list>li.border-menu:hover {
        border-top: none;
    }
    .global-nav-list>li.border-menu:hover:before {
        position: absolute;
        content: '';
        width: 95%;
        height: 0.8px;
        top: -4px;
        left: -1px;
        background: #000;
        transform: skewY(-6deg);
    }
    .header_scrolled .site-header {
        clear: both;
        z-index: 1000;
        position: fixed;
        top: 0;
        left: 0;
        width: 100vw;
        max-width: 100vw;
        min-height: unset;
        box-shadow: 0 1px 3px rgba(0, 0, 0, .1);
        -webkit-animation: header_drop .5s ease-out 0s 1 alternate none running;
        animation: header_drop .5s ease-out 0s 1 alternate none running;
    }
    body .vk-mobile-nav-menu-btn {
        display: none;
    }
}
@media (max-width: 991.99px) {
    .site-header-container {
        display: block;
        overflow: hidden;
    }
    .site-header-logo {
        padding-top: .5rem;
        margin-bottom: .5rem;
        white-space: normal;
    }
    .site-header-logo img {
        max-height: 50px;
    }
    .global-nav,.header_scrolled .site-header .global-nav {
        display: none;
    }
    .site-header-logo {
        padding-top: .5rem;
        margin-bottom: .5rem;
        white-space: normal;
    }
}
/** footer **/
footer.site-footer {
    background: #fff;
    --vk-size-text-sm: 12px;
    display: block;
    overflow: hidden;
    font-size: var(--vk-size-text-sm);
    content-visibility: auto;
    contain-intrinsic-size: 370px;
    text-align: center;
    padding:30px 0;
}
footer .footer-address,footer .sns_btns {
    margin: 0 auto;
    font-size: 14px;
    overflow: hidden;
    width: fit-content;
    padding-inline-start: 0;

}
footer .sns_btns li {
    float: left;
    margin: 15px .45em;
    list-style: none;
    text-align: center;
    font-size: 20px;
}
footer .sns_btns li a {
    color: var(--vk-color-text-body);
}
.mobile-footer {
    max-width:500px;
    margin:15px auto;
}
.mobile-footer > a {
    padding: 5px 0;
    width: 32%;
    display: inline-block;
    text-align: center;
}
@media (min-width: 992px) {
    .mobile-footer {
        display: none;
    }
}