@charset "UTF-8";
/*
Description: template_001.css
Author: DNS murata
テンプレートセット用CSS
*/
/*==========================================================================
  変数
==========================================================================*/
/*==========================================================================
  共通
==========================================================================*/
/*文字
---------------------*/
p {
  line-height: 1.8; }

a {
  color: #222; }

h2, h3, h4, h5, h6 {
  font-family: "Zen Kaku Gothic New", sans-serif; }

h3 {
  letter-spacing: 3px;
  font-size: 2.4rem; }

h2.titleB {
  font-size: 3rem; }

p.titleB {
  margin: 0;
  font-size: 3rem;
  width: fit-content;
  font-family: "Zen Kaku Gothic New", sans-serif; }
  p.titleB span.sm {
    display: block;
    font-size: 50%;
    letter-spacing: 5px;
    margin: 1em 0 0;
    font-weight: bold; }

.title.text_wrap {
  margin: 0 0 4em; }
  .title.text_wrap h2.titleB,
  .title.text_wrap p {
    margin: 0; }

.font1 {
  font-family: "Zen Kaku Gothic New", sans-serif; }

.border_b {
  border-bottom: 1px solid;
  padding: 0 0 0.5em;
  margin-bottom: 1em; }

/*注釈*/
ul.note_list li {
  font-size: 1.4rem; }

/*画面構成
-------------------*/
main .contents_wrap.t_20 {
  padding-top: 20em; }
main .contents_wrap.t_0 {
  padding-top: 0; }
main .contents_wrap.b_20 {
  padding-bottom: 20em; }
main .contents_wrap.b_0 {
  padding-bottom: 0; }

/*2カラム交互*/
.flex_wrap.column_2_even .flex_box.img45-text55 figure.flex_item {
  width: 45%; }
.flex_wrap.column_2_even .flex_box.img45-text55 .flex_item.__text {
  width: 55%; }

/*パララックス・アニメーション等
---------------------*/
.back_parallax .contents_inner {
  padding: 10em 5%; }

.particle {
  position: fixed;
  top: 30px;
  width: auto; }
  .particle._particle1 {
    background-image: url(../img/dots_large.gif);
    background-repeat: repeat;
    width: 100%;
    height: 3072px;
    z-index: -2;
    opacity: 0.2; }
  .particle._particle2 {
    background-image: url(../img/dots_small.gif);
    background-repeat: repeat;
    width: 100%;
    height: 3072px;
    z-index: -3;
    opacity: 0.2; }

/*その他
---------------------*/
/*PHP工房のリンク（広告消えたイメージ※本当に実装するときは削除申請すること）*/
a[href^="http://www.php-factory.net/"] {
  display: none !important; }

/*==============================================
  header / footer
===============================================*/
/*ヘッダー
------------------------------*/
header .header_tmp_A .gnav_logo_wrap a.logo_link {
  position: fixed;
  z-index: 3;
  left: 3rem;
  top: 2rem;
  display: flex;
  align-items: center;
  gap: 2em;
  text-decoration: none; }
  header .header_tmp_A .gnav_logo_wrap a.logo_link figure.gnav_logo {
    position: static;
    width: 10em; }
  header .header_tmp_A .gnav_logo_wrap a.logo_link p {
    font-weight: bold;
    font-size: 2.2rem; }
header .header_tmp_A .gnav_open_btn span {
  background-color: #222; }
header .header_tmp_A .gnav_open_btn.active span {
  background-color: #898989; }
header .header_tmp_A #gnav.hamburger_all .gnav_list_wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%; }
header .header_tmp_A #gnav.hamburger_all .gnav_menu_inner {
  display: none;
  /*position: absolute;
  z-index: 999;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);*/
  padding: 5%;
  text-align: left;
  width: 80%;
  background-color: #fff; }
  header .header_tmp_A #gnav.hamburger_all .gnav_menu_inner h3 {
    margin-bottom: 5rem;
    font-size: 3rem; }
    header .header_tmp_A #gnav.hamburger_all .gnav_menu_inner h3 span {
      font-size: 1.4rem;
      display: block; }
  header .header_tmp_A #gnav.hamburger_all .gnav_menu_inner .menu-gnav-menu-container .footer_menu_inner {
    max-width: 1340px;
    margin: 0 auto;
    padding: 10em;
    background: #fff; }
  header .header_tmp_A #gnav.hamburger_all .gnav_menu_inner .menu-gnav-menu-container #menu-gnav-menu {
    display: flex;
    flex-wrap: wrap;
    list-style-type: none; }
    header .header_tmp_A #gnav.hamburger_all .gnav_menu_inner .menu-gnav-menu-container #menu-gnav-menu li {
      text-align: left;
      list-style: none;
      padding: 0 1em;
      ms-flex: 1 1 0%;
      -webkit-flex: 1 1 0%;
      flex: 1 1 0%;
      color: #222; }
    header .header_tmp_A #gnav.hamburger_all .gnav_menu_inner .menu-gnav-menu-container #menu-gnav-menu a {
      font-size: 2.2rem;
      color: #222;
      font-weight: bold;
      margin-bottom: 1em;
      display: block;
      text-decoration: none;
      pointer-events: none;
      border-bottom: 2px solid;
      font-family: "Zen Kaku Gothic New", sans-serif;
      letter-spacing: 2px;
      text-align: left;
      padding: 0; }
    header .header_tmp_A #gnav.hamburger_all .gnav_menu_inner .menu-gnav-menu-container #menu-gnav-menu .sub-menu li {
      padding-left: 0;
      margin: 0 0 1em; }
      header .header_tmp_A #gnav.hamburger_all .gnav_menu_inner .menu-gnav-menu-container #menu-gnav-menu .sub-menu li a {
        font-size: 1.6rem;
        text-decoration: none;
        color: #222;
        font-weight: normal;
        margin-bottom: 0;
        border: none;
        position: relative;
        display: inline-block;
        padding-left: 1em;
        pointer-events: auto;
        font-family: inherit;
        letter-spacing: inherit;
        transition: all 0.3s;
        font-weight: bold; }
        header .header_tmp_A #gnav.hamburger_all .gnav_menu_inner .menu-gnav-menu-container #menu-gnav-menu .sub-menu li a:hover {
          transition: all 0.3s;
          text-decoration: underline; }
        header .header_tmp_A #gnav.hamburger_all .gnav_menu_inner .menu-gnav-menu-container #menu-gnav-menu .sub-menu li a::before {
          content: '';
          width: 6px;
          height: 6px;
          border: 0px;
          border-top: solid 2px #222;
          border-right: solid 2px #222;
          -ms-transform: rotate(45deg);
          -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
          position: absolute;
          top: 50%;
          left: 0;
          margin-top: -4px; }
      header .header_tmp_A #gnav.hamburger_all .gnav_menu_inner .menu-gnav-menu-container #menu-gnav-menu .sub-menu li:last-child {
        margin: 0; }
  header .header_tmp_A #gnav.hamburger_all .gnav_menu_inner .sub_gnav {
    border: 1px solid #222;
    padding: 1em 0;
    margin-top: 5%; }
    header .header_tmp_A #gnav.hamburger_all .gnav_menu_inner .sub_gnav ul {
      display: flex;
      justify-content: center;
      gap: 2em;
      margin: 0;
      list-style-type: none; }
      header .header_tmp_A #gnav.hamburger_all .gnav_menu_inner .sub_gnav ul li {
        font-size: 1.6rem;
        line-height: 1.6; }
        header .header_tmp_A #gnav.hamburger_all .gnav_menu_inner .sub_gnav ul li a {
          font-size: 1.4rem;
          color: #222;
          text-decoration: none;
          position: relative;
          display: inline-block;
          padding-left: 1em;
          font-weight: normal;
          transition: all 0.3s; }
          header .header_tmp_A #gnav.hamburger_all .gnav_menu_inner .sub_gnav ul li a:hover {
            transition: all 0.3s;
            text-decoration: underline; }
          header .header_tmp_A #gnav.hamburger_all .gnav_menu_inner .sub_gnav ul li a::before {
            content: '';
            width: 6px;
            height: 6px;
            border: 0px;
            border-top: solid 2px #222;
            border-right: solid 2px #222;
            -ms-transform: rotate(45deg);
            -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
            position: absolute;
            top: 50%;
            left: 0;
            margin-top: -4px; }
