@charset "utf-8";


/* layout =============================================================

======================================================================== */


/* =====================================================================

	container
	
======================================================================== */


	.l-container-sp,
	.l-container-1920,
	.l-container-w,
	.l-container {
		margin-right: auto;
		margin-left: auto;
		}
	.l-container-sp:before, .l-container-sp:after,
	.l-container-w:before, .l-container-w:after,
	.l-container:before, .l-container:after {
		display: table;
		content: " ";
		}
	.l-container-sp:after,
	.l-container-w:after,
	.l-container:after {
		clear: both;
		}
	.l-container-1920 {
		overflow: hidden;
		}


	@media print, screen and (min-width: 768px) {
		body,
		.l-container-w {
			width: 100%;
			}
		.l-container-1920 {
			width: 100%;
			max-width: 1920px;
			}
		.l-container-sp,
		.l-container {
			width: 100%;
			max-width: 1260px;
			padding-left: 30px;
			padding-right: 30px;
			box-sizing: border-box;
			}
		.l-contents {
			padding-right: 15px;
			padding-left: 15px;
			}
	}
	@media (max-width: 767px) {
		.l-container-w {
			width: 100%;
			}
		.l-container {
			width: 92%;
			}
		.l-container-sp {
			width: 100%;
			}
		.l-contents {
			padding-right: 3%;
			padding-left: 3%;
			}
	}




/* =====================================================================

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

  /* l-header */
  .l-header {
    width: 100%;
    position: relative;
    z-index: 50;
    }
  .l-header h1 {
    position: absolute;
    }


	@media print, screen and (min-width: 768px) {
		/* l-header */
		.l-header {
			}
              .l-header.l-header-transform {
                position: fixed;
                height: 55px;
                background-color: rgba(255,255,255,0.8)
                }

		/* hlogo */
		.l-header h1 {
			top: 30px;
			left: 30px;
			}
		.l-header h1 img.l-hlogo-s {
      display: none;
			}
		.l-header h1 img.l-hlogo-l {
      display: block;
			}
              .l-header.l-header-transform h1 {
          			top: 9px;
                position: fixed;
                }
              .l-header.l-header-transform h1 img.l-hlogo-l {
                display: none;
                }
              .l-header.l-header-transform h1 img.l-hlogo-s {
                display: block;
                }

		/* l-hnav */
		.l-hnav {
      position: absolute;
      display: inline-block;
      top: 0;
      right: 0;
			}
              .l-header.l-header-transform .l-hnav {
                position: fixed;
                }
    
		.l-hnav > ul,
		.l-hnav > ul > li {
      margin: 0;
      padding: 0;
			}
		.l-hnav > ul > li {
			display: inline;
      height: 80px;
			}
              .l-header.l-header-transform .l-hnav > ul > li {
                height: 55px;
                }
			.l-hnav > ul > li a {
				display: inline-block;
				width: 100%;
        height: 100%;
				font-weight: bold;
				text-decoration: none;
				box-sizing: border-box;
				}
			.l-hnav .l-hnav-text a {
        position: relative;
				color: #1e4590;
  			padding: 0 15px;
    		text-shadow:
        3px 3px 10px rgba(255, 255, 255, 0.3),
        -3px 3px 10px rgba(255, 255, 255, 0.3),
        3px -3px 10px rgba(255, 255, 255, 0.3),
        -3px -3px 10px rgba(255, 255, 255, 0.3),
        0px 3px 10px rgba(255, 255, 255, 0.3),
        -3px 0px 10px rgba(255, 255, 255, 0.3),
        0px -3px 10px rgba(255, 255, 255, 0.3),
        -3px 0px 10px rgba(255, 255, 255, 0.3);
        }
              .l-header.l-header-transform .l-hnav-text a {
                color: #000;
                text-shadow: none;
                }
      .l-hnav .l-hnav-text a::after {
        content: '';
        background: #1e4590;
        width: 76%;
        height: 2px;
        position: absolute;
        left: 12%;
        bottom: 10px;
        opacity: 0;
        transition: all .5s ease;
        }
      .l-hnav .l-hnav-text a:hover::after {
        bottom: 20px;
        opacity: 1;
        }
              .l-header.l-header-transform .l-hnav-text a::after {
                bottom: 3px;
                }
              .l-header.l-header-transform .l-hnav-text a:hover::after {
                bottom: 8px;
                }
    
			.l-hnav > ul > li.l-hnav-tel {
        background-color: rgba(255,255,255,0.70);
				color: #1e4590;
        font-size: 2.4rem;
        letter-spacing: 0;
        line-height: 1.2;
  			padding: 0 20px;
				display: inline-block;
        height: 80px;
				font-weight: bold;
				}
        .l-hnav > ul > li.l-hnav-tel span {
          font-size: 1.2rem;
          display: block;
          }
              .l-header.l-header-transform .l-hnav-tel {
                background-color: rgba(151,151,151,0.30);
                }
			.l-hnav > ul > li.l-hnav-contact a {
        background-color: #1e4590;
        color: #fff;
  			padding: 0 10px;
        font-size: 1.4rem;
				}
			.l-hnav > ul > li.l-hnav-contact a:hover {
        background-color: #0071ba;
				}
              .l-header.l-header-transform .l-hnav-contact a {
                }
	}
    @media screen and (min-width:768px) and (max-width:1150px){
      .l-header h1 {
        top: 80px;
        }
      .l-header h1 img.l-hlogo-l {
        width: 300px;
        }
    }
    @media screen and (min-width:768px) and (max-width:900px){
      .l-header h1 {
        left: 10px;
        }
			.l-hnav .l-hnav-text a {
  			padding: 0 8px;
				}
			.l-hnav > ul > li.l-hnav-tel {
        font-size: 1.8rem;
  			padding: 0 8px;
				}
        .l-hnav > ul > li.l-hnav-tel span {
          font-size: 1.2rem;
          }
    }
	@media (max-width: 767px) {
		.l-header {
			position: fixed;
			top: 0;
			left: 0;
			z-index: 100;
			height: 50px;
			text-align: left;
      background: -moz-linear-gradient(top, rgba(255,255,255,1), rgba(255,255,255,0.9));
      background: -webkit-linear-gradient(top, rgba(255,255,255,1), rgba(255,255,255,0.9));
      background: linear-gradient(to bottom, rgba(255,255,255,1), rgba(255,255,255,0.9));
      }
		.l-header h1 {
			height: 50px;
			margin-top: 8px;
			margin-left: 10px;
			}
		.l-header h1 img {
			height: 38px;
			}
		.l-hnav {
			display: none;
			}
	}




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

