@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@300;400;500;700;900&display=swap");
/*フォントウェイト　300,400,500,700,900*/
@import url("https://fonts.googleapis.com/earlyaccess/roundedmplus1c.css");
/*
100=Thin (Hairline)
300=Light
400=Normal
500=Medium
700=Bold
800=Extra Bold (Ultra Bold)
900=Black (Heavy)
*/
@import url("https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@300;400;500;700;900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Jost:ital,wght@0,100..900;1,100..900&family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap");
/*/////////////////////////////
共通装飾クラス
/////////////////////////////*/
.font_eng {
  font-family: "Montserrat", sans-serif;
}

.inner_1100 {
  width: 1100px;
  margin: auto;
}
@media screen and (max-width: 767px) {
  .inner_1100 {
    width: 90%;
  }
}

.inner_1200 {
  width: 1200px;
  margin: auto;
}
@media screen and (max-width: 767px) {
  .inner_1200 {
    width: 90%;
  }
}

.inner_grade {
  /* 正しい記述: var(--, ...) は無名のカスタムプロパティ参照で無効。
     ここでは直接 linear-gradient を使います。 */
  background: linear-gradient(0deg, #FFF 2.68%, rgba(173, 130, 37, 0.1) 65.94%, rgba(173, 130, 37, 0.29) 100%);
}

.h_001 {
  font-family: Montserrat;
  font-size: 40px;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  letter-spacing: 2px;
  margin-bottom: 40px;
}
@media screen and (max-width: 767px) {
  .h_001 {
    font-size: 32px;
    margin-bottom: 20px;
  }
}
.h_001 span {
  display: block;
  font-size: 17px;
  margin-top: 20px;
  color: #EEBA48;
  font-size: 15px;
}
@media screen and (max-width: 767px) {
  .h_001 span {
    font-size: 13px;
    margin-top: 10px;
  }
}

.h_002 {
  text-align: center;
  font-family: Montserrat;
  font-size: 40px;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  letter-spacing: 2px;
  margin-bottom: 40px;
  color: #000;
}
@media screen and (max-width: 767px) {
  .h_002 {
    font-size: 32px;
    margin-bottom: 20px;
  }
}
.h_002 span {
  display: block;
  width: 100%;
  font-size: 17px;
  margin-top: 20px;
  color: #636363;
  font-size: 15px;
}
@media screen and (max-width: 767px) {
  .h_002 span {
    font-size: 13px;
    margin-top: 10px;
  }
}

.h_003 {
  font-size: 42px;
  font-weight: 700;
  line-height: 1.5;
  margin-bottom: 50px;
}
@media screen and (max-width: 767px) {
  .h_003 {
    font-size: 22px;
  }
}
.h_003 span {
  display: block;
  width: 100px;
  border-bottom: solid 5px #EEBA48;
  margin-top: 20px;
}

.btns {
  text-align: center;
  padding: 50px 0;
}

.btn_01 {
  color: #fff;
  display: inline-block;
  text-align: center;
  border: solid 1px #fff;
  border-radius: 5px;
  padding: 5px;
  font-size: 15px;
  font-weight: 700;
  min-width: 300px;
  background-image: url(../img/cmn/arrow-right.svg);
  background-repeat: no-repeat;
  background-position: right 15px center;
}
@media screen and (max-width: 767px) {
  .btn_01 {
    min-width: 80%;
    margin-left: 10%;
    font-size: 14px;
  }
}
.btn_01:hover {
  background-color: #fff;
  text-decoration: none;
  color: #4A4A4A;
}

.btn_02 {
  color: #000;
  display: inline-block;
  text-align: center;
  border: solid 1px #000;
  border-radius: 5px;
  padding: 5px;
  font-size: 15px;
  font-weight: 700;
  min-width: 300px;
  background-image: url(../img/cmn/arrow-right_bk.svg);
  background-repeat: no-repeat;
  background-position: right 15px center;
}
@media screen and (max-width: 767px) {
  .btn_02 {
    font-size: 14px;
  }
}
.btn_02:hover {
  background-color: #B39052;
  text-decoration: none;
  color: #fff;
  border: solid 1px #B39052;
  background-image: url(../img/cmn/arrow-right.svg);
}

.table_01 {
  width: 100%;
  border-collapse: collapse;
  margin-top: 20px;
}
.table_01 tr:last-child th,
.table_01 tr:last-child td {
  border-bottom: none;
}
.table_01 th,
.table_01 td {
  border-bottom: solid 1px #636363;
  padding: 30px 0;
  text-align: left;
  font-size: 16px;
  font-weight: 400;
}
@media screen and (max-width: 767px) {
  .table_01 th,
  .table_01 td {
    font-size: 13px;
    padding: 8px;
  }
}
.table_01 th {
  font-weight: 500;
  width: 30%;
}
@media screen and (max-width: 767px) {
  .table_01 th {
    width: 40%;
  }
}
.table_01 a {
  min-width: 230px;
  margin-top: 15px;
}

/*/////////////////////////////
リセットCSS
/////////////////////////////*/
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

/* HTML5 display-role reset for older browsers */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}

body {
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
}

ol,
ul {
  list-style: none;
}