header .header_tmp_A #gnav.hamburger_all .gnav_list_nav {
  width: 100%;
  display: flex; }
header .header_tmp_A #gnav.hamburger_all.panelactive .gnav_menu_inner {
  display: block; }
header .header_tmp_B .gnav_logo_wrap a.logo_link {
  position: fixed;
  z-index: 3;
  left: 3rem;
  top: 2rem;
  display: flex;
  align-items: center;
  gap: 2em;
  text-decoration: none; }
  header .header_tmp_B .gnav_logo_wrap a.logo_link figure.gnav_logo {
    position: static;
    width: 10em; }
  header .header_tmp_B .gnav_logo_wrap a.logo_link p {
    font-weight: bold;
    font-size: 2.2rem; }
header .header_tmp_B .gnav_open_btn span {
  background-color: #222; }
header .header_tmp_B .gnav_open_btn.active span {
  background-color: #898989; }
header .header_tmp_B #gnav.hamburger_all ul li a {
  text-align: left;
  font-size: 2.8rem; }
header .header_tmp_B #gnav.hamburger_all ul.sub-menu li a {
  padding: 1rem 0 1rem 0;
  font-size: 1.8rem;
  transition: all 0.3s; }
  header .header_tmp_B #gnav.hamburger_all ul.sub-menu li a:hover {
    color: #b0b9b9;
    transition: all 0.3s; }
header .header_tmp_B #gnav.hamburger_all .sub_gnav {
  border-top: 1px solid;
  padding-top: 2rem;
  margin-top: 1rem; }
  header .header_tmp_B #gnav.hamburger_all .sub_gnav ul li a {
    font-size: 1.8rem;
    transition: all 0.3s; }
    header .header_tmp_B #gnav.hamburger_all .sub_gnav ul li a:hover {
      color: #b0b9b9;
      transition: all 0.3s; }