/* button */
	@media print, screen and (min-width: 768px) {
    .button-open {
      display: none;
      }
  }
	@media (max-width: 767px) {
    .button-open {
      position: absolute;
      width: 40px;
      height: 40px;
      z-index: 9500;
      top: 5px;
      right: 5px;
      text-align: center;
      background-color: #014099;
		-webkit-border-radius: 4px;
			 -moz-border-radius: 4px;
						border-radius: 4px;
				-ms-border-radius: 4px;
      }
      .button-open i {
        display: block;
        height: 2px;
        width: 20px;
        left: 10px;
        top: 19px;
        background: #fff;
        -webkit-transition: background 0.3s;
            transition: background 0.3s;
        position: relative;
      }
      .button-open i:before,
      .button-open i:after {
        content: "";
        display: block;
        height: 2px;
        background: #fff;
        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: 20px;
          }
      .button-open i:before {
        -webkit-transform: translateY(6px);
          -ms-transform: translateY(6px);
            transform: translateY(6px);
        }
      .button-open i:after {
        -webkit-transform: translateY(-6px);
          -ms-transform: translateY(-6px);
            transform: translateY(-6px);
        }
      .button-open span {
        display: block;
        font-size: 1.2rem;
        font-weight: bold;
        margin-top: 36px;
        }



    .is-open .button-open i {
      width: 26px;
      left: 7px;
      background-color: transparent;
      }
      .is-open .button-open i:before {
            width: 26px;
        -webkit-transform: translateY(0px) rotate(45deg);
          -ms-transform: translateY(0px) rotate(45deg);
            transform: translateY(0px) rotate(45deg);
            }
      .is-open .button-open i:after {
            width: 26px;
        -webkit-transform: translateY(0px) rotate(-45deg);
          -ms-transform: translateY(0px) rotate(-45deg);
            transform: translateY(0px) rotate(-45deg);
            }
	}



	
