@charset "UTF-8";
/* ===================
共通変数
===================*/
/* ===================
ブレークポイント
===================*/
/* ===================
rem計算
===================*/
/* ===================
コンテンツサイズ
===================*/
/* ａタグ基本スタイル */
/* buttonデフォルトのスタイルをリセット */
/* スタイルを一部リセット */
/* #Base
   -------------------------------------------------------------------------- */
/**
* Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します
* 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます
* 基本的にclass属性は使用しません
*/
body {
  font-family: "Arial", "BIZ UDPGothic", "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Meiryo", sans-serif;
  color: #000;
}

html {
  scroll-behavior: smooth;
}
@media print, screen and (min-width: 768px) {
  html {
    scroll-padding-top: 120px;
  }
}

@media only screen and (max-width: 767px) {
  #scroll_area_Off {
    overflow: hidden;
  }
}

a:link, a:visited, a:hover, a:active {
  color: #000;
  text-decoration: none;
}
a:hover {
  text-decoration: underline;
}
a:hover img {
  opacity: 0.7;
}

/* -----------------------------------------------------------------------------
   #Spacing
   -------------------------------------------------------------------------- */
/*
  bootstrapのユーティリティを補う為の
  margin,paddingの汎用クラス
*/
/* -----------------------------------------------------------------------------
   #Margin
   -------------------------------------------------------------------------- */
.u-m10 {
  margin: 10px !important;
}

.u-mt10 {
  margin-top: 10px !important;
}

.u-mt15 {
  margin-top: 15px !important;
}

.u-mt20 {
  margin-top: 20px !important;
}

.u-mt30 {
  margin-top: 30px !important;
}

.u-mt40 {
  margin-top: 40px !important;
}

.u-mt50 {
  margin-top: 50px !important;
}

.u-mt60 {
  margin-top: 60px !important;
}

.u-mt100 {
  margin-top: 100px !important;
}

.u-mb0 {
  margin-bottom: 0px !important;
}

.u-mb10 {
  margin-bottom: 10px !important;
}

.u-mb20 {
  margin-bottom: 20px !important;
}

.u-mb30 {
  margin-bottom: 30px !important;
}

.u-mb40 {
  margin-bottom: 40px !important;
}

.u-mb50 {
  margin-bottom: 50px !important;
}

.u-mb60 {
  margin-bottom: 60px !important;
}

.u-mb70 {
  margin-bottom: 70px !important;
}

.u-mb80 {
  margin-bottom: 80px !important;
}

.u-mb100 {
  margin-bottom: 100px !important;
}

.u-mr10 {
  margin-right: 10px !important;
}

.u-mr20 {
  margin-right: 20px !important;
}

.u-mr30 {
  margin-right: 30px !important;
}

.u-mr80 {
  margin-right: 80px !important;
}

.u-ml10 {
  margin-left: 10px !important;
}

.u-ml20 {
  margin-left: 20px !important;
}

.u-ml30 {
  margin-left: 30px !important;
}

@media only screen and (max-width: 767px) {
  .u-m10_sp {
    margin: 10px !important;
  }
  .u-mt0_sp {
    margin-top: 0px !important;
  }
  .u-mt10_sp {
    margin-top: 10px !important;
  }
  .u-mt20_sp {
    margin-top: 20px !important;
  }
  .u-mt30_sp {
    margin-top: 30px !important;
  }
  .u-mt40_sp {
    margin-top: 40px !important;
  }
  .u-mt50_sp {
    margin-top: 50px !important;
  }
  .u-mt60_sp {
    margin-top: 60px !important;
  }
  .u-mb0_sp {
    margin-bottom: 0 !important;
  }
  .u-mb10_sp {
    margin-bottom: 10px !important;
  }
  .u-mb15_sp {
    margin-bottom: 15px !important;
  }
  .u-mb20_sp {
    margin-bottom: 20px !important;
  }
  .u-mb30_sp {
    margin-bottom: 30px !important;
  }
  .u-mb40_sp {
    margin-bottom: 40px !important;
  }
  .u-mb50_sp {
    margin-bottom: 50px !important;
  }
  .u-mb60_sp {
    margin-bottom: 60px !important;
  }
  .u-mr0_sp {
    margin-right: 0px !important;
  }
  .u-mr10_sp {
    margin-right: 10px !important;
  }
  .u-mr20_sp {
    margin-right: 20px !important;
  }
  .u-mr30_sp {
    margin-right: 30px !important;
  }
  .u-ml0_sp {
    margin-left: 0 !important;
  }
  .u-ml10_sp {
    margin-left: 10px !important;
  }
  .u-ml20_sp {
    margin-left: 20px !important;
  }
  .u-ml30_sp {
    margin-left: 30px !important;
  }
}
/* -----------------------------------------------------------------------------
   #Padding
   -------------------------------------------------------------------------- */
.u-p10 {
  padding: 10px !important;
}

.u-pt10 {
  padding-top: 10px !important;
}

.u-pt20 {
  padding-top: 20px !important;
}

.u-pt30 {
  padding-top: 30px !important;
}

.u-pt40 {
  padding-top: 40px !important;
}

.u-pt50 {
  padding-top: 50px !important;
}

.u-pt60 {
  padding-top: 60px !important;
}

.u-pt70 {
  padding-top: 70px !important;
}

.u-pt80 {
  padding-top: 80px !important;
}

.u-pt90 {
  padding-top: 90px !important;
}

.u-pt100 {
  padding-top: 100px !important;
}

.u-pb10 {
  padding-bottom: 10px !important;
}

.u-pb20 {
  padding-bottom: 20px !important;
}

.u-pb30 {
  padding-bottom: 30px !important;
}