blockquote,
q {
  quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
  content: "";
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

* {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

img {
  vertical-align: bottom;
}

/*
=====================================================
よく使用するクラス等
=====================================================
*/
a {
  text-decoration: none;
  color: #333333;
}

a:hover {
  text-decoration: underline;
  -webkit-transition: 0.3s ease-in-out;
  -moz-transition: 0.3s ease-in-out;
  -o-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
}

a img {
  -webkit-transition: 0.3s ease-in-out;
  -moz-transition: 0.3s ease-in-out;
  -o-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
}

a img:hover {
  opacity: 0.6;
  filter: alpha(opacity=60);
}

.clear {
  clear: both;
  line-height: 0px;
}

.clearfix:after {
  content: ".";
  display: block;
  height: 0;
  clear: both;
  visibility: hidden;
}

.clearfix {
  display: inline-table;
  overflow: hidden;
  zoom: 1;
  /*for IE 5.5-7*/
}

/* Hides from IE-mac \*/
.clearfix {
  display: block;
}

/* End hide from IE-mac */
.img_left {
  float: left;
  margin-right: 45px;
  margin-bottom: 15px;
}

.img_right {
  float: right;
  margin-left: 45px;
  margin-bottom: 20px;
}

.img_fit {
  width: 100%;
  height: auto;
}

.txt_right {
  text-align: right;
}

.txt_left {
  text-align: left;
}

.txt_center {
  text-align: center;
}

.v_align_bottom {
  vertical-align: bottom;
}

.mb_5 {
  margin-bottom: 5px !important;
}

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

.mb_15 {
  margin-bottom: 15px !important;
}

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

.mb_25 {
  margin-bottom: 25px !important;
}

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

.mb_35 {
  margin-bottom: 35px !important;
}

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

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

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

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

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

.mb_150 {
  margin-bottom: 150px !important;
}

.mb_200 {
  margin-bottom: 200px !important;
}

.mt_5 {
  margin-top: 5px !important;
}

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

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

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

.mt_25 {
  margin-top: 25px !important;
}

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

.mt_75 {
  margin-top: 75px !important;
}

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

.mr_0 {
  margin-right: 0px !important;
}

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

.mr_15 {
  margin-right: 15px !important;
}

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

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

.mr_50 {
  margin-right: 50px !important;
}

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

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

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

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

.pl_75 {
  padding-left: 75px !important;
}

.pl_100 {
  padding-left: 100px !important;
}

.font_sss {
  font-size: 8px;
}

.font_ss {
  font-size: 10px;
}

.font_s {
  font-size: 13px;
}

.font_m {
  font-size: 15px;
}

.font_l {
  font-size: 18px;
}

.font_ll {
  font-size: 20px;
}

.font_3l {
  font-size: 25px;
}

.font_4l {
  font-size: 30px;
}

.font_5l {
  font-size: 50px;
}

.font_it {
  font-family: Helvetica, Arial, sans-serif;
  font-style: italic;
}

.font_cap {
  font-size: 10px;
  line-height: 1.3;
  margin-top: 20px;
}

.ptop {
  position: fixed;
  bottom: 30px;
  right: 30px;
  z-index: 11;
}

.ptop img {
  filter: Alpha(Opacity=50);
  -moz-opacity: 0.5;
  opacity: 0.5;
}

.ptop img:hover {
  filter: Alpha(Opacity=100);
  -moz-opacity: 1;
  opacity: 1;
  cursor: pointer;
}

#fb-root {
  display: none;
}

.sp {
  display: none;
}

@media screen and (max-width: 767px) {
  .pc {
    display: none;
  }
  .sp {
    display: block;
  }
  .ptop {
    bottom: 2%;
    right: 2%;
    z-index: 9999;
  }
  .pic100p {
    width: 100%;
  }
  .pic90p {
    width: 90%;
  }
  .pic80p {
    width: 80%;
  }
  .pic70p {
    width: 70%;
  }
  .pic60p {
    width: 60%;
  }
  .pic50p {
    width: 50%;
  }
  .pic40p {
    width: 40%;
  }
  .pic30p {
    width: 30%;
  }
  .pic20p {
    width: 20%;
  }
  .pic10p {
    width: 10%;
  }
}
body {
  font-family: "Zen Kaku Gothic New", sans-serif;
  background-color: #4A4A4A;
  color: #fff;
  line-height: 2;
  font-weight: 400;
  font-size: 16px;
}
@media screen and (max-width: 767px) {
  body {
    font-size: 13px;
  }
}
body {
  /* /////////////////////////////
  共通レイアウト＋トップページ
  ///////////////////////////// */
}
body header {
  padding: 20px 50px;
  position: fixed;
  width: 100%;
  background: linear-gradient(0deg, rgba(201, 201, 201, 0) 0%, rgba(169, 169, 169, 0.37) 50.96%, rgba(125, 125, 125, 0.5) 100%);
  z-index: 9999;
}
@media screen and (max-width: 767px) {
  body header {
    box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.2);
    backdrop-filter: blur(10px);
    padding: 0;
    padding-bottom: 0;
  }
}
@media only screen and (max-width: 1170px) and (min-width: 768px) {
  body header {
    min-width: 1170px;
  }
}
body header .inner {
  display: flex;
  justify-content: space-between;
}
@media screen and (max-width: 767px) {
  body header .inner {
    display: block;
  }
}
@media screen and (max-width: 767px) {
  body header .header_bar {
    background-color: rgba(255, 255, 255, 0.8);
    padding: 15px;
    padding-bottom: 5px;
    position: relative;
  }
  body header .header_bar .sp_btn {
    position: absolute;
    right: 15px;
    top: 5px;
    z-index: 100;
    /*ボタン外側※レイアウトによってpositionや形状は適宜変更してください*/
  }
  body header .header_bar .sp_btn .openbtn {
    /*ボタン内側の基点となるためrelativeを指定。
    追従するナビゲーションの場合はfixed＋top、rightといった位置をセットで指定*/
    position: relative;
    width: 60px;
    height: 60px;
    cursor: pointer;
    transition: all 0.4s;
    /*アニメーションの設定*/
    border-radius: 100px;
  }
  body header .header_bar .sp_btn {
    /*ボタン内側*/
    /*activeクラスが付与されると線が回転して×に*/
  }
  body header .header_bar {
    /* /.sp_btn */
  }
}
@media screen and (max-width: 767px) and (min-width: 768px) {
  body header .header_bar .sp_btn .openbtn {
    display: none;
  }
}
@media screen and (max-width: 767px) {
  body header .header_bar .sp_btn .openbtn span {
    display: inline-block;
    transition: all 0.4s;
    /*アニメーションの設定*/
    position: absolute;
    left: 15px;
    height: 4px;
    background: #000;
    border-radius: 10px;
  }
  body header .header_bar .sp_btn .openbtn span:nth-of-type(1) {
    top: 20px;
    width: 50%;
  }
  body header .header_bar .sp_btn .openbtn span:nth-of-type(2) {
    top: 32px;
    width: 50%;
  }
  body header .header_bar .sp_btn .openbtn.active span:nth-of-type(1) {
    top: 21px;
    left: 15px;
    transform: translateY(6px) rotate(-45deg);
    width: 50%;
    background: #000;
  }
  body header .header_bar .sp_btn .openbtn.active span:nth-of-type(2) {
    top: 33px;
    left: 15px;
    transform: translateY(-6px) rotate(45deg);
    width: 50%;
    background: #000;
  }
}
body header .logo {
  width: 300px;
  height: 55px;
  display: block;
  background-image: url(../img/cmn/logo.svg);
  background-repeat: no-repeat;
  background-size: auto 100%;
  text-indent: -1000px;
}
@media screen and (max-width: 767px) {
  body header .logo {
    width: 55%;
    display: block;
    background-size: 100% auto;
    background-position: center;
  }
}
body header .logo:hover {
  opacity: 0.7;
}
@media screen and (min-width: 768px) {
  body header .white {
    background-image: url(../img/cmn/logo_white.svg);
  }
}
body header nav {
  display: flex;
  align-items: center;
}
@media screen and (max-width: 767px) {
  body header nav {
    flex-wrap: wrap;
    background-color: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(12px);
    padding: 20px 4%;
    width: 100%;
    display: none;
  }
}
body header nav ul {
  display: flex;
  gap: 35px;
  align-items: center;
}
@media screen and (max-width: 767px) {
  body header nav ul {
    display: block;
    width: 100%;
    height: 100vh;
    padding-top: 20px;
  }
  body header nav ul li {
    width: 100%;
    position: relative;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  body header nav ul li {
    margin-bottom: 25px;
  }
}
@media screen and (max-width: 767px) and (min-width: 768px) {
  body header nav ul li span {
    display: none;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  body header nav ul li span {
    font-size: 12px;
    font-weight: 400;
    color: #EEBA48;
    position: absolute;
    left: 50%;
    top: 30%;
  }
}
@media screen and (max-width: 767px) {
  body header nav ul li.sub {
    padding-left: 20px;
    background-image: url(../img/cmn/cursor_menu.svg);
    background-repeat: no-repeat;
    background-position: left center;
  }
}
body header nav ul a {
  font-family: "Montserrat", sans-serif;
  color: #fff;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-shadow: 2px 1px 0 rgba(0, 0, 0, 0.3);
}
@media screen and (max-width: 767px) {
  body header nav ul a {
    font-size: 20px;
  }
}
body header nav ul a:hover {
  text-decoration: none;
  color: #666EBA;
  text-shadow: none;
}
body header nav ul .contact a {
  display: block;
  background-color: #666EBA;
  border-radius: 5px;
  font-size: 16px;
  font-weight: 700;
  line-height: normal;
  letter-spacing: 1.6px;
  padding: 10px 25px;
  padding-right: 55px;
  background-image: url(../img/cmn/mail.svg);
  background-repeat: no-repeat;
  background-position: right 15px center;
}
@media screen and (max-width: 767px) {
  body header nav ul .contact a {
    text-align: center;
    font-size: 18px;
    margin-top: 50px;
    margin-bottom: 30px;
    padding: 15px;
    background-position: right 55px center;
  }
}
body header nav ul .contact a:hover {
  background-color: #B39052;
  color: #fff;
}
body header nav ul .privacy a {
  font-size: 13px;
  font-weight: 400;
}
body {
  /* Logo animation: after drawing (.active), slowly zoom and fade out when .logo_fade is added */
}
body .logo_anime svg {
  display: block;
  transform-origin: 50% 50%;
  transition: transform 1600ms cubic-bezier(0.2, 0.8, 0.2, 1), opacity 1600ms ease;
  opacity: 1;
  will-change: transform, opacity;
}
body .logo_anime svg.logo_fade {
  transform: scale(10.5);
  opacity: 0;
  transition: 2s ease-in-out;
}
body #top_KV {
  min-height: 865px;
  background-color: #fff;
  /* background-image: url(../img/top/bg_01.jpg); */
  background-size: cover;
  border-radius: 0 0 230px 0;
  overflow: hidden;
  position: relative;
}
@media screen and (max-width: 767px) {
  body #top_KV {
    border-radius: 0 0 115px 0;
    min-height: 80vh;
  }
}
body #top_KV .logo_anime {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: 999;
  display: block;
}
@media screen and (max-width: 767px) {
  body #top_KV .logo_anime {
    width: 80%;
  }
}
body #top_KV .cpy {
  position: absolute;
  left: 50px;
  bottom: 50px;
  opacity: 0;
  transform: translateX(-30px);
  transition: transform 800ms cubic-bezier(0.2, 0.8, 0.2, 1), opacity 800ms ease;
  transition: 1.5s ease-in-out;
  text-shadow: 0 0 10px rgba(0, 0, 0, 0.7);
}
@media screen and (max-width: 767px) {
  body #top_KV .cpy {
    left: 4%;
    bottom: 60px;
  }
}
body #top_KV .cpy h2 {
  color: #FFF;
  font-family: Montserrat;
  font-size: 90px;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  letter-spacing: 4.55px;
  line-height: 0.5;
  margin-bottom: 35px;
}
@media screen and (max-width: 767px) {
  body #top_KV .cpy h2 {
    font-size: 60px;
    line-height: 1;
    margin-bottom: 20px;
  }
}
body #top_KV .cpy h2 span {
  color: #FFF;
  font-family: Montserrat;
  font-size: 70px;
  font-style: normal;
  font-weight: 600;
  line-height: normal;
  letter-spacing: 3.55px;
}
@media screen and (max-width: 767px) {
  body #top_KV .cpy h2 span {
    font-size: 28px;
    line-height: 1;
    display: block;
  }
}
body #top_KV .cpy p {
  font-size: 23px;
  font-style: normal;
  font-weight: 700;
  letter-spacing: 1.15px;
}
@media screen and (max-width: 767px) {
  body #top_KV .cpy p {
    font-size: 15px;
  }
}
body #top_KV {
  /* Swiper KV: fill the #top_KV area and use background images */
}
body #top_KV .swiper_kv {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  border-radius: 0 0 230px 0;
  opacity: 0;
  transition: 1.5s ease-in-out;
}
body #top_KV .swiper_kv .swiper-wrapper {
  height: 100%;
  position: relative;
}
body #top_KV .swiper_kv .swiper-slide {
  height: 100%;
  min-height: 100%;
  position: relative;
  overflow: hidden;
  /* allow Swiper to control opacity/translate for fade; use ::before for scalable background */
}
body #top_KV .swiper_kv {
  /* background layer for each slide - scale this for zoom effect without interfering with Swiper's transform */
}
body #top_KV .swiper_kv .swiper-slide::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  transform: scale(1);
  transition: transform 1500ms cubic-bezier(0.2, 0.8, 0.2, 1);
  will-change: transform;
  z-index: 0;
}
body #top_KV .swiper_kv {
  /* slide-specific backgrounds */
}
body #top_KV .swiper_kv .swiper-slide.slide_01::before {
  background-image: url(../img/top/slider_01.jpg);
}
body #top_KV .swiper_kv .swiper-slide.slide_02::before {
  background-image: url(../img/top/slider_02.jpg);
}
body #top_KV .swiper_kv .swiper-slide.slide_03::before {
  background-image: url(../img/top/slider_03.jpg);
}
body #top_KV .swiper_kv {
  /* active slide: slowly zoom the bg layer */
}
body #top_KV .swiper_kv .swiper-slide.swiper-slide-active::before {
  transform: scale(1.1);
}
body #top_KV .swiper_kv.kv_show {
  opacity: 1;
}
body #top_KV {
  /* show/copy animation for cpy (slide in from left + fade) */
}
body #top_KV .cpy.cpy_show {
  opacity: 1;
  transform: translateX(0);
}
body #top_KV {
  /* ensure content sits above the KV */
}
body #top_KV .cpy {
  z-index: 2;
}
body .top_page #service,
body .top_page #clients {
  padding: 120px 0;
}
@media screen and (max-width: 767px) {
  body .top_page #service,
  body .top_page #clients {
    padding: 60px 0;
  }
}
body .top_page #service .inner_1100 {
  display: flex;
  gap: 80px;
}
@media screen and (max-width: 767px) {
  body .top_page #service .inner_1100 {
    display: block;
  }
}
body .top_page #service .txt {
  width: 80%;
}
@media screen and (max-width: 767px) {
  body .top_page #service .txt {
    width: 100%;
    margin-bottom: 50px;
  }
}
body .top_page #service .txt p {
  margin-bottom: 50px;
}
body .top_page #service .icons {
  display: flex;
  align-items: flex-end;
}
body .top_page #service .icons ul {
  display: flex;
  gap: 5px;
  flex-wrap: wrap;
}
@media screen and (max-width: 767px) {
  body .top_page #service .icons ul {
    gap: 20px 4%;
    justify-content: space-between;
    width: 90%;
    margin: auto;
  }
}
body .top_page #service .icons ul li {
  background-image: url(../img/cmn/bg_gold.svg);
  background-size: cover;
  border-radius: 5px;
  width: 24%;
  transition: transform 0.2s ease;
  transform-origin: center;
}
@media screen and (max-width: 767px) {
  body .top_page #service .icons ul li {
    width: 47%;
  }
}
body .top_page #service .icons ul li img {
  width: 100%;
  height: auto;
  display: block;
}
body .top_page #service .icons ul li:hover {
  transform: scale(1.2);
}
body .top_page #service .icons ul li:hover img {
  opacity: 1;
}
body .top_page #clients {
  background-color: #fff;
}
body .top_page #clients ul {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}
@media screen and (max-width: 767px) {
  body .top_page #clients ul {
    gap: 15px 1%;
    margin: auto;
  }
}
body .top_page #clients ul li {
  width: 15%;
}
@media screen and (max-width: 767px) {
  body .top_page #clients ul li {
    width: 32%;
  }
}
body .top_page #clients ul li img {
  width: 100%;
}
body .top_page #projects {
  background-color: #fff;
}
body .top_page #projects .inner_grade {
  padding: 100px 0;
  /* border-radius: 230px 0 0 0; */
}
@media screen and (max-width: 767px) {
  body .top_page #projects .inner_grade {
    padding: 50px 0;
    border-radius: 115px 0 0 0;
  }
}
body .top_page #projects .project_list {
  max-width: 1200px;
  margin: auto;
  display: flex;
  gap: 40px 15px;
  margin-top: 70px;
  margin-bottom: 50px;
  flex-wrap: wrap;
}
@media screen and (max-width: 767px) {
  body .top_page #projects .project_list {
    max-width: 92%;
    gap: 20px 3%;
    flex-wrap: wrap;
    margin-bottom: 25px;
  }
}
body .top_page #projects .project_list li {
  width: 23%;
  border-radius: 5px;
  transition: transform 0.2s ease;
  transform-origin: center;
  background-color: #fff;
  box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.25);
}
@media screen and (max-width: 767px) {
  body .top_page #projects .project_list li {
    width: 48%;
  }
}
body .top_page #projects .project_list li:hover {
  transform: scale(1.1);
}
body .top_page #projects .project_list li:hover a {
  text-decoration: none;
}
body .top_page #projects .project_list li:hover img {
  opacity: 1;
}
body .top_page #projects .project_list li img {
  width: 100%;
  height: auto;
  border-radius: 5px 5px 0 0;
}
body .top_page #projects .project_list li .txt {
  background-color: #fff;
  padding: 20px;
  padding-top: 10px;
  border-radius: 0 0 5px 5px;
}
@media screen and (max-width: 767px) {
  body .top_page #projects .project_list li .txt {
    padding: 10px 20px;
    padding-bottom: 15px;
  }
}
body .top_page #projects .project_list li .txt .cat {
  color: #FFF;
  font-family: Montserrat;
  font-size: 13px;
  font-style: normal;
  font-weight: 600;
  display: inline-block;
  padding: 0 10px;
  background-color: #B39052;
  border-radius: 5px;
  margin-bottom: 10px;
}
@media screen and (max-width: 767px) {
  body .top_page #projects .project_list li .txt .cat {
    font-size: 9px;
    margin-bottom: 5px;
  }
}
body .top_page #projects .project_list li .txt .ttl {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
}
@media screen and (max-width: 767px) {
  body .top_page #projects .project_list li .txt .ttl {
    font-size: 15px;
  }
}
body .top_page #member {
  background-color: #fff;
}
body .top_page #member .inner {
  background-color: #4A4A4A;
  padding: 120px 0;
  border-radius: 0 230px 0 0;
}
@media screen and (max-width: 767px) {
  body .top_page #member .inner {
    padding: 60px 0;
    border-radius: 0 115px 0 0;
  }
}
body .top_page #member .inner_1100 {
  display: flex;
  justify-content: space-between;
}
@media screen and (max-width: 767px) {
  body .top_page #member .inner_1100 {
    display: block;
  }
}
body .top_page #member .inner_1100 .btn {
  display: flex;
  align-items: flex-end;
}
@media screen and (max-width: 767px) {
  body .top_page #member .inner_1100 .btn {
    margin-top: 35px;
  }
}
body .top_page #member .swiper_member {
  margin-top: 100px;
  overflow: hidden;
  /* prevent horizontal scroll */
  position: relative;
}
@media screen and (max-width: 767px) {
  body .top_page #member .swiper_member {
    margin-top: 50px;
  }
}
body .top_page #member .swiper_member .swiper-wrapper {
  padding-left: 25px;
  padding-right: 25px;
  box-sizing: border-box;
  /* avoid extra overflow from padding */
  padding-bottom: 35px;
}
body .top_page #member .swiper_member .swiper-slide {
  border-radius: 5px;
  text-align: center;
  transition: transform 0.2s ease;
}
body .top_page #member .swiper_member .swiper-slide:hover {
  /* transform: scale(1.1); */
}
body .top_page #member .swiper_member .swiper-slide:hover img {
  opacity: 1;
}
body .top_page #member .swiper_member .swiper-slide:hover a {
  text-decoration: none;
}
body .top_page #member .swiper_member .swiper-slide img {
  border-radius: 5px 5px 0 0;
  display: block;
  width: 100%;
  height: auto;
}
body .top_page #member .swiper_member .swiper-slide .txt {
  background-color: #000;
  border-radius: 0 0 5px 5px;
  padding: 20px;
}
@media screen and (max-width: 767px) {
  body .top_page #member .swiper_member .swiper-slide .txt {
    padding: 5px 15px;
  }
}
body .top_page #member .swiper_member .swiper-slide .txt .pos {
  color: #EEBA48;
  font-family: Montserrat;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.734px;
}
@media screen and (max-width: 767px) {
  body .top_page #member .swiper_member .swiper-slide .txt .pos {
    font-size: 10px;
  }
}
body .top_page #member .swiper_member .swiper-slide .txt .name {
  font-size: 28px;
  line-height: 1.5;
  color: #fff;
}
@media screen and (max-width: 767px) {
  body .top_page #member .swiper_member .swiper-slide .txt .name {
    font-size: 18px;
  }
}
body .top_page #member .swiper_member .swiper-slide .txt .eng {
  font-family: Montserrat;
  color: #989898;
  font-size: 12px;
  letter-spacing: 0.611px;
}
@media screen and (max-width: 767px) {
  body .top_page #member .swiper_member .swiper-slide .txt .eng {
    font-size: 9px;
  }
}
body .top_page #member .swiper_member .swiper-slide {
  /* odd slides: add top margin to stagger layout */
  transition: transform 1000ms cubic-bezier(0.2, 0.8, 0.2, 1);
  will-change: transform;
}
body .top_page #member .swiper_member .swiper-slide:nth-child(odd) {
  transform: translateY(35px);
}
body .top_page #member .swiper_member .swiper-button-prev {
  width: 50px;
  height: 50px;
  background-image: url(../img/cmn/btn_control.svg);
  position: absolute;
  left: 15px;
  top: 50%;
  z-index: 98;
}
@media screen and (max-width: 767px) {
  body .top_page #member .swiper_member .swiper-button-prev {
    display: none;
  }
}
body .top_page #member .swiper_member .swiper-button-next {
  width: 50px;
  height: 50px;
  background-image: url(../img/cmn/btn_control.svg);
  position: absolute;
  right: 15px;
  top: 50%;
  z-index: 98;
  transform: rotate(180deg);
}
@media screen and (max-width: 767px) {
  body .top_page #member .swiper_member .swiper-button-next {
    display: none;
  }
}
body .top_page #member .swiper_member .swiper-button-prev:after,
body .top_page #member .swiper_member .swiper-rtl .swiper-button-next:after {
  content: none;
}
body .top_page #member .swiper_member .swiper-button-next:after,
body .top_page #member .swiper_member .swiper-rtl .swiper-button-prev:after {
  content: none;
}
body {
  /* /.top_page */
}
body #contact {
  background-color: #fff;
}
body #contact .inner_grade {
  padding: 70px 0;
}
@media screen and (max-width: 767px) {
  body #contact .inner_grade {
    padding: 35px 15px;
    padding-bottom: 70px;
  }
}
body #contact .contact_box {
  border-radius: 5px;
  background-image: url(../img/cmn/bg_contact.jpg);
  background-repeat: no-repeat;
  background-size: cover;
  box-shadow: 0 0 17px 0 rgba(0, 0, 0, 0.35);
  padding: 35px 75px;
  display: flex;
  justify-content: space-between;
}
@media screen and (max-width: 767px) {
  body #contact .contact_box {
    display: block;
    padding: 30px;
  }
}
body #contact .contact_box .left {
  width: 60%;
}
@media screen and (max-width: 767px) {
  body #contact .contact_box .left {
    width: 100%;
  }
}
body #contact .contact_box .right {
  width: 40%;
  display: flex;
  align-items: center;
}
@media screen and (max-width: 767px) {
  body #contact .contact_box .right {
    width: 100%;
  }
}
body #contact a {
  width: 100%;
  display: block;
  background-color: #666EBA;
  border-radius: 5px;
  font-size: 16px;
  font-weight: 700;
  line-height: normal;
  letter-spacing: 1.6px;
  padding: 15px 25px;
  padding-right: 25px;
  background-image: url(../img/cmn/mail.svg);
  background-repeat: no-repeat;
  background-position: right 15px center;
  color: #fff;
  text-align: center;
  font-size: 18px;
}
@media screen and (max-width: 767px) {
  body #contact a {
    font-size: 16px;
    margin-top: 25px;
  }
}
body #contact a:hover {
  background-color: #B39052;
  color: #fff;
  text-decoration: none;
}
body footer {
  padding: 50px;
  padding-bottom: 80px;
  display: flex;
  justify-content: space-between;
  gap: 35px;
}
@media screen and (max-width: 767px) {
  body footer {
    display: block;
    padding: 6%;
    padding-top: 40px;
    padding-bottom: 50px;
  }
}
body footer .left ul {
  display: flex;
  align-items: center;
  margin-bottom: 30px;
  gap: 30px;
}
@media screen and (max-width: 767px) {
  body footer .left ul {
    gap: 2%;
    margin: auto;
    justify-content: space-between;
    margin-bottom: 30px;
    width: 90%;
  }
}
body footer .left ul li img {
  height: 60px;
}
@media screen and (max-width: 767px) {
  body footer .left ul li img {
    height: 30px;
  }
}
body footer .left ul li:first-child img {
  height: 45px;
}
@media screen and (max-width: 767px) {
  body footer .left ul li:first-child img {
    height: 35px;
  }
}
body footer .left address {
  font-size: 12px;
}
@media screen and (max-width: 767px) {
  body footer .left address {
    text-align: center;
  }
}
body footer .left address p.name {
  font-size: 15px;
  font-weight: 500;
}
body footer .left address p.name span {
  font-size: 13px;
}
body footer .right .footer_nav {
  display: flex;
  gap: 35px;
  align-items: center;
  margin-bottom: 30px;
}
@media screen and (max-width: 767px) {
  body footer .right .footer_nav {
    display: none;
  }
}
body footer .right .footer_nav a {
  font-family: "Montserrat", sans-serif;
  color: #fff;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-shadow: 2px 1px 0 rgba(0, 0, 0, 0.3);
  font-size: 13px;
}
body footer .right .footer_nav a:hover {
  text-decoration: none;
  color: #666EBA;
  text-shadow: none;
}
body footer .right .sns_link {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-bottom: 35px;
}
@media screen and (max-width: 767px) {
  body footer .right .sns_link {
    justify-content: center;
    width: 30%;
    margin: 30px auto;
  }
  body footer .right .sns_link li {
    width: 50px;
  }
}
body footer .right p.cpy {
  text-align: right;
  font-size: 13px;
}
@media screen and (max-width: 767px) {
  body footer .right p.cpy {
    text-align: center;
  }
}
body footer .right p.cpy a {
  color: #fff;
}
body footer .right p.cpy span {
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.1em;
}
body #pageTop {
  position: fixed;
  z-index: 98;
  right: 25px;
  bottom: 25px;
  transition: 0.5ms;
}
@media screen and (max-width: 767px) {
  body #pageTop {
    width: 50px;
    height: 50px;
    right: 4%;
    bottom: 0;
  }
  body #pageTop img {
    width: 100%;
  }
}

