@charset "utf-8";


/*	 a
===================================================== */
  a, a:link {
    -webkit-transition: all .3s;
    transition: all .3s;
    cursor: pointer;
    }

@media (min-width: 992px) {
  /* hover Opacity */
  a.hover-opacity-70:hover { opacity: 0.7; }
  a.hover-opacity-80:hover { opacity: 0.8; }
}


  /* Text link（underline） */
  a.textlink-underline,
  a.textlink-underline.textlink-after-arrow:after {
    text-decoration: underline;
    }
  a.textlink-underline:hover,
  a.textlink-underline.textlink-after-arrow:hover:after{
    text-decoration: none;
    }

  a.textlink-after-arrow:after {
    display: inline-block;
    content: ">>>";
    }



/*	 Color
===================================================== */
  .text-gray        { color: var(--bs-color-gray); }
  .text-red         { color: var(--bs-color-red); }
  .text-orange      { color: var(--color-orange); }
  .text-green       { color: var(--color-green); }
  .text-brown       { color: var(--color-brown); }
  .text-brown-dark  { color: var(--color-brown-dark); }
  .text-beige       { color: var(--color-beige); }

  .bg-orange        { background-color: var(--color-orange); }
  .bg-green         { background-color: var(--color-green); }
  .bg-green2        { background-color: var(--color-green2); }
  .bg-red           { background-color: var(--color-red); }
  .bg-beige         { background-color: var(--color-beige); }
  .bg-beige2        { background-color: var(--color-beige2); }
  .bg-beige-light   { background-color: var(--color-beige-light); }
  .bg-brown         { background-color: var(--color-brown); }
  .bg-brown2        { background-color: var(--color-brown2); }
  .bg-white-85      { background-color: rgba(255,255,255, 0.85); }
  .bg-gray-light    { background-color: var(--color-gray-light); }

  .border-green { border-color: var(--color-green) !important; }
  .border-red   { border-color: var(--color-red) !important; }



/*	 Text
===================================================== */
  p {
		margin-top: 0;
		margin-bottom: 0;
		}

  .mark, mark {
    background: linear-gradient( transparent 40%, var(--bs-highlight-bg) 60% );
    }


	/* Font size */
  .fs-80      { font-size: 80%; }
  .fs-90      { font-size: 90%; }
  .fs-100     { font-size: inherit !important; }
  .fs-110     { font-size: 110% !important; }
  .fs-120     { font-size: 120%; }
  .fs-130     { font-size: 130%; }
  .fs-140     { font-size: 140%; }
  .fs-150     { font-size: 150%; }
  .fs-160     { font-size: 160%; }
  .fs-170     { font-size: 170%; }
  .fs-180     { font-size: 180%; }
  .fs-190     { font-size: 190%; }
  .fs-200     { font-size: 200%; }
@media (min-width: 992px) {
  .fs-lg-90  { font-size: 90% !important; }
  .fs-lg-110 { font-size: 110% !important; }
  .fs-lg-120 { font-size: 120% !important; }
  .fs-lg-130 { font-size: 130% !important; }
  .fs-lg-xl  { font-size: 3rem !important; /*48px*/ }
}


	/* Font weight */
  .fw-400 { font-weight: 400 !important; }
  .fw-500 { font-weight: 500 !important; }
  .fw-700 { font-weight: 700 !important; }


  /* Font family */
@import url('https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@400;500;700&display=swap');
  .font-MaruGothic {
    font-family: "Zen Maru Gothic", serif;
    font-style: normal;
    }


  /* 見出し */
  .h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
    margin-bottom: 0;
    line-height: inherit;
    }