.u-pb40 {
  padding-bottom: 40px !important;
}

.u-pb50 {
  padding-bottom: 50px !important;
}

.u-pb60 {
  padding-bottom: 60px !important;
}

.u-pl10 {
  padding-left: 10px !important;
}

.u-pl20 {
  padding-left: 20px !important;
}

.u-pl30 {
  padding-left: 30px !important;
}

.u-pl50 {
  padding-left: 50px !important;
}

.u-pl90 {
  padding-left: 90px !important;
}

.u-pr10 {
  padding-right: 10px !important;
}

.u-pr20 {
  padding-right: 20px !important;
}

.u-pr30 {
  padding-right: 30px !important;
}

@media only screen and (max-width: 767px) {
  .u-p10_sp {
    padding: 10px !important;
  }
  .u-pt0_sp {
    padding-top: 0px !important;
  }
  .u-pt10_sp {
    padding-top: 10px !important;
  }
  .u-pt20_sp {
    padding-top: 20px !important;
  }
  .u-pt30_sp {
    padding-top: 30px !important;
  }
  .u-pt40_sp {
    padding-top: 40px !important;
  }
  .u-pt50_sp {
    padding-top: 50px !important;
  }
  .u-pt60_sp {
    padding-top: 60px !important;
  }
  .u-pt70_sp {
    padding-top: 70px !important;
  }
  .u-pt80_sp {
    padding-top: 80px !important;
  }
  .u-pt90_sp {
    padding-top: 90px !important;
  }
  .u-pt100_sp {
    padding-top: 100px !important;
  }
  .u-pb10_sp {
    padding-bottom: 10px !important;
  }
  .u-pb20_sp {
    padding-bottom: 20px !important;
  }
  .u-pb30_sp {
    padding-bottom: 30px !important;
  }
  .u-pb40_sp {
    padding-bottom: 40px !important;
  }
  .u-pb50_sp {
    padding-bottom: 50px !important;
  }
  .u-pb60_sp {
    padding-bottom: 60px !important;
  }
  .u-pl0_sp {
    padding-left: 0px !important;
  }
  .u-pl10_sp {
    padding-left: 10px !important;
  }
  .u-pl20_sp {
    padding-left: 20px !important;
  }
  .u-pl30_sp {
    padding-left: 30px !important;
  }
  .u-pl90_sp {
    padding-left: 90px !important;
  }
  .u-pr10_sp {
    padding-right: 10px !important;
  }
  .u-pr0_sp {
    padding-right: 0px !important;
  }
  .u-pr20_sp {
    padding-right: 20px !important;
  }
  .u-pr30_sp {
    padding-right: 30px !important;
  }
}
/* -----------------------------------------------------------------------------
   #Text
   -------------------------------------------------------------------------- */
/*
  bootstrapのユーティリティを補う為の
  テキスト系の汎用クラス
*/
.u-serif {
  font-family: "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "Meiryo", serif;
}

.u-red {
  color: #C7161E !important;
}

.u-black {
  color: #000 !important;
}

.u-lineheight_175 {
  line-height: 1.75;
}

.u-lineheight_200 {
  line-height: 2;
}

.u-f10 {
  font-size: 0.625rem !important;
}

.u-f11 {
  font-size: 0.6875rem !important;
}

.u-f12 {
  font-size: 0.75rem !important;
}

.u-f13 {
  font-size: 0.8125rem !important;
}

.u-f14 {
  font-size: 0.875rem !important;
}

.u-f15 {
  font-size: 0.9375rem !important;
}

.u-f16 {
  font-size: 1rem !important;
}

.u-f17 {
  font-size: 1.0625rem !important;
}

.u-f18 {
  font-size: 1.125rem !important;
}

.u-f19 {
  font-size: 1.1875rem !important;
}

.u-f20 {
  font-size: 1.25rem !important;
}

.u-f21 {
  font-size: 1.3125rem !important;
}

.u-f22 {
  font-size: 1.375rem !important;
}

.u-f23 {
  font-size: 1.4375rem !important;
}

.u-f24 {
  font-size: 1.5rem !important;
}

.u-f25 {
  font-size: 1.5625rem !important;
}

.u-f26 {
  font-size: 1.625rem !important;
}

.u-f27 {
  font-size: 1.6875rem !important;
}

.u-f28 {
  font-size: 1.75rem !important;
}

.u-f29 {
  font-size: 1.8125rem !important;
}

.u-f30 {
  font-size: 1.875rem !important;
}

.u-f31 {
  font-size: 1.9375rem !important;
}

.u-f32 {
  font-size: 2rem !important;
}

.u-f33 {
  font-size: 2.0625rem !important;
}

.u-f34 {
  font-size: 2.125rem !important;
}

.u-f35 {
  font-size: 2.1875rem !important;
}

.u-f36 {
  font-size: 2.25rem !important;
}

.u-f37 {
  font-size: 2.3125rem !important;
}

.u-f38 {
  font-size: 2.375rem !important;
}

.u-f39 {
  font-size: 2.4375rem !important;
}

.u-f40 {
  font-size: 2.5rem !important;
}

.u-f41 {
  font-size: 2.5625rem !important;
}

.u-f42 {
  font-size: 2.625rem !important;
}

.u-f43 {
  font-size: 2.6875rem !important;
}

.u-f44 {
  font-size: 2.75rem !important;
}

.u-f45 {
  font-size: 2.8125rem !important;
}

.u-f46 {
  font-size: 2.875rem !important;
}

.u-f47 {
  font-size: 2.9375rem !important;
}

.u-f48 {
  font-size: 3rem !important;
}

.u-f49 {
  font-size: 3.0625rem !important;
}

.u-f50 {
  font-size: 3.125rem !important;
}

