@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: #717071;
}

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

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

a:link, a:visited, a:hover, a:active {
  color: #717071;
  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-mt80 {
  margin-top: 80px !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: #717071 !important;
}

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

.u-lh_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;
}

.u-f60 {
  font-size: 3.75rem !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;
  }
}

.is-hide {
  display: none;
}

.p-loading {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: rgba(0, 0, 0, 0.5);
}

.p-loading::before {
  content: "";
  display: block;
  position: fixed;
  left: 50%;
  top: 50%;
  width: 50px;
  height: 50px;
  border-radius: 5px;
  margin-top: -15px;
  margin-left: -15px;
  background: white;
}

.p-loading::after {
  content: "";
  display: block;
  position: fixed;
  left: 50%;
  top: 50%;
  width: 32px;
  height: 32px;
  border-radius: 20px;
  margin-top: -10px;
  margin-left: -10px;
  border: 4px solid #60ABB9;
  border-right: 4px solid white;
  animation: rotate 1s infinite linear;
}

@keyframes rotate {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
.wp-pagenavi {
  clear: both;
  text-align: center;
}
.wp-pagenavi a, .wp-pagenavi span {
  color: #999;
  background-color: #FFF;
  border: solid 1px #e0e0d2;
  padding: 6px 12px;
  margin: 0 2px;
  white-space: nowrap;
  -moz-border-radius: 3px;
  -webkit-border-radius: 3px;
  border-radius: 3px;
  -webkit-transition: 0.2s ease-in-out;
  -moz-transition: 0.2s ease-in-out;
  -o-transition: 0.2s ease-in-out;
  transition: 0.2s ease-in-out;
  text-align: center;
  text-decoration: none;
}
.wp-pagenavi a:hover {
  color: #FFF;
  background-color: #999;
  border-color: #999;
}
.wp-pagenavi span.current {
  color: #FFF;
  background-color: #AC8F8B;
  border-color: #8A706C;
  font-weight: bold;
}

.layout_header01 {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1054;
  background-color: #fff;
  border-bottom: 1px solid #ddd;
}

.layout_headerInner01 {
  position: relative;
  max-width: 1400px;
  min-height: 56px;
}

@media only screen and (max-width: 767px) {
  .logo_header01 {
    flex: 0 0 220px;
    max-width: min(220px, 100% - 64px);
  }
}
.logo_header01 a,
.logo_header01 img {
  display: block;
}

.btn_headerMenu01 {
  min-width: 52px;
  padding: 5px 8px;
  color: #595757;
  line-height: 1;
}

.txt_headerMenu01 {
  display: block;
  margin-bottom: 4px;
  font-size: 0.625rem;
  letter-spacing: 0.06em;
}

.icon_headerMenu01 {
  position: relative;
  width: 30px;
  height: 20px;
  display: block;
  margin-inline: auto;
}
.icon_headerMenu01::before, .icon_headerMenu01::after {
  position: absolute;
  left: 0;
  width: 100%;
  height: 2px;
  content: "";
  background: currentColor;
  transition: transform 0.35s ease, top 0.35s ease, bottom 0.35s ease;
}
.icon_headerMenu01::before {
  top: 2px;
  box-shadow: 0 8px 0 currentColor;
}
.icon_headerMenu01::after {
  bottom: 0px;
}

.layout_gnvWrap01 {
  min-width: 0;
}
@media print, screen and (min-width: 768px) {
  .layout_gnvWrap01 {
    margin-left: auto;
    padding-right: 140px;
    flex: 1 1 auto;
    align-self: stretch;
    display: flex;
    align-items: center;
    justify-content: flex-end;
  }
}
@media only screen and (max-width: 767px) {
  .layout_gnvWrap01 {
    position: fixed;
    top: 56px;
    right: 0;
    width: min(88%, 360px);
    height: calc(100dvh - 56px);
    margin: 0;
    padding: 0;
    display: block;
    overflow-y: auto;
    background: #fff;
    transform: translateX(100%);
    transition: transform 0.35s ease;
  }
}

.nav_gnv01 > ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
@media print, screen and (min-width: 768px) {
  .nav_gnv01 > ul {
    display: flex;
    align-items: stretch;
  }
}
@media only screen and (max-width: 767px) {
  .nav_gnv01 > ul {
    display: block;
  }
}
.nav_gnv01 > ul > li {
  position: relative;
}
@media print, screen and (min-width: 768px) {
  .nav_gnv01 > ul > li {
    display: flex;
    align-items: stretch;
  }
}
@media only screen and (max-width: 767px) {
  .nav_gnv01 > ul > li {
    display: block;
    border-bottom: 1px solid #ddd;
  }
}
.nav_gnv01 > ul > li > a,
.nav_gnv01 > ul > li > dl > dt {
  display: flex;
  align-items: center;
  cursor: pointer;
}
@media print, screen and (min-width: 768px) {
  .nav_gnv01 > ul > li > a,
  .nav_gnv01 > ul > li > dl > dt {
    padding: 10px 12px;
    justify-content: center;
  }
}
@media only screen and (max-width: 767px) {
  .nav_gnv01 > ul > li > a,
  .nav_gnv01 > ul > li > dl > dt {
    width: 100%;
    min-width: 0;
    min-height: 58px;
    padding: 16px 20px;
    justify-content: flex-start;
  }
}
.nav_gnv01 > ul > li > a {
  text-decoration: none;
}
.nav_gnv01 > ul > li > dl > dt:hover {
  opacity: 0.7;
}
@media only screen and (max-width: 767px) {
  .nav_gnv01 > ul > li > dl > dt {
    position: relative;
    padding-right: 52px;
  }
  .nav_gnv01 > ul > li > dl > dt::before, .nav_gnv01 > ul > li > dl > dt::after {
    position: absolute;
    top: 50%;
    right: 20px;
    width: 14px;
    height: 1px;
    content: "";
    background: #717071;
    transform: translateY(-50%);
    transition: opacity 0.3s ease, transform 0.3s ease;
  }
  .nav_gnv01 > ul > li > dl > dt::before {
    transform: translateY(-50%) rotate(90deg);
  }
}
@media only screen and (max-width: 767px) {
  .nav_gnv01 > ul > li > dl.is-select > dt::before {
    opacity: 0;
  }
}
.nav_gnv01 dl {
  margin: 0;
}
@media print, screen and (min-width: 768px) {
  .nav_gnv01 dl {
    display: flex;
    align-items: stretch;
  }
}
@media only screen and (max-width: 767px) {
  .nav_gnv01 dl {
    display: block;
  }
}
.nav_gnv01 dl.is-select > dd {
  visibility: visible;
  transition-delay: 0s;
  pointer-events: auto;
}
.nav_gnv01 dl dd {
  height: 0;
  visibility: hidden;
  pointer-events: none;
  overflow: hidden;
  transition: height 0.3s ease, visibility 0s linear 0.3s;
}
.nav_gnv01 dd {
  margin: 0;
  background: #1c1c1c;
}
@media print, screen and (min-width: 768px) {
  .nav_gnv01 dd {
    position: absolute;
    top: 100%;
    left: 50%;
    width: max-content;
    min-width: 180px;
    transform: translateX(-50%);
  }
}
@media only screen and (max-width: 767px) {
  .nav_gnv01 dd {
    position: static;
    width: 100%;
    min-width: 0;
    transform: none;
  }
}
.nav_gnv01 dd ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
@media only screen and (max-width: 767px) {
  .nav_gnv01 dd ul {
    padding-block: 4px;
  }
}
.nav_gnv01 dd a {
  display: block;
  color: #fff;
  font-size: 0.875rem;
  line-height: 1.35;
  text-decoration: none;
  white-space: nowrap;
}
@media print, screen and (min-width: 768px) {
  .nav_gnv01 dd a {
    padding: 10px 18px;
  }
}
@media only screen and (max-width: 767px) {
  .nav_gnv01 dd a {
    padding: 12px 24px;
  }
}
.nav_gnv01 dd a:hover, .nav_gnv01 dd a:focus-visible {
  background-color: #454545;
}

@media print, screen and (min-width: 768px) {
  .layout_gnvCareers01 {
    position: fixed !important;
    top: 0;
    right: 0;
  }
}
@media only screen and (max-width: 767px) {
  .layout_gnvCareers01 {
    position: relative !important;
  }
}
@media print, screen and (min-width: 768px) {
  .layout_gnvCareers01 > dl > dt {
    width: 139px;
    min-width: 139px !important;
    height: 133px;
    padding: 0 !important;
    align-items: flex-start !important;
  }
}
@media only screen and (max-width: 767px) {
  .layout_gnvCareers01 > dl > dt {
    width: 100%;
    min-width: 0 !important;
    height: auto;
    padding: 12px 20px !important;
    align-items: center !important;
  }
}
@media print, screen and (min-width: 768px) {
  .layout_gnvCareers01 dd {
    right: 0;
    left: auto;
    top: 133px;
    min-width: 220px;
    transform: none;
  }
}
@media only screen and (max-width: 767px) {
  .layout_gnvCareers01 dd {
    min-width: 0;
  }
}

.txt_gnvSp01 {
  line-height: 1.2;
  font-weight: normal;
}
.txt_gnvSp01 > span {
  display: block;
}
.txt_gnvSp01 > span:first-child {
  font-size: 1.0625rem;
}
.txt_gnvSp01 > span:last-child {
  margin-top: 3px;
  font-size: 0.6875rem;
}

@media print, screen and (min-width: 768px) {
  .layout_gnvOverlay01 {
    display: none;
  }
}
@media only screen and (max-width: 767px) {
  .layout_gnvOverlay01 {
    position: fixed;
    inset: 0;
    z-index: 1052;
    display: block;
    background: rgba(0, 0, 0, 0.45);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.35s ease, visibility 0.35s ease;
  }
}

@media only screen and (max-width: 767px) {
  body.is-menu-open {
    overflow: hidden;
  }
}

@media only screen and (max-width: 767px) {
  .is-menu-open .btn_headerMenu01 {
    position: relative;
    z-index: 1056;
  }
}
@media only screen and (max-width: 767px) {
  .is-menu-open .icon_headerMenu01::before {
    top: 9px;
    box-shadow: none;
    transform: rotate(45deg);
  }
}
@media only screen and (max-width: 767px) {
  .is-menu-open .icon_headerMenu01::after {
    bottom: 9px;
    transform: rotate(-45deg);
  }
}
@media only screen and (max-width: 767px) {
  .is-menu-open .layout_gnvWrap01 {
    transform: translateX(0);
  }
}
@media only screen and (max-width: 767px) {
  .is-menu-open .layout_gnvOverlay01 {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
}

.layout_footer01 {
  position: relative;
}
.layout_footer01 a {
  color: inherit;
}

.btn_footerContact01 {
  min-height: 80px;
  padding: 20px;
  background-color: #595757;
}

.layout_footerCompany01 {
  line-height: 1.75;
  font-size: 0.9375rem;
}

.list_footerNav01 {
  line-height: 1.55;
  font-size: 0.8125rem;
  font-weight: normal;
}
.list_footerNav01 > li {
  margin-bottom: 5px;
}
.list_footerNav01 > li > a {
  font-size: 0.9375rem;
}
.list_footerNav01 > li > a::before {
  margin-right: 5px;
  display: inline-block;
  content: "";
  border-top: 6px solid transparent;
  border-bottom: 6px solid transparent;
  border-left: 8px solid currentColor;
}
.list_footerNav01 a {
  display: inline-flex;
  align-items: baseline;
}
.list_footerNav01 a:hover {
  color: #333;
}
.list_footerNav01 span {
  font-size: 0.8125rem;
}
.list_footerNav01 ul {
  margin: 3px 0 8px 16px;
  padding: 0;
  list-style: none;
}
.list_footerNav01 ul li {
  margin-bottom: 4px;
}
.list_footerNav01 ul a {
  font-size: 0.8125rem;
  font-weight: normal;
}

.btn_pageTop01 {
  position: fixed;
  width: 52px;
  height: 52px;
  display: block;
  opacity: 0;
  visibility: hidden;
  z-index: 99;
  transition: opacity 0.4s ease, visibility 0.4s ease, transform 0.2s ease;
}
@media print, screen and (min-width: 768px) {
  .btn_pageTop01 {
    right: 30px;
    bottom: 30px;
  }
}
@media only screen and (max-width: 767px) {
  .btn_pageTop01 {
    right: 10px;
    bottom: calc(min(12.27vw, 66px) + 10px);
  }
}
.btn_pageTop01:hover {
  transform: translateY(-3px);
}
.btn_pageTop01:hover img {
  opacity: 0.8;
}
.btn_pageTop01.is-show {
  opacity: 1;
  visibility: visible;
}
.btn_pageTop01.is-stop {
  position: absolute;
  top: -26px;
  bottom: auto;
}
@media print, screen and (min-width: 768px) {
  .btn_pageTop01.is-stop {
    right: 30px;
  }
}
@media only screen and (max-width: 767px) {
  .btn_pageTop01.is-stop {
    right: 10px;
  }
}

#contents {
  padding-top: 56px;
}

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

.site-bg_beige {
  background: #f8f7ef;
}

.site-bg_gray {
  background: #717071;
}

.site-gallery {
  background: #fff;
}
.site-gallery_slider {
  width: 100%;
}
.site-gallery .swiper-slide {
  height: auto;
  overflow: hidden;
}
.site-gallery img {
  width: 100%;
  height: 100%;
  aspect-ratio: 3/2;
  display: block;
  object-fit: cover;
}

@media only screen and (max-width: 767px) {
  .site-ttl01 {
    width: 60%;
  }
}

@media only screen and (max-width: 767px) {
  .site-ttl02 {
    width: 80%;
  }
}

@media only screen and (max-width: 767px) {
  .site-ttl03 {
    width: 75%;
  }
}

.site-heroVideo01 {
  width: 100%;
  overflow: hidden;
  background: #b5b5b6;
}
.site-heroVideo01 img,
.site-heroVideo01 video {
  width: 100%;
  display: block;
  object-fit: cover;
}
@media print, screen and (min-width: 768px) {
  .site-heroVideo01 img,
  .site-heroVideo01 video {
    height: min(34vw, 480px);
  }
}
@media only screen and (max-width: 767px) {
  .site-heroVideo01 img,
  .site-heroVideo01 video {
    aspect-ratio: 16/9;
  }
}

.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; /* 自動改行しない */
  }
}
.js-anim {
  opacity: 0;
}
@media print, screen and (min-width: 768px) {
  .js-anim {
    transition: opacity 5000ms ease-out, transform 1500ms ease-out;
  }
}
@media only screen and (max-width: 767px) {
  .js-anim {
    transition: opacity 4000ms ease-out, transform 1000ms ease-out;
  }
}
@media print, screen and (min-width: 768px) {
  .js-anim[data-anim=slide-up], .js-anim[data-anim=slide-left], .js-anim[data-anim=slide-right] {
    transition-duration: 1500ms;
  }
}
@media only screen and (max-width: 767px) {
  .js-anim[data-anim=slide-up], .js-anim[data-anim=slide-left], .js-anim[data-anim=slide-right] {
    transition-duration: 1000ms;
  }
}
@media print, screen and (min-width: 768px) {
  .js-anim[data-anim=slide-up] {
    transform: translateY(150px);
  }
}
@media only screen and (max-width: 767px) {
  .js-anim[data-anim=slide-up] {
    transform: translateY(100px);
  }
}
.js-anim[data-anim=slide-left] {
  transform: translateX(-150px);
}
.js-anim[data-anim=slide-right] {
  transform: translateX(150px);
}
.js-anim.is-inview {
  opacity: 1;
  transform: translate(0, 0);
}