header .header_tmp_B #gnav.hamburger_all details summary {
  text-align: left;
  letter-spacing: 2px;
  font-size: 2.8rem;
  display: block;
  outline: none;
  position: relative;
  margin: 0;
  padding: 2rem 2rem 2rem 0;
  font-weight: bold;
  cursor: pointer;
  cursor: hand;
  transition: all 0.3s;
  /*background-image: repeating-linear-gradient(45deg, $black 0, $black 3px, transparent 3px, transparent 4px);
  background-repeat: no-repeat;
  background-size: 1.2rem 1.2rem;
  background-position: left center;
  padding-left: 2.5rem;*/ }
  header .header_tmp_B #gnav.hamburger_all details summary:after {
    content: "";
    width: 0.3em;
    height: 0.3em;
    border-top: 2px solid #222;
    border-right: 2px solid #222;
    -webkit-transform: rotate(45deg);
    position: absolute;
    top: calc( 50% - 0.3em );
    right: 0.5em;
    transform: rotate(135deg); }
  header .header_tmp_B #gnav.hamburger_all details summary:hover {
    background-image: repeating-linear-gradient(45deg, #b0b9b9 0, #b0b9b9 2px, transparent 2px, transparent 4px);
    color: #b0b9b9;
    transition: all 0.3s; }
    header .header_tmp_B #gnav.hamburger_all details summary:hover:after {
      border-color: #b0b9b9;
      transition: all 0.3s; }
header .header_tmp_B #gnav.hamburger_all details[open] summary:after {
  transform: rotate(-45deg) !important; }
header .header_tmp_B #gnav.hamburger_all .gnav__inner {
  display: flex;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  justify-content: space-between;
  height: 100vh;
  height: auto;
  width: 100%;
  overflow: auto; }
  header .header_tmp_B #gnav.hamburger_all .gnav__inner .gnav-background {
    min-height: 100vh;
    -o-object-fit: cover;
    object-fit: cover;
    width: 50%; }
    header .header_tmp_B #gnav.hamburger_all .gnav__inner .gnav-background img {
      width: 100%;
      height: 100%;
      -o-object-fit: cover;
      object-fit: cover;
      max-width: 100%;
      vertical-align: top; }
  header .header_tmp_B #gnav.hamburger_all .gnav__inner .gnav-content {
    width: 38.88%;
    box-sizing: border-box; }
    header .header_tmp_B #gnav.hamburger_all .gnav__inner .gnav-content .gnav_menu_inner {
      margin-top: 10%;
      width: 70%; }
header.nav_mega {
  position: fixed;
  z-index: 999;
  top: 0;
  left: 0;
  background-color: transparent;
  transition: all 0.3s;
  width: 100%; }
  header.nav_mega .header_tmp_D {
    display: flex;
    align-items: center;
    width: 100%;
    justify-content: space-between;
    position: relative; }
    header.nav_mega .header_tmp_D .gnav_logo_wrap {
      width: 100%; }
      header.nav_mega .header_tmp_D .gnav_logo_wrap a.logo_link {
        display: flex;
        align-items: center;
        gap: 2em;
        text-decoration: none;
        padding-left: 5%; }
        header.nav_mega .header_tmp_D .gnav_logo_wrap a.logo_link figure.gnav_logo {
          position: static;
          width: 10em; }
        header.nav_mega .header_tmp_D .gnav_logo_wrap a.logo_link p {
          font-weight: bold;
          font-size: 2.2rem;
          white-space: nowrap; }
    header.nav_mega .header_tmp_D #gnav.pc_all {
      width: 100%; }
      header.nav_mega .header_tmp_D #gnav.pc_all ul {
        list-style: none;
        display: flex;
        justify-content: center;
        margin: 0;
        padding: 0; }
        header.nav_mega .header_tmp_D #gnav.pc_all ul li {
          white-space: nowrap; }
        header.nav_mega .header_tmp_D #gnav.pc_all ul li a {
          position: relative;
          display: block;
          text-decoration: none;
          color: #222;
          padding: 20px 30px;
          transition: all .3s; }
          header.nav_mega .header_tmp_D #gnav.pc_all ul li a:hover {
            background-color: #d3d0c1;
            transition: all .3s; }
        header.nav_mega .header_tmp_D #gnav.pc_all ul li li a {
          padding: 20px; }
        header.nav_mega .header_tmp_D #gnav.pc_all ul ul {
          display: block; }
        header.nav_mega .header_tmp_D #gnav.pc_all ul li.has-child > a::before {
          content: '';
          position: absolute;
          left: 15px;
          top: 25px;
          width: 6px;
          height: 6px;
          border-top: 2px solid #999;
          border-right: 2px solid #999;
          transform: rotate(135deg); }
        header.nav_mega .header_tmp_D #gnav.pc_all ul li.has-child img {
          max-width: 100%;
          height: auto;
          transition: all .5s;
          vertical-align: bottom; }
          header.nav_mega .header_tmp_D #gnav.pc_all ul li.has-child img:hover {
            transform: scale(1.2); }
        header.nav_mega .header_tmp_D #gnav.pc_all ul li.has-child dt {
          overflow: hidden;
          margin: 0 0 0.5em 0; }
        header.nav_mega .header_tmp_D #gnav.pc_all ul li.has-child ul {
          position: absolute;
          left: 0;
          top: 6.5rem;
          z-index: 5;
          display: flex;
          justify-content: flex-start;
          flex-wrap: wrap;
          background: #2a2a2ad1;
          mix-blend-mode: multiply;
          width: 100%;
          visibility: hidden;
          opacity: 0;
          transition: all .3s; }
          header.nav_mega .header_tmp_D #gnav.pc_all ul li.has-child ul li {
            width: 20%; }
            header.nav_mega .header_tmp_D #gnav.pc_all ul li.has-child ul li a {
              color: #fff;
              transition: all .3s; }
              header.nav_mega .header_tmp_D #gnav.pc_all ul li.has-child ul li a:hover, header.nav_mega .header_tmp_D #gnav.pc_all ul li.has-child ul li a:active {
                background: #d3d0c1;
                color: #222;
                transition: all .3s; }
        header.nav_mega .header_tmp_D #gnav.pc_all ul li.has-child:hover > ul {
          visibility: visible;
          opacity: 1;
          transition: all .3s; }
  header.nav_mega.is-fixed {
    background-color: #ffffffeb;
    transition: all 0.3s; }

