@charset "utf-8";



/* header
=========================================================================================== */

  /* l-header */
  .l-headerbase {
    width: 100%;
    z-index: 50;
    position: relative;
    background-color: var(--header-bgcolor);
    }
              .l-home .l-headerbase.l-header-transform {
                position: fixed;
                top: 0;
                left: 0;
                }
              .l-page .l-headerbase {
                position: fixed;
                top: 0;
                left: 0;
                }

            /* トップページ　ヘッダーを透明にしてメイン画像（スライダー）の上にかぶせる時は、bodyに　l-home__transparent　を追加する */
              .l-home__transparent .l-headerbase {
                position: absolute;
                background-color: transparent;
                box-shadow: none;
                -webkit-box-shadow: none;
                -moz-box-shadow: none;  
                }
                  .l-home__transparent .l-headerbase.l-header-transform {
                    background-color: var(--header-bgcolor);
                    box-shadow: 0px 1px 3px var(--headermenu-bgcolor-shadow);
                    -webkit-box-shadow: 0px 1px 3px var(--headermenu-bgcolor-shadow);
                    -moz-box-shadow: 0px 1px 3px var(--headermenu-bgcolor-shadow);  
                    }
              .l-home__transparent .l-gnav {
                background-color: transparent;
                box-shadow: none;
                -webkit-box-shadow: none;
                -moz-box-shadow: none;  
                }
                  .l-home__transparent .l-headerbase.l-header-transform .l-gnav  {
                    box-shadow: 0px 1px 3px var(--headermenu-bgcolor-shadow);
                    -webkit-box-shadow: 0px 1px 3px var(--headermenu-bgcolor-shadow);
                    -moz-box-shadow: 0px 1px 3px var(--headermenu-bgcolor-shadow);  
                    }

	.l-header h1 {
		display: -webkit-flex!important;
		display: flex!important;
		-webkit-flex-direction: column;
		flex-direction: column;
		-webkit-justify-content: center;
		justify-content: center;
		}
	.l-header h1 a {
    display: block;
    line-height: 0;
		}
		.l-header h1 img {
			flex-shrink: 0;
			}

	@media print, screen and (min-width: 768px) {
    
		/* l-header */
    .l-header {
      width: 100%;
      max-width: 1300px;
      margin: 0 auto;
      height: 100px;
      display: -webkit-flex;
      display: flex;
      -webkit-flex-wrap: wrap;
      flex-wrap: wrap;
      -webkit-justify-content: space-between;
      justify-content: space-between;
      gap: 10px;
      }
    
		/* logo */
		.l-header h1 {
      flex: 1;
      padding-left: 20px;
      box-sizing: border-box;
			}

		/* l-hnav */
		.l-hnav {
      margin: 0;
      padding: 0;
      display: -webkit-flex;
      display: flex;
      -webkit-flex-wrap: wrap;
      flex-wrap: wrap;
      -webkit-justify-content: flex-end;
      justify-content: flex-end;
      color: var(--header-textcolor);
      }
		.l-hnav > * {
      margin: 0;
      padding: 0 10px;
      list-style: none;
      display: -webkit-box!important;
      display: -webkit-flex!important;
      display: flex!important;
      -webkit-flex-direction: column;
      flex-direction: column;
      -webkit-justify-content: center;
      justify-content: center;
			}
    
    .l-hnav-tel {
      }
      .l-hnav-tel > span {
        display: block;
        }

		/* l-gnav */
		.l-gnav {
      display: block;
      width: 100%;
      background-color: var(--headermenu-bgcolor);
      min-height: 60px;
      text-align: center;
      padding: 0 25px;
      box-shadow: 0px 1px 3px var(--headermenu-bgcolor-shadow);
      -webkit-box-shadow: 0px 1px 3px var(--headermenu-bgcolor-shadow);
      -moz-box-shadow: 0px 1px 3px var(--headermenu-bgcolor-shadow);  
      }
		.l-gnav > ul {
      max-width: 1300px;
      margin: 0 auto;
      display: -webkit-flex;
      display: flex;
      -webkit-flex-wrap: wrap;
      flex-wrap: wrap;
      -webkit-justify-content: center;
      justify-content: center;
      line-height: 1;
      padding: 10px 0;
      }
		.l-gnav > ul > li {
      margin: 0;
      padding: 0;
      height: 40px;
      line-height: 40px;
      list-style: none;
      position: relative;
			}
      .l-gnav.l-gnav-mega > ul > li {
        position: static;
        }
		.l-gnav > ul > li a {
      display: block;
      width: 100%;
      height: 100%;
      padding: 0 20px;
      color: var(--headermenu-textcolor);
      text-decoration: none;
			}
      .l-gnav > ul > li a:hover {
        color: var(--headermenu-textcolor-hover);
        text-decoration: none;
        }
        .l-gnav > ul > li ul {
          display: block;
          list-style: none;
          }
        .l-gnav > ul > li ul li a {
          padding: 10px 5px;
          line-height: 1.4;
          }
        .l-gnav > ul > li.has-child ul {
          position: absolute;
          width: 160px;
          left: 50%;
          margin: 0 0 0 -80px;
          top: 40px;
          z-index: 4;
          background: var(--headermenu-bgcolor-drop);
          visibility: hidden;
          opacity: 0;
          transition: all .3s;
          padding: 0;
          box-shadow: 0px 1px 3px var(--headermenu-bgcolor-shadow);
          -webkit-box-shadow: 0px 1px 3px var(--headermenu-bgcolor-shadow);
          -moz-box-shadow: 0px 1px 3px var(--headermenu-bgcolor-shadow);  
          }
          .l-gnav.l-gnav-mega > ul > li.has-child ul {
            position: absolute;
            width: 100%;
            left: 0;
            margin: 0;
            top: 100%;
            letter-spacing: -0.5em;
            }
          .l-gnav.l-gnav-mega > ul > li.has-child ul > li {
            display: inline-block;
            margin: 0px;
        		letter-spacing: 0.1em;
            }
          .l-gnav.l-gnav-mega > ul > li.has-child ul > li > a {
            padding: 15px;
            }
    
    
        .l-gnav > ul > li.has-child:hover > ul,
        .l-gnav > ul > li.has-child ul li:hover > ul,
        .l-gnav > ul > li.has-child:active > ul,
        .l-gnav > ul > li.has-child ul li:active > ul{
          visibility: visible;
          opacity: 1;
          }
        .l-gnav > ul > li.has-child ul li a{
          color: var(--headermenu-textcolor);
          }
        .l-gnav > ul > li.has-child ul li a:hover,
        .l-gnav > ul > li.has-child ul li a:active{
          background: var(--headermenu-bgcolor-drop-hover);
          }
	}
	@media (max-width: 767px) {
		.l-header {
      box-shadow: 0px 1px 3px var(--headermenu-bgcolor-shadow-sp);
      -webkit-box-shadow: 0px 1px 3px var(--headermenu-bgcolor-shadow-sp);
      -moz-box-shadow: 0px 1px 3px var(--headermenu-bgcolor-shadow-sp);  
       }
		.l-header h1 {
			margin-left: 20px;
			height: 50px;
      display: -webkit-box!important;
      display: -webkit-flex!important;
      display: flex!important;
      -webkit-flex-direction: column;
      flex-direction: column;
      -webkit-justify-content: center;
      justify-content: center;
			}
		.l-header h1 img.l-hlogo-pc {
      display: none;
			}
		.l-header h1 img.l-hlogo-sp {
      display: block;
			}
		.l-header h1 img {
			height: 30px;
			}

    .l-hnav {
      display: none;
      }

    .l-gnav {
      display: none;
      position: fixed;
      width: 100%;
      top: 0;
      right: 0px;
      padding: 80px 5% 20px 5%;
      background: var(--hbgmenu-bgcolor)!important;
      z-index: 9400;
      height: 100vh;
      overflow: auto;
      }
		.l-gnav > ul,
		.l-gnav > ul > li {
      margin: 0;
      padding: 0;
      list-style: none;
			}
		.l-gnav > ul {
      }
      .l-gnav > ul > li {
        border-bottom: 1px solid var(--hbgmenu-bordercolor);
        padding-right: 20px;
        position: relative;
        }
			.l-gnav > ul > li a {
        display: block;
        width: 100%;
  			padding: 15px 3% 13px 3%;
        color: var(--hbgmenu-textcolor);
        text-decoration: none;
        }
    
        .l-gnav > ul > li.has-child ul {
          display: none;
          list-style: none;
          }
        .l-gnav > ul > li.has-child span::after {
          content: '\f107';
          font-family: 'Font Awesome 6 Free';
          font-weight: bold;
          top: 5px;  
          right: 0px;
          position: absolute;
          width: 50px;
          height: 45px;
          padding: 10px;
          text-align: right;
          color: var(--hbgmenu-textcolor);
          }
        .l-gnav > ul > li.has-child span.active::after {
          content: '\f106';
          font-family: 'Font Awesome 6 Free';
          font-weight: bold;
          }
        .l-gnav > ul > li ul li a {
          padding: 0px 0 15px 15px;
          line-height: 1.4;
          position: relative;
          }
        .l-gnav > ul > li ul li a::before {
          content: '\f0da';
          font-family: 'Font Awesome 6 Free';
          font-weight: bold;
          position: absolute;
          top: 1px;
          left: 0;
          font-size: 1.1rem;
          }
	}