/* -----------------------------------------------------------------------------
#index
-------------------------------------------------------------------------- */
/*
トップページ
*/
.page_index .layout_header01 {
  transform: translateY(100%);
  opacity: 0;
  visibility: hidden;
  transition: transform 0.65s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.45s ease, visibility 0.45s ease;
}
.page_index .layout_header01.is-top-visible, .page_index .layout_header01.is-menu-open {
  transform: translateY(0);
  opacity: 1;
  visibility: visible;
}

.layout_indexHero01 {
  position: relative;
  overflow: hidden;
  color: #fff;
  background: #b5b5b6;
}
@media print, screen and (min-width: 768px) {
  .layout_indexHero01 {
    min-height: 560px;
    height: min(100vh, 55.714vw);
  }
}

.video_indexHero01 {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.layout_indexMovie01 {
  width: 100%;
  overflow: hidden;
  background: #b5b5b6;
}
.layout_indexMovie01 video {
  width: 100%;
  aspect-ratio: 16/9;
  min-height: 320px;
  max-height: 600px;
  display: block;
  object-fit: cover;
}

.layout_indexCareersVisual01 {
  background-image: url("/images/index/bg_careers.webp");
  background-position: center top;
  background-repeat: no-repeat;
  background-size: cover;
}

.ttl_indexCareers01 {
  margin-bottom: 15px;
}

.txt_indexCareersLead01 {
  line-height: 1.2;
}

.list_indexStaff01 a {
  display: block;
  overflow: hidden;
}
.list_indexStaff01 a:hover img {
  opacity: 0.85;
  transform: scale(1.03);
}
.list_indexStaff01 img {
  transition: transform 0.4s ease, opacity 0.3s ease;
}

.list_indexNav01 a {
  position: relative;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #595757;
  transition: background-color 0.3s ease;
  aspect-ratio: 3/2;
}
.list_indexNav01 a:hover, .list_indexNav01 a:focus-visible {
  background: #f9f8f4;
}
.list_indexNav01 a:hover::after, .list_indexNav01 a:focus-visible::after {
  opacity: 1;
}
.list_indexNav01 a::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: var(--index-nav-width);
  aspect-ratio: var(--index-nav-aspect);
  display: block;
  content: "";
  background-color: #595757;
  opacity: 0;
  transform: translate(-50%, -50%);
  transition: opacity 0.3s ease;
  -webkit-mask-image: var(--index-nav-image);
  mask-image: var(--index-nav-image);
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
}
.list_indexNav01 a img {
  width: var(--index-nav-width);
}

