@charset "utf-8";
/* CSS Document */

/* CSS変数定義 */
:root {
    --nm-arg: 0;
    --anim-arg: 0;
    /* カラーパレット */
    /* ベース色 */
    --cp-base-01: rgba(8,20,50,1);
    /* 基本色 */
    --cp-base-02: rgba(24,95,119,1);
    --cp-base-03: rgba(215,151,72,1);
    --cp-base-04: rgba(229,236,237,1);
    /* 定番色 */
    --cp-stap-01: rgba(184,191,181,1);
    --cp-stap-02: rgba(184,195,209,1);
    --cp-stap-03: rgba(204,195,131,1);
    --cp-stap-04: rgba(0,0,0,1);
    /* 補色 */
    --cp-comp-01: rgba(227,98,159,1);
    --cp-comp-02: rgba(222,84,78,1);
    --cp-comp-03: rgba(246,168,38,1);
    --cp-comp-04: rgba(0,0,0,1);
    /* 同系色 */
    --cp-simi-01: rgba(35,153,86,1);
    --cp-simi-02: rgba(9,96,174,1);
    --cp-simi-03: rgba(0,133,194,1);
    --cp-simi-04: rgba(0,128,106,1);
    /* その他 */
    --cp-etc-01: rgba(51,51,51,1);
    --cp-etc-02: rgba(102,102,102,1);
    --cp-etc-03: rgba(109,107,91,1);
    --cp-etc-04: rgba(221,221,221,1);
    
    /* フォント */
    --fn-jp-sans: 'Noto Sans JP';
    --fn-jp-serif: 'Noto Serif JP';
}

html {
    font-family: var(--fn-jp-sans), sans-serif;
}
.uk-h1, .uk-h2, .uk-h3, .uk-h4, .uk-h5, .uk-h6, .uk-heading-2xlarge, .uk-heading-large, .uk-heading-medium, .uk-heading-small, .uk-heading-xlarge, h1, h2, h3, h4, h5, h6 {
    font-family: 'Avenir', 'Arial', var(--fn-jp-sans), sans-serif;
}