/* /////////////////////////////
下層ページ
///////////////////////////// */
.subpage {
  background-image: url(../img/cmn/bg_grade_gray.svg);
  background-repeat: repeat-x;
  background-position: center top;
  background-color: #4A4A4A;
  overflow: hidden;
}
.subpage .service {
  background-image: url(../img/top/bg_03.jpg);
  background-size: cover;
  background-position: center;
}
.subpage .project {
  background-image: url(../img/top/bg_02.jpg);
  background-size: cover;
  background-position: center;
}
.subpage .project_single {
  background-image: url(../img/top/bg_01.jpg);
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: center;
  padding: 80px 0;
}
@media screen and (max-width: 767px) {
  .subpage .project_single {
    padding: 60px 0;
  }
}
.subpage .member {
  background-image: url(../img/top/bg_04.jpg);
  background-size: cover;
  background-position: center;
}
.subpage .about {
  background-image: url(../img/top/bg_05.jpg);
  background-size: cover;
  background-position: center;
}
.subpage .privacy {
  background-image: url(../img/top/bg_06.jpg);
  background-size: cover;
  background-position: center;
}
.subpage .contact {
  background-image: url(../img/top/bg_07.jpg);
  background-size: cover;
  background-position: center;
}

#ttl_sub_area {
  border-radius: 0 0 230px 0;
  overflow: hidden;
  position: relative;
  padding: 100px 0;
}
@media screen and (max-width: 767px) {
  #ttl_sub_area {
    border-radius: 0 0 115px 0;
    padding: 60px 0;
    padding-top: 120px;
  }
}
#ttl_sub_area .ttl {
  padding-left: 40px;
  border-left: 5px solid #EEBA48;
}
@media screen and (max-width: 767px) {
  #ttl_sub_area .ttl {
    padding-left: 3%;
  }
}
#ttl_sub_area .ttl h2 {
  font-family: Montserrat;
  font-size: 78px;
  font-style: normal;
  font-weight: 700;
  line-height: 69px;
  /* 88.462% */
  letter-spacing: 3.9px;
  text-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
  margin-bottom: 20px;
}
@media screen and (max-width: 767px) {
  #ttl_sub_area .ttl h2 {
    font-size: 35px;
    margin-bottom: 0;
    line-height: 1.5;
  }
}
#ttl_sub_area .ttl p {
  font-size: 17px;
  font-weight: 500;
}
@media screen and (max-width: 767px) {
  #ttl_sub_area .ttl p {
    font-size: 15px;
  }
}
#ttl_sub_area .ttl p span {
  font-weight: 700;
  font-size: 20px;
  color: #EEBA48;
}
@media screen and (max-width: 767px) {
  #ttl_sub_area .ttl_single {
    margin-top: 30px;
  }
}
#ttl_sub_area .ttl_single .cat {
  border-radius: 5px;
  padding: 5px 15px;
  display: inline-block;
  background: #AD8225;
  color: #fff;
  font-family: Montserrat;
  font-size: 10px;
  font-style: normal;
  font-weight: 600;
}
@media screen and (max-width: 767px) {
  #ttl_sub_area .ttl_single .cat {
    font-size: 9px;
    padding: 0 10px;
  }
}
#ttl_sub_area .ttl_single h2 {
  font-size: 40px;
  line-height: 1.5;
  font-weight: 700;
  text-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
  padding-bottom: 30px;
}
@media screen and (max-width: 767px) {
  #ttl_sub_area .ttl_single h2 {
    font-size: 18px;
    padding-bottom: 15px;
  }
}