/* menu content */
	@media print, screen and (min-width: 768px) {
    .nav-content {
      display: none;
      }

	}
	@media (max-width: 767px) {
    .nav-content {
      position: fixed;
      z-index: 9400;
      top: 0px;
      right: -120%;
      transition: all 0.6s;
      width: 280px;
      height: 100%;
      overflow: auto;
      background-color: rgba(0,0,0,0.9);
      padding-top: 50px;
      }

    /*アクティブクラスがついたら位置を0に*/
    .nav-content.panelactive{
      right: 0;
      }


    /* hamburger-hnav */
  
    ul.hbg_nav-sp {
      list-style: none;
      margin: 0;
      padding: 0;
      }
    
      ul.hbg_nav-sp li a {
        display: block;
        color: #fff;
        font-weight: normal;
        text-decoration: none;
        transition: all 1s;
        padding: 20px 0 20px 30px;
        border-bottom: #fff solid 1px;
        box-sizing: border-box;
        }
      ul.hbg_nav-sp li a::after {
        position: relative;
        content: '\f105';
        font-family: 'Font Awesome 6 Free';
        font-weight: bold;
        padding-right: 30px;
        color: #faec21;
        float: right;
        }
    
	}






/* =====================================================================

	article
	
======================================================================== */

  .l-article {
    position: relative;
    word-wrap: break-word;
    }

	@media print, screen and (min-width: 768px) {
    .l-article {
      }
    .c-page-deco {
      position: absolute;
      bottom: -257px;
      left: 50%;
      margin-left: -1500px;
      z-index: 10;
      }
	}
    @media print, screen and (min-width: 2550px) {
      .c-page-deco {
        left: 0px;
        margin-left: -235px;
        }
    }
	@media (max-width: 767px) {
		.l-article {
			}
    .c-page-deco {
      display: none;
      }
	}




/* =====================================================================

	Section
	
======================================================================== */


	@media print, screen and (min-width: 768px) {
		.l-sectionL {
			padding-top: 100px;
			padding-bottom: 100px;
			}
		.l-sectionL-b {
			padding-bottom: 100px;
			}
		.l-section {
			padding-top: 60px;
			padding-bottom: 60px;
			}
/*		.l-sectionS {
			padding-top: 40px;
			padding-bottom: 40px;
			}
		.l-sectionSS {
			padding-top: 30px;
			padding-bottom: 30px;
			}
		.l-section-t {
			padding-top: 60px;
			}
		.l-section-b {
			padding-bottom: 60px;
			}
		.l-sectionS-t {
			padding-top: 40px;
			}
		.l-sectionSS-t {
			padding-top: 30px;
			}
		.l-sectionL-t {
			padding-top: 100px;
			}
		.l-sectionS-b {
			padding-bottom: 40px;
			}
		.l-sectionSS-b {
			padding-bottom: 30px;
			}*/
	}

	@media (max-width: 767px) {
		.l-sectionL {
			padding-top: 50px;
			padding-bottom: 50px;
			}
		.l-sectionL-b {
			padding-bottom: 50px;
			}
    
		.l-sectionS,
		.l-section {
			padding-top: 30px;
			padding-bottom: 30px;
			}
/*		.l-sectionSS {
			padding-top: 20px;
			padding-bottom: 20px;
			}
		.l-sectionL-t {
			padding-top: 50px;
			}
		.l-section-t {
			padding-top: 40px;
			}
		.l-sectionS-t {
			padding-top: 30px;
			}
		.l-sectionSS-t {
			padding-top: 20px;
			}
		.l-section-b {
			padding-bottom: 40px;
			}
		.l-sectionS-b {
			padding-bottom: 30px;
			}
		.l-sectionSS-b {
			padding-bottom: 20px;
			} */
	}






/* =====================================================================

	footer
	
======================================================================== */