/* 汎用書体クラス */
.font-uklink {color: #1e87f0!important;}

.font-jp-sans {font-family: var(--fn-jp-sans), sans-serif!important;}
.font-jp-serif {font-family: var(--fn-jp-serif), sans-serif!important;}

.font-base-01 {color: var(--cp-base-01)!important;}
.font-base-02 {color: var(--cp-base-02)!important;}
.font-base-03 {color: var(--cp-base-03)!important;}
.font-base-04 {color: var(--cp-base-04)!important;}
.font-stap-01 {color: var(--cp-stap-01)!important;}
.font-stap-02 {color: var(--cp-stap-02)!important;}
.font-stap-03 {color: var(--cp-stap-03)!important;}
.font-stap-04 {color: var(--cp-stap-04)!important;}
.font-comp-01 {color: var(--cp-comp-01)!important;}
.font-comp-02 {color: var(--cp-comp-02)!important;}
.font-comp-03 {color: var(--cp-comp-03)!important;}
.font-comp-04 {color: var(--cp-comp-04)!important;}
.font-simi-01 {color: var(--cp-simi-01)!important;}
.font-simi-02 {color: var(--cp-simi-02)!important;}
.font-simi-03 {color: var(--cp-simi-03)!important;}
.font-simi-04 {color: var(--cp-simi-04)!important;}
.font-etc-01 {color: var(--cp-etc-01)!important;}
.font-etc-02 {color: var(--cp-etc-02)!important;}
.font-etc-03 {color: var(--cp-etc-03)!important;}
.font-etc-04 {color: var(--cp-etc-04)!important;}

/* 汎用BGクラス */
.bg-base-01 {background: var(--cp-base-01)!important;}
.bg-base-02 {background: var(--cp-base-02)!important;}
.bg-base-03 {background: var(--cp-base-03)!important;}
.bg-base-04 {background: var(--cp-base-04)!important;}
.bg-stap-01 {background: var(--cp-stap-01)!important;}
.bg-stap-02 {background: var(--cp-stap-02)!important;}
.bg-stap-03 {background: var(--cp-stap-03)!important;}
.bg-stap-04 {background: var(--cp-stap-04)!important;}
.bg-comp-01 {background: var(--cp-comp-01)!important;}
.bg-comp-02 {background: var(--cp-comp-02)!important;}
.bg-comp-03 {background: var(--cp-comp-03)!important;}
.bg-comp-04 {background: var(--cp-comp-04)!important;}
.bg-simi-01 {background: var(--cp-simi-01)!important;}
.bg-simi-02 {background: var(--cp-simi-02)!important;}
.bg-simi-03 {background: var(--cp-simi-03)!important;}
.bg-simi-04 {background: var(--cp-simi-04)!important;}

.bg-dot-black {
    background: url("../img/bg_dot_black.png")!important;
    background-size: 4px!important;
}
.bg-dot-white {
    background: url("../img/bg_dot_white.png")!important;
    background-size: 4px!important;
}
.bg-lined {
    background-image: url("../img/bg_oblique_T.png")!important;
    background-size: 15px!important;
    background-repeat: repeat;
}
.bg-lined-white {
    background-image: url("../img/bg_oblique_whiteT.png")!important;
    background-size: 15px!important;
    background-repeat: repeat;
}
.bg-transparent {background: rgba(34,34,34,.3);}
.bg-transparent-black {background: rgba(0,0,0,.5);}
.bg-transparent-white {background: rgba(255,255,255,.7);}



.hr-bold-white {
    border-top: 5px solid white!important;
}

body {
    font-family: 'Noto Sans JP', sans-serif;
}

header {z-index: 990;}

.scroll2view .logo,
.scroll2view #page_top {
    display: none;
}/* メインナビゲーション */
.logo-b {
    display: none;
    transition: all .3s ease-out;
}
.logo-w {
    display: block;
    transition: all .3s ease-out;
}
.navtoggled .logo-b {display: block;}
.navtoggled .logo-w {display: none;}

.bg-toggle {
    background: rgba(0,0,0,.15)!important;
    transition: all .3s ease-out;
}
.navtoggled .bg-toggle {background: rgba(255,255,255,.5)!important;}
.scroll2view .bg-toggle {background: rgba(0,0,0,0)!important;}

.font-toggle {
    color: white!important;
    transition: all .3s ease-out;
}
.navtoggled .font-toggle {color: var(--cp-base-01)!important;}

.uk-navbar-nav>li>a {
    padding-top: 29px;
    font-size: 0.9rem;
    font-weight: bold;
    color: var(--cp-base-01);
    position: relative;
    z-index: 1;
    display: inline-block;
}
.uk-navbar-nav>li:hover>a,
.uk-navbar-nav>li>a.uk-open,
.uk-navbar-nav>li>a:focus {
    transition: all .3s ease-out;
}
.uk-navbar-nav>li.sel {
    background: var(--cp-base-02);
}

.uk-navbar-right ul>li>a {
    position: relative;
}
.uk-navbar-right ul>li>a::before {
    position: absolute;
    z-index: -1;
    bottom: 0;
    left: 0;
    content: '';
    width: 100%;
    height: 100%;
    background: var(--cp-base-01);
    transform: scale(1, 0);
    transform-origin: left top;
    transition: transform .3s;
}
.navtoggled .uk-navbar-right ul>li>a::before {background: var(--cp-base-04);}
.uk-navbar-right ul>li>a:hover::before {
    transform-origin: left top;
    transform: scale(1, 1);
}

.btn-menu {
    --nm-arg: 0px;
    min-width: 60px!important; 
    min-height: 60px!important; 
    transition: all .2s;
}
.btn-menu:hover {--nm-arg: 0px;}