.u-f55 {
  font-size: 3.4375rem !important;
}

@media only screen and (max-width: 767px) {
  .u-f10_sp {
    font-size: 0.625rem !important;
  }
  .u-f11_sp {
    font-size: 0.6875rem !important;
  }
  .u-f12_sp {
    font-size: 0.75rem !important;
  }
  .u-f13_sp {
    font-size: 0.8125rem !important;
  }
  .u-f14_sp {
    font-size: 0.875rem !important;
  }
  .u-f15_sp {
    font-size: 0.9375rem !important;
  }
  .u-f16_sp {
    font-size: 1rem !important;
  }
  .u-f17_sp {
    font-size: 1.0625rem !important;
  }
  .u-f18_sp {
    font-size: 1.125rem !important;
  }
  .u-f19_sp {
    font-size: 1.1875rem !important;
  }
  .u-f20_sp {
    font-size: 1.25rem !important;
  }
  .u-f21_sp {
    font-size: 1.3125rem !important;
  }
  .u-f22_sp {
    font-size: 1.375rem !important;
  }
  .u-f23_sp {
    font-size: 1.4375rem !important;
  }
  .u-f24_sp {
    font-size: 1.5rem !important;
  }
  .u-f25_sp {
    font-size: 1.5625rem !important;
  }
  .u-f26_sp {
    font-size: 1.625rem !important;
  }
  .u-f27_sp {
    font-size: 1.6875rem !important;
  }
  .u-f28_sp {
    font-size: 1.75rem !important;
  }
  .u-f29_sp {
    font-size: 1.8125rem !important;
  }
  .u-f30_sp {
    font-size: 1.875rem !important;
  }
  .u-f31_sp {
    font-size: 1.9375rem !important;
  }
  .u-f32_sp {
    font-size: 2rem !important;
  }
  .u-f33_sp {
    font-size: 2.0625rem !important;
  }
  .u-f34_sp {
    font-size: 2.125rem !important;
  }
  .u-f35_sp {
    font-size: 2.1875rem !important;
  }
  .u-f36_sp {
    font-size: 2.25rem !important;
  }
  .u-f37_sp {
    font-size: 2.3125rem !important;
  }
  .u-f38_sp {
    font-size: 2.375rem !important;
  }
  .u-f39_sp {
    font-size: 2.4375rem !important;
  }
  .u-f40_sp {
    font-size: 2.5rem !important;
  }
  .u-f41_sp {
    font-size: 2.5625rem !important;
  }
  .u-f42_sp {
    font-size: 2.625rem !important;
  }
  .u-f43_sp {
    font-size: 2.6875rem !important;
  }
  .u-f44_sp {
    font-size: 2.75rem !important;
  }
  .u-f45_sp {
    font-size: 2.8125rem !important;
  }
  .u-f46_sp {
    font-size: 2.875rem !important;
  }
  .u-f47_sp {
    font-size: 2.9375rem !important;
  }
  .u-f48_sp {
    font-size: 3rem !important;
  }
  .u-f49_sp {
    font-size: 3.0625rem !important;
  }
  .u-f50_sp {
    font-size: 3.125rem !important;
  }
}
/* #Show
  -------------------------------------------------------------------------- */
/*
PCとスマホの表示・非表示切り替え
*/
@media print, screen and (min-width: 768px) {
  .u-show_sp {
    display: none !important;
  }
}
@media only screen and (max-width: 767px) {
  .u-show_sp {
    display: inherit;
  }
}

@media print, screen and (min-width: 768px) {
  .u-show_pc {
    display: inherit;
  }
}
@media only screen and (max-width: 767px) {
  .u-show_pc {
    display: none !important;
  }
}

header {
  position: relative;
  width: 100%;
  z-index: 999;
}
header dl, header dt, header dd, header ul, header ol, header li, header h1, header h2, header h3, header h4, header h5, header h6, header p, header th, header td, header figure {
  margin: 0;
  padding: 0;
  font-weight: normal;
}
header ul, header ol {
  list-style: none;
}
header caption {
  padding-top: 0;
  padding-bottom: 0;
  color: #000;
  caption-side: top;
}
header a:link, header a:visited, header a:hover, header a:active {
  color: #000;
}
header a:hover img {
  opacity: 0.7;
}
header button {
  padding: 0;
  background-color: transparent;
  border: none;
  appearance: none;
  -moz-appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
}
@media print, screen and (min-width: 768px) {
  header.top_header {
    position: absolute;
  }
  header.top_header .gnv_ttl {
    color: #fff;
  }
  header.top_header .gnv_ttl:link, header.top_header .gnv_ttl:visited, header.top_header .gnv_ttl:hover, header.top_header .gnv_ttl:active {
    color: #fff;
  }
  header.top_header h1 img {
    filter: invert(100%) hue-rotate(180deg);
  }
  header.top_header_fixed {
    position: static;
    animation: slide_down_menu 0.5s ease;
  }
}
@media only screen and (max-width: 1284px) {
  header.top_header {
    padding-left: 2%;
    padding-right: 2%;
  }
}
@keyframes slide_down_menu {
  0% {
    top: -60px;
  }
  100% {
    top: 0px;
  }
}
header:not(.top_header) {
  position: fixed;
  top: 0;
  background-color: #DBD89D;
  box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.5);
}
header:not(.top_header):before {
  content: "";
  display: block;
  width: 100%;
  border-top: 3px solid #0080ff;
  position: absolute;
  bottom: 13px;
}
header:not(.top_header):after {
  content: "";
  display: block;
  width: 100%;
  border-top: 6px solid #008000;
  position: absolute;
  bottom: 4px;
}
header a:hover {
  text-decoration: none;
}

