﻿:root {
  --nav-line-color:   rgba(0 ,0 ,64 ,1.0);
  --nav-border-color: rgba(0 ,0 ,64 ,1.0);
  --nav-text-color:   rgba(0 ,0 ,64 ,1.0);
  --nav-list-hover-color: rgba(0 ,0 ,64 ,.5);
  --nav-link-underline-color: rgba(0 ,0 ,64 ,.2);
  --nav-link-underline-hover-color: rgba(0 ,0 ,64 ,.3);
}

nav i:before {
    margin: 0 .5em 0 0;
}

@media screen and (min-width:600px) and (max-width:720px) {
   nav i:before {
       margin: 0 .2em 0 0;
   }
}

nav.navi-menu {
    height: 80px;
    position: relative;
    z-index: 2;
}

nav.navi-menu * {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

nav.navi-menu::before , ::after {
    box-sizing: inherit;
}

/***** メニューボタン *****/
nav.navi-menu button {
    margin: 0;
    padding: 5px 5px;
    outline: 0;
    border: 0;
    border-radius: 0;
    background-color: rgba(255 ,255 ,255 ,0.5);
    color: inherit;
    vertical-align: middle;
    text-align: inherit;
    font: inherit;
    -webkit-appearance: none;
    appearance: none;
}

nav.navi-menu .logo {
    opacity: 0.7;
    padding: 17px 0;
    height: 72px;
    text-align: center;
}

nav.navi-menu .btn {
    /* ボタンの配置位置  */
    position: fixed;
    top: 14px;
    right: 14px;
    /* 最前面に */
    z-index: 10;
    /* ボタンの大きさ  */
    width:  44px;
    height: 44px;
}

nav.navi-menu .btn-line {
    display: block;
    /* バーガー線の位置基準として設定 */
    position: relative;
    /* 線の長さと高さ */
    width: 100%;
    height: 7px;
    /* バーガー線の色 */
    background-color: var(--nav-line-color);
    transition: .2s;
}

nav.navi-menu .btn-line::before , nav.navi-menu .btn-line::after {
    content: "";
    /* 基準線と同じ大きさと色 */
    position: absolute;
    padding: 0;
    width: 100%;
    height: 100%;
    background-color: var(--nav-line-color);
    transition: .5s;
}

nav.navi-menu .btn-line::before {
    /* 上の線の位置 */
    transform: translateY(-12px);
}

nav.navi-menu .btn-line::after {
    /* 下の線の位置 */
    transform: translateY(12px);
}

/***** メニューボタン[オープン時] *****/
nav.navi-menu .btn-line.open {
    /* 真ん中の線を透明に */
    background: transparent;
}

nav.navi-menu .btn-line.open::before ,nav.navi-menu  .btn-line.open::after {
    content: "";
    background-color: var(--nav-line-color);
    transition: .2s;
}

nav.navi-menu .btn-line.open::before {
    /* 上の線を傾ける */
    transform: rotate(45deg);
}

nav.navi-menu .btn-line.open::after {
    /* 上の線を傾ける */
    transform: rotate(-45deg);
}


/***** メニュー *****/
nav.navi-menu .menu {
    /* メニューを縦に */
    display: flex;
    flex-direction: column;
    position: fixed;
    /* メニューの位置マイナス指定で画面外に */
    top: 0px;
    right: -100%;
    width:  100%;
    height: 100vh;
    background-color: rgba(255 ,255 ,255 , .9);
    transition: .3s;
}

nav.navi-menu .menu-list , .menu-label , nav.navi-menu .menu-list a {
    /* メニューテキスト位置をリスト内中心に */
    display: flex;
    flex-direction:column;
    align-items: center;
    justify-content: center;
    text-align: center;
    width: 100%;
    height: 100%;
    color: var(--nav-text-color);
    font-size: 24px;
    font-weight: bold;
}

nav.navi-menu .menu-list .alias {
    display: block;
    margin-top: -.4em;
    font-size: 40%;
}

nav.navi-menu .menu-list:nth-child(1) {
    height: 50%;
    background: transparent;
}

nav.navi-menu .menu-list:nth-child(1) img {
    height: 39px;
    width: 189.14px;
}

nav.navi-menu .menu-list:nth-of-type(n+2) {
    border-top: 5px dashed var(--nav-border-color);
}

nav.navi-menu .menu-list:last-child {
    background-color: rgba(0, 174, 203, 0.8);
}

nav.navi-menu .menu-list:last-child a {
    color: #ffffff;
    text-shadow: 1px 1px 0 var(--nav-border-color), -1px 1px 0 var(--nav-border-color), 1px -1px 0 var(--nav-border-color), -1px -1px 0 var(--nav-border-color);
}

nav.navi-menu .menu-list:hover {
    background-color: var(--nav-list-hover-color);
}

  nav.navi-menu .menu-list:hover a 
, nav.navi-menu .menu-list:hover label {
    color: rgba(255 ,255 ,255 , 1.0);
    text-shadow: unset;

}

nav.navi-menu .top-list:hover {
    background: transparent;
}

  nav.navi-menu .menu-list * 
, #menu-panel-6:checked ~ .menu-panel-6 * {
    cursor: pointer;
}