/* サイドナビゲーション */
#sidenav {
    position: fixed;
    left: 0;
    top: 0;
    width: 230px;
    height: 100vh;
    box-shadow: 0 0 5px 3px rgba(0,0,0,0.4);
    color: white;
}
.uk-offcanvas-bar {
    box-shadow: 0 0 5px 3px rgba(0,0,0,0.4);
    padding: 0;
    color: white;
    width: 100vw;
    left: -100vw;
}
.uk-offcanvas-container-animation{
    right: 100vw!important;
}
.fnav-head {
    width: 40px; 
    writing-mode: vertical-lr;
    border-left: 1px white solid;
}
.fnav-body {
    width: calc(100vw - 40px);
}
.fnav-body .uk-nav-default {
    width: 200px;
}
.fnav-body .uk-nav-default>li a {
    color: var(--cp-base-04);
}
.fnav-body .uk-nav-default>li>a {
    display: inline!important;
}
.fnav-body .uk-nav-default>li:hover>a,
.fnav-body .uk-nav-default>li>a.uk-open,
.uk-accordion-content>ul>li:hover>a {
    padding-left: 5px;
    padding-right: 5px;
    color: white;
    background: var(--cp-base-02);
    transition: all 0.1s ease-out;
}
.uk-accordion>:nth-child(n+2) {
    margin-top: 15px;
    margin-bottom: 15px;
}
.fnav-body .uk-nav-default>li>a.uk-accordion-title {
    font-size: .875rem;
}

.uk-modal-dialog {
    width: auto;
}

#page_top {
    --nm-arg: 0;
    width: 60px;
    height: 60px;
    position: fixed;
    right: 10px;
    bottom: 10px;
    opacity: .7;
    transition: all .2s;
    z-index: 50;
}
#page_top a {
    position: relative;
    display: block;
    width: 60px;
    height: 60px;
    text-decoration: none;
}
#page_top a::before {
    font-family: 'Font Awesome 5 Free';
    font-weight: 900;
    content: '\f102';
    font-size: 25px;
    color: white;
    position: absolute;
    width: 25px;
    height: 25px;
    top: -15px;
    bottom: 0;
    right: 0;
    left: 0;
    margin: auto;
    text-align: center;
}
#page_top:hover {
    opacity: 1;
}

address {
    margin: 0;
    padding: 0;
	font-style: normal;
}
.copyright {
	font-size: 0.8em;
	/* text-align: center; */
}

@media screen and (max-width: 640px) {
    .resp-table th,
    .resp-table td {
        display: block!important;
    }
    .resp-table_green th {
        color: white;
        background-color: rgb(166,195,172);
    }
    .resp-table_pa0 th,
    .resp-table_pa0 td {
        padding: 0;
    }
    .resp-table_pa5 th,
    .resp-table_pa5 td {
        padding: 5px;
    }
    .resp-table_pa10 th,
    .resp-table_pa10 td {
        padding: 10px;
    }
}


@media (max-width: 1059px) {
    .uk-visible\@1060 {
        display: none!important;
    }
}
@media (min-width: 1060px) {
    .uk-hidden\@1060 {
        display: none!important;
    }
}