@media print, screen and (min-width: 768px) {
  .h_wrapper {
    display: flex;
    justify-content: space-between;
  }
}
@media only screen and (max-width: 767px) {
  .h_wrapper {
    padding-bottom: 5px;
  }
}

.h_main {
  position: relative;
  display: flex;
  justify-content: space-between;
}
@media print, screen and (min-width: 768px) {
  .h_main {
    padding: 10px 0;
  }
}
@media only screen and (max-width: 767px) {
  .h_main {
    padding: 10px 70px 10px 0;
  }
}
@media only screen and (max-width: 767px) {
  .h_main h1 {
    max-width: 230px;
  }
}

@media only screen and (max-width: 767px) {
  nav {
    background-color: #fff;
  }
}

.h_layout01 {
  height: 100%;
}
@media only screen and (max-width: 767px) {
  .h_layout01 {
    background-color: #fff;
  }
}

.h_gnv {
  font-size: 1rem;
}
@media print, screen and (min-width: 768px) {
  .h_gnv {
    display: flex;
    height: 100%;
  }
}
@media only screen and (max-width: 767px) {
  .h_gnv > li {
    border-bottom: 1px solid #B4B4B4;
  }
  .h_gnv > li:first-child {
    border-top: 1px solid #B4B4B4;
  }
}

.gnv_ttl {
  line-height: 1;
}
@media print, screen and (min-width: 768px) {
  .gnv_ttl {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 20px 30px;
    height: 100%;
    position: relative;
  }
  .gnv_ttl:hover:after, .gnv_ttl.is-current:after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    display: block;
    width: 100%;
    border-bottom: 4px solid #ff9900;
  }
}
@media only screen and (max-width: 767px) {
  .gnv_ttl {
    display: block;
    padding: 15px;
    width: 100%;
    height: 100%;
  }
  .gnv_ttl:hover {
    background-color: #ddd;
    text-decoration: none;
    color: #000;
  }
}

@media print, screen and (min-width: 768px) {
  .dropdown_menu dl {
    position: relative;
    width: 100%;
    height: 100%;
  }
  .dropdown_menu dd {
    display: none;
    position: absolute;
    z-index: 999;
    top: 100%;
    left: 0;
    min-width: calc(100% + 50px);
    background-color: #000;
    white-space: nowrap;
    text-align: left;
  }
  .dropdown_menu dd a:link {
    color: #fff;
  }
  .dropdown_menu dd a:visited {
    color: #fff;
  }
  .dropdown_menu dd a:hover {
    color: #fff;
  }
  .dropdown_menu dd a:active {
    color: #fff;
  }
  .dropdown_menu dd a {
    display: block;
    padding: 10px 15px;
  }
  .dropdown_menu dd a:hover {
    background-color: #666;
  }
}
@media only screen and (max-width: 767px) {
  .dropdown_menu dt {
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .dropdown_menu dt:after {
    content: "＋";
    display: block;
    color: #717071;
    font-size: 22px;
  }
  .dropdown_menu .is-select dt:after {
    content: "－";
  }
  .dropdown_menu dd {
    display: none;
    background-color: #000;
  }
  .dropdown_menu dd a:link {
    color: #fff;
  }
  .dropdown_menu dd a:visited {
    color: #fff;
  }
  .dropdown_menu dd a:hover {
    color: #fff;
  }
  .dropdown_menu dd a:active {
    color: #fff;
  }
  .dropdown_menu dd a {
    display: block;
    padding: 10px 15px 10px 30px;
  }
  .dropdown_menu dd a:hover {
    background-color: #666;
  }
}

.drawer-hamburger {
  position: absolute;
  font-size: 10px;
  font-weight: bold;
  top: 18px;
  width: 50px;
  padding: 7px 0 22px;
  text-align: center;
  color: #000;
}
.drawer-hamburger button {
  padding: 0;
  background-color: transparent;
  border: none;
  appearance: none;
  -moz-appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
}
@media print, screen and (min-width: 768px) {
  .drawer-hamburger {
    display: none;
  }
}

@media print, screen and (min-width: 768px) {
  .drawer-nav {
    height: 100%;
  }
}

@media only screen and (max-width: 767px) {
  .drawer-overlay {
    top: 69px;
    background-color: rgba(174, 168, 37, 0.5);
  }
  .drawer--right .drawer-hamburger, .drawer--right.drawer-open .drawer-hamburger {
    right: 0px !important;
  }
  .drawer-hamburger-icon, .drawer-hamburger-icon:before, .drawer-hamburger-icon:after {
    width: 28px !important;
    height: 3px;
    margin-right: auto;
    margin-left: auto;
    margin-bottom: 10px;
    -webkit-transition: all 0.6s cubic-bezier(0.19, 1, 0.22, 1);
    transition: all 0.6s cubic-bezier(0.19, 1, 0.22, 1);
    background-color: #000;
  }
  .drawer-hamburger-icon:before, .drawer-hamburger-icon:after {
    position: absolute;
    top: -8px;
    left: 0;
    content: " ";
  }
  .drawer-hamburger-icon:after {
    top: 8px;
  }
  .drawer-open .drawer-hamburger-text-open, .drawer-open .drawer-hamburger-text-close {
    opacity: 0;
  }
  .drawer-open .drawer-hamburger-text-close {
    opacity: 1;
  }
  .drawer-hamburger-text-open, .drawer-hamburger-text-close {
    width: 100%;
    position: absolute;
    left: 0;
    bottom: 5px;
    -webkit-transition: all 0.6s cubic-bezier(0.19, 1, 0.22, 1);
    transition: all 0.6s cubic-bezier(0.19, 1, 0.22, 1);
  }
  .drawer-hamburger-text-close {
    opacity: 0;
  }
  .drawer--right.drawer-open .drawer-nav {
    left: 0;
  }
  .drawer-nav {
    position: fixed;
    z-index: 101;
    top: 0;
    padding-left: 50px;
    padding-right: 0;
    background-color: transparent;
  }
  .drawer--right .drawer-nav {
    top: 69px !important;
    left: 100%;
    width: 100%;
    height: calc(100vh - 81px - 12px);
    overflow: auto;
    -webkit-transition: left 0.6s cubic-bezier(0.19, 1, 0.22, 1);
    transition: left 0.6s cubic-bezier(0.19, 1, 0.22, 1);
  }
}
footer {
  border-top: 1px solid #B4B4B4;
  font-size: 1rem;
}
footer dl, footer dt, footer dd, footer ul, footer ol, footer li, footer h1, footer h2, footer h3, footer h4, footer h5, footer h6, footer p, footer th, footer td, footer figure {
  margin: 0;
  padding: 0;
  font-weight: normal;
}
footer ul, footer ol {
  list-style: none;
}
footer caption {
  padding-top: 0;
  padding-bottom: 0;
  color: #000;
  caption-side: top;
}
footer a:link, footer a:visited, footer a:hover, footer a:active {
  color: #000;
}
footer a:hover img {
  opacity: 0.7;
}
footer small {
  padding: 15px 0;
  font-size: 0.875rem;
  color: #fff;
}
footer a {
  text-decoration: none;
}
footer a:hover {
  text-decoration: underline;
}

.f_layout01 {
  font-size: 0.875rem;
  flex-shrink: 0;
  line-height: 1.75;
}
@media print, screen and (min-width: 768px) {
  .f_layout01 {
    margin-right: 50px;
  }
  .f_layout01 > img {
    margin-top: -30px;
  }
  .f_layout01 p {
    margin-top: -10px;
  }
}
@media only screen and (max-width: 767px) {
  .f_layout01 {
    padding-top: 50px;
  }
}

@media print, screen and (min-width: 768px) {
  .f_layout02 {
    display: flex;
    width: 100%;
    line-height: 2;
  }
  .f_layout02 > div {
    width: 33%;
    padding: 0 20px;
    border-right: 1px solid #878788;
  }
  .f_layout02 > div:first-child {
    border-left: 1px solid #878788;
  }
}
@media only screen and (max-width: 767px) {
  .f_layout02 {
    display: none;
  }
}

@media print, screen and (min-width: 768px) {
  .f_layout03 {
    display: flex;
    margin-left: 65px;
  }
}
@media only screen and (max-width: 767px) {
  .f_layout03 {
    display: none;
  }
}

.pagetop {
  position: absolute;
  top: -38px;
}
@media print, screen and (min-width: 1225px) {
  .pagetop {
    right: -38px;
  }
}
@media only screen and (max-width: 1224px) {
  .pagetop {
    right: 10px;
  }
}
@media only screen and (max-width: 767px) {
  .pagetop {
    right: 10px;
  }
}

/* #Content
-------------------------------------------------------------------------- */
/*doc

*/
@media print, screen and (min-width: 768px) {
  #contents {
    margin-top: 120px;
  }
}
@media only screen and (max-width: 767px) {
  #contents {
    margin-top: 81px;
  }
}