@media (max-width: 575.98px) {
  h4, .h4 { font-size: 1.25rem !important; /*20px*/ }
  h5, .h5 { font-size: 1.125rem !important; /*18px*/ }
}


  /* Text shadow */
  .text-shadow-white-M {
		text-shadow:
      0 0 4px #ffffff, 0 0 4px #ffffff, 0 0 4px #ffffff,
      0 0 4px #ffffff, 0 0 4px #ffffff, 0 0 4px #ffffff;
      }
  .text-shadow-white-L {
		text-shadow:
      0 0 4px #ffffff, 0 0 4px #ffffff, 0 0 4px #ffffff,
      0 0 4px #ffffff, 0 0 4px #ffffff, 0 0 4px #ffffff,
      0 0 4px #ffffff, 0 0 4px #ffffff, 0 0 4px #ffffff;
      }
  .text-shadow-white-LL {
		text-shadow:
      0 0 8px #ffffff, 0 0 8px #ffffff, 0 0 8px #ffffff,
      0 0 8px #ffffff, 0 0 8px #ffffff, 0 0 8px #ffffff,
      0 0 8px #ffffff, 0 0 8px #ffffff, 0 0 8px #ffffff,
      0 0 8px #ffffff, 0 0 8px #ffffff, 0 0 8px #ffffff,
      0 0 8px #ffffff, 0 0 8px #ffffff, 0 0 8px #ffffff,
      0 0 8px #ffffff, 0 0 8px #ffffff, 0 0 8px #ffffff;
      }


  /* Text indent */
  .text-indent { text-indent: 1em; }
  .text-indent-note {
    text-indent: -1em;
    margin-left: 1em;
    }


	/* テキストを左揃えのまま中央寄せ */
	.text-centering-left {
		text-align: center;
		}
	.text-centering-left > .text-centering-left-content {
		display: inline-block;
		text-align: left;
		}



/*	 Spacing
===================================================== */
  .pt-6  { padding-top: 3.5rem !important; }
  .pt-7  { padding-top: 4rem !important; }
  .pt-7  { padding-top: 4rem !important; }
  .pt-8  { padding-top: 4.5rem !important; }
  .pt-9  { padding-top: 5rem !important; }
  .pt-10 { padding-top: 5.5rem !important; }
  .pb-6  { padding-bottom: 3.5rem !important; }
  .pb-7  { padding-bottom: 4rem !important; }
  .pb-8  { padding-bottom: 4.5rem !important; }
  .pb-9  { padding-bottom: 5rem !important; }
  .pb-10 { padding-bottom: 5.5rem !important; }
  .pb-11 { padding-bottom: 6rem !important; }
  .pb-12 { padding-bottom: 6.5rem !important; }

  .py-6 {
    padding-top: 3.5rem !important;
    padding-bottom: 3.5rem !important;
    }
  .py-7 {
    padding-top: 4rem !important;
    padding-bottom: 4rem !important;
    } 
  .py-8 {
    padding-top: 4.5rem !important;
    padding-bottom: 4.5rem !important;
    }

  .mt-6  { margin-top: 3.5rem !important; }
  .mt-7  { margin-top: 4rem !important; }
  .mt-8  { margin-top: 4.5rem !important; }
  .mt-9  { margin-top: 5rem !important; }
  .mt-10 { margin-top: 5.5rem !important; }
  .mb-6  { margin-bottom: 3.5rem !important; }
  .mb-7  { margin-bottom: 4rem !important; }
  .mb-8  { margin-bottom: 4.5rem !important; }
  .mb-9  { margin-bottom: 5rem !important; }
  .mb-10 { margin-bottom: 5.5rem !important; }

@media (min-width: 768px) {  
  .p-md-6  { padding: 3.5rem !important; }
  .p-md-7  { padding: 4rem !important; }
  .p-md-8  { padding: 4.5rem !important; }
  .p-md-9  { padding: 5rem !important; }
  .p-md-10 { padding: 5.5rem !important; }
  
  .mt-md-6  { margin-top: 3.5rem !important; }
  .mt-md-7  { margin-top: 4rem !important; }
  .mt-md-8  { margin-top: 4.5rem !important; }
  .mt-md-9  { margin-top: 5rem !important; }
  .mt-md-10 { margin-top: 5.5rem !important; }
  
  .mb-md-6  { margin-bottom: 3.5rem !important; }
  .mb-md-7  { margin-bottom: 4rem !important; }
  .mb-md-8  { margin-bottom: 4.5rem !important; }
  .mb-md-9  { margin-bottom: 5rem !important; }
  .mb-md-10 { margin-bottom: 5.5rem !important; }
}