nav.navi-menu .none-list {
    display: none;
}

.fixLine {
    color: rgba(255 ,255 ,255 , .9);
    background-color: rgba(0 ,77 ,64 , .5);
}



nav.navi-menu .menu.open {
    position: absolute;
    right: 0;
}

.menu__second-level {
    display: none;
    list-style: none;
}

.menu-checkbox {
    display: none;
}

#menu-panel-6:checked + .menu__second-level {
    display: block;
    flex:direction:column;
    width: 100%;
    height: 150%;
    padding: 20px 2%;
    background-color: rgba(221 ,255 ,238 , .5);
}


.menu__second-level dt {
    display: block;
    width: 100%;
    text-align: center;
    color: rgba(0 ,77 ,64 ,1.0);
    font-size: 150%;
    font-weight: bold;
}

.menu__second-level dt span {
    position:relative;
    padding: 0;
    color: rgba(0 ,51 ,43 , .9);
    font-weight: 700;
    border-bottom: 9px dotted rgba(0 ,51 ,43 , .9);
}

.menu__second-level dt span:after{
  content: attr(data-text);
  position:absolute;
  left:2px;
  top:2px;
  color: #fff;
  mix-blend-mode:multiply;
}

.menu__second-level dt label {
    display: none;
}

.menu__second-level dt label:hover {
    cursor: pointer;
}

.menu__second-level dd {
    margin: 25px 0 0 0;
}


.menu__second-level form {
    width: 96%;
    margin: 5px auto;

}

.SearchInp {
    margin: 0 1% 0 0;
    padding: 12px;
    width:  77%;
    height: 40px;
    border: solid 1px #ccc;
    border-radius: 8px;
    font-size: 100%;
}

.SearchBtn {
    margin: 0 0 0 1%;
    padding: 0;
    width:  17%;
    height: 40px;
    color: rgba(0 ,77 ,64 , .9);
    background-color: rgba(255 ,255 ,255 , .9);
    border: 2px solid rgba(0 ,77 ,64 , .9);
    border-radius: 8px;
    text-align: center;
}

.SearchBtn:hover {
    color: #fff;
    background-color: rgba(0 ,77 ,64 , .9);
}


@media all and (max-width: 599px) {
   html.is-fixed,
   html.is-fixed body {
       height: 100%;
       overflow: hidden;
   }
}

@media screen and (max-width: 210px) {
      nav.navi-menu .logo 
    , nav.navi-menu .menu-list:nth-child(1) img {
        display: none;
    }
}