/*hedder end*/
.L_nav_container {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap; }
  .L_nav_container header {
    width: 17%;
    background: #fff;
    position: fixed;
    height: 100vh;
    z-index: 5;
    box-shadow: 0px 5px 10px 10px rgba(0, 0, 0, 0.08); }
    .L_nav_container header .header_tmp_Left_A .gnav_logo_wrap a.logo_link {
      padding: 5%;
      flex-direction: column;
      display: flex;
      align-items: center;
      gap: 1em;
      text-decoration: none;
      padding: 10% 5% 5%; }
      .L_nav_container header .header_tmp_Left_A .gnav_logo_wrap a.logo_link figure.gnav_logo {
        position: static;
        width: 10em; }
      .L_nav_container header .header_tmp_Left_A .gnav_logo_wrap a.logo_link p {
        font-weight: bold;
        font-size: 1.6rem; }
    .L_nav_container header .header_tmp_Left_A #gnav ul li {
      list-style-type: none; }
      .L_nav_container header .header_tmp_Left_A #gnav ul li a {
        position: relative;
        display: block;
        text-decoration: none;
        color: #222;
        padding: 20px 15px;
        transition: all .3s;
        font-size: 2rem;
        font-weight: bold;
        transition: all 0.3s; }
        .L_nav_container header .header_tmp_Left_A #gnav ul li a span {
          display: block;
          font-size: 80%;
          font-weight: normal; }
        .L_nav_container header .header_tmp_Left_A #gnav ul li a:hover {
          background: #f5f5f5;
          transition: all 0.3s; }
      .L_nav_container header .header_tmp_Left_A #gnav ul li li a {
        padding: 15px; }
      .L_nav_container header .header_tmp_Left_A #gnav ul li.has-child {
        transition: all 0.3s; }
        .L_nav_container header .header_tmp_Left_A #gnav ul li.has-child > a::before {
          content: '';
          position: absolute;
          right: 20px;
          top: 28px;
          width: 6px;
          height: 6px;
          border-top: 2px solid #999;
          border-right: 2px solid #999;
          transform: rotate(45deg); }
        .L_nav_container header .header_tmp_Left_A #gnav ul li.has-child img {
          max-width: 100%;
          height: auto;
          transition: all .5s;
          vertical-align: bottom; }
          .L_nav_container header .header_tmp_Left_A #gnav ul li.has-child img:hover {
            transform: scale(1.2); }
        .L_nav_container header .header_tmp_Left_A #gnav ul li.has-child dt {
          overflow: hidden;
          height: 15vh;
          margin: 0 0 10px 0; }
        .L_nav_container header .header_tmp_Left_A #gnav ul li.has-child ul {
          position: absolute;
          top: 0;
          left: 100%;
          z-index: 4;
          width: 100%;
          height: 100vh;
          background: #00000073;
          visibility: hidden;
          opacity: 0;
          transition: all .3s; }
        .L_nav_container header .header_tmp_Left_A #gnav ul li.has-child ul li a {
          color: #fff;
          font-size: 1.6rem;
          transition: all 0.3s; }
          .L_nav_container header .header_tmp_Left_A #gnav ul li.has-child ul li a:hover, .L_nav_container header .header_tmp_Left_A #gnav ul li.has-child ul li a:active {
            background: #d3d0c1;
            color: #222;
            transition: all 0.3s; }
        .L_nav_container header .header_tmp_Left_A #gnav ul li.has-child:hover > ul {
          visibility: visible;
          opacity: 1;
          transition: all 0.3s; }
    .L_nav_container header .header_tmp_Left_A #gnav ul.sub_nav {
      border-top: 1px solid #222;
      padding-top: 2rem;
      width: 85%;
      margin: 2rem auto 0; }
      .L_nav_container header .header_tmp_Left_A #gnav ul.sub_nav li a {
        font-size: 1.6rem;
        padding: 1rem; }
  .L_nav_container .main-area {
    width: 83%;
    margin-left: 17%; }

/*フッター
------------------------------*/
footer.footer_temp_A {
  background-color: #222;
  padding: 5%; }
  footer.footer_temp_A figure.footer_logo {
    width: 8em;
    margin: auto; }
  footer.footer_temp_A .copyright {
    color: #fff;
    text-align: center;
    margin: 3rem 0 0; }
    footer.footer_temp_A .copyright p {
      font-size: 1.2rem;
      letter-spacing: 2px; }