/* /////////////////////////////
Our Service
///////////////////////////// */
.sub_service {
  padding-top: 120px;
  background-image: url(../img/cmn/bg_logo.svg);
  background-repeat: no-repeat;
}
@media screen and (max-width: 767px) {
  .sub_service {
    padding-top: 60px;
    background-size: 100% auto;
  }
}
.sub_service #sec_intro {
  margin-bottom: 170px;
}
@media screen and (max-width: 767px) {
  .sub_service #sec_intro {
    margin-bottom: 100px;
  }
}
.sub_service #sec_intro .inner_1100 {
  display: flex;
  gap: 80px;
  justify-content: space-between;
}
@media screen and (max-width: 767px) {
  .sub_service #sec_intro .inner_1100 {
    flex-wrap: wrap;
  }
}
.sub_service #sec_intro .inner_1100 .txt {
  width: 470px;
}
.sub_service #sec_intro .inner_1100 .pic {
  display: flex;
  align-items: center;
  flex: 1;
  margin-right: calc(50% - 50vw);
}
.sub_service #sec_intro .inner_1100 .pic img {
  width: 100%;
  border-radius: 10px 0 0 10px;
}
.sub_service .serv_right .txt {
  order: 2;
}
.sub_service .serv_right .pict {
  order: 1;
}
.sub_service .serv_left .txt {
  order: 1;
}
.sub_service .serv_left .pict {
  order: 2;
}
.sub_service .serv_right,
.sub_service .serv_left {
  width: 900px;
  margin: auto;
  display: flex;
  gap: 100px;
  padding-bottom: 60px;
  margin-bottom: 60px;
  justify-content: space-between;
  align-items: center;
  border-bottom: solid 1px #636363;
}
@media screen and (max-width: 767px) {
  .sub_service .serv_right,
  .sub_service .serv_left {
    width: 90%;
    gap: 8%;
    align-items: flex-start;
  }
}
.sub_service .serv_right .txt h4,
.sub_service .serv_left .txt h4 {
  font-size: 25px;
  font-weight: 700;
  line-height: 1.25;
  margin-bottom: 30px;
}
@media screen and (max-width: 767px) {
  .sub_service .serv_right .txt h4,
  .sub_service .serv_left .txt h4 {
    font-size: 18px;
    margin-bottom: 15px;
  }
}
.sub_service .serv_right .txt h4 span,
.sub_service .serv_left .txt h4 span {
  display: block;
  font-size: 46px;
  font-family: Montserrat;
  font-weight: 600;
  color: #EEBA48;
}
@media screen and (max-width: 767px) {
  .sub_service .serv_right .txt h4 span,
  .sub_service .serv_left .txt h4 span {
    font-size: 24px;
  }
}
.sub_service .serv_right .txt ul,
.sub_service .serv_left .txt ul {
  background-color: #636363;
  padding: 10px 20px;
  margin-top: 25px;
}
.sub_service .serv_right .txt ul li,
.sub_service .serv_left .txt ul li {
  list-style-type: disc;
  list-style-position: inside;
  font-weight: 500;
}
@media screen and (max-width: 767px) {
  .sub_service .serv_right .txt ul li,
  .sub_service .serv_left .txt ul li {
    line-height: 1.5;
    margin-bottom: 10px;
  }
}
.sub_service .pict {
  border-radius: 10px;
  background-image: url(../img/cmn/bg_gold.svg);
  background-repeat: no-repeat;
  background-size: cover;
  width: 300px;
  height: 300px;
  display: flex;
  align-items: center;
}
@media screen and (max-width: 767px) {
  .sub_service .pict {
    width: 150px;
    height: 150px;
    border-radius: 5px;
    margin-top: 35px;
  }
}
.sub_service .pict img {
  width: 90%;
  margin: auto;
}
.sub_service #serv_04,
.sub_service #serv_08 {
  margin-bottom: 0;
  border-bottom: none;
}
.sub_service .bg_para {
  width: 100%;
  height: 500px;
  overflow: hidden;
  margin: 70px 0;
  position: relative;
  /* for absolutely positioned img */
}
@media screen and (max-width: 767px) {
  .sub_service .bg_para {
    height: 50vh;
  }
}
.sub_service .bg_para img {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate3d(-50%, -50%, 0);
  will-change: transform;
  min-width: 100%;
  min-height: 100%;
  /* cover behavior while keeping aspect ratio */
  width: auto;
  height: auto;
  max-width: none;
  display: block;
}