/* ------- ヘッダーのボタンやバナー（スマホ：上・下・ハンバーガーメニュー内） -------- */

	[class*="l-hnav-bn__"] {
    width: 100%;
    display: -webkit-grid;
    display: grid;
		-webkit-justify-content: center;
		justify-content: center;
		}
	[class*="l-hnav-bn__"] a{
/*      height: 100%;*/
		}
  .l-hnav-bn__1 {
    grid-template-columns: 1fr;
    }
  .l-hnav-bn__2 {
    grid-template-columns: 1fr 1fr;
    }
  .l-hnav-bn__3 {
    grid-template-columns: 1fr 1fr 1fr;
    }

	@media print, screen and (min-width: 768px) {
    [class*="l-hnav-bn__"] {
      gap: 10px;
      }
    .l-hnav-sponly {
      display: none!important;
      }
	}
	@media (max-width: 767px) {
    .l-hnav-spbottom {
      margin: 0;
      padding: 0;
      position: fixed;
      width: 100%;
      z-index: 9500;
      bottom: 0;
      left: 0px;
      }
    .l-hnav-pconly {
      display: none!important;
      }
	}





/* ------- hamburger menu -------- */

/* button */
	@media print, screen and (min-width: 768px) {
    .button-open {
      display: none;
      }
  }
	@media (max-width: 767px) {
    .button-open {
      position: absolute;
      width: 50px;
      height: 50px;
      z-index: 9500;
      top: 0;
      right: 5px;
      text-align: center;
      }
      .button-open i {
        display: block;
        height: 3px;
        width: 30px;
        left: 12px;
        top: 24px;
        border-radius: 1.5px;
        background: var(--header-hbgcolor);
        -webkit-transition: background 0.3s;
            transition: background 0.3s;
        position: relative;
      }
      .button-open i:before,
      .button-open i:after {
        content: "";
        display: block;
        height: 3px;
        border-radius: 1.5px;
        background: var(--header-hbgcolor);
        position: absolute;
        -webkit-transform: rotate(0deg);
          -ms-transform: rotate(0deg);
            transform: rotate(0deg);
        -webkit-transition: all 0.3s !important;
            transition: all 0.3s !important;
        }
        .button-open i:before,
        .button-open i:after {
          width: 30px;
          }
      .button-open i:before {
        -webkit-transform: translateY(10px);
          -ms-transform: translateY(10px);
            transform: translateY(10px);
        }
      .button-open i:after {
        -webkit-transform: translateY(-10px);
          -ms-transform: translateY(-10px);
            transform: translateY(-10px);
        }
      .button-open span {
        display: block;
        font-size: 1.2rem;
        font-weight: bold;
        margin-top: 36px;
        }


    .is-open .button-open i {
      width: 34px;
      background-color: transparent;
      }
      .is-open .button-open i:before {
            width: 34px;
            background: var(--header-hbgcolor-close);
        -webkit-transform: translateY(0px) rotate(45deg);
          -ms-transform: translateY(0px) rotate(45deg);
            transform: translateY(0px) rotate(45deg);
            }
      .is-open .button-open i:after {
            width: 34px;
            background: var(--header-hbgcolor-close);
        -webkit-transform: translateY(0px) rotate(-45deg);
          -ms-transform: translateY(0px) rotate(-45deg);
            transform: translateY(0px) rotate(-45deg);
            }
	}



