@charset "utf-8";


/* ---------------------------------------------------------------------------------------------

    そのサイトの基本設定
    ページによって変更のないもの・どのページでも使用するもの、できるもの

--------------------------------------------------------------------------------------------- */

/* ----------------------------------------------

 * 共通設定のグローバル変数

---------------------------------------------- */
:root {
  --main_color: #046cb4;
  --accent_color_blue2e68b1: #2e68b1;
  --accent_color_blue0358a9: #0358a9;
  
  --accent_color_yellow: #d8ab0e;
  --accent_color_green: #176216;

  ---bt_size: 100px;

  /* letter-spacing PhotoShopの数値を変数名にしている */
  --ls_50: 0.05em;

  /* animate.css のオーバーライド */
  --animate-duration: 1.5s;
}

/* ----------------------------------------------

 * 基本設定
---------------------------------------------- */

body {
  position: relative;
  margin: 0 auto;
  padding: 0;
  color: #000000;

  height: 100%;
  /* ゴシックの場合 */
  font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic","Hiragino Sans W3", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "メイリオ", Meiryo, "Century Gothic", "ＭＳ Ｐゴシック", "MS PGothic", Arial, "Helvetica Neue", Helvetica, sans-serif;
  /* 明朝の場合 */
  /*font-family:"Times New Roman" , "游明朝" , "Yu Mincho" , "游明朝体" , "YuMincho" , "ヒラギノ明朝 Pro W3" , "Hiragino Mincho Pro" , "HiraMinProN-W3" , "HGS明朝E" , "ＭＳ Ｐ明朝" , "MS PMincho" , serif;*/
  background: #ffffff;

  overflow-x: hidden;
}

p {
  letter-spacing: var(--ls_50);
}

img {
  vertical-align: bottom;
  border: none;
  -webkit-transition: 0.5s;
  transition: 0.5s;
  text-decoration: none;

  max-width: 100%;
  height: auto;

}

/* スマホのみ */

@media not all and (min-width: 1366px) {
  .sp_only {
    display: block;
  }
}

/* パソコン */
@media print,
screen and (min-width : 1366px) {
  body {
      font-size: 18px;
  }
  .sp_only {
    display: none;
  }
}


/* ------------------------------
 * main
------------------------------ */
@media not all and (min-width: 1366px) {
  main {
    padding: calc(var(---bt_size) / 2) 0 0;
  }
}

/* パソコン */
@media print,
screen and (min-width : 1366px) {
  main {
    padding: var(---bt_size) 0 0;
  }
}



/* h2相当のものに付与 */

.el_level2Heading {
  
  font-weight: 600;
  letter-spacing: var(--ls_50);
}
/* 白 */
.el_level2HeadingWhite {
  color: #fff;
}
/* 青 */
.el_level2HeadingBlue {
  color: var(--main_color);
}

@media not all and (min-width: 1366px) {
  .el_level2Heading {
    font-size: 2.25em; /* 36px */
  }
}

/* パソコン */
@media print,
screen and (min-width : 1366px) {
  .el_level2Heading {
    font-size: 3.75em; /* 60px */
  }
}



/* トップページ以下 */
.lower h2 span {
  display: block;
  margin-top: 14px;
  
  font-weight: normal;
  letter-spacing: var(--ls_50);
}

/* スマホ */
@media not all and (min-width: 1366px) {
  .lower h2 {
    margin-bottom: 45px;
  }
    .lower h2 span {
      /* font-size: 0.75rem; */
      font-size: 1.25rem;
    }
}

/* パソコン */
@media print,screen and (min-width : 1366px) {
  .lower h2 {
    margin-bottom: 120px;
  }
    .lower h2 span {
      font-size: 1.5rem;
    }
}


/* ----------------------------------------------

 * aタグの設定

---------------------------------------------- */
a {
 	transition: 0.5s;
}

  a:hover {
    opacity:0.80 !important; /* 0.0（完全に透明）～1.0（完全に不透明）の範囲で指定する（初期値は1） */
  }

  a,a:hover,a:hover img {
    transition: 0.5s;
  }