#breadcrumb * dl, #breadcrumb * dt, #breadcrumb * dd, #breadcrumb * ul, #breadcrumb * ol, #breadcrumb * li, #breadcrumb * h1, #breadcrumb * h2, #breadcrumb * h3, #breadcrumb * h4, #breadcrumb * h5, #breadcrumb * h6, #breadcrumb * p, #breadcrumb * th, #breadcrumb * td, #breadcrumb * figure {
  margin: 0;
  padding: 0;
  font-weight: normal;
}
#breadcrumb * ul, #breadcrumb * ol {
  list-style: none;
}
#breadcrumb * caption {
  padding-top: 0;
  padding-bottom: 0;
  color: #000;
  caption-side: top;
}
#breadcrumb * a:link, #breadcrumb * a:visited, #breadcrumb * a:hover, #breadcrumb * a:active {
  color: #000;
}
#breadcrumb * a:hover img {
  opacity: 0.7;
}
#breadcrumb li {
  list-style: none;
  display: inline-block;
  font-size: 0.8125rem;
}
#breadcrumb li a:link {
  color: #1268B7;
}
#breadcrumb li a:visited {
  color: #1268B7;
}
#breadcrumb li a:hover {
  color: #1268B7;
}
#breadcrumb li a:active {
  color: #1268B7;
}
#breadcrumb li:before {
  margin: 0 8px;
  content: ">";
  color: #000;
}
#breadcrumb li:first-child:before {
  margin: 0;
  content: "";
}

@media print, screen and (min-width: 768px) {
  a[href^=tel] {
    pointer-events: none;
  }
}

.ttl_style01 {
  font-size: 1.5rem;
  border-bottom: 1px solid #B4B4B4;
  padding-bottom: 10px;
}

#js-slider01 li, #js-slider02 li {
  visibility: hidden;
}

.bx-viewport #js-slider01 li,
.bx-viewport #js-slider02 li {
  visibility: visible;
}

.bx-wrapper {
  margin-bottom: 0 !important;
  box-shadow: none !important;
  border: none !important;
  background: transparent !important;
}
.bx-wrapper img {
  margin: 0 auto;
}

.btn_style01, .btn_style02 {
  display: inline-block;
  padding: 16px 10px;
  text-align: center;
  color: #fff;
  cursor: pointer;
  text-decoration: none;
  font-size: 1rem;
  width: 100%;
  max-width: 255px;
  border: 1px solid #fff;
}
.btn_style01:link, .btn_style02:link, .btn_style01:visited, .btn_style02:visited, .btn_style01:active, .btn_style02:active, .btn_style01:hover, .btn_style02:hover {
  color: #fff;
}
.btn_style01:hover, .btn_style02:hover {
  background-color: rgba(255, 255, 255, 0.3);
  text-decoration: none;
}