@media (min-width: 992px) {
  .pt-lg-6  { padding-top: 3.5rem !important; /*56px*/ }
  .pt-lg-7  { padding-top: 4rem !important;   /*64px*/ }
  .pt-lg-8  { padding-top: 4.5rem !important; /*72px*/ }
  .pt-lg-9  { padding-top: 5rem !important;   /*80px*/ }
  .pt-lg-10 { padding-top: 5.5rem !important; /*88px*/ }
  .pt-lg-11 { padding-top: 6rem !important;   /*96px*/ }
  .pt-lg-12 { padding-top: 6.5rem !important; /*104px*/ }
  .pt-lg-13 { padding-top: 7rem !important;   /*112px*/ }
  .pt-lg-14 { padding-top: 7.5rem !important; /*120px*/ }
  .pb-lg-6  { padding-bottom: 3.5rem !important; /*56px*/ }
  .pb-lg-7  { padding-bottom: 4rem !important;   /*64px*/ }
  .pb-lg-8  { padding-bottom: 4.5rem !important; /*72px*/ }
  .pb-lg-9  { padding-bottom: 5rem !important;   /*80px*/ }
  .pb-lg-10 { padding-bottom: 5.5rem !important; /*88px*/ }
  .pb-lg-11 { padding-bottom: 6rem !important;   /*96px*/ }
  .pb-lg-12 { padding-bottom: 6.5rem !important; /*104px*/ }
  .pb-lg-13 { padding-bottom: 7rem !important;   /*112px*/ }
  .pb-lg-14 { padding-bottom: 7.5rem !important; /*120px*/ }
  
  .py-lg-6 {
    padding-top: 3.5rem !important;
    padding-bottom: 3.5rem !important;
    }
  .py-lg-7 {
    padding-top: 4rem !important;
    padding-bottom: 4rem !important;
    }  
  .py-lg-8 {
    padding-top: 4.5rem !important;
    padding-bottom: 4.5rem !important;
    }
  .py-lg-9 {
    padding-top: 5rem !important;
    padding-bottom: 5rem !important;
    }
  .py-lg-10 {
    padding-top: 5.5rem !important;
    padding-bottom: 5.5rem !important;
    }
  .py-lg-12 {
    padding-top: 6.5rem !important;
    padding-bottom: 6.5rem !important;
    }
  .px-lg-6 {
    padding-left: 3.5rem !important;
    padding-right: 3.5rem !important;
    }
  .px-lg-7 {
    padding-left: 4rem !important;
    padding-right: 4rem !important;
    }  
  .px-lg-8 {
    padding-left: 4.5rem !important;
    padding-right: 4.5rem !important;
    }
  
  .p-lg-6  { padding: 3.5rem !important; }
  .p-lg-7  { padding: 4rem !important; }
  .p-lg-8  { padding: 4.5rem !important; }
  .p-lg-9  { padding: 5rem !important; }
  .p-lg-10 { padding: 5.5rem !important; }
  
  .mt-lg-6  { margin-top: 3.5rem !important; }
  .mt-lg-7  { margin-top: 4rem !important; }
  .mt-lg-8  { margin-top: 4.5rem !important; }
  .mt-lg-9  { margin-top: 5rem !important; }
  .mt-lg-10 { margin-top: 5.5rem !important; }
  .mt-lg-11 { margin-top: 6rem !important; }
  .mt-lg-12 { margin-top: 6.5rem !important; }
  .mt-lg-13 { margin-top: 7rem !important; }
  .mt-lg-14 { margin-top: 7.5rem !important; }
  
  .mb-lg-6  { margin-bottom: 3.5rem !important; }
  .mb-lg-7  { margin-bottom: 4rem !important; }
  .mb-lg-8  { margin-bottom: 4.5rem !important; }
  .mb-lg-9  { margin-bottom: 5rem !important; }
  .mb-lg-10 { margin-bottom: 5.5rem !important; }
  .mb-lg-11 { margin-bottom: 6rem !important; }
  .mb-lg-12 { margin-bottom: 6.5rem !important; }
  .mb-lg-13 { margin-bottom: 7rem !important; }
  .mb-lg-14 { margin-bottom: 7.5rem !important; }

  .my-lg-6 {
    margin-top: 3.5rem !important;
    margin-bottom: 3.5rem !important;
    }
  .my-lg-7 {
    margin-top: 4rem !important;
    margin-bottom: 4rem !important;
    }  
  .my-lg-8 {
    margin-top: 4.5rem !important;
    margin-bottom: 4.5rem !important;
    }
  .my-lg-9 {
    margin-top: 5rem !important;
    margin-bottom: 5rem !important;
    }
  .my-lg-10 {
    margin-top: 5.5rem !important;
    margin-bottom: 5.5rem !important;
    }
  .my-lg-12 {
    margin-top: 6.5rem !important;
    margin-bottom: 6.5rem !important;
    }
}


  /* Line-height */
  .lh-base { line-height: 1.75 !important; }
  .lh-30 { line-height: 30px; }
  .lh-35 { line-height: 35px; }