/* ----------------------------------------------

 * animate.css のオーバーライド

---------------------------------------------- */


/* ---------------------------------------------------------------------------------------------

　   HEADER

--------------------------------------------------------------------------------------------- */
#bl_header {
  position: fixed;
  width: 100%;
  z-index: 20;
  background-color: #fff;
}

#bl_header>div {
  display: grid;
}


#bl_header .el_level1Headign {
  grid-column: 2;
}

/* パソコン以外 */
@media not all and (min-width: 1366px) {
  #bl_header>div {
    grid-template-columns: 5.3% 45.3% 1fr 5.3%;
    align-items: center;
  }

  #bl_header .el_level1Headign {
    width: min(100%,170px);
  }
}

/* パソコン */
@media print, screen and (min-width : 1366px) {
  #bl_header>div {
    grid-template-columns: 3.7% 1fr 1fr 3.7%;
  }

  #bl_header .el_level1Headign {
    padding-top: 8px;
  }
}


/* ----------------------------------------------
 * ハンバーガーメニュー
---------------------------------------------- */
/* ボタン */

#glovalNavBt {
  overflow: hidden;
  display: block;
  position: relative;
  cursor: pointer;
  background-color: var(--accent_color_blue2e68b1);
  z-index: 10;
  grid-column: 3/5;
  justify-self: end;
}

  /* 線の実装 */
  #glovalNavBt::before,
  #glovalNavBt::after {
    position: absolute;
    left: 50%;
    content: "";
    height: 3px;
    background-color: #fff;
    border-radius: 1px;

    transition: .5s;
  }

  /* 横線の位置 */
  #glovalNavBt::before {
    top: 40%;
    transform: translateX(-50%);
  }

  #glovalNavBt::after {
    top: 60%;
    transform: translateX(-50%);
  }

  /* 線を×にする */
  #glovalNavBt.active::before {
    top: 50%;
    transform: translate(-50%) rotate(45deg);
  }
  #glovalNavBt.active::after {
    top: 50%;
    transform: translate(-50%) rotate(-45deg);
  }


/* ナビゲーション本体  */
#bl_header nav {
  display: none;
  position: absolute;
  right: 0;
  height: 100vh;
  opacity: .9;
  background-color: var(--accent_color_blue2e68b1);

  z-index: 20;

  overflow: scroll;
}
  #bl_header nav::-webkit-scrollbar {
    width: 16px;
  }
  #bl_header nav::-webkit-scrollbar-track {
    border-radius: 6px;
    background-color: var(--accent_color_blue2e68b1);
  }
  #bl_header nav::-webkit-scrollbar-thumb {
    border-radius: 6px;
    background-color: rgba(0, 0, 0, 0.2);
  }

  /* ナビゲーションのul */
  #glovalNav_l {
    color: #fff;
  }
    #glovalNav_l li {
      letter-spacing: 0.2rem;
    }

    #glovalNav_l > li > ul > li::before {
      content: "----";
      margin-right: 0.5rem;
    }



/* スマホ */
@media not all and (min-width: 1366px) {
  #glovalNavBt {
    width: calc(var(---bt_size) / 2);
    height: calc(var(---bt_size) / 2);
  }

  /* 線の実装 */
  #glovalNavBt::before,
  #glovalNavBt::after {
    width: calc(36px / 2);
  }

  /* ナビゲーションのul */
  #glovalNav_l {
    padding: 32px 30px;
    font-size: 1em;
  }

    #glovalNav_l > li {
      margin-bottom: 16px;
    }

    #glovalNav_l>li>ul {
      margin-top: 16px;
    }
    #glovalNav_l > li > ul > li {
      margin-bottom: 16px;
    }

  /* ナビゲーション本体  */
  #bl_header nav {
    top: calc(var(---bt_size) / 2);
  }
}