.btn_indexMessage01 {
  --index-nav-image: url("/images/index/link_message.svg");
  --index-nav-width: min(100%, 206px);
  --index-nav-aspect: 206 / 125;
}
@media only screen and (max-width: 767px) {
  .btn_indexMessage01 {
    --index-nav-width: min(calc(100% - 20px), 206px);
  }
}

.btn_indexAbout01 {
  --index-nav-image: url("/images/index/link_about.svg");
  --index-nav-width: min(100%, 206px);
  --index-nav-aspect: 206 / 125;
}
@media only screen and (max-width: 767px) {
  .btn_indexAbout01 {
    --index-nav-width: min(calc(100% - 20px), 206px);
  }
}

.btn_indexSustainability01 {
  --index-nav-image: url("/images/index/link_sustainability.svg");
  --index-nav-width: min(100%, 208px);
  --index-nav-aspect: 208 / 125;
}
@media only screen and (max-width: 767px) {
  .btn_indexSustainability01 {
    --index-nav-width: min(calc(100% - 20px), 208px);
  }
}

.list_indexNews01 {
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 0.9375rem;
  font-weight: normal;
  line-height: 1.6;
}
.list_indexNews01 li {
  padding: 10px;
  border-bottom: 1px solid #717071;
}
@media print, screen and (min-width: 768px) {
  .list_indexNews01 li {
    display: flex;
    gap: 25px;
  }
}
.list_indexNews01 li:first-child {
  border-top: 1px solid #717071;
}
.list_indexNews01 time {
  font-weight: bold;
}
@media print, screen and (min-width: 768px) {
  .list_indexNews01 time {
    flex: 0 0 90px;
  }
}
@media only screen and (max-width: 767px) {
  .list_indexNews01 time {
    display: block;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page_index .layout_header01 {
    transition: none;
  }
}
/* -----------------------------------------------------------------------------
業務内容3ページ 共通
-------------------------------------------------------------------------- */
.ttl_service01 {
  padding: 20px;
  color: #fff;
  background: var(--service-color);
  text-align: center;
  font-size: 2.1875rem;
  font-weight: bold;
  line-height: 1.25;
}
@media only screen and (max-width: 767px) {
  .ttl_service01 {
    font-size: 1.125rem;
  }
}

.nav_service01 a {
  display: block;
  transition: opacity 0.25s ease;
}
.nav_service01 a:hover {
  opacity: 0.75;
}

.ttl_serviceNav01 {
  position: relative;
  margin-top: 0;
  margin-bottom: 0;
  text-align: center;
}

.video_service01 {
  width: 100%;
  display: block;
  background: #000;
}

/* -----------------------------------------------------------------------------
資源ページ
-------------------------------------------------------------------------- */
.page_resources {
  --service-color: #00b9e7;
}
.page_resources .layout_resources01 {
  padding: 15px 20px;
  color: #fff;
  background: #595757;
  font-size: 1.875rem;
  font-weight: normal;
  letter-spacing: 3px;
  line-height: 1.5;
  text-align: center;
}
@media only screen and (max-width: 767px) {
  .page_resources .layout_resources01 {
    font-size: 1.375rem;
  }
}
.page_resources .ttl_resources01 {
  font-size: 1.75rem;
  font-weight: bold;
}
@media only screen and (max-width: 767px) {
  .page_resources .ttl_resources01 {
    font-size: 1.25rem;
  }
}
.page_resources .ttl_resources02 {
  color: var(--service-color);
  font-size: 1.5625rem;
  font-weight: bold;
  line-height: 1;
  margin-bottom: 8px;
}
@media only screen and (max-width: 767px) {
  .page_resources .ttl_resources02 {
    font-size: 1.25rem;
  }
}
.page_resources .anim_materialFlow01 {
  width: 100%;
  max-width: 1000px;
}
.page_resources .anim_materialFlow01 canvas {
  display: block;
  width: 100%;
  height: auto;
}

/* -----------------------------------------------------------------------------
環境ページ
-------------------------------------------------------------------------- */
.page_environment {
  --service-color: #8fc31f;
}
.page_environment .ttl_environment01 {
  color: var(--service-color);
  text-align: center;
  font-size: 1.5625rem;
  font-weight: bold;
}
@media only screen and (max-width: 767px) {
  .page_environment .ttl_environment01 {
    font-size: 1.25rem;
  }
}
.page_environment .item_environmentFlow01 {
  margin-bottom: 0;
  text-align: center;
}
.page_environment .ttl_environmentFlow01 {
  display: inline-block;
  width: 240px;
  max-width: 100%;
  margin: 15px 0;
  padding: 8px 20px;
  border-radius: 14px;
  color: #fff;
  background: var(--service-color);
  font-size: 1.875rem;
  font-weight: bold;
  text-align: center;
}
@media only screen and (max-width: 767px) {
  .page_environment .ttl_environmentFlow01 {
    font-size: 1.25rem;
  }
}
.page_environment .layout_environmentFlow01 {
  position: relative;
  width: 540px;
  max-width: 100%;
  margin: 0 auto 17px;
  border-image: repeating-linear-gradient(to bottom, var(--service-color) 0 5px, transparent 5px 8px) 1;
  z-index: 1;
}
@media print, screen and (min-width: 768px) {
  .page_environment .layout_environmentFlow01 {
    padding: 0 20px 8px;
    border-right: 4px solid transparent;
    border-left: 4px solid transparent;
  }
}
@media only screen and (max-width: 767px) {
  .page_environment .layout_environmentFlow01 {
    padding: 0 0 8px;
  }
}
.page_environment .layout_environmentFlow01 > p:not(.ttl_environmentFlow01) {
  font-size: 0.9375rem;
  line-height: 1.75;
  text-align: left;
}
.page_environment .layout_environmentFlow01::before, .page_environment .layout_environmentFlow01::after {
  position: absolute;
  bottom: -17px;
  width: 0;
  height: 0;
  border-top: 17px solid var(--service-color);
  border-right: 10px solid transparent;
  border-left: 10px solid transparent;
  content: "";
  z-index: 2;
}
@media only screen and (max-width: 767px) {
  .page_environment .layout_environmentFlow01::before, .page_environment .layout_environmentFlow01::after {
    display: none;
  }
}
.page_environment .layout_environmentFlow01::before {
  left: -12px;
}
.page_environment .layout_environmentFlow01::after {
  right: -12px;
}
.page_environment .icon_environmentFlow01 {
  display: block;
  margin: 20px auto 0;
}
.page_environment .anim_recycleGraph01 {
  width: 100%;
  max-width: 700px;
}
.page_environment .anim_recycleGraph01 canvas {
  display: block;
  width: 100%;
  height: auto;
}

@media print, screen and (min-width: 768px) {
  .layout_environmentTransport01 {
    display: grid;
  }
  .layout_environmentTransport01 > img {
    grid-area: 1/1;
  }
}

.txt_environmentTransport01 {
  font-size: 0.9375rem;
  line-height: 1.75;
}
@media print, screen and (min-width: 768px) {
  .txt_environmentTransport01 {
    grid-area: 1/1;
    padding: 30px;
    color: #fff;
    z-index: 1;
  }
}

/* -----------------------------------------------------------------------------
健康ページ
-------------------------------------------------------------------------- */
.page_healthful {
  --service-color: #f39800;
}
.page_healthful .layout_healthfulCopy01 {
  max-width: 534px;
  font-size: 0.9375rem;
  line-height: 1.8;
}
.page_healthful .layout_healthfulCopy01 p:last-child {
  margin-bottom: 0;
}
.page_healthful .ttl_healthful01 {
  color: var(--service-color);
  text-align: center;
  font-size: 1.5625rem;
  font-weight: normal;
}
@media only screen and (max-width: 767px) {
  .page_healthful .ttl_healthful01 {
    font-size: 1.25rem;
  }
}
.page_healthful .layout_healthfulConcept01 {
  color: #fff;
  background: url("/images/service/healthful/bg_01.webp") center/cover no-repeat;
}
.page_healthful .layout_healthfulConcept01 h2 {
  font-size: 3.75rem;
  line-height: 1.1;
}
@media only screen and (max-width: 767px) {
  .page_healthful .layout_healthfulConcept01 h2 {
    font-size: 1.75rem;
  }
}
.page_healthful .layout_healthfulStory01 {
  color: #fff;
  background: url("/images/service/healthful/bg_02.webp") center/cover no-repeat;
}
.page_healthful .layout_healthfulStoryBox01 {
  max-width: 900px;
  margin-inline: auto;
  padding: 40px;
  background: rgba(36, 31, 32, 0.82);
}
@media only screen and (max-width: 767px) {
  .page_healthful .layout_healthfulStoryBox01 {
    padding: 25px 20px;
  }
}
@media print, screen and (min-width: 768px) {
  .page_healthful .layout_healthfulStoryBox01 h2 {
    text-align: center;
    font-size: 2.1875rem;
  }
}
@media only screen and (max-width: 767px) {
  .page_healthful .layout_healthfulStoryBox01 h2 {
    font-size: 1.375rem;
  }
}
.page_healthful .layout_healthfulStoryBox01 p {
  font-size: 1rem;
  line-height: 1.8;
}
.page_healthful .list_healthfulTest01 ul {
  max-width: 760px;
  margin: 0 auto;
  padding: 0;
  list-style: none;
}
@media print, screen and (min-width: 768px) {
  .page_healthful .list_healthfulTest01 ul {
    text-align: center;
  }
}
.page_healthful .list_healthfulTest01 li {
  padding: 10px;
  border-bottom: 1px solid rgba(243, 152, 0, 0.35);
  font-size: 1.0625rem;
}
.page_healthful .list_healthfulTest01 li:first-child {
  border-top: 1px solid rgba(243, 152, 0, 0.35);
}
.page_healthful .list_healthfulTest01 li::before {
  margin-right: 8px;
  color: var(--service-color);
  content: "▶";
}

@media print, screen and (min-width: 768px) {
  .list_healthfulFlow01 {
    display: flex;
    flex-direction: column;
  }
}
@media only screen and (max-width: 767px) {
  .list_healthfulFlow01 {
    max-width: 280px;
  }
}

.item_healthfulFlow01 {
  position: relative;
}
@media print, screen and (min-width: 768px) {
  .item_healthfulFlow01 {
    flex: 1;
  }
  .item_healthfulFlow01:last-child {
    flex: 0;
  }
}
@media only screen and (max-width: 767px) {
  .item_healthfulFlow01:not(:last-child) {
    padding-bottom: 28px;
  }
}
.item_healthfulFlow01:nth-child(odd) .txt_healthfulFlow01 {
  background: #f8b62d;
}
.item_healthfulFlow01:not(:last-child)::after {
  position: absolute;
  top: 58px;
  bottom: 8px;
  left: 50%;
  border-left: 4px dotted #f8b62d;
  content: "";
  transform: translateX(-50%);
}
@media only screen and (max-width: 767px) {
  .item_healthfulFlow01:not(:last-child)::after {
    top: 44px;
    bottom: 8px;
  }
}
.item_healthfulFlow01:not(:last-child)::before {
  position: absolute;
  bottom: 0;
  left: 50%;
  border-top: 10px solid #f8b62d;
  border-right: 8px solid transparent;
  border-left: 8px solid transparent;
  content: "";
  transform: translateX(-50%);
}

.txt_healthfulFlow01 {
  position: relative;
  z-index: 1;
  display: block;
  padding: 8px 20px;
  border-radius: 10px;
  color: #fff;
  background: var(--service-color);
  font-size: 1.75rem;
  text-align: center;
}
@media only screen and (max-width: 767px) {
  .txt_healthfulFlow01 {
    padding: 5px 15px;
    font-size: 1.125rem;
  }
}

@media print, screen and (min-width: 768px) {
  .layout_healthfulProduct01 {
    display: grid;
  }
  .layout_healthfulProduct01 > img {
    grid-area: 1/1;
    margin-top: 110px;
  }
}
@media only screen and (max-width: 767px) {
  .layout_healthfulProduct01 > img {
    margin-top: 1.5rem;
  }
}

@media print, screen and (min-width: 768px) {
  .txt_healthfulProduct01 {
    grid-area: 1/1;
    align-self: start;
    z-index: 1;
  }
}

/* -----------------------------------------------------------------------------
代表メッセージ
-------------------------------------------------------------------------- */
.layout_messageVision01 {
  background-image: url(/images/message/bg_01.webp);
  background-repeat: no-repeat;
  background-position: top center;
  background-size: cover;
}
@media print, screen and (min-width: 768px) {
  .layout_messageVision01 {
    padding-block: 80px 60px;
    min-height: 1200px;
  }
}
@media only screen and (max-width: 767px) {
  .layout_messageVision01 {
    padding-block: 50px 30px;
  }
}

.box_messageText01 {
  background: #595757;
}
@media print, screen and (min-width: 768px) {
  .box_messageText01 {
    padding: 40px 50px;
  }
}
@media only screen and (max-width: 767px) {
  .box_messageText01 {
    padding: 24px 20px;
  }
}

.layout_messageStripe01 {
  position: relative;
  z-index: 1;
  isolation: isolate;
}
.layout_messageStripe01::before {
  position: absolute;
  top: 0;
  left: 50%;
  z-index: -1;
  width: 136px;
  height: 100%;
  background: #fff100;
  content: "";
  transform: translateX(-50%);
}
@media only screen and (max-width: 767px) {
  .layout_messageStripe01::before {
    width: 80px;
  }
}

.box_messageQuote01 {
  text-align: center;
  position: relative;
}
@media print, screen and (min-width: 768px) {
  .box_messageQuote01 {
    padding-bottom: 300px;
    margin-bottom: -250px;
  }
}
@media only screen and (max-width: 767px) {
  .box_messageQuote01 {
    padding-bottom: 150px;
    margin-bottom: -30px;
  }
}

.deco_messageArrow01 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  z-index: -1;
}
@media print, screen and (min-width: 768px) {
  .deco_messageArrow01 {
    bottom: -100px;
  }
}
@media only screen and (max-width: 767px) {
  .deco_messageArrow01 {
    width: 333px;
    bottom: -150px;
  }
}