footer.footer_temp_B {
  background-color: #fff;
  box-shadow: 0px 5px 10px 10px rgba(0, 0, 0, 0.08); }
  footer.footer_temp_B figure.footer_logo {
    width: 8em;
    margin: auto; }
  footer.footer_temp_B #footer_menu .footer_menu_inner {
    max-width: 1340px;
    margin: 0 auto;
    padding: 10em 0; }
  footer.footer_temp_B #footer_menu #menu-footer-menu {
    display: flex;
    flex-wrap: wrap;
    list-style-type: none; }
    footer.footer_temp_B #footer_menu #menu-footer-menu li {
      list-style: none;
      padding: 0 1em;
      ms-flex: 1 1 0%;
      -webkit-flex: 1 1 0%;
      flex: 1 1 0%;
      color: #222; }
    footer.footer_temp_B #footer_menu #menu-footer-menu a {
      font-size: 2rem;
      color: #222;
      font-weight: bold;
      margin-bottom: 1em;
      display: block;
      text-decoration: none;
      pointer-events: none;
      border-bottom: 2px solid;
      font-family: "Zen Kaku Gothic New", sans-serif;
      letter-spacing: 2px; }
    footer.footer_temp_B #footer_menu #menu-footer-menu .sub-menu li {
      padding-left: 0;
      margin: 0 0 1em; }
      footer.footer_temp_B #footer_menu #menu-footer-menu .sub-menu li a {
        font-size: 1.6rem;
        text-decoration: none;
        color: #222;
        font-weight: normal;
        margin-bottom: 0;
        border: none;
        position: relative;
        display: inline-block;
        padding-left: 1em;
        pointer-events: auto;
        font-family: inherit;
        letter-spacing: inherit;
        transition: all 0.3s; }
        footer.footer_temp_B #footer_menu #menu-footer-menu .sub-menu li a:hover {
          transition: all 0.3s;
          text-decoration: underline; }
        footer.footer_temp_B #footer_menu #menu-footer-menu .sub-menu li a::before {
          content: '';
          width: 6px;
          height: 6px;
          border: 0px;
          border-top: solid 2px #222;
          border-right: solid 2px #222;
          -ms-transform: rotate(45deg);
          -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
          position: absolute;
          top: 50%;
          left: 0;
          margin-top: -4px; }
      footer.footer_temp_B #footer_menu #menu-footer-menu .sub-menu li:last-child {
        margin: 0; }
  footer.footer_temp_B #footer_menu .sub_footer {
    border-top: 1px solid #b0b9b9;
    padding: 3em 0; }
    footer.footer_temp_B #footer_menu .sub_footer ul {
      display: flex;
      justify-content: center;
      gap: 2em;
      margin: 0;
      list-style-type: none; }
      footer.footer_temp_B #footer_menu .sub_footer ul li {
        font-size: 1.6rem;
        line-height: 1.6; }
        footer.footer_temp_B #footer_menu .sub_footer ul li a {
          font-size: 1.4rem;
          color: #222;
          text-decoration: none;
          position: relative;
          display: inline-block;
          padding-left: 1em;
          transition: all 0.3s; }
          footer.footer_temp_B #footer_menu .sub_footer ul li a:hover {
            transition: all 0.3s;
            text-decoration: underline; }
          footer.footer_temp_B #footer_menu .sub_footer ul li a::before {
            content: '';
            width: 6px;
            height: 6px;
            border: 0px;
            border-top: solid 2px #222;
            border-right: solid 2px #222;
            -ms-transform: rotate(45deg);
            -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
            position: absolute;
            top: 50%;
            left: 0;
            margin-top: -4px; }
  footer.footer_temp_B .copyright {
    color: #222;
    background: #f5f5f5;
    text-align: center;
    margin: 0;
    padding: 3em 0;
    text-align: center; }
    footer.footer_temp_B .copyright p {
      font-size: 1.2rem;
      letter-spacing: 2px; }

#page_top.page_top_temp_A a {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 1.4rem; }

/*==============================================
  aside
===============================================*/
/*お問い合わせ
------------------------*/
#contact.contact_temp_A {
  padding: 10em 0;
  background-attachment: fixed;
  background-image: url(../../assets/img/kv_005.webp);
  background-repeat: no-repeat;
  background-size: cover; }
  #contact.contact_temp_A .contents_inner {
    background-color: #fff;
    margin: 0 auto;
    max-width: 1340px;
    width: 100%; }
  #contact.contact_temp_A .flex_box .flex_item.link {
    display: flex;
    align-items: center;
    justify-content: center; }
#contact.contact_temp_B .flex_box {
  gap: 0; }
  #contact.contact_temp_B .flex_box .flex_item.__img {
    width: 100%;
    height: 50em; }
    #contact.contact_temp_B .flex_box .flex_item.__img img {
      object-fit: cover;
      height: 100%;
      width: 100%; }
  #contact.contact_temp_B .flex_box .flex_item.__text {
    padding: 5%; }
#contact.contact_temp_B .flex_box.link {
  gap: 3rem;
  margin-top: 3rem; }
  #contact.contact_temp_B .flex_box.link a {
    margin: 0; }

/*==========================================================================
  TOPページ
==========================================================================*/
#point h3 {
  font-size: 2.4rem;
  margin: 0 0 0.5em; }

#service .flex_box {
  gap: 0; }
  #service .flex_box .flex_item {
    width: 100%; }
    #service .flex_box .flex_item.__img {
      height: 42rem; }
      #service .flex_box .flex_item.__img img {
        object-fit: cover;
        height: 100%;
        width: 100%; }
    #service .flex_box .flex_item.__text {
      padding: 5%; }