.l-footer {
	clear: both;
  background-color: #1e4590;
  position: relative;
  color: #fff;
	}
  .l-footer a {
		color: #fff;
    text-decoration: none;
		}
	.l-footer a:hover {
		}
	@media print, screen and (min-width: 768px) {
    .l-footer {
      }
	}
	@media (max-width: 767px) {
    .l-footer {
      padding-top: 40px;
      }
	}


  /* h1 / address */
  .l-footer-ad h1 {
    width: 60%;
    max-width: 400px;
    margin: 0 auto 20px auto;
    }
  .l-footer-ad address {
    font-style: normal;
    font-weight: bold;
    margin: 0 auto;
    }
  .l-footer-ad address dt {
    line-height: 2;
    text-align: center;
    }
	@media print, screen and (min-width: 768px) {
    .l-footer-ad {
      padding-top: 100px;
      padding-bottom: 60px;
      }
    .l-footer-ad address {
      width: 790px;
      }
    .l-footer-ad address dl {
      display: inline-block;
      width: 32%;
      }
    .l-footer-ad address dd {
      margin: 10px 10px 0 10px;
      }
	}
	@media (max-width: 767px) {
    .l-footer-ad {
      padding-bottom: 30px;
      }
    .l-footer-ad address dl {
      display: block;
      width: 80%;
      max-width: 280px;
      margin: 0 auto;
      }
    .l-footer-ad address dt {
      }
    .l-footer-ad address dd {
      margin: 10px 20px 30px 20px;
      }
	}



	/* Footer menu for pc */
  .l-fNav {
    border-bottom: #fff solid 1px;
    text-align: center;
    }
  .l-fNav ul {
    list-style: none;
    margin: 0;
    padding: 20px 0;
    }
  .l-fNav li {
    margin: 0;
    padding: 10px 10px;
    display: inline;
    }

		.l-fNav {
      padding: 20px 0px 15px 0px;
			}
    .l-fNav a {
      color: #fff;
      text-decoration: none;
      display: inline-block;
      padding: 2px;
      }
    .l-fNav a:hover {
      color: #faec21;
      }
	@media (max-width: 767px) {
		.l-fNav {
      display: none;
			}
	}



	/* Footer menu for sp */
  .l-fNav-sp{
    position: fixed;
    left: 0px;
    bottom: 0px;
    z-index: 9400;
    /*はじめは非表示*/
    opacity: 0;
    transform: translateY(100px);
    }
  .l-fNav-sp {
    width: 100%;
    height: 60px;
    }
  .l-fNav-sp > * {
    float: left;
    width: 33%;
    height: 60px;
    background-color: #000;
    }
  .l-fNav-sp > *:nth-child(2) {
    width: 34%;
    background-color: #4d4d4d;
    border-left: #fff solid 1px;
    border-right: #fff solid 1px;
    }
  .l-fNav-sp > * a {
    display: block;
    width: 100%;
    height: 60px;
    box-sizing: border-box;
    line-height: 1.2;
    font-size: 1.2rem;
    }
  .l-fNav-sp > * a img {
    width: 30px;
    height: auto;
    }
  .l-fNav-sp > *:nth-child(1) a img,
  .l-fNav-sp > *:nth-child(3) a img {
    margin-bottom: 5px;
    }


    /*　上に上がる動き　*/
    .l-fNav-sp.UpMove{
      animation: fNavUpAnime 0.5s forwards;
      }
      @keyframes fNavUpAnime{
        from {
          opacity: 0;
        transform: translateY(100px);
        }
        to {
          opacity: 1;
        transform: translateY(0);
        }
      }

    /*　下に下がる動き　*/
    .l-fNav-sp.DownMove{
      animation: fNavDownAnime 0.5s forwards;
      }
      @keyframes fNavDownAnime{
        from {
          opacity: 1;
        transform: translateY(0);
        }
        to {
          opacity: 1;
        transform: translateY(100px);
        }
      }
	@media print, screen and (min-width: 768px) {
		.l-fNav-sp {
      display: none;
			}
	}

	


	/* copyright */
	.l-copyright {
		text-align: center;
    width: 100%;
    padding-top: 20px;
    padding-bottom: 20px;
    line-height: 1;
		}
	@media print, screen and (min-width: 768px) {
    .l-copyright {
      border-top: #fff solid 1px;
      }
	}
	@media (max-width: 767px) {
    .l-copyright {
      font-size: 1.3rem;
      margin-top: 60px;
      }
	}




	/* --- Pagetop --- */
  .l-pagetop {
    }
  .l-pagetop a {
    display: block;
    width: 90px;
    height: 90px;
    background-color: rgba(77,77,77,1.0);
    border: #fff 1px solid;
		-webkit-border-radius: 50%;
			 -moz-border-radius: 50%;
						border-radius: 50%;
				-ms-border-radius:  50%;
    }
  .l-pagetop a:hover {
    background-color: rgba(77,77,77,0.7);
    }
  .l-pagetop a img {
    width: 40px;
    height: auto;
    }
    @media (max-width: 767px) {
      .l-pagetop {
        display: none;
        }
    }

  /*右下に固定*/
  .l-pagetop {
    position: fixed;
    right: 10px;
    z-index: 2;
    opacity: 0;
    transform: translateY(100px);
    }

  /*　上に上がる動き　*/
  .l-pagetop.UpMove{
    animation: UpAnime 0.5s forwards;
    }
    @keyframes UpAnime{
      from {
        opacity: 0;
      transform: translateY(150px);
      }
      to {
        opacity: 1;
      transform: translateY(0);
      }
    }

  /*　下に下がる動き　*/
  .l-pagetop.DownMove{
    animation: DownAnime 0.5s forwards;
    }
    @keyframes DownAnime{
      from {
        opacity: 1;
      transform: translateY(0);
      }
      to {
        opacity: 1;
      transform: translateY(150px);
      }
    }