.btn_style02 {
  border: 1px solid #3F6EB4;
  background-color: #fff;
}
.btn_style02:link, .btn_style02:visited, .btn_style02:active, .btn_style02:hover {
  color: #3F6EB4;
}
.btn_style02:hover {
  background-color: #eee;
  text-decoration: none;
}

.stretched-link:hover::after {
  background-color: rgba(244, 244, 244, 0.7);
}

@media only screen and (max-width: 767px) {
  .table_scroll {
    overflow-x: scroll; /* スクロールする */
    white-space: nowrap; /* 自動改行しない */
  }
}
/* フェードインアニメーション */
.main_slider {
  position: relative;
}
@media only screen and (max-width: 767px) {
  .main_slider {
    margin-left: 15px;
    margin-right: 15px;
  }
}
.main_slider ul {
  padding-left: 0;
}
.main_slider ul img {
  border: 1px solid #fff;
}
@media print, screen and (min-width: 768px) {
  .main_slider ul img {
    border-radius: 30px;
  }
}
@media only screen and (max-width: 767px) {
  .main_slider ul img {
    border-radius: 20px;
  }
}

.layout_slider_txt01 {
  position: absolute;
  width: 100%;
}
@media print, screen and (min-width: 768px) {
  .layout_slider_txt01 {
    top: 0;
    left: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100%;
  }
}
@media only screen and (max-width: 767px) {
  .layout_slider_txt01 {
    top: 15%;
    text-align: center;
  }
}
@media only screen and (max-width: 767px) {
  .layout_slider_txt01 img {
    max-width: 75%;
  }
}

.layout_top01 {
  margin-top: -100px;
  padding-top: 150px;
}
@media print, screen and (min-width: 768px) {
  .layout_top01 {
    margin-bottom: 70px;
  }
}

.news_archive {
  color: #fff;
}
.news_archive a:link {
  color: #fff;
}
.news_archive a:visited {
  color: #fff;
}
.news_archive a:hover {
  color: #fff;
}
.news_archive a:active {
  color: #fff;
}
.news_archive dl {
  font-size: 1rem;
}
@media print, screen and (min-width: 768px) {
  .news_archive dl {
    display: flex;
  }
}
.news_archive dt, .news_archive dd {
  font-weight: normal;
}
@media print, screen and (min-width: 768px) {
  .news_archive dt, .news_archive dd {
    margin-bottom: 0;
  }
}
.news_archive dd {
  flex-shrink: 0;
  margin-right: 30px;
}

.layout_top02 {
  margin-bottom: 0;
}
.layout_top02 > div {
  padding: 30px 10px;
}
.layout_top02 dd {
  max-width: 400px;
  margin-inline: auto;
}

.ttl_top01 {
  font-size: 3.125rem;
  font-weight: bold;
  color: #C8C8C8;
}
@media print, screen and (min-width: 768px) {
  .ttl_top01 {
    position: absolute;
    width: 100%;
    margin-top: -40px;
    text-align: right;
  }
}
@media only screen and (max-width: 767px) {
  .ttl_top01 {
    line-height: 1;
    margin: 15px 0;
  }
}

.ttl_top02 {
  text-align: center;
  position: relative;
  z-index: 99;
  font-size: 3.125rem;
  font-weight: bold;
  color: #e0e0e0;
}
@media print, screen and (min-width: 768px) {
  .ttl_top02 {
    letter-spacing: 10px;
  }
}
@media only screen and (max-width: 767px) {
  .ttl_top02 {
    margin-bottom: 0;
  }
}
@media print, screen and (min-width: 768px) {
  .ttl_top02 span {
    margin-right: -380px;
  }
}

@media print, screen and (min-width: 768px) {
  .layout_top03 {
    display: flex;
  }
}
.layout_top03 figure {
  margin-bottom: 0;
}
@media print, screen and (min-width: 768px) {
  .layout_top03 figure {
    flex-shrink: 0;
    margin-top: -120px;
  }
}

@media print, screen and (min-width: 768px) {
  .layout_top04 {
    display: flex;
  }
}
@media print, screen and (min-width: 768px) {
  .layout_top04 > div {
    order: -1;
  }
}
@media print, screen and (min-width: 768px) {
  .layout_top04 figure {
    flex-shrink: 0;
    margin-top: -150px;
    margin-right: -100px;
    margin-bottom: 0;
  }
}

@media print, screen and (min-width: 768px) {
  .layout_top05 {
    padding-top: 150px;
  }
}
@media only screen and (max-width: 767px) {
  .layout_top05 {
    padding-top: 15px;
  }
}
@media only screen and (max-width: 1224px) {
  .layout_top05 {
    width: 100vw;
    overflow: hidden;
  }
}

.layout_top06 {
  margin-inline: auto;
  width: 100%;
  max-width: 1000px !important;
}
.layout_top06 p {
  text-align: center;
  font-size: 1.125rem;
}
.layout_top06 img {
  margin-bottom: 5px;
}

@media print, screen and (min-width: 768px) {
  .layout_company01 {
    width: 1000px;
    margin-inline: auto;
  }
}