/*==========================================================================
  デフォルトページ
==========================================================================*/
.default_page #kv {
  background-color: #b0b9b9;
  padding: 0 3%;
  height: 20rem;
  justify-content: center;
  align-items: center;
  display: flex; }
  .default_page #kv h2 {
    margin: 0;
    font-size: 3rem;
    border: none;
    color: #fff;
    letter-spacing: 5px;
    text-align: center; }
    .default_page #kv h2 span {
      display: block;
      font-size: 50%;
      font-weight: normal;
      letter-spacing: 5px; }
  .default_page #kv.back_img {
    position: relative;
    z-index: 0;
    background-image: url(../../assets/img/kv_001.webp);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    position: relative;
    height: 30rem; }
    .default_page #kv.back_img::before {
      content: '';
      position: absolute;
      width: 100%;
      height: 100%;
      background: inherit;
      z-index: -1; }
    .default_page #kv.back_img h2 {
      filter: drop-shadow(1px 4px 4px rgba(0, 0, 0, 0.25));
      letter-spacing: 10px;
      font-size: 3.6rem; }
.default_page .pNav {
  background-color: #f1f1f1;
  padding: 3rem 0; }
  .default_page .pNav.back_white {
    background-color: #fff; }
  .default_page .pNav.border_b {
    border-bottom: 1px solid #f1f1f1; }
.default_page .pNav_inner {
  margin: auto;
  max-width: 1340px;
  width: 100%;
  padding: 0 3%; }
.default_page .backORcloseBtn,
.default_page .btn.back {
  margin: auto;
  max-width: 1340px;
  width: 100%;
  padding: 0 3%;
  padding-bottom: 10em; }
  .default_page .backORcloseBtn a,
  .default_page .btn.back a {
    position: relative;
    padding: 0.5em 0em 0.5em 1em;
    border-bottom: 1px solid;
    transition: all .2s; }
    .default_page .backORcloseBtn a::before,
    .default_page .btn.back a::before {
      content: "";
      margin: auto;
      position: absolute;
      top: 0;
      bottom: 0;
      left: 0;
      width: 0;
      height: 0;
      border-top: 5px solid transparent;
      border-bottom: 5px solid transparent;
      border-right: 5px solid #222;
      transition: all .2s; }
    .default_page .backORcloseBtn a:hover,
    .default_page .btn.back a:hover {
      padding: 0.5em 0em 0.5em 1.5em;
      transition: all .2s; }
    .default_page .backORcloseBtn a:hover::before,
    .default_page .btn.back a:hover::before {
      left: 0;
      transition: all .2s; }
.default_page main .contents_wrap {
  padding: 10em 0 0; }
  .default_page main .contents_wrap:last-child {
    padding-bottom: 10em; }

/*==========================================================================
  個別ページ
==========================================================================*/
/*==============================================
  contents
===============================================*/
/*ナビ
------------------------------*/
figure.gnav_logo {
  position: fixed;
  z-index: 3;
  left: 3rem;
  top: 2rem;
  width: 7em; }

@keyframes pathmove {
  0% {
    height: 0;
    top: 0;
    opacity: 0; }
  30% {
    height: 30px;
    opacity: 1; }
  100% {
    height: 0;
    top: 50px;
    opacity: 0; } }
/*==========================================================================
  ページ分岐用
==========================================================================*/
/*TOPページのみに適用
===============================================*/
#home #kv.kv_slider_fade::before {
  content: '';
  position: absolute;
  width: 100%;
  height: 100%;
  background: inherit;
  background-repeat: no-repeat;
  background-size: cover;
  z-index: 2;
  mix-blend-mode: hard-light;
  background-position-x: center; }
#home #kv.kv_slider_fade .slide_item img {
  object-fit: cover;
  height: 100%;
  width: auto; }
#home #kv .kv_catchcopy {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
  width: 100%; }
  #home #kv .kv_catchcopy p {
    margin: 0;
    z-index: 2;
    z-index: 2;
    font-size: 2.8rem;
    font-weight: 300;
    color: #fff;
    mix-blend-mode: exclusion;
    letter-spacing: 5px; }
#home #kv .scroll_wrap .scrolldown_A {
  position: absolute;
  left: 50%;
  bottom: 5%;
  height: 50px;
  z-index: 2;
  filter: drop-shadow(2px 2px 2px rgba(0, 0, 0, 0.3)); }
  #home #kv .scroll_wrap .scrolldown_A span {
    position: absolute;
    left: -20px;
    top: -15px;
    color: #fff;
    font-size: 1.4rem;
    letter-spacing: 0.05em; }
  #home #kv .scroll_wrap .scrolldown_A::after {
    content: "";
    position: absolute;
    top: 0;
    width: 1px;
    height: 30px;
    background: #fff;
    animation: pathmove 1.4s ease-in-out infinite;
    opacity: 0; }