#project_sub {
  padding: 100px 0;
  background-color: #fff;
}
@media screen and (max-width: 767px) {
  #project_sub {
    padding: 50px 0;
  }
}
#project_sub .project_list {
  max-width: 1200px;
  margin: auto;
  display: flex;
  gap: 40px 15px;
  margin-top: 70px;
  margin-bottom: 50px;
  flex-wrap: wrap;
}
@media screen and (max-width: 767px) {
  #project_sub .project_list {
    max-width: 92%;
    gap: 20px 3%;
    flex-wrap: wrap;
    margin-bottom: 25px;
  }
}
#project_sub .project_list li {
  width: 23%;
  border-radius: 5px;
  transition: transform 0.2s ease;
  transform-origin: center;
  background-color: #fff;
  box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.25);
}
@media screen and (max-width: 767px) {
  #project_sub .project_list li {
    width: 48%;
  }
}
#project_sub .project_list li:hover {
  transform: scale(1.1);
}
#project_sub .project_list li:hover a {
  text-decoration: none;
}
#project_sub .project_list li:hover img {
  opacity: 1;
}
#project_sub .project_list li img {
  width: 100%;
  height: auto;
  border-radius: 5px 5px 0 0;
}
#project_sub .project_list li .txt {
  background-color: #fff;
  padding: 20px;
  padding-top: 10px;
  border-radius: 0 0 5px 5px;
}
@media screen and (max-width: 767px) {
  #project_sub .project_list li .txt {
    padding: 10px 20px;
    padding-bottom: 15px;
  }
}
#project_sub .project_list li .txt .cat {
  color: #FFF;
  font-family: Montserrat;
  font-size: 13px;
  font-style: normal;
  font-weight: 600;
  display: inline-block;
  padding: 0 10px;
  background-color: #B39052;
  border-radius: 5px;
  margin-bottom: 10px;
}
@media screen and (max-width: 767px) {
  #project_sub .project_list li .txt .cat {
    font-size: 9px;
    margin-bottom: 5px;
  }
}
#project_sub .project_list li .txt .ttl {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
}
@media screen and (max-width: 767px) {
  #project_sub .project_list li .txt .ttl {
    font-size: 15px;
  }
}