.nm-flat {
    border-radius: 30px;
    background: #efefef;
    box-shadow: calc(var(--nm-arg) / 10 * -1) calc(var(--nm-arg) / 10) calc(var(--nm-arg) / 5) #cbcbcb, calc(var(--nm-arg) / 10) calc(var(--nm-arg) / 10 * -1) calc(var(--nm-arg) / 5) #ffffff;
}
.nm-concave {
    border-radius: 30px;
    background: linear-gradient(225deg, #d7d7d7, #ffffff);
    box-shadow: calc(var(--nm-arg) / 10 * -1) calc(var(--nm-arg) / 10) calc(var(--nm-arg) / 5) #cbcbcb, calc(var(--nm-arg) / 10) calc(var(--nm-arg) / 10 * -1) calc(var(--nm-arg) / 5) #ffffff;
}
.nm-convex {
    border-radius: 30px;
    background: linear-gradient(225deg, #ffffff, #d7d7d7);
    box-shadow: calc(var(--nm-arg) / 10 * -1) calc(var(--nm-arg) / 10) calc(var(--nm-arg) / 5) #cbcbcb, calc(var(--nm-arg) / 10) calc(var(--nm-arg) / 10 * -1) calc(var(--nm-arg) / 5) #ffffff;
}
.nm-pressed {
    border-radius: 30px;
    background: #efefef;
    box-shadow: inset calc(var(--nm-arg) / 10 * -1) calc(var(--nm-arg) / 10) calc(var(--nm-arg) / 5) #cbcbcb, inset calc(var(--nm-arg) / 10) calc(var(--nm-arg) / 10 * -1) calc(var(--nm-arg) / 5) #ffffff;
}

.btn-nm-flat {
    color: var(--cp-base-01);
    text-decoration: none!important;
    font-weight: bold;
    border-radius: 30px;
    background: #efefef;
    box-shadow: calc(var(--nm-arg) / 10 * -1) calc(var(--nm-arg) / 10) calc(var(--nm-arg) / 5) #cbcbcb, calc(var(--nm-arg) / 10) calc(var(--nm-arg) / 10 * -1) calc(var(--nm-arg) / 5) #ffffff;
    transition: all .2s;
}
.btn-nm-flat:hover {
    color: white;
    background: var(--cp-base-02);
}

/* 汎用アニメーション */
.animfadeup {
    opacity: 0;
    transform: translateY(20px);
    transition: all .5s ease-out;
}
.animfadeup.toggled {
    opacity: 1;
    transform: translateY(0px);
}

/* CSSアニメーション */
.anim-txt-typing {
	width: calc(12em + 5px);	/*文字の長さ*/
	border-right: 5px solid white;	/*点滅バー*/
	overflow: hidden;	/*必須*/
	white-space: nowrap;	/*必須*/
	animation: typing 3s steps(12), blink .4s step-end infinite alternate;	/*アニメーション関連*/
}
@keyframes typing {
	from {width: 0;}
}
@keyframes blink {
    /*点滅風に見せる*/
	50% {border-color: transparent;}
}

.anim-slidein-l2r{
    animation-name: slideInL2R;
    animation-duration: 2s;
    animation-delay: var(--anim-arg);
    animation-fill-mode: forwards;
    opacity: 0;
}
@keyframes slideInL2R {
    0% {
        opacity: 0;/*初期状態では透明に*/
        transform: translateX(-50vw);
    }
    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

.anim-slidein-r2l{
    animation-name: slideInR2L;
    animation-duration: 2s;
    animation-delay: var(--anim-arg);
    animation-fill-mode: forwards;
    opacity: 0;
}
@keyframes slideInR2L {
    0% {
        opacity: 0;/*初期状態では透明に*/
        transform: translateX(50vw);
    }
    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

.anim-fadein{
    /* animation: 3s ease-in 1s infinite reverse both running slidein; */
    animation: 1s cubic-bezier(0.33, 1, 0.68, 1) forwards fadeIn;
    opacity: 0;
    animation-delay: --anim-arg;
}
@keyframes fadeIn {
    0% {
        transform: translateX(-30px);
        opacity: 0;
    }
    80% {
        opacity: 1;
    }
    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

.scroll {
    display: inline-block;
    padding-top: 70px;
    position: relative;
    color: white;
}
.scroll::before {
    animation: scroll 3.5s infinite;
    border: solid white;
    border-width: 0 0 2px 2px;
    content: "";
    display: inline-block;
    margin: auto;
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    transform: rotate(-45deg);
    width: 20px;
    height: 20px;
}
@keyframes scroll {
    0% {
        transform: rotate(-45deg) translate(0, 0);
    }
    80% {
        transform: rotate(-45deg) translate(-30px, 30px);
    }
    0%, 80%, 100% {
        opacity: 0;
    }
    40% {
        opacity: 1;
    }
}