#home #kv .scroll_wrap .scrolldown_B {
  position: absolute;
  bottom: 5%;
  right: 3%;
  z-index: 2;
  filter: drop-shadow(2px 2px 2px rgba(0, 0, 0, 0.3)); }
  #home #kv .scroll_wrap .scrolldown_B span {
    position: absolute;
    left: 10px;
    bottom: 3rem;
    color: #fff;
    font-size: 1.4rem;
    letter-spacing: 0.05em;
    -ms-writing-mode: tb-rl;
    -webkit-writing-mode: vertical-rl;
    writing-mode: vertical-rl; }
  #home #kv .scroll_wrap .scrolldown_B:before {
    content: "";
    position: absolute;
    bottom: 0;
    left: -4px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #fff;
    animation: circlemove 1.5s ease-in-out infinite, cirlemovehide 1.5s ease-out infinite; }
  #home #kv .scroll_wrap .scrolldown_B:after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 1px;
    height: 7rem;
    background: #fff; }
#home #kv .scroll_wrap .scrolldown_C {
  position: absolute;
  bottom: 5%;
  right: 3%;
  z-index: 2;
  filter: drop-shadow(2px 2px 2px rgba(0, 0, 0, 0.3));
  animation: mousemove 1.6s ease-in-out infinite; }
  #home #kv .scroll_wrap .scrolldown_C span {
    position: absolute;
    left: -15px;
    bottom: 45px;
    color: #fff;
    font-size: 1.4rem;
    letter-spacing: 0.05em; }
    #home #kv .scroll_wrap .scrolldown_C span::after {
      content: "";
      position: absolute;
      top: 10px;
      left: 17px;
      width: 1px;
      height: 15px;
      background: #fff;
      animation: mousepathmove 1.4s linear infinite;
      opacity: 0; }
  #home #kv .scroll_wrap .scrolldown_C:before {
    content: "";
    position: absolute;
    bottom: 0;
    left: -10px;
    width: 25px;
    height: 37px;
    border-radius: 10px;
    border: 1px solid #fff; }
  #home #kv .scroll_wrap .scrolldown_C:after {
    content: "";
    position: absolute;
    bottom: 26px;
    left: 0;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    border: 1px solid #fff; }
#home #message .read {
  margin-bottom: 10em; }
  #home #message .read h3 {
    text-align: center; }
    #home #message .read h3 > span {
      display: block;
      margin: 0.5em 0 0;
      font-size: 4rem;
      letter-spacing: 10px;
      text-shadow: -10px 10px 25px rgba(230, 180, 15, 0.9), 10px -10px 25px rgba(8, 131, 161, 0.9); }
#home #message .flex_wrap.column_2_odd .flex_box {
  margin: 0; }
  #home #message .flex_wrap.column_2_odd .flex_box:last-child {
    margin-bottom: 0; }
#home #message .flex_wrap .flex_box .flex_item.__text p {
  font-size: 1.8rem;
  line-height: 1.8; }
  #home #message .flex_wrap .flex_box .flex_item.__text p:first-letter {
    font-size: 2em;
    padding-right: 0.2em;
    line-height: 1;
    font-weight: 500;
    color: #d3d0c1; }
#home #message .flex_wrap .flex_box figure.flex_item {
  width: 36%; }
#home #message .fukidashi {
  background: #f1ece1;
  padding: 3em;
  border-radius: 11em;
  max-width: 85em;
  margin: 6em auto 0;
  position: relative; }
  #home #message .fukidashi p {
    margin: 0;
    font-size: 2.4em;
    font-weight: bold;
    text-align: center; }
  #home #message .fukidashi::before {
    content: "";
    position: absolute;
    top: -30px;
    left: 50%;
    margin-left: -15px;
    border: 15px solid transparent;
    border-bottom: 15px solid #f1ece1; }
  #home #message .fukidashi figure.ab_img_wrap {
    margin: 0; }
  #home #message .fukidashi img.ab_img {
    position: absolute; }
    #home #message .fukidashi img.ab_img._A {
      top: 1em;
      left: 1em;
      width: 9.5em;
      height: auto;
      transform: rotateZ(214deg); }
    #home #message .fukidashi img.ab_img._B {
      bottom: -2em;
      right: 1em;
      width: 7em;
      height: auto;
      transform: rotateZ(253deg); }
#home #point {
  background-attachment: fixed;
  background-image: url(../../assets/img/kv_003.webp);
  background-repeat: no-repeat;
  background-size: cover; }
  #home #point .contents_inner {
    background-color: #fff; }
  #home #point .flex_wrap.column_2_even .flex_box {
    margin-bottom: 6rem; }
    #home #point .flex_wrap.column_2_even .flex_box:last-child {
      margin-bottom: 0; }
  #home #point h3 {
    font-size: 2.4rem; }
#home #news #newsWrap.contents_inner {
  padding: 0em 5%; }
#home #news ul#newsList li {
  display: flex;
  gap: 1em;
  padding: 1.5em 0;
  border-bottom: 1px solid #ddd;
  align-items: center; }
  #home #news ul#newsList li:first-child {
    border-top: 1px solid #ddd; }
  #home #news ul#newsList li .news_ymd-category_wrap {
    display: flex;
    gap: 1em; }
    #home #news ul#newsList li .news_ymd-category_wrap span.up_ymd {
      display: block; }
    #home #news ul#newsList li .news_ymd-category_wrap span.catName {
      background-color: #ddd;
      padding: 0.2rem 1em;
      display: block;
      font-size: 1.4rem;
      white-space: nowrap; }
  #home #news ul#newsList li span.title a {
    text-decoration: none; }
    #home #news ul#newsList li span.title a:hover {
      text-decoration: underline; }

/*KVスクロール用アニメーション設定
-------------------------------*/
@keyframes circlemove {
  0% {
    bottom: 6.5rem; }
  100% {
    bottom: -0.2rem; } }