/* -----------------------------------------------------------------------------
#about
-------------------------------------------------------------------------- */
.list_about01, .list_about02 {
  max-width: 600px;
  margin-inline: auto;
  border-bottom: 1px dotted currentColor;
}
.list_about01 > li, .list_about02 > li {
  border-top: 1px dotted currentColor;
  padding: 15px 0;
}

.list_about02 > li {
  position: relative;
  padding-left: 16px;
}
@media print, screen and (min-width: 768px) {
  .list_about02 > li {
    padding-left: 21px;
  }
}
.list_about02 img {
  position: absolute;
  top: calc(15px + 0.75em);
  left: 0;
  transform: translateY(-50%);
}

.tbl_about01, .tbl_about02 {
  width: 100%;
  max-width: 600px;
  margin-inline: auto;
  border-bottom: 1px dotted currentColor;
  font-size: 0.9375rem;
}
.tbl_about01 th, .tbl_about02 th,
.tbl_about01 td,
.tbl_about02 td {
  border-top: 1px dotted currentColor;
  padding: 15px 0;
  font-weight: normal;
  text-align: left;
  vertical-align: top;
}
@media print, screen and (min-width: 768px) {
  .tbl_about01 th, .tbl_about02 th {
    width: 220px;
    padding-left: 110px;
  }
}
@media only screen and (max-width: 767px) {
  .tbl_about01 tr, .tbl_about02 tr {
    display: block;
    border-top: 1px dotted currentColor;
    padding: 15px 0;
  }
  .tbl_about01 th, .tbl_about02 th,
  .tbl_about01 td,
  .tbl_about02 td {
    display: block;
    width: auto;
    border-top: 0;
    padding: 0;
  }
  .tbl_about01 th, .tbl_about02 th {
    margin-bottom: 5px;
  }
}