/* パソコン */
@media print,
screen and (min-width : 1366px) {
  #glovalNavBt {
    width: var(---bt_size);
    height: var(---bt_size);
  }

  /* 線の実装 */
  #glovalNavBt::before,
  #glovalNavBt::after {
    width: 36px;
  }

  /* ナビゲーションのul */
  #glovalNav_l {
    padding: 56px 60px 100px;
    /* padding: 56px 60px 0; */
    font-size: clamp(0.75rem, 2vw + 1rem, 1.875rem);
  }

    #glovalNav_l > li {
      margin-bottom: 25px;
      font-size: 24px;
    }

    #glovalNav_l>li>ul {
      margin-top: 27px;
    }
    #glovalNav_l > li > ul > li {
      margin-bottom: 27px;
    }

  /* ナビゲーション本体  */
  #bl_header nav {
    top: calc(var(---bt_size));
  }
}


/* ---------------------------------------------------------------------------------------------

　   breadNav

--------------------------------------------------------------------------------------------- */

@media not all and (min-width: 1366px) {
  #breadNav {
    display: none;
  }
}

/* パソコン */
@media print,screen and (min-width : 1366px) {
  #breadNav {
    display: grid;
    grid-template-columns: 3.7% 1fr 1fr 3.7%;
    padding: 16px 0;
    font-size: 0.75em;/* 12px */
  }

  #breadNav ul {
    grid-column: 2;

    display: flex;
    color: var(--accent_color_blue2e68b1);
  }

  #breadNav ul li:not(:first-of-type)::before {
    content: ">";
    margin: 0 8px;

    font-size: 0.625em;/* 10px */
  }
}


/* ---------------------------------------------------------------------------------------------

　   pageTitle

--------------------------------------------------------------------------------------------- */
#pageTitle {
  position: relative;
  width: 100%;
  height: 100%;
}
  #pageTitle::before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;

    background-color: rgba(4, 100, 180, .7);
  }

  #pageTitle h1 {
    position: absolute;
    top: 50%;

    color: #fff;
    font-weight: bold;
    letter-spacing: var(--ls_50);

    transform: translateY(-50%);
  }

  #pageTitle h1 span {
    display: block;
    padding-bottom: 14px;
    letter-spacing: var(--ls_50);
  }

/* スマホ */
@media not all and (min-width: 1366px) {
  #pageTitle {
    aspect-ratio: 375/334;
    background: url("../img/bottom_page_sp.jpg") no-repeat center;
    background-size: cover;
  }

    #pageTitle h1 {
      left: 5.3%;
    }
      #pageTitle h1 span {
        font-size: 3em;/* 48px */
      }
}

/* パソコン */
@media print,screen and (min-width : 1366px) {
  #pageTitle {
    aspect-ratio: 2/1;
    background: url("../img/bottom_page.jpg") no-repeat center;
    background-size: cover;
  }

  #pageTitle h1 {
    left: 13.4%;
    font-size: 1.5rem;/* 24px */
  }

  #pageTitle h1 span {
    font-size: 6.5rem;/* 104px */
  }
}


/* ---------------------------------------------------------------------------------------------

　   wrapper

--------------------------------------------------------------------------------------------- */

.wrapper {
  margin: auto;
}

/* スマホ */
@media not all and (min-width: 1366px) {
  .wrapper {
    width: 89.3%;
  }
}

/* パソコン */
@media print,screen and (min-width : 1366px) {
  .wrapper {
    width: 73.2%;
    margin: auto;
  }
}

/* ---------------------------------------------------------------------------------------------

　   footer

--------------------------------------------------------------------------------------------- */

#bl_footer {
  background-color: #0464b4;

  overflow: hidden;
}

/* ページのトップへ */
#bl_footer .pageTop {
  height: calc(36px + 27px + 36px);
  text-align: center;
  background: var(--accent_color_blue0358a9);
}


/* ボタン */
#bl_footer button {
  width: 100%;
  height: 100%;
  text-align: center;
  vertical-align: middle;
  background: url("../img/bt_pageTop.png") no-repeat center;
}