@keyframes cirlemovehide {
  0% {
    opacity: 0; }
  50% {
    opacity: 1; }
  80% {
    opacity: 0.9; }
  100% {
    opacity: 0; } }
@keyframes mousemove {
  0% {
    bottom: 6%; }
  50% {
    bottom: 5%; }
  100% {
    bottom: 6%; } }
@keyframes mousepathmove {
  0% {
    height: 0;
    top: 10px;
    opacity: 0; }
  50% {
    height: 15px;
    opacity: 1; }
  100% {
    height: 0;
    top: 30px;
    opacity: 0; } }
/*ｘｘページのみに適用
===============================================*/
/*==========================================================================
  ブレイクポイント
==========================================================================*/
/*forSP
--------------------------------------*/
@media (max-width: 768px) {
  .L_nav_container {
    position: static; }
    .L_nav_container header {
      width: 100%;
      background: transparent;
      position: static;
      height: inherit;
      z-index: 5;
      box-shadow: none; }
      .L_nav_container header .header_tmp_B #gnav.hamburger_all .gnav__inner {
        display: block; }
    .L_nav_container .main-area {
      width: 100%;
      margin-left: 0; }

  /*.L_nav_container {
  	header {
  		width: 100%;
  		height: auto;
  		.header_tmp_Left_A {
  			nav{
  				background: $black;
  				color: #fff;
  				ul li a{
  					border-bottom:1px solid #ccc;
  					color: #fff;
  				}
  				ul li li a{
  						padding: 0;
  				}
  				li.has-child {
  					ul{
  						position: relative;
  						left:0;
  						top:0;
  						width:100%;
  							height: auto;
  						visibility:visible;
  						opacity:1;
  						display: none;
  						transition:none;
  					}
  					ul li{
  						text-align: left;
  						dl{
  							display: flex;
  							justify-content: space-between;
  							align-items: center;
  						}
  						dt{
  							width:30%;
  							height: auto;
  							margin: 0;
  						}
  						dd{
  							width:64%;			
  						}
  					}
  				}
  			}
  		}
  	}
  }*/
  /*文字とか
  ---------------*/
  h3 {
    font-size: 2rem; }

  h2.titleB,
  p.titleB {
    font-size: 2.4rem; }

  /*footer
  ---------------*/
  #page_top a {
    font-size: 1.2rem; }

  /*gnav
  ---------------*/
  figure.gnav_logo {
    display: none; }

  #gnav.hamburger_all ul.gnav_list_nav > li {
    font-size: 1.6rem; }
  #gnav.hamburger_all .sub ul {
    display: flex;
    flex-direction: column; }
    #gnav.hamburger_all .sub ul li {
      width: 100%; }

  /*kv
  ---------------*/
  .kv_catchcopy p {
    font-size: 2.4rem;
    padding: 0 3%;
    text-align: center;
    max-width: 80%;
    mix-blend-mode: multiply; }

  #kv.kv_slider_fade .slide_item img {
    height: 100vh;
    width: 100%; }

  /*contents
  ---------------*/
  #message .read {
    margin-bottom: 5em; }
    #message .read h3 > span {
      font-size: 2.4rem; }
  #message .flex_wrap.column_2_odd .flex_box {
    margin: 0 0 3rem;
    flex-direction: column-reverse; }
  #message .flex_wrap .flex_box .flex_item.__text p {
    font-size: 1.4rem;
    line-height: 1.8; }
    #message .flex_wrap .flex_box .flex_item.__text p:first-letter {
      font-size: 2em; }
  #message .flex_wrap .flex_box figure.flex_item {
    width: 100%; }
  #message .fukidashi p {
    font-size: 1.6em; }
  #message .fukidashi img.ab_img._A {
    top: -1em;
    left: 1em;
    width: 5.5em;
    height: auto;
    transform: rotateZ(214deg); }
  #message .fukidashi img.ab_img._B {
    bottom: -2em;
    right: 2em;
    width: 4em;
    height: auto;
    transform: rotateZ(253deg); }

  #point h3 {
    font-size: 2rem; }

  .flex_wrap.column_2_even .flex_box.img45-text55 figure.flex_item,
  .flex_wrap.column_2_even .flex_box.img45-text55 .flex_item.__text {
    width: 100%; }

  .forPC {
    display: none; } }
/*forSP end*/
/*forTAB
--------------------------------------*/
@media (min-width: 576px) and (max-width: 768px) {
  #message .flex_wrap .flex_box figure.flex_item,
  .flex_wrap.column_2_odd .flex_box .flex_item {
    width: 100%; } }
/*forTAB end*/
/*forTAB2
--------------------------------------*/
@media (min-width: 769px) and (max-width: 1000px) {
  #message .flex_wrap.column_2_odd .flex_box {
    margin: 0 0 3rem; }

  #message .flex_wrap .flex_box figure.flex_item,
  .flex_wrap.column_2_odd .flex_box .flex_item {
    width: 100%; } }
/*forTAB2 end*/
/*forPC
--------------------------------------*/
@media (min-width: 769px) {
  .forSP {
    display: none; } }
/*forPC end*/
/*forPC2
--------------------------------------*/
@media (max-width: 1259px) {
  #kv.kv_slider_fade {
    height: 100vh; } }
/*forPC end*/