.tbl_about02 th {
  color: #DFCCA1;
}
@media print, screen and (min-width: 768px) {
  .tbl_about02 th {
    padding-right: 1.5rem;
    text-align: right;
  }
}
.tbl_about02 .layout_row01 th, .tbl_about02 .layout_row01 td {
  padding-bottom: 0;
}
@media only screen and (max-width: 767px) {
  .tbl_about02 .layout_row02 {
    border-top: none;
    padding-top: 0;
  }
}
.tbl_about02 .layout_row02 th, .tbl_about02 .layout_row02 td {
  padding-top: 0;
  border-top: none;
}

.about_item::before, .list_licenseItem01 li::before {
  content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  vertical-align: middle;
  background-color: #C9A063;
  clip-path: polygon(25% 15%, 25% 85%, 80% 50%);
}

.list_licenseItem01 li {
  position: relative;
  padding-left: 1em;
}
.list_licenseItem01 li::before {
  position: absolute;
  top: calc(15px + 0.75em);
  left: 0;
  transform: translateY(-50%);
}

.about_item {
  display: inline-block;
  position: relative;
  padding-left: 1.2em;
}
.about_item::before {
  position: absolute;
  top: 0.75em;
  left: 0;
  transform: translateY(-50%);
}

.about_item + .about_item {
  margin-left: 1em;
}
@media only screen and (max-width: 767px) {
  .about_item + .about_item {
    margin-left: 0;
  }
}