.ttl_company01, .ttl_wowrks01 {
  position: relative;
  text-align: center;
  border-bottom: 1px solid #D0D0D0;
  padding-bottom: 15px;
}
.ttl_company01::after, .ttl_wowrks01::after {
  content: ""; /* contentプロパティは空にする */
  position: absolute;
  top: 100%;
  left: 50%; /* 中央に配置するために追加 */
  transform: translateX(-50%); /* 中央に配置するために追加 */
  display: block;
  width: 226px; /* SVGの実際の幅、または表示したい幅を設定 */
  height: 7px; /* SVGの実際の高さ、または表示したい高さを設定 */
  background-image: url(/images/common/ttl_border.svg);
  background-repeat: no-repeat;
  background-position: center bottom; /* 中央下部に配置 */
  background-size: contain; /* アスペクト比を維持して要素内に収める */
}
@media print, screen and (min-width: 768px) {
  .ttl_company01, .ttl_wowrks01 {
    font-size: 2rem;
  }
}
@media only screen and (max-width: 767px) {
  .ttl_company01, .ttl_wowrks01 {
    font-size: 1.5rem;
  }
}

.ttl_company02 {
  display: inline-block;
  padding: 0 10px 5px;
  border-bottom: 5px solid #000;
  text-align: center;
  font-family: "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "Meiryo", serif;
}
@media print, screen and (min-width: 768px) {
  .ttl_company02 {
    font-size: 2rem;
  }
}
@media only screen and (max-width: 767px) {
  .ttl_company02 {
    font-size: 1.5rem;
  }
}

.tbl_company01, .tbl_company02 {
  font-size: 0.9375rem;
  border-collapse: separate;
  border-spacing: 10px;
  caption-side: top;
}
.tbl_company01 caption, .tbl_company02 caption {
  padding-top: 0;
  padding-bottom: 15px;
  color: #21348C;
  text-align: left;
  font-size: 1.25rem;
}
.tbl_company01 td, .tbl_company02 td, .tbl_company01 th, .tbl_company02 th {
  padding: 5px 10px;
}
.tbl_company01 th, .tbl_company02 th {
  padding-left: 0;
  vertical-align: top;
  border-right: 2px solid #000;
  font-weight: bold;
  text-align: right;
  white-space: nowrap;
}

.tbl_company02 {
  border-collapse: collapse;
}
.tbl_company02 th {
  text-align: left;
  font-weight: normal;
}

.rinen_color01 {
  color: #0080ff;
  border-color: #0080ff !important;
}

.rinen_color02 {
  color: #008000;
  border-color: #008000 !important;
}

.googlemap {
  border: 1px solid #C8C8C9;
  margin-bottom: 10px;
}
.googlemap iframe {
  display: block;
  width: 100%;
  aspect-ratio: 580/380;
  height: auto;
}

.tbl_works01 {
  font-size: 1.25rem;
  font-family: "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "Meiryo", serif;
}
.tbl_works01 td, .tbl_works01 th {
  padding: 5px 10px;
  text-align: left;
  font-weight: normal;
}

.tbl_recruit01 {
  width: 100%;
  font-size: 0.9375rem;
}
.tbl_recruit01 th, .tbl_recruit01 td {
  border: 1px solid #000;
}
@media print, screen and (min-width: 768px) {
  .tbl_recruit01 th, .tbl_recruit01 td {
    padding: 15px 30px;
  }
}
@media only screen and (max-width: 767px) {
  .tbl_recruit01 th, .tbl_recruit01 td {
    padding: 10px;
  }
}
.tbl_recruit01 th {
  text-align: center;
  background-color: #EAF1FA;
  font-weight: normal;
}

/*投稿ページ*/
.newsList a:link {
  color: #000;
}
.newsList a:visited {
  color: #000;
}
.newsList a:hover {
  color: #000;
}
.newsList a:active {
  color: #000;
}
@media print, screen and (min-width: 768px) {
  .newsList > div {
    display: flex;
  }
}
.newsList > div:nth-child(even) {
  background-color: #eaf4fd;
}
.newsList time {
  display: inline-block;
  font-weight: bold;
  white-space: nowrap;
}
@media print, screen and (min-width: 768px) {
  .newsList dt, .newsList dd {
    padding: 15px 10px;
  }
}
@media only screen and (max-width: 767px) {
  .newsList dt, .newsList dd {
    padding: 10px;
  }
}
.newsList dt {
  font-weight: normal;
}
.newsList dt a {
  text-decoration: underline;
}
.newsList dt a:hover {
  text-decoration: none;
}
@media only screen and (max-width: 767px) {
  .newsList dt .newMark {
    display: none;
  }
}
.newsList dd {
  margin-bottom: 0;
}
@media only screen and (max-width: 767px) {
  .newsList dd {
    padding-bottom: 0;
  }
}
@media print, screen and (min-width: 768px) {
  .newsList dd .newMark {
    display: none;
  }
}

.newMark {
  background-color: #900;
  color: #FFF;
  font-size: 12px;
  padding: 3px 6px;
  margin: 0 10px;
  border-radius: 3px;
}

/* Pager style（外部化可） */
.pager {
  margin-top: 30px;
  text-align: center;
  padding: 10px;
  clear: both;
}

/*ページャーボタン*/
.pager a {
  border: 1px solid #999;
  border-radius: 5px 5px 5px 5px;
  color: #333;
  font-size: 0.875rem;
  padding: 3px 7px;
  text-decoration: none;
  margin: 0 3px;
}

/*現在のページのボタン*/
.pager a.current {
  background: #999;
  color: #fff;
}

.pager a:hover {
  background: #999;
  color: #fff;
}

.overPagerPattern {
  padding: 0 2px;
}