/* /////////////////////////////
Project アーカイブ/single
///////////////////////////// */
.sub_project {
  padding-top: 80px;
  position: relative;
}
@media screen and (max-width: 767px) {
  .sub_project {
    padding-top: 40px;
  }
}
.sub_project .intro .inner_1100 {
  display: flex;
  gap: 0 80px;
  justify-content: space-between;
}
@media screen and (max-width: 767px) {
  .sub_project .intro .inner_1100 {
    flex-wrap: wrap;
  }
}
.sub_project .intro .inner_1100 .left {
  min-width: 520px;
}
.sub_project .cat_nav {
  display: flex;
  gap: 10px;
}
@media screen and (max-width: 767px) {
  .sub_project .cat_nav {
    gap: 5px;
  }
}
.sub_project .cat_nav li a {
  font-size: 22px;
  font-weight: 700;
  display: inline-block;
  background-color: #bdbdbd;
  line-height: 1.5;
  padding: 3px 50px;
  border-radius: 5px;
  color: #F0F0F0;
}
@media screen and (max-width: 767px) {
  .sub_project .cat_nav li a {
    font-size: 15px;
    padding: 3px 15px;
  }
}
.sub_project .cat_nav li a:hover {
  background-color: #B39052;
  color: #fff;
  text-decoration: none;
}
.sub_project .cat_nav li.active a {
  background-color: #B39052;
  color: #fff;
}
.sub_project .project_list {
  max-width: 1200px;
  margin: auto;
  display: flex;
  gap: 40px 15px;
  margin-top: 70px;
  margin-bottom: 50px;
  flex-wrap: wrap;
}
@media screen and (max-width: 767px) {
  .sub_project .project_list {
    max-width: 92%;
    gap: 20px 3%;
    flex-wrap: wrap;
    margin-bottom: 25px;
  }
}
.sub_project .project_list li {
  width: 23%;
  border-radius: 5px;
  transition: transform 0.2s ease;
  transform-origin: center;
  background-color: #fff;
  box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.25);
}
@media screen and (max-width: 767px) {
  .sub_project .project_list li {
    width: 48%;
  }
}
.sub_project .project_list li:hover {
  transform: scale(1.1);
}
.sub_project .project_list li:hover a {
  text-decoration: none;
}
.sub_project .project_list li:hover img {
  opacity: 1;
}
.sub_project .project_list li img {
  width: 100%;
  height: auto;
  border-radius: 5px 5px 0 0;
}
.sub_project .project_list li .txt {
  background-color: #fff;
  padding: 20px;
  padding-top: 10px;
  border-radius: 0 0 5px 5px;
}
@media screen and (max-width: 767px) {
  .sub_project .project_list li .txt {
    padding: 10px 20px;
    padding-bottom: 15px;
  }
}
.sub_project .project_list li .txt .cat {
  color: #FFF;
  font-family: Montserrat;
  font-size: 13px;
  font-style: normal;
  font-weight: 600;
  display: inline-block;
  padding: 0 10px;
  background-color: #B39052;
  border-radius: 5px;
  margin-bottom: 10px;
}
@media screen and (max-width: 767px) {
  .sub_project .project_list li .txt .cat {
    font-size: 9px;
    margin-bottom: 5px;
  }
}
.sub_project .project_list li .txt .ttl {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
}
@media screen and (max-width: 767px) {
  .sub_project .project_list li .txt .ttl {
    font-size: 15px;
  }
}
.sub_project .single_content {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
  background-color: #fff;
  color: #000;
  font-weight: 500;
  box-sizing: border-box;
  padding: 45px 30px;
  border-radius: 5px;
  margin-bottom: 80px;
  margin-top: -180px;
  /* keep the visual overlap with the title area */
  position: relative;
  /* keep it in document flow so height is preserved */
  min-height: 320px;
  /* ensures the box maintains a sensible height */
}
.sub_project .single_content p {
  display: block;
  margin: 1em 0;
}
.sub_project .single_content strong {
  font-weight: bold;
}
.sub_project .single_content em {
  font-style: italic;
}
.sub_project .single_content blockquote {
  display: block;
  -webkit-margin-before: 1em;
  -webkit-margin-after: 1em;
  -webkit-margin-start: 40px;
  -webkit-margin-end: 40px;
}
.sub_project .single_content {
  /* img */
}
.sub_project .single_content .aligncenter {
  display: block;
  margin: 0 auto;
}
.sub_project .single_content .alignright {
  float: right;
}
.sub_project .single_content .alignleft {
  float: left;
}
.sub_project .single_content img[class*=wp-image-],
.sub_project .single_content img[class*=attachment-] {
  height: auto;
  max-width: 100%;
}
.sub_project .single_content {
  /* clearfix */
}
.sub_project .single_content .clearfix {
  overflow: hidden;
  zoom: 1;
}
.sub_project .single_content .clearfix:after {
  content: "";
  display: block;
  clear: both;
}
.sub_project .single_content img {
  max-width: 100%;
  margin-bottom: 25px;
  margin-top: 25px;
}
.sub_project .single_content p {
  margin-bottom: 1em;
}
@media screen and (max-width: 767px) {
  .sub_project .single_content {
    max-width: 92%;
    margin-top: -90px;
    padding: 30px 4%;
    min-height: auto;
  }
}
.sub_project .single_content .serv_txt {
  background-color: #F0F0F0;
  margin: 35px 0;
  border-radius: 5px;
  padding: 20px 30px;
}
.sub_project .single_content .serv_txt h3 {
  font-weight: 700;
}
@media screen and (max-width: 767px) {
  .sub_project .btn_01 {
    margin-left: 0;
  }
}

