@charset "utf-8";



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

  /* l-header */
  .l-headerbase {
    width: 100%;
    z-index: 50;
    position: relative;
    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 .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-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;
      min-height: 100px;
      display: -webkit-flex;
      display: flex;
      -webkit-flex-wrap: wrap;
      flex-wrap: wrap;
      -webkit-justify-content: space-between;
      justify-content: space-between;
      gap: 20px;
      }
    
		/* logo */
		.l-header h1 {
      padding-left: 20px;
      box-sizing: border-box;
			}

		/* l-hnav */
		.l-hnav {
      flex: 1;
      display: -webkit-flex;
      display: flex;
      -webkit-flex-wrap: wrap;
      flex-wrap: wrap;
      -webkit-justify-content: flex-end;
      justify-content: flex-end;
      }
		.l-hnav > * {
      margin: 0;
      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-gnav */
		.l-gnav {
      display: block;
      width: 100%;
      min-height: 60px;
      text-align: center;
      }
    
    
		.l-gnav > ul {
      display: -webkit-flex;
      display: flex;
      -webkit-flex-wrap: wrap;
      flex-wrap: wrap;
      -webkit-justify-content: flex-end;
      justify-content: flex-end;
      line-height: 1;
      }
          .l-gnav.l-gnav__center > ul {
            display: -webkit-flex;
            display: flex;
            -webkit-flex-wrap: wrap;
            flex-wrap: wrap;
            -webkit-justify-content: center;
            justify-content: center;
            line-height: 1;
            }
          .l-gnav.l-gnav-mega > ul > li {
            position: static;
            }
		.l-gnav > ul > li {
      margin: 0;
      padding: 0;
      height: 28px;
      line-height: 28px;
      list-style: none;
      position: relative;
			}
		.l-gnav > ul > li a {
      display: block;
      width: 100%;
      height: 100%;
      padding: 0 10px;
      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-tel {
      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 a,
      .l-gnav {
        color: var(--hbgmenu-textcolor);
        text-decoration: none;
        }
		.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) {
    .l-gnav-over {
      padding-right: 10px;
      text-align: right;
      }
    .l-gnav-over {
      margin-top: 10px;
      margin-bottom: -10px;
      }
    .l-hnav-pconly,
    .l-hnav-sptop,
    .l-hnav-spbottom {
      display: inline-block!important;
      }
    [class*="l-hnav-bn__"] {
      gap: 10px;
      }
    [class*="l-hnav-bn__"] a{
      padding-top: 5px;
      padding-bottom: 5px;
      }
    .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-pconly01,
    .l-hnav-pconly {
      display: none!important;
      }
    [class*="l-hnav-bn__"] a{
      padding-top: 8px;
      padding-bottom: 8px;
      }
	}



/* ------- 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);
            }
	}