.news_single {
  font-size: 0.9375rem;
}
.news_single .ttl_news {
  background-color: #eaf4fd;
}
@media print, screen and (min-width: 768px) {
  .news_single .ttl_news {
    display: flex;
    align-items: center;
    padding: 10px 20px;
  }
}
@media only screen and (max-width: 767px) {
  .news_single .ttl_news {
    padding: 10px;
  }
}
.news_single h2 {
  line-height: 1.25;
  font-size: 1.5rem;
}
@media only screen and (max-width: 767px) {
  .news_single h2 {
    margin-top: 10px;
  }
}
.news_single time {
  display: block;
  margin-top: 20px;
  font-size: 1rem;
}
@media print, screen and (min-width: 768px) {
  .news_single time {
    padding: 0 20px;
  }
}
.news_single .wysiwyg {
  margin-top: 30px;
  margin-bottom: 10px;
  font-size: 1rem;
  text-align: justify;
  text-justify: inter-ideograph;
  line-height: 2;
}
@media print, screen and (min-width: 768px) {
  .news_single .wysiwyg {
    padding: 0 20px;
  }
}
.news_single .wysiwyg img {
  display: block;
  margin: 10px auto;
  margin-bottom: 10px;
  max-width: 100%;
  height: auto;
}
.news_single .wysiwyg pre {
  font-size: 1rem;
  line-height: 2;
}
.news_single .backORcloseBtn {
  margin-top: 50px;
}

.privacy dl {
  margin-top: 50px;
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
}
.privacy dt {
  padding: 10px 20px;
  font-size: 1rem;
  background-color: #F3F3F3;
  font-weight: bold;
}
@media print, screen and (min-width: 768px) {
  .privacy dt {
    margin-bottom: 20px;
  }
}
@media only screen and (max-width: 767px) {
  .privacy dt {
    margin-bottom: 10px;
  }
}
.privacy dd {
  line-height: 1.75;
  font-size: 0.9375rem;
}
@media print, screen and (min-width: 768px) {
  .privacy dd {
    margin-bottom: 50px;
    padding: 0 20px;
  }
}
@media only screen and (max-width: 767px) {
  .privacy dd {
    margin-bottom: 30px;
    padding: 0 10px;
  }
}

@media only screen and (max-width: 767px) {
  form table, form tbody, form tr, form th, form td, form caption {
    display: block;
  }
}

@media print, screen and (min-width: 768px) {
  .layout_contact01 {
    min-height: 500px;
    max-width: 1000px;
    margin-inline: auto;
  }
}

.form_table {
  width: 100%;
  margin-top: 40px;
}
@media print, screen and (min-width: 768px) {
  .form_table {
    margin-bottom: 50px;
  }
}
@media only screen and (max-width: 767px) {
  .form_table {
    margin-bottom: 30px;
  }
}
.form_table th, .form_table td {
  text-align: left;
  font-size: 1rem;
}
@media print, screen and (min-width: 768px) {
  .form_table th, .form_table td {
    border-bottom: 1px solid #D0D0D0;
    padding: 20px;
  }
}
@media only screen and (max-width: 767px) {
  .form_table th, .form_table td {
    padding: 10px;
  }
}
@media print, screen and (min-width: 768px) {
  .form_table tr:first-child th, .form_table tr:first-child td {
    border-top: 1px solid #D0D0D0;
  }
}
.form_table th {
  position: relative;
  background-color: #F3F3F3;
}
@media print, screen and (min-width: 768px) {
  .form_table th {
    width: 300px;
    padding-right: 60px;
    padding-left: 50px;
  }
}
@media only screen and (max-width: 767px) {
  .form_table th {
    margin-bottom: 5px;
  }
}
.form_table th .req {
  position: absolute;
  right: 20px;
}
.form_table input[type=text], .form_table textarea {
  padding: 10px;
  width: 100%;
}
.form_table select {
  padding: 10px;
}

.req {
  display: inline-block;
  padding: 3px 5px;
  color: #fff;
  font-size: 0.75rem;
  background-color: #B11C23;
}

.layout_contact02 {
  margin-bottom: 30px;
  padding: 50px 20px;
  border: 1px solid #D0D0D0;
  text-align: center;
}
.layout_contact02 label {
  margin-top: 20px;
  display: inline-block;
  padding: 20px;
  width: 100%;
  max-width: 520px;
  background-color: #F3F3F3;
}

.btn_form, .btn_toppage, .btn_entry, .btn_send, .btn_confirm {
  padding: 0;
  background-color: transparent;
  border: none;
  appearance: none;
  -moz-appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
  display: block;
  margin-inline: auto;
  width: 100%;
  max-width: 400px;
  line-height: 60px;
  text-align: center;
  font-size: 1rem;
  background-color: #4682C3;
  color: #fff;
  font-weight: normal;
}
.btn_form:link, .btn_toppage:link, .btn_entry:link, .btn_send:link, .btn_confirm:link, .btn_form:visited, .btn_toppage:visited, .btn_entry:visited, .btn_send:visited, .btn_confirm:visited, .btn_form:hover, .btn_toppage:hover, .btn_entry:hover, .btn_send:hover, .btn_confirm:hover, .btn_form:active, .btn_toppage:active, .btn_entry:active, .btn_send:active, .btn_confirm:active {
  color: #fff;
}
.btn_form:hover, .btn_toppage:hover, .btn_entry:hover, .btn_send:hover, .btn_confirm:hover {
  opacity: 0.7;
  text-decoration: none;
  cursor: pointer;
}

.layout_send {
  display: flex;
  justify-content: space-around;
}
.layout_send button {
  max-width: 350px;
  margin-right: 10px;
  margin-left: 10px;
}

#thanks {
  margin-top: 50px;
  display: flex;
  justify-content: center;
  line-height: 1.5;
}
@media only screen and (max-width: 767px) {
  #thanks {
    margin-top: 25px;
  }
}
#thanks a {
  display: block;
  margin-left: auto;
  margin-right: auto;
}