/* /////////////////////////////
Project アーカイブ/single
///////////////////////////// */
.sub_member {
  padding-top: 80px;
  position: relative;
  background-image: url(../img/cmn/bg_logo.svg);
  background-repeat: no-repeat;
}
@media screen and (max-width: 767px) {
  .sub_member {
    background-size: 100% auto;
    padding-top: 40px;
  }
}
.sub_member .intro .inner_1100 {
  display: flex;
  gap: 0 80px;
  justify-content: space-between;
}
@media screen and (max-width: 767px) {
  .sub_member .intro .inner_1100 {
    flex-wrap: wrap;
  }
}
.sub_member .intro .inner_1100 .left {
  min-width: 520px;
}
.sub_member .member_list {
  padding-bottom: 30px;
}
.sub_member .member_list ul {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 30px;
  margin: 50px 0;
  /* margin-bottom: 80px; */
}
@media screen and (max-width: 767px) {
  .sub_member .member_list ul {
    gap: 30px 5%;
  }
}
.sub_member .member_list ul li:hover {
  transform: scale(1.1);
}
.sub_member .member_list ul li:hover img {
  opacity: 1;
}
.sub_member .member_list ul li:hover a {
  text-decoration: none;
}
.sub_member .member_list ul li {
  width: 250px;
  border-radius: 5px;
  text-align: center;
  transition: transform 0.2s ease;
}
@media screen and (max-width: 767px) {
  .sub_member .member_list ul li {
    width: 47.5%;
  }
}
.sub_member .member_list ul li img {
  border-radius: 5px 5px 0 0;
  display: block;
  width: 100%;
  height: auto;
}
.sub_member .member_list ul li .txt {
  background-color: #000;
  border-radius: 0 0 5px 5px;
  padding: 5px 20px;
}
@media screen and (max-width: 767px) {
  .sub_member .member_list ul li .txt {
    padding: 5px 15px;
  }
}
.sub_member .member_list ul li .txt .pos {
  color: #EEBA48;
  font-family: Montserrat;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.734px;
}
@media screen and (max-width: 767px) {
  .sub_member .member_list ul li .txt .pos {
    font-size: 10px;
  }
}
.sub_member .member_list ul li .txt .name {
  font-size: 28px;
  line-height: 1.5;
  color: #fff;
}
@media screen and (max-width: 767px) {
  .sub_member .member_list ul li .txt .name {
    font-size: 18px;
  }
}
.sub_member .member_list ul li .txt .eng {
  font-family: Montserrat;
  color: #989898;
  font-size: 12px;
  letter-spacing: 0.611px;
}
@media screen and (max-width: 767px) {
  .sub_member .member_list ul li .txt .eng {
    font-size: 9px;
  }
}
.sub_member .single_member .inner_1100 {
  position: relative;
  margin-top: -180px;
  display: flex;
  gap: 80px;
  margin-bottom: 150px;
}
@media screen and (max-width: 767px) {
  .sub_member .single_member .inner_1100 {
    flex-wrap: wrap;
    margin-top: -55px;
    gap: 0;
    margin-bottom: 50px;
  }
}
.sub_member .single_member .inner_1100 .pic {
  width: 435px;
}
@media screen and (max-width: 767px) {
  .sub_member .single_member .inner_1100 .pic {
    width: 80%;
    text-align: center;
    margin: auto;
  }
}
.sub_member .single_member .inner_1100 .pic img {
  width: 435px;
  border-radius: 5px;
  height: auto;
}
@media screen and (max-width: 767px) {
  .sub_member .single_member .inner_1100 .pic img {
    width: 80%;
  }
}
.sub_member .single_member .inner_1100 .txt {
  margin-top: 150px;
}
@media screen and (max-width: 767px) {
  .sub_member .single_member .inner_1100 .txt {
    margin-top: 35px;
  }
}
.sub_member .single_member .inner_1100 .txt h3 {
  font-size: 36px;
  font-weight: 700;
  margin-bottom: 10px;
  line-height: 1.25;
  margin-bottom: 35px;
}
.sub_member .single_member .inner_1100 .txt h3 span {
  color: #c4c4c4;
  font-family: Montserrat;
  font-size: 13px;
  font-weight: 500;
  /* 300% */
  letter-spacing: 0.677px;
  margin-left: 25px;
}
@media screen and (max-width: 767px) {
  .sub_member .single_member .inner_1100 .txt h3 {
    font-size: 24px;
  }
}
.sub_member .single_member .inner_1100 .txt .pos {
  color: #EEBA48;
  font-family: Montserrat;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.734px;
  margin-bottom: 0;
}
@media screen and (max-width: 767px) {
  .sub_member .single_member .inner_1100 .txt .pos {
    font-size: 14px;
  }
}
.sub_member .single_member .inner_1100 .txt p {
  margin-bottom: 25px;
  line-height: 1.8;
}
@media screen and (max-width: 767px) {
  .sub_member .single_member .inner_1100 .txt p {
    font-size: 15px;
  }
}