@media (min-width: 768px) {
  .lh-md-30 { line-height: 30px; }
  .lh-md-35 { line-height: 35px; }
}
@media (min-width: 992px) {
  .lh-lg-35 { line-height: 35px; }
}


  /* letter-spacing */
  .ls-sm { letter-spacing: 0.05em; }
  .ls-1  { letter-spacing: 0.1em; }
  .ls-2  { letter-spacing: 0.2em; }



/*	 Width
===================================================== */
@media (min-width: 768px) {
  .w-md-30 { width: 30%; }
  .w-md-35 { width: 35%; }
  .w-md-40 { width: 40%; }
  .w-md-50 { width: 50%; }
  .w-md-75  { width: 75%; }
  .w-md-250 { width: 250px; }
  .w-md-100 { width: 100%; }
}
@media (min-width: 992px) {
  .w-lg-25  { width: 25%; }
	.w-lg-30  { width: 30%; }
  .w-lg-50  { width: 50%; }
  .w-lg-75  { width: 75%; }
  .w-lg-100 { width: 100%; }
}



/*	 List
===================================================== */
	ol, ul,
  dl, dd {
    margin-bottom: 0;
    }
  dt {
    font-weight: normal;
    }

  /* style reset */
  .list-style-none {
    list-style: none;
		margin: 0;
		padding: 0;
    }
  .list-style-disc      { list-style-type: disc; }
  .list-style-square    { list-style-type: square; }
  ol.list-style-decimal { list-style-type: decimal; }
  

  /* olリスト装飾  （1）（2）... */
  ol.list-style-decimal-kakko li {
    counter-increment: kakko;
    position: relative;
    padding-left: 2.2rem;
    }
    ol.list-style-decimal-kakko li::before {
      content: "（" counter(kakko) "）";
      position: absolute;
      top: 0;
      left: 0;
      }

  /* Icon decoration */
	.p-icon-decoration {
		position: relative;
		padding-left: 20px;
		}
		.p-icon-decoration:before{
			content:attr(data-deco);
			position: absolute;
			top: 0;
			left: 0;
			}



/*	 Img
===================================================== */
  img {
    max-width: 100%;
    height: auto;
    }



/*	 Form
===================================================== */
  /* iOSでのデフォルトスタイルをリセット */
  input, textarea {
    border-radius: 0;
    background-color: transparent;
		}



/*	 Googlemap
===================================================== */  
  .map-wrapper {
    position: relative;
    padding-bottom: 60%;
    height: 0;
    overflow: hidden;
    }
  .map-wrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100% !important;
    }
@media (min-width: 992px) {
  .map-wrapper {
    padding-bottom: 45%;
    }
  .sec-accessmap .map-wrapper {
    padding-bottom: 40%;
    }
}



/*	 YouTube埋め込み
===================================================== */ 
  .youtube {
    position: relative;
    width: 100%;
		padding-top: 56.25%;
    }
  .modal-inner.youtube {
    width: calc(100% + 50px);
    padding-top: calc(56.25% + 25px);
    margin: -25px;
    }
  .youtube iframe {
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: 100%;
    }



/*	 画像のスクロールアニメーション（CSS+JS）
===================================================== */
@media (min-width: 769px) {
  .img-ani {
    opacity: 0;
    }
  .img-animation {
    animation: img-opacity 1s cubic-bezier(0.4, 0, 0.2, 1) forwards;
    overflow: hidden;
    position: relative;
    }
  .img-animation::before {
    animation: img-animation 1s cubic-bezier(0.4, 0, 0.2, 1) forwards;
    background: #fff;
    content: '';
    inset: 0;
    pointer-events: none;
    position: absolute;
    z-index: 1;
    }
  @keyframes img-opacity {
    100% { opacity: 1; }
    }
  @keyframes img-animation {
    100% { transform: translateX(100%); }
    }
}