/* ビューポートが 600 pxより広い場合 */
@media screen and (min-width: 600px) {

    nav.navi-menu .btn 
  , nav.navi-menu .logo {
        display: none;
    }

    nav.navi-menu .menu {
        /* メニューを横に */
        display: flex;
        flex-direction: row;
        position: fixed;
        top: 0;
        right: 0;
        width: 100%;
        height: 80px;
        background-color: rgba(255, 255, 255, .4);
    }

    nav.navi-menu .menu-list {
        border: 0;
    }

    nav.navi-menu .menu-list:hover {
        background: transparent;
    }

    nav.navi-menu .menu-list a 
  , nav.navi-menu .menu-list label {
        color: #000;
        font-size: 16px;
        border: 2px solid transparent;
        transition: .5s;
    }

    nav.navi-menu .menu-list:hover a 
  , nav.navi-menu .menu-list:hover label {
        color: rgba(0 ,0 ,0 , 1.0);
    }


/*
      nav.navi-menu .menu-list a span.marker
    , nav.navi-menu .menu-list label span.marker 
    , nav.navi-menu .menu-list:hover a span.marker
    , nav.navi-menu .menu-list:hover label span.marker {

          background:linear-gradient(transparent 0%, rgba(0,0,0,0) 0%);
      }
*/

    nav.navi-menu .menu-list:hover > *
  , #menu-panel-6:checked ~ .menu-panel-6 * {
        cursor: pointer;
    }


    nav.navi-menu .none-list {
        display: flex;
    }

    nav.navi-menu .none-list:hover {
        cursor: default;
    }

    nav.navi-menu .top-list:hover  *  
  , nav.navi-menu .none-list:hover * {
        background: transparent;
    }

    nav.navi-menu .top-list:hover  a 
  , nav.navi-menu .none-list:hover a {
        border: 2px solid transparent;
    }

    nav.navi-menu .menu-list:nth-child(1) {
        height: 100%;
        width:200%;
        padding: 0;
        background: transparent;
    }

    nav.navi-menu .menu-list:nth-child(1) a {
        padding: 0 0 0 5px;
    }

    nav.navi-menu .menu-list:nth-child(1) img {
        width: 200px;
        margin : 0 auto 0 0;
    }

    nav.navi-menu .menu-list:nth-of-type(n+2) {
        border-top: 0;
    }

    nav.navi-menu .menu-list:last-child {
        background-color: rgba(0, 174, 203, 0.8);
    }

    nav.navi-menu .menu-list:last-child a {
        color: #ffffff;
        text-shadow: unset;
    }

    nav.navi-menu .link-list {
        position:relative;
    }

    nav.navi-menu .link-list:before {
        position:absolute; 
        top:100%; 
        left:0px; 
        z-index: -1;

        content:"";
        display:block;
        width: 100%;
        height: 0;
        background-color: rgba(0 ,136 ,211 , .3);

        transition: all 0.3s ease-out;
    }

    nav.navi-menu .link-list:hover:before {
        top: 0; 
        height: 100%;
    }

    nav.navi-menu .link-list:last-child:before {
        z-index: -1;
    }

    nav.navi-menu .link-list:last-child:hover:before {
        background-color: rgba(0, 0, 0, .7);
    }



    .fixLine {
        background: transparent;
    }

    .fixLine:after {
        width: 70% !important;
    }

    .menu__second-level dt {
        font-size: 230%;
    }

    #menu-panel-6:checked + .menu__second-level {
        position: absolute;
        height: auto;
        width: 98%;
        top: 65px;
        left: 1%;
        background-color: rgba(193 ,228 ,233 , .8);
        border-radius: 10px;
        -webkit-transition: all .2s ease;
        transition: all .2s ease;
    }

    /* 吹き出し三角部分 */
    #menu-panel-6:checked + .menu__second-level:before {
      content: "";
      position: absolute;
      top: -30px;
      left: calc(100% - 9%);
      margin-left: -15px;
      border: 15px solid transparent;
      border-bottom: 15px solid rgba(193 ,228 ,233 , .8);
    }

    /* 閉じる */
    .menu__second-level dt label {
        display: block;
        position: absolute;
        top:   10px;
        right: 30px;
        font-size: 120%;
        font-weight: bold;
    }
}