.bg_single_member {
  background-position: right top;
}

/* /////////////////////////////
About us
///////////////////////////// */
.sub_about .inner_1100 {
  padding: 80px 0;
  padding-bottom: 0;
}
.sub_about #sec_01,
.sub_about #sec_02 {
  display: flex;
  gap: 100px;
  margin-bottom: 80px;
}
@media screen and (max-width: 767px) {
  .sub_about #sec_01,
  .sub_about #sec_02 {
    flex-wrap: wrap;
    gap: 0;
  }
}
.sub_about #sec_01 .ttl,
.sub_about #sec_02 .ttl {
  min-width: 200px;
}
.sub_about #sec_01 .ttl h3,
.sub_about #sec_02 .ttl h3 {
  font-size: 36px;
  font-weight: 700;
  margin-bottom: 10px;
  line-height: 1.25;
}
@media screen and (max-width: 767px) {
  .sub_about #sec_01 .ttl h3,
  .sub_about #sec_02 .ttl h3 {
    font-size: 24px;
    margin-bottom: 0;
  }
}
.sub_about #sec_01 .ttl p,
.sub_about #sec_02 .ttl p {
  color: #EEBA48;
  font-family: Montserrat;
  font-size: 15px;
  font-style: normal;
  font-weight: 600;
  line-height: 40.639px;
  letter-spacing: 0.75px;
}
@media screen and (max-width: 767px) {
  .sub_about #sec_01 .ttl p,
  .sub_about #sec_02 .ttl p {
    font-size: 12px;
  }
}
.sub_about #sec_01 .txt .rinen,
.sub_about #sec_02 .txt .rinen {
  font-size: 25px;
  font-weight: 700;
}
@media screen and (max-width: 767px) {
  .sub_about #sec_01 .txt .rinen,
  .sub_about #sec_02 .txt .rinen {
    font-size: 20px;
  }
}
@media screen and (max-width: 767px) {
  .sub_about #sec_01 .btn_01,
  .sub_about #sec_02 .btn_01 {
    margin-left: 0;
  }
}
.sub_about {
  /* Full-width responsive map (breakout to viewport width) */
}
.sub_about .map {
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  width: 100vw;
  box-sizing: border-box;
  padding: 0;
  /* optional spacing can be applied on inner container */
}
.sub_about .map iframe {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 16/5;
  display: block;
  border: 0 !important;
  max-width: 100%;
  -webkit-filter: grayscale(100%);
  filter: grayscale(100%);
}
@media screen and (max-width: 767px) {
  .sub_about .map {
    margin-left: -4%;
    left: 4%;
    width: 100vw;
    margin-right: 4%;
  }
  .sub_about .map iframe {
    aspect-ratio: 4/3;
  }
}

/* /////////////////////////////
Privacy Policy
///////////////////////////// */
.sub_privacy .inner_1100 {
  padding: 80px 0;
}
.sub_privacy .privacy_policy h2 {
  font-size: 23px;
  font-weight: 500;
  border-left: 5px solid #fff;
  padding-left: 15px;
}
@media screen and (max-width: 767px) {
  .sub_privacy .privacy_policy h2 {
    font-size: 20px;
  }
}
.sub_privacy .privacy_policy h3 {
  font-size: 20px;
  font-weight: 500;
  margin-top: 40px;
}
@media screen and (max-width: 767px) {
  .sub_privacy .privacy_policy h3 {
    font-size: 18px;
  }
}

/* /////////////////////////////
Contact
///////////////////////////// */
.sub_contact .inner_1100 {
  padding: 80px 0;
}
.sub_contact .contact_form {
  width: 800px;
  margin: auto;
}
@media screen and (max-width: 767px) {
  .sub_contact .contact_form {
    width: 100%;
  }
}
.sub_contact .contact_form form {
  margin-top: 35px;
}
.sub_contact .contact_form .table_form th,
.sub_contact .contact_form .table_form td {
  padding: 25px 0;
}
@media screen and (max-width: 767px) {
  .sub_contact .contact_form .table_form th,
  .sub_contact .contact_form .table_form td {
    display: inline-block;
    padding: 5px 0;
    width: 100%;
  }
}
.sub_contact .contact_form .table_form th {
  padding-right: 25px;
  text-align: left;
  font-weight: 500;
  vertical-align: top;
}
.sub_contact .contact_form .table_form td {
  padding-bottom: 10px;
}
.sub_contact .contact_form .table_form input,
.sub_contact .contact_form .table_form select,
.sub_contact .contact_form .table_form textarea {
  padding: 10px;
  font-size: 16px;
}
@media screen and (max-width: 767px) {
  .sub_contact .contact_form .table_form input,
  .sub_contact .contact_form .table_form select,
  .sub_contact .contact_form .table_form textarea {
    width: 100%;
  }
}
.sub_contact .contact_form .btns {
  text-align: center;
}
.sub_contact .contact_form .btns .btn_submit {
  color: #fff;
  display: inline-block;
  text-align: center;
  border: solid 1px #fff;
  border-radius: 5px;
  padding: 5px;
  font-size: 15px;
  font-weight: 700;
  min-width: 300px;
  background-image: url(../img/cmn/arrow-right.svg);
  background-repeat: no-repeat;
  background-position: right 15px center;
  background-color: transparent;
  transition: all 0.3s ease-in-out;
  background-size: auto 60%;
  margin: 15px;
}
@media screen and (max-width: 767px) {
  .sub_contact .contact_form .btns .btn_submit {
    min-width: 80%;
    font-size: 14px;
  }
}
.sub_contact .contact_form .btns .btn_submit:hover {
  background-color: #fff;
  text-decoration: none;
  color: #4A4A4A;
}
.sub_contact .contact_form .btns .btn_back {
  color: #fff;
  display: inline-block;
  text-align: center;
  border: solid 1px #fff;
  border-radius: 5px;
  padding: 5px;
  font-size: 15px;
  font-weight: 700;
  min-width: 300px;
  background-image: url(../img/cmn/arrow-left.svg);
  background-repeat: no-repeat;
  background-position: left 15px center;
  background-color: transparent;
  transition: all 0.3s ease-in-out;
  background-size: auto 60%;
  margin: 15px;
}
@media screen and (max-width: 767px) {
  .sub_contact .contact_form .btns .btn_back {
    min-width: 80%;
    font-size: 14px;
  }
}
.sub_contact .contact_form .btns .btn_back:hover {
  background-color: #fff;
  text-decoration: none;
  color: #4A4A4A;
}
.sub_contact .contact_form a {
  color: #fff;
  text-decoration: underline;
}/*# sourceMappingURL=ary_ope.css.map */