@media print, screen and (min-width: 768px) {
  .layout_about01 {
    margin-top: -70px;
  }
}

.layout_gmap {
  aspect-ratio: 100/78;
  width: 100%;
}
.layout_gmap iframe {
  display: block;
  width: 100%;
  height: 100%;
}

/* -----------------------------------------------------------------------------
#sustainability
-------------------------------------------------------------------------- */
.list_sustainability01 {
  max-width: 600px;
  margin-inline: auto;
}
@media print, screen and (min-width: 768px) {
  .list_sustainability01 {
    text-align: center;
  }
}

.ttl_sustainability01 {
  padding-bottom: 3px;
  margin-bottom: 10px;
  border-bottom: 1px dashed #fff;
  color: #DFCCA1;
  font-size: 1.0625rem;
  font-weight: bold;
  line-height: 1.5;
}
.ttl_sustainability01 span {
  position: relative;
  display: inline-block;
  padding-left: 29px;
}
@media print, screen and (min-width: 768px) {
  .ttl_sustainability01 {
    text-align: center;
  }
}
.ttl_sustainability01 img {
  position: absolute;
  top: calc(0.75em - 1px);
  left: 0;
  transform: translateY(-50%);
}

.layout_ecoaction01 {
  max-width: 600px;
  margin-inline: auto;
  line-height: 1.75;
}