/* フッターのメニュー */
#bl_footer_nav {
  padding: 40px 0 67px;
  text-align: center;
}

  #footerLogo {
    margin-bottom: 70px;
    text-align: center;

    opacity: 0;
  }

  #bl_footer_nav > ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
/*    display: grid;*/

    margin: auto;

    color: #fff;
    font-size: clamp(0.75em,1vw,1em);
    font-weight: 500;
    text-align: left;
    letter-spacing: 2px;


    opacity: 0;
  }

    #bl_footer_nav li {
      margin-bottom: 24px;
    }

    /* lv_3 */
    #bl_footer_nav ul.lv_3 {
      margin-top: 24px;
    }
      #bl_footer_nav ul.lv_3 li::before {
        content: "----";
        font-size: 0.75em; /* 12px */
        margin-right: 4px;
        letter-spacing: 0;
      }
  #footerCopyright {
    color: #fff;
    font-weight: bold;
    text-align: center;
    letter-spacing: 1px;
  }


/* スマホ */
@media not all and (min-width: 1366px) {

  #footerLogo {
    width: max(200px);
    margin: 0 auto 70px;
  }

  #bl_footer_nav>ul {
    width: max(257px,300px);
/*      grid-template-columns: 60% 40%;*/
    font-size: 0.75em;
  }

    #bl_footer_nav>ul>li:nth-child(1) {
      width: 50%;
    }
    #bl_footer_nav>ul>li:nth-child(2) {
      width: 50%;
    }
    #bl_footer_nav>ul>li:nth-child(3) {
      width: 100%;
    }

    #bl_footer_nav>ul > li:last-of-type {
  /*    grid-column: 1/3;*/
      display: flex;
      flex-wrap: wrap;
    }
      #bl_footer_nav>ul > li:last-of-type > ul:nth-child(2n+1) {
        width: 63%;
      }
      #bl_footer_nav>ul > li:last-of-type > ul:nth-child(2n) {
        width: 37%;
      }
	.footer_instagrm {
		margin-top: 1rem;
		display: block;
	}
}

/* 375px以下 */
@media screen and (max-width: 375px) {

  /* ページのトップへ */
  #bl_footer .pageTop {
    height: 50px;
  }

  #bl_footer_nav>ul {
    width: 82%;
  }
}

/* パソコン */
@media print, screen and ( min-width : 1366px ) {
   
  

  #bl_footer_nav>ul {
/*    grid-template-columns: 31% 34% 35%;*/

    width: 38.7%;
  }
  	  #bl_footer_nav ul.lv_3 li {
		text-indent: -1.5rem;
		padding-left: 1.5rem;
	  }

	#footerLogo {
		position: relative;
	}

	.footer_instagrm {
		position: absolute;
		left: 63%;
		top: 15%;
	}
	.footer_instagrm img {
		display: block;
	}
}


/* ---------------------------------------------------------------------------------------------

　   inpageNav

--------------------------------------------------------------------------------------------- */


@media not all and (min-width: 1366px) {
  #inpageNav {
    display: none;
  }
}

/* パソコン */
@media print,screen and (min-width : 1366px) {
  #inpageNav {
    display: none;
    position: fixed;
    right: 0;
    bottom: 0;

    color: #fff;
    text-align: center;
    background-color: rgba(23, 98, 22, .9);

    z-index: 5;
  }

  #inpageNav li {
    padding: 16px 16px 14px;
    letter-spacing: var(--ls_50);
  }

  #inpageNav li:not(:last-of-type) {
    /* その種類の兄弟要素の最後以外 */
    border-bottom: 1px solid rgba(255, 255, 255, .9);
  }
}




/* ---------------------------------------------------------------------------------------------

　   XXX

--------------------------------------------------------------------------------------------- */


@media not all and (min-width: 1366px) {/* 1366pxを含まずそれより小さいという表現ができる */
}

/* パソコン */
@media print, screen and ( min-width : 1366px ) {
}