.list_ecoScope01 li::before, .list_ecoScope01 .icon_square::before {
  content: "";
  display: inline-block;
  width: 0.55em;
  height: 0.55em;
  margin-right: 0.6em;
  vertical-align: middle;
  background-color: #007940;
}

.list_ecoScope01 {
  border-bottom: 1px dotted currentColor;
}
.list_ecoScope01 > div {
  border-top: 1px dotted currentColor;
  padding: 15px 0;
}
@media print, screen and (min-width: 768px) {
  .list_ecoScope01 > div {
    display: flex;
  }
}
.list_ecoScope01 dt {
  color: #007940;
}
@media print, screen and (min-width: 768px) {
  .list_ecoScope01 dt {
    width: 220px;
    padding-left: 100px;
    padding-right: 20px;
  }
}
.list_ecoScope01 dd {
  margin: 0;
}
.list_ecoScope01 li, .list_ecoScope01 .icon_square {
  line-height: 2;
}
/* -----------------------------------------------------------------------------
スタッフインタビュー
-------------------------------------------------------------------------- */
.page-interview01 {
  --interview-color: #00b9ef;
}

.page-interview02 {
  --interview-color: #f39800;
}

.page-interview03 {
  --interview-color: #8fc31f;
}

.layout_interviewHero01 {
  position: relative;
  isolation: isolate;
}
@media print, screen and (min-width: 768px) {
  .layout_interviewHero01 {
    max-width: 1400px;
    margin-inline: auto;
    padding-inline: 12px;
  }
  .layout_interviewHero01::after {
    position: absolute;
    top: 0;
    right: -630px;
    z-index: -1;
    width: 2030px;
    height: 1828px;
    background: var(--interview-color);
    clip-path: polygon(100% 0, 0 100%, 0 0);
    content: "";
    pointer-events: none;
  }
}
@media print, screen and (min-width: 768px) and (min-width: 1401px) {
  .layout_interviewHero01::after {
    width: calc(100vw + 630px);
    height: calc(90.0493vw + 567.31px);
  }
}
@media only screen and (max-width: 767px) {
  .layout_interviewHero01 {
    background: var(--interview-color);
  }
}

.layout_interviewHero01 > * {
  position: relative;
  z-index: 1;
}

.layout_interviewLead01,
.layout_interviewNav01 {
  position: relative;
  z-index: 1;
}

.layout_interviewLead01 {
  background: #fff;
  color: var(--interview-color);
  line-height: 1.3;
}
@media print, screen and (min-width: 768px) {
  .layout_interviewLead01 {
    margin-top: -60px;
  }
}

.layout_interviewBody01 > .container {
  position: relative;
  z-index: 1;
}

.list_interviewStaff01 {
  position: relative;
  z-index: 2;
}
.list_interviewStaff01 a {
  display: block;
}
.list_interviewStaff01 a:hover {
  text-decoration: none;
}
.list_interviewStaff01 a:hover span {
  color: var(--interview-color);
}
.list_interviewStaff01 span {
  display: block;
  color: #B8B7B8;
  background: #fff;
  font-family: "Times New Roman", serif;
  line-height: 1.2;
  text-align: center;
}
@media print, screen and (min-width: 768px) {
  .list_interviewStaff01 span {
    font-size: 3.125rem;
  }
}
@media only screen and (max-width: 767px) {
  .list_interviewStaff01 span {
    font-size: 1.75rem;
  }
}
.list_interviewStaff01 .is-current span {
  color: var(--interview-color);
}

.ttl_interviewLead01 {
  color: #999796;
  font-weight: bold;
}
@media print, screen and (min-width: 768px) {
  .ttl_interviewLead01 {
    font-size: 2.1875rem;
  }
}
@media only screen and (max-width: 767px) {
  .ttl_interviewLead01 {
    font-size: 1.625rem;
  }
}

.layout_interviewProfile01 {
  position: relative;
  z-index: 1;
}
@media print, screen and (min-width: 768px) {
  .layout_interviewProfile01 {
    margin-top: -350px;
  }
}

.list_interviewQa01 {
  line-height: 1.65;
}
.list_interviewQa01 dt {
  margin-bottom: 10px;
  color: var(--interview-color);
  line-height: 1.45;
}

/* -----------------------------------------------------------------------------
#privacy
-------------------------------------------------------------------------- */
.ttl_privacy01 {
  padding: 10px 0;
  margin-bottom: 20px;
  border-top: 1px dotted currentColor;
  border-bottom: 1px dotted currentColor;
  text-align: center;
}
@media print, screen and (min-width: 768px) {
  .ttl_privacy01 {
    font-size: 1.25rem;
  }
}
@media only screen and (max-width: 767px) {
  .ttl_privacy01 {
    font-size: 1.125rem;
  }
}

.body_privacy01 {
  max-width: 700px;
  margin-inline: auto;
  line-height: 1.75;
}

/* -----------------------------------------------------------------------------
#news
お知らせ一覧・詳細（news.php、news-detail.php）
-------------------------------------------------------------------------- */
.list_news01 {
  max-width: 700px;
  margin: 0 auto;
  padding: 0;
  list-style: none;
  border-top: 1px dashed #717071;
}

.item_news01 {
  padding: 15px 0;
  border-bottom: 1px dashed #717071;
}
@media print, screen and (min-width: 768px) {
  .item_news01 {
    display: flex;
    flex-wrap: nowrap;
    align-items: baseline;
    column-gap: 24px;
    row-gap: 4px;
  }
  .item_news01 time {
    flex-shrink: 0;
    width: 220px;
    text-align: right;
  }
}
@media only screen and (max-width: 767px) {
  .item_news01 time {
    display: block;
  }
}

.news_single {
  max-width: 700px;
  margin-inline: auto;
}

.ttl_newsDetail01 {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  column-gap: 24px;
  row-gap: 4px;
  padding-bottom: 10px;
  margin-bottom: 15px;
  border-bottom: 1px dotted #717071;
}

.tag_newsCategory01 {
  display: inline-block;
  padding: 2px 10px;
  border: 1px solid #717071;
  font-size: 0.8125rem;
  line-height: 1.6;
}

.newMark {
  color: #DFCCA1;
  font-weight: bold;
}

.wysiwyg {
  font-size: 0.9375rem;
  line-height: 1.75;
}

.btn_newsNav01 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  max-width: 150px;
  padding: 10px;
  border: 1px solid #717071;
  font-size: 0.8125rem;
  text-align: center;
}
.btn_newsNav01:hover {
  text-decoration: none;
  opacity: 0.5;
}

.icon_newsNavArrow01 {
  flex-shrink: 0;
}

.pager {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  max-width: 700px;
  margin: 40px auto 0;
  gap: 8px;
}
.pager a,
.pager span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 10px;
  border: 1px solid #717071;
  font-size: 0.8125rem;
}
.pager a.current {
  background-color: #717071;
  color: #fff;
}

/* -----------------------------------------------------------------------------
#contact
お問い合わせ・採用エントリーフォーム共通（contact.html、careers/entry.html）
-------------------------------------------------------------------------- */
.layout_contactForm01 {
  max-width: 700px;
  margin-inline: auto;
}

.txt_contactAlert01 {
  color: #e60012;
}

.txt_contactRequiredNote01 {
  padding-bottom: 10px;
  border-bottom: 1px dashed #717071;
  color: #e60012;
}

.form_contact01 .form-control {
  border-radius: 0;
  border-color: #717071;
}
.form_contact01 .form-check-input {
  border-color: #717071;
}
.form_contact01 a:link {
  color: #036eb8;
}
.form_contact01 a:visited {
  color: #036eb8;
}
.form_contact01 a:hover {
  color: #036eb8;
}
.form_contact01 a:active {
  color: #036eb8;
}

.contact_w320 {
  max-width: 320px;
}

.contact_w175 {
  max-width: 175px;
}

.contact_w75 {
  max-width: 75px;
}

.btn_contactSubmit01 {
  display: block;
  width: 100%;
  max-width: 250px;
  margin-inline: auto;
  padding: 14px 30px;
  border: 0;
  border-radius: 5px;
  background-color: #595757;
  color: #fff;
  font-size: 0.9375rem;
  text-align: center;
  cursor: pointer;
}
@media print, screen and (min-width: 768px) {
  .btn_contactSubmit01 {
    margin-inline: 0;
  }
}
.btn_contactSubmit01:hover {
  color: #fff;
  opacity: 0.8;
}

.btn_contactBack01 {
  background-color: transparent;
  border: 1px solid #717071;
  color: #717071;
}
.btn_contactBack01:hover {
  color: #717071;
  opacity: 0.7;
}

.tbl_contactConfirm01 {
  width: 100%;
  margin-bottom: 20px;
}
.tbl_contactConfirm01 th,
.tbl_contactConfirm01 td {
  display: block;
  width: 100%;
  padding: 0;
  font-weight: normal;
  text-align: left;
}
.tbl_contactConfirm01 th {
  padding-top: 15px;
  font-size: 0.8125rem;
  color: #595757;
}
.tbl_contactConfirm01 td {
  padding-bottom: 15px;
  border-bottom: 1px dotted #717071;
  white-space: pre-wrap;
}