@charset "UTF-8";

/*!
Theme Name: Cocoon Child
Description: Cocoon専用の子テーマ
Theme URI: https://wp-cocoon.com/
Author: わいひら
Author URI: https://nelog.jp/
Template:   cocoon-master
Version:    1.1.3
*/

/************************************
** 子テーマ用のスタイルを書く
************************************/
/*-----------------------------------------------
  共通スタイル
-----------------------------------------------*/
@media (hover: hover) {
  a:hover,
  input[type="submit"]:hover {
    opacity: .8;
    transition: .2s;
  }
}
.is-sp {
  display: none;
}
@media screen and (max-width: 834px){
  .is-sp {
    display: block;
  }
  .is-pc {
    display: none;
  }
}

/*-----( レイアウトの余白リセット )-----*/
.no-sidebar .content {
  margin-top: 0;
}
.no-sidebar .content-in.wrap {
  width: 100%;
}
.no-sidebar .content .main {
  padding: 0;
  border-radius: 0;
  border: none;
}
.container {
  position: relative;
}
.wrapper {
  width: 90%;
  max-width: 1200px;
  margin-inline: auto;
}
.breadcrumb.sbp-main-before,
.breadcrumb.sbp-footer-before,
.breadcrumb.pbp-main-before,
.breadcrumb.pbp-footer-before {
  width: 90%;
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: 0;
}

.cmn-btn-01 {
  display: flex;
  justify-content: center;
  align-items: center;
  width: clamp(220px, calc(294 / 1600 * 100vw), 294px);
  height: clamp(50px, calc(65 / 1600 * 100vw), 65px);
  border: 2px solid #000;
  background: #000;
  color: #fff !important;
  font-size: clamp(16px, calc(24 / 1600 * 100vw), 24px);
  font-weight: 300;
  letter-spacing: 0.06em;
  text-decoration: none;
}
.cmn-btn-01::after {
  content: "";
  display: block;
  width: clamp(24px, calc(34 / 1600 * 100vw), 34px);
  aspect-ratio: 34 / 10;
  margin-left: clamp(8px, calc(14 / 1600 * 100vw), 14px);
  background: url("images/common/ico_arrow_01.webp") left top / contain no-repeat;
}
@media (hover: hover) {
  .cmn-btn-01:hover {
    opacity: 1;
    background: #fff;
    color: #000 !important;
  }
  .cmn-btn-01:hover::after {
    filter: brightness(0);
  }
}
@media screen and (max-width: 834px){
  .cmn-btn-01 {
    width: calc(220 / 390 * 100vw);
    height: calc(50 / 390 * 100vw);
    font-size: calc(16 / 390 * 100vw);
  }
  .cmn-btn-01::after {
    width: calc(20 / 390 * 100vw);
    margin-left: calc(8 / 390 * 100vw);
  }
}

/*-----------------------------------------------
  header
-----------------------------------------------*/
.header-container {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
  width: 100%;
  background: rgba(255, 255, 255, .75);
}
.header-in.wrap {
  width: 100%;
  padding:
    clamp(12px, calc(22 / 2000 * 100vw), 22px)
    clamp(30px, calc(56 / 2000 * 100vw), 56px)
    clamp(12px, calc(19 / 2000 * 100vw), 19px)
    clamp(30px, calc(78 / 2000 * 100vw), 78px);
}

/*-----( header-body )-----*/
.header-body {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.header-logo {
  display: flex;
  align-items: center;
  text-decoration: none;
}
.header-logo-img {
  flex-shrink: 0;
  width: clamp(100px, calc(181 / 2000 * 100vw), 181px);
  margin-right: clamp(10px, calc(20 / 2000 * 100vw), 20px);
}
.header-logo-txt {
  color: #010101;
  font-size: clamp(20px, calc(32 / 2000 * 100vw), 32px);
  font-weight: 700;
  letter-spacing: 0.06em;
  white-space: nowrap;
}
.header-navi-in {
  display: flex;
}
.header-navi-ul {
  display: flex;
  justify-content: flex-end;
  list-style: none;
  padding-left: 0;
  white-space: nowrap;
}
.header-navi-item {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
}
.header-navi-item-sp {
  display: none;
}
.header-navi-item + .header-navi-item {
  margin-left: clamp(26px, calc(36 / 1600 * 100vw), 36px);
}
.header-navi-link {
  display: inline-block;
  text-align: center;
  color: #000 !important;
  font-size: clamp(20px, calc(32 / 2000 * 100vw), 32px);
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.06em;
  text-decoration: none;
}
.header-navi-sns {
  display: grid;
  place-items: center;
  width: clamp(30px, calc(56 / 2000 * 100vw), 56px);
  aspect-ratio: 1 / 1;
  margin-left: clamp(12px, calc(22 / 2000 * 100vw), 22px);
  border-radius: 50%;
  background: #000;
}
.header-navi-sns-01 img {
  width: clamp(16px, calc(35 / 2000 * 100vw), 35px);
  height: auto;
}
.header-navi-sns-02 {
  margin-left: clamp(8px, calc(16 / 2000 * 100vw), 16px);
}
.header-navi-sns-02 img {
  width: clamp(16px, calc(34 / 2000 * 100vw), 34px);
  height: auto;
}

.header-btn {
  display: none;
}

/*-----( fixed-contact-menu )-----*/
.fixed-contact-menu {
  display: none;
}

/*-----( lower-page-ttl )-----*/
.lower-page-ttl {
  display: flex;
  align-items: center;
  overflow: hidden;
  min-height: clamp(220px, calc(320 / 1600 * 100vw), 320px);
  padding-top: clamp(80px, calc(118 / 2000 * 100vw), 118px);
  background: #f7f7f7;
}
.lower-page-ttl-in.wrapper {
  width: 90%;
}
.lower-page-ttl-txt {
  position: relative;
  z-index: 2;
  margin: 0;
  font-size: clamp(30px, calc(48 / 1600 * 100vw), 48px);
  font-style: normal;
  line-height: 1;
}
.lower-page-ttl-txt::before {
  content: "";
  display: block;
  position: absolute;
  bottom: 4px;
  left: clamp(-500px, calc(-500 / 1600 * 100vw), -430px);
  width: clamp(410px, calc(480 / 1600 * 100vw), 480px);
  aspect-ratio: 1000 / 66;
  background: url("images/index/bg_sec_bar_01_l.webp") right bottom / cover no-repeat;
}

/*-----------------------------------------------
  footer
-----------------------------------------------*/
.footer {
  margin-top: 0;
  padding: 0;
}
.footer-bottom {
  margin-top: 0;
  background: #000;
  color: #fff;
}
.footer .footer-in.wrap {
  width: 100%;
}

/*-----( footer-cta )-----*/
.footer-cta-lead {
  display: flex;
  padding: clamp(40px, calc(60 / 1600 * 100vw), 60px) 0;
}
.footer-cta-lead-header {
  margin-right: clamp(40px, calc(60 / 1600 * 100vw), 60px);
}
.footer-cta-lead-header-en {
  font-size: clamp(36px, calc(60 / 1600 * 100vw), 60px);
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.3;
}
.footer-cta-lead-header-ja {
  font-size: clamp(18px, calc(22 / 1600 * 100vw), 22px);
  letter-spacing: 0.5em;
}
.footer-cta-lead-body {
  margin-top: clamp(14px, calc(14 / 1600 * 100vw), 14px);
  font-size: clamp(16px, calc(20 / 1600 * 100vw), 20px);
  line-height: 1.5;
  letter-spacing: 0.1em;
}
.footer-cta-body {
  border-top: 1px solid #fff;
  border-bottom: 1px solid #fff;
}
.footer-cta-wrapper {
  display: flex;
  border-left: 1px solid #fff;
  border-right: 1px solid #fff;
}
.footer-cta-box {
  display: block;
  width: 50%;
  padding: clamp(12px, calc(20 / 1600 * 100vw), 20px);
  color: #fff !important;
  text-decoration: none;
}
.footer-cta-box + .footer-cta-box {
  border-left: 1px solid #fff;
}
.footer-cta-box-ttl {
  display: flex;
  align-items: center;
  font-size: clamp(20px, calc(26 / 1600 * 100vw), 26px);
  letter-spacing: 0.1em;
}
.footer-cta-box-ttl::before {
  content: "";
  display: block;
  width: clamp(30px, calc(40 / 1600 * 100vw), 40px);
  aspect-ratio: 1 / 1;
  margin-right: clamp(4px, calc(8 / 1600 * 100vw), 8px);
}
.footer-cta-box-ttl-tel::before {
  background: url("images/common/ico_footer_tel.webp") left top / cover no-repeat;
}
.footer-cta-box-ttl-mail::before {
  background: url("images/common/ico_footer_mail.webp") left top / cover no-repeat;
}
.footer-cta-tel {
  margin: clamp(14px, calc(14 / 1600 * 100vw), 14px) 0 0 clamp(20px, calc(30 / 1600 * 100vw), 30px);
}
.footer-cta-tel-link {
  color: #fff !important;
  text-decoration: none;
  font-size: clamp(36px, calc(50 / 1600 * 100vw), 50px);
  font-weight: 600;
  letter-spacing: 0.15em;
  line-height: 1;
}
.footer-cta-tel-txt {
  font-size: clamp(14px, calc(18 / 1600 * 100vw), 18px);
  letter-spacing: 0.08em;
}
.footer-cta-mail {
  margin: clamp(20px, calc(20 / 1600 * 100vw), 20px) 0 0 clamp(4px, calc(8 / 1600 * 100vw), 8px);
  font-size: clamp(15px, calc(20 / 1600 * 100vw), 20px);
  letter-spacing: 0.04em;
}

/*-----( footer-main )-----*/
.footer-main {
  padding: clamp(48px, calc(60 / 1600 * 100vw), 60px) 0 clamp(60px, calc(80 / 1600 * 100vw), 80px);
}
.footer-main-wrapper {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
.footer-main .header-logo {
  align-items: center;
  margin-top: clamp(4px, calc(4 / 1600 * 100vw), 4px);
}
.footer-main .header-logo-img {
  width: clamp(100px, calc(210 / 1600 * 100vw), 210px);
  margin-right: clamp(20px, calc(34 / 1600 * 100vw), 34px);
}
.footer-main .header-logo-txt {
  color: #fff;
  font-size: clamp(18px, calc(25 / 1600 * 100vw), 25px);
  letter-spacing: 0.08em;
}
.footer-main-body {
  width: clamp(350px, calc(530 / 1600 * 100vw), 530px);
}
.footer-main-info {
  display: grid;
  grid-template-columns: clamp(110px, calc(145 / 1600 * 100vw), 145px) 1fr;
  gap: clamp(20px, calc(34 / 1600 * 100vw), 34px);
}
.footer-main-info + .footer-main-info {
  margin-top: clamp(28px, calc(38 / 1600 * 100vw), 38px);
}
.footer-main-info-txt {
  margin: 0;
  color: #fff;
  font-size: clamp(15px, calc(18 / 1600 * 100vw), 18px);
  line-height: 1.35;
  letter-spacing: 0.03em;
}
.footer-main-info-body .footer-main-info-txt + .footer-main-info-txt {
  margin-top: clamp(12px, calc(18 / 1600 * 100vw), 18px);
}

/*-----( footer-end )-----*/
.footer-end {
  border-top: 1px solid #fff;
}
.footer-end-wrapper {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  height: clamp(50px, calc(60 / 1600 * 100vw), 60px);
  padding-top: clamp(4px, calc(6 / 1600 * 100vw), 6px);
}
.footer-end-txt {
  color: #fff;
  text-align: center;
  font-size: clamp(10px, calc(14 / 1600 * 100vw), 14px);
  line-height: 1.3;
}
.footer-end-list {
  position: absolute;
  top: 50%;
  right: 0;
  display: flex;
  align-items: center;
  transform: translateY(clamp(-4px, calc(-4 / 1600 * 100vw), -3px));
}
.footer-end-list-link {
  color: #fff !important;
  font-size: clamp(10px, calc(14 / 1600 * 100vw), 14px);
  line-height: 1;
  text-decoration: none;
}
.footer-end-list-link + .footer-end-list-link::before {
  content: "|";
  display: inline-block;
  margin: 0 .35em;
  color: #fff;
}

/*-----------------------------------------------
  トップページ
-----------------------------------------------*/
.home .content {
  /*-----( .front-mv-recruit用 )-----*/
  position: relative;
  z-index: 1;
}
.front-body {
  overflow: hidden;
}

/*-----( トップページ共通 )-----*/
.front-sec-ttl {
  position: relative;
  z-index: 2;
  font-size: clamp(36px, calc(60 / 1600 * 100vw), 60px);
  font-style: italic;
  line-height: 1;
}
.front-sec-ttl::before {
  content: "";
  display: block;
  position: absolute;
  bottom: 4px;
  left: clamp(-730px, calc(-730 / 1600 * 100vw), -620px);
  width: clamp(600px, calc(700 / 1600 * 100vw), 700px);
  aspect-ratio: 1000 / 66;
}
.front-biz .front-sec-ttl::before { background: url("images/index/bg_sec_bar_01_l.webp") right bottom / cover no-repeat; }
.front-work .front-sec-ttl::before { background: url("images/index/bg_sec_bar_02_l.webp") right bottom / cover no-repeat; }
.front-recruit .front-sec-ttl::before { background: url("images/index/bg_sec_bar_03_l.webp") right bottom / cover no-repeat; }
.front-sec-sub {
  position: relative;
  z-index: 2;
  margin-left: clamp(4px, calc(6 / 1600 * 100vw), 6px);
  font-size: clamp(14px, calc(20 / 1600 * 100vw), 20px);
  letter-spacing: 0.6em;
}
.home .cmn-btn-01 {
  margin-left: auto;
}

/*-----( front-mv )-----*/
.front-mv {
  position: relative;
}
.front-mv-slider {
  position: relative;
  z-index: 1;
}
.front-mv-slider img {
  width: 100%;
}
.front-mv-ttl {
  position: absolute;
  z-index: 2;
  isolation: isolate;
  left: clamp(50px, calc(100 / 2000 * 100vw), 100px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  top: clamp(150px, calc(160 / 1600 * 100vw), 160px);
  height: auto;
  margin: 0;
  padding: clamp(40px, calc(40 / 2000 * 100vw), 40px) clamp(50px, calc(60 / 2000 * 100vw), 60px);
  color: #343464;
  text-align: left;
  font-family: "Noto Serif JP", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif;
  font-size: clamp(30px, calc(68 / 2000 * 100vw), 68px);
  font-weight: 400;
  letter-spacing: 0.12em;
  line-height: 1.2;
}
.front-mv-ttl::before,
.front-mv-ttl::after {
  content: "";
  position: absolute;
  pointer-events: none;
}
.front-mv-ttl::before {
  z-index: -2;
  inset:
    clamp(-6px, calc(-6 / 2000 * 100vw), -4px)
    clamp(-18px, calc(-18 / 2000 * 100vw), -12px)
    clamp(-2px, calc(-2 / 2000 * 100vw), 0px)
    clamp(-26px, calc(-26 / 2000 * 100vw), -18px);
  border-radius: 36% 32% 38% 34% / 42% 36% 40% 34%;
  background: rgba(255, 255, 255, .82);
  filter: blur(clamp(16px, calc(24 / 2000 * 100vw), 24px));
  transform: rotate(-1deg);
}
.front-mv-ttl::after {
  z-index: -1;
  inset:
    clamp(2px, calc(2 / 2000 * 100vw), 4px)
    clamp(-8px, calc(-8 / 2000 * 100vw), -4px)
    clamp(8px, calc(8 / 2000 * 100vw), 10px)
    clamp(-16px, calc(-16 / 2000 * 100vw), -10px);
  border-radius: 38% 34% 32% 40% / 34% 42% 34% 40%;
  background: rgba(255, 255, 255, .56);
  filter: blur(clamp(8px, calc(14 / 2000 * 100vw), 14px));
}
.front-mv-ttl span {
  position: relative;
  z-index: 1;
  display: inline-block;
  white-space: nowrap;
}
.front-mv-ttl span + span {
  margin-top: clamp(8px, calc(14 / 2000 * 100vw), 14px);
}
.front-mv-recruit {
  position: fixed;
  z-index: 3;
  top: 60%;
  right: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: clamp(36px, calc(72 / 2000 * 100vw), 72px);
  height: clamp(126px, calc(240 / 2000 * 100vw), 240px);
  padding-top: clamp(14px, calc(26 / 2000 * 100vw), 26px);
  border-radius: 12px 0 0 12px;
  background: #962e33;
  text-decoration: none;
}
.front-mv-recruit::before {
  content: "";
  display: block;
  width: clamp(18px, calc(34 / 2000 * 100vw), 34px);
  aspect-ratio: 34 / 40;
  margin-bottom: clamp(8px, calc(14 / 2000 * 100vw), 14px);
  background: url("images/common/ico_sheet_01.webp") left top / contain no-repeat;
}
.front-mv-recruit span {
  display: block;
  writing-mode: vertical-rl;
  color: #fff;
  font-size: clamp(16px, calc(32 / 2000 * 100vw), 32px);
  letter-spacing: 0.06em;
}

/*-----( front-lead )-----*/
.front-lead {
  position: relative;
  z-index: 2;
  padding: clamp(70px, calc(110 / 1600 * 100vw), 110px) 0 0;
}
.front-lead-bg {
  width: 100%;
  max-width: 2000px;
  margin-inline: auto;
}
.front-lead-bg::after {
  content: "";
  display: block;
  width: 30%;
  aspect-ratio: 616 / 350;
  margin-top: clamp(-20px, calc(-20 / 1600 * 100vw), -10px);
  background: url("images/index/bg_lead.webp") left bottom / contain no-repeat;
}
.front-lead-inner {
  display: flex;
  justify-content: space-between;
  background: url("images/index/bg_lead_logo.webp") center 15% / 70% auto no-repeat;
}
.front-lead-ttl {
  width: clamp(280px, calc(480 / 1600 * 100vw), 480px);
  font-size: clamp(26px, calc(42 / 1600 * 100vw), 42px);
  font-weight: 800;
  letter-spacing: 0.15em;
}
.front-lead-ttl span {
  display: block;
  line-height: 1.6;
}
.front-lead-ttl span:nth-child(2) {
  text-align: right;
}
.front-lead-body {
  padding-top: clamp(8px, calc(14 / 1600 * 100vw), 14px);
  padding-left: clamp(10px, calc(20 / 1600 * 100vw), 20px);
}
.front-lead-body-inner {
  padding-right: clamp(0, calc(40 / 1600 * 100vw), 40px);
}
.front-lead-txt {
  font-size: clamp(19px, calc(22 / 1600 * 100vw), 22px);
  line-height: 1.9;
}
.front-lead-txt + .front-lead-txt {
  margin-top: clamp(20px, calc(20 / 1600 * 100vw), 20px);
}
.front-lead-link {
  margin: clamp(60px, calc(110 / 1600 * 100vw), 110px) 0 0 auto;
}

/*-----( front-biz )-----*/
.front-biz {
  position: relative;
  padding: clamp(80px, calc(100 / 1600 * 100vw), 100px) 0  clamp(60px, calc(80 / 1600 * 100vw), 80px);
}
.front-biz::before {
  content: "";
  position: absolute;
  z-index: 1;
  top: 42%;
  left: -10%;
  width: 200%;
  height: 2px;
  background: #eaeaea;
  transform: rotate(20deg);
}
.front-biz-inner {
  position: relative;
  z-index: 2;
}
.front-biz-list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(20px, calc(42 / 1600 * 100vw), 42px);
  margin-top: clamp(40px, calc(80 / 1600 * 100vw), 80px);
  margin-bottom: clamp(40px, calc(80 / 1600 * 100vw), 80px);
}
.front-biz-list-item {
  color: #fff !important;
  aspect-ratio: 338 / 558;
  text-decoration: none;
  padding: 
      clamp(20px, calc(20 / 1600 * 100vw), 20px)
      0
      0
      clamp(20px, calc(20 / 1600 * 100vw), 20px);
}
.front-biz-list-item-row {
  display: flex;
  flex-direction: column;
}
.front-biz-list-item span {
  display: block;
  writing-mode: vertical-lr;
  line-height: 1;
}
.front-biz-list-item-ttl {
  font-size: clamp(22px, calc(40 / 1600 * 100vw), 40px);
  font-weight: 300;
  letter-spacing: 0.5em;
}
.front-biz-list-item-txt {
  padding-left: clamp(4px, calc(12 / 1600 * 100vw), 12px);
  font-size: clamp(12px, calc(18 / 1600 * 100vw), 18px);
  font-weight: 300;
  letter-spacing: 0.3em;
}
.front-biz-list-item:nth-child(1) { background: url("images/index/pic_biz_01.webp") left top / cover no-repeat; }
.front-biz-list-item:nth-child(2) { background: url("images/index/pic_biz_02.webp") left top / cover no-repeat; }
.front-biz-list-item:nth-child(3) { background: url("images/index/pic_biz_03.webp") left top / cover no-repeat; }
.front-biz-list-item:nth-child(4) { background: url("images/index/pic_biz_04.webp") left top / cover no-repeat; }
.front-biz-link {
  margin-left: auto;
}

/*-----( front-work )-----*/
.front-work {
  position: relative;
  z-index: 2;
  padding: clamp(40px, calc(80 / 1600 * 100vw), 80px) 0;
  background: url("images/index/bg_work.webp") center top / cover no-repeat;
}
.front-work-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(30px, calc(40 / 1600 * 100vw), 40px);
  list-style: none;
  padding: clamp(30px, calc(50 / 1600 * 100vw), 50px) 0;
}
.front-work-list-link {
  color: #000 !important;
  text-decoration: none;
}
.front-work-list-img {
  aspect-ratio: 360 / 240;
  overflow: hidden;
  background: #e9e9e9;
}
.front-work-list-img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.front-work-list-ttl {
  margin: clamp(10px, calc(14 / 1600 * 100vw), 14px) 0 0;
  font-size: clamp(18px, calc(22 / 1600 * 100vw), 22px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
}

/*-----( front-ig-banner )-----*/
.front-ig-banner {
  position: relative;
  z-index: 2;
  display: block;
  width: clamp(500px, calc(700 / 1600 * 100vw), 700px);
  padding: clamp(20px, calc(30 / 1600 * 100vw), 30px) 0;
  margin: clamp(60px, calc(80 / 1600 * 100vw), 80px) auto 0;
  border: 2px solid #000;
  background: #fff;
  color: #000 !important;
  text-decoration: none;
  text-align: center;
  font-size: clamp(18px, calc(24 / 1600 * 100vw), 24px);
  font-weight: 700;
}
.front-ig-banner::before {
  content: "";
  display: block;
  width: clamp(30px, calc(50 / 1600 * 100vw), 50px);
  aspect-ratio: 1 / 1;
  background: url("images/common/ico_ig_02.webp") left top / cover no-repeat;
  margin: 0 auto;
}
.front-ig-banner-txt {
  display: flex;
  justify-content: center;
  align-items: end;
}
.front-ig-banner-txt::before,
.front-ig-banner-txt::after {
  content: "";
  display: block;
  width: 1px;
  height: clamp(50px, calc(60 / 1600 * 100vw), 60px);
  background: #000;
  margin-bottom: -6px;
}
.front-ig-banner-txt::before {
  transform: rotate(-20deg);
  margin-right: clamp(15px, calc(20 / 1600 * 100vw), 20px);
}
.front-ig-banner-txt::after {
  transform: rotate(20deg);
  margin-left: clamp(15px, calc(20 / 1600 * 100vw), 20px);
}
.front-ig-banner-txt b,
.front-ig-banner-txt span {
  margin-bottom: -3px;
  font-size: clamp(26px, calc(30 / 1600 * 100vw), 30px);
}
.front-ig-banner-txt b {
  text-decoration: #cfb654 wavy underline;
}

/*-----( front-recruit )-----*/
.front-recruit {
  position: relative;
  padding: clamp(80px, calc(100 / 1600 * 100vw), 100px) 0 clamp(60px, calc(80 / 1600 * 100vw), 80px);
}
.front-recruit::before {
  content: "";
  position: absolute;
  z-index: 1;
  bottom: -20%;
  right: -20%;
  width: 200%;
  height: 2px;
  background: #eaeaea;
  transform: rotate(150deg);
}
.front-recruit::after {
  content: "";
  position: absolute;
  z-index: 1;
  left: 0;
  top: clamp(260px, calc(400 / 1600 * 100vw), 400px);
  display: block;
  width: clamp(600px, calc(1300 / 2000 * 100vw), 1300px);
  aspect-ratio: 1453 / 488;
  background: url("images/index/bg_recruit.webp") left top / cover no-repeat;
}
.front-recruit-inner {
  position: relative;
  z-index: 2;
}
.front-recruit-txt {
  display: flex;
  justify-content: flex-end;
  margin-top: clamp(30px, calc(60 / 1600 * 100vw), 60px);
  margin-right: clamp(70px, calc(120 / 1600 * 100vw), 120px);
  margin-bottom: clamp(200px, calc(420 / 1600 * 100vw), 420px);
  font-size: clamp(42px, calc(68 / 1600 * 100vw), 68px);
  font-weight: 800;
  letter-spacing: 0.3em;
  line-height: 1.4;
  filter: drop-shadow(1px 1px white) drop-shadow(1px -1px white)
    drop-shadow(-1px 1px white) drop-shadow(-1px -1px white);
}

/*-----------------------------------------------
  プライバシーポリシー
-----------------------------------------------*/
.privacy-page {
  padding: clamp(20px, calc(40 / 1600 * 100vw), 40px) 0 clamp(90px, calc(130 / 1600 * 100vw), 130px);
}
.privacy-page-in.wrapper {
  max-width: 960px;
}
.privacy-page-lead {
  padding-bottom: clamp(34px, calc(48 / 1600 * 100vw), 48px);
  border-bottom: 1px solid #d9d9d9;
}
.privacy-page-sec {
  padding: clamp(34px, calc(48 / 1600 * 100vw), 48px) 0;
  border-bottom: 1px solid #d9d9d9;
}
.privacy-page-sec-ttl {
  margin: 0 0 clamp(16px, calc(22 / 1600 * 100vw), 22px);
  padding-left: clamp(14px, calc(18 / 1600 * 100vw), 18px);
  border-left: 4px solid #343464;
  color: #000;
  font-size: clamp(20px, calc(26 / 1600 * 100vw), 26px);
  font-weight: 700;
  line-height: 1.45;
}
.privacy-page-txt {
  margin: 0;
  color: #222;
  font-size: clamp(17px, calc(18 / 1600 * 100vw), 18px);
  line-height: 2;
  letter-spacing: 0.04em;
}
.privacy-page-list {
  margin: clamp(16px, calc(20 / 1600 * 100vw), 20px) 0 0;
  padding-left: 0;
  list-style: none;
}
.privacy-page-list-item {
  position: relative;
  padding-left: clamp(18px, calc(20 / 1600 * 100vw), 20px);
  color: #222;
  font-size: clamp(17px, calc(18 / 1600 * 100vw), 18px);
  line-height: 2;
  letter-spacing: 0.04em;
}
.privacy-page-list-item::before {
  content: "";
  position: absolute;
  top: clamp(12px, calc(13 / 1600 * 100vw), 13px);
  left: 0;
  width: clamp(5px, calc(6 / 1600 * 100vw), 6px);
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  background: #343464;
}
.privacy-page-list-item + .privacy-page-list-item {
  margin-top: clamp(6px, calc(8 / 1600 * 100vw), 8px);
}

/*-----------------------------------------------
  事業内容
-----------------------------------------------*/
.service-page {
  padding: clamp(30px, calc(40 / 1600 * 100vw), 40px) 0 clamp(70px, calc(90 / 1600 * 100vw), 90px);
}
.service-page-lead {
  margin: 0;
  font-size: clamp(18px, calc(22 / 1600 * 100vw), 22px);
  line-height: 1.9;
  letter-spacing: 0.04em;
}
.service-page-list {
  margin-top: clamp(44px, calc(58 / 1600 * 100vw), 58px);
}
.service-page-item {
  display: flex;
  gap: clamp(48px, calc(72 / 1600 * 100vw), 72px);
  scroll-margin-top: 40px;
  min-width: 0;
}
.service-page-item:nth-child(even) {
  flex-direction: row-reverse;
}
.service-page-item + .service-page-item {
  margin-top: clamp(60px, calc(80 / 1600 * 100vw), 80px);
}
.service-page-img {
  flex: 0 0 calc((100% - clamp(48px, calc(72 / 1600 * 100vw), 72px)) / 2);
  width: 100%;
  aspect-ratio: 560 / 340;
  overflow: hidden;
}
.service-page-img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.service-page-item-ttl {
  display: flex;
  align-items: center;
  margin: 0;
  padding-bottom: clamp(14px, calc(18 / 1600 * 100vw), 18px);
  border-bottom: 1px solid #aaa;
  color: #343464;
  font-size: clamp(24px, calc(32 / 1600 * 100vw), 32px);
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0.04em;
}
.service-page-item-ttl::before {
  content: "";
  flex-shrink: 0;
  display: block;
  width: clamp(5px, calc(7 / 1600 * 100vw), 7px);
  height: clamp(36px, calc(50 / 1600 * 100vw), 50px);
  margin-right: clamp(14px, calc(20 / 1600 * 100vw), 20px);
  background: #343464;
}
.service-page-item-txt {
  margin: clamp(18px, calc(26 / 1600 * 100vw), 26px) 0 0;
  font-size: clamp(19px, calc(21 / 1600 * 100vw), 21px);
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.04em;
}
.service-page-work-link {
  position: relative;
  display: grid;
  place-items: center;
  width: clamp(320px, calc(490 / 1600 * 100vw), 490px);
  min-height: clamp(84px, calc(112 / 1600 * 100vw), 112px);
  margin: clamp(56px, calc(76 / 1600 * 100vw), 76px) auto 0;
  padding: clamp(16px, calc(20 / 1600 * 100vw), 20px) clamp(70px, calc(96 / 1600 * 100vw), 96px) clamp(18px, calc(22 / 1600 * 100vw), 22px);
  border-radius: 8px;
  background: #343464;
  color: #fff !important;
  text-align: center;
  text-decoration: none;
}
.service-page-work-link br {
  display: none;
}
.service-page-work-link::after {
  content: "";
  position: absolute;
  top: 50%;
  right: clamp(34px, calc(52 / 1600 * 100vw), 52px);
  width: clamp(16px, calc(20 / 1600 * 100vw), 20px);
  height: clamp(16px, calc(20 / 1600 * 100vw), 20px);
  border-top: clamp(3px, calc(4 / 1600 * 100vw), 4px) solid #fff;
  border-right: clamp(3px, calc(4 / 1600 * 100vw), 4px) solid #fff;
  transform: translateY(-50%) rotate(45deg);
}
.service-page-work-link-ja,
.service-page-work-link-en {
  display: block;
  line-height: 1;
}
.service-page-work-link-ja {
  font-size: clamp(24px, calc(32 / 1600 * 100vw), 32px);
  font-weight: 500;
  letter-spacing: 0.2em;
}
.service-page-work-link-en {
  margin-top: clamp(8px, calc(12 / 1600 * 100vw), 12px);
  font-size: clamp(16px, calc(20 / 1600 * 100vw), 20px);
  letter-spacing: 0.08em;
}

/*-----------------------------------------------
  企業情報
-----------------------------------------------*/
.about-page {
  padding: clamp(30px, calc(40 / 1600 * 100vw), 40px) 0 clamp(80px, calc(120 / 1600 * 100vw), 120px);
}
.about-page-sec-ttl {
  width: fit-content;
  min-width: clamp(170px, calc(230 / 1600 * 100vw), 230px);
  margin: 0;
  padding: clamp(8px, calc(10 / 1600 * 100vw), 10px) clamp(38px, calc(58 / 1600 * 100vw), 58px) clamp(8px, calc(10 / 1600 * 100vw), 10px) clamp(18px, calc(24 / 1600 * 100vw), 24px);
  clip-path: polygon(0 0, 76% 0, 100% 100%, 0 100%);
  background: #343464;
  color: #fff;
  font-size: clamp(24px, calc(34 / 1600 * 100vw), 34px);
  font-weight: 700;
  line-height: 1;
}
.about-page-greeting-row {
  display: flex;
  justify-content: space-between;
  gap: clamp(56px, calc(96 / 1600 * 100vw), 96px);
  margin-top: clamp(30px, calc(40 / 1600 * 100vw), 40px);
}
.about-page-greeting-body {
  flex: 1;
  min-width: 0;
}
.about-page-greeting-ttl {
  margin: 0;
  font-size: clamp(20px, calc(26 / 1600 * 100vw), 26px);
  font-weight: 700;
  line-height: 1.45;
}
.about-page-txt {
  margin: clamp(14px, calc(20 / 1600 * 100vw), 20px) 0 0;
  font-size: clamp(18px, calc(20 / 1600 * 100vw), 20px);
  line-height: 1.95;
  letter-spacing: 0.04em;
}
.about-page-greeting-creed {
  margin: clamp(14px, calc(20 / 1600 * 100vw), 20px) 0;
  font-size: clamp(18px, calc(20 / 1600 * 100vw), 20px);
  line-height: 1.95;
  letter-spacing: 0.04em;
}
.about-page-greeting-creed + .about-page-txt {
  margin-top: 0;
}
.about-page-representative {
  flex: 0 0 clamp(260px, calc(380 / 1600 * 100vw), 380px);
}
.about-page-representative-img {
  width: 100%;
  aspect-ratio: 616 / 771;
  overflow: hidden;
  background: #e9e9e9;
}
.about-page-representative-img img,
.about-page-office-img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.about-page-representative-name {
  margin: clamp(12px, calc(16 / 1600 * 100vw), 16px) 0 0;
  text-align: center;
  font-size: clamp(18px, calc(20 / 1600 * 100vw), 20px);
  font-weight: 700;
  letter-spacing: 0.12em;
}
.about-page-company {
  margin-top: clamp(54px, calc(76 / 1600 * 100vw), 76px);
}
.about-page-table {
  width: 100%;
  border-collapse: collapse;
  font-size: clamp(18px, calc(20 / 1600 * 100vw), 20px);
  line-height: 1.6;
}
.about-page-table th,
.about-page-table td {
  padding: clamp(8px, calc(10 / 1600 * 100vw), 10px) clamp(16px, calc(22 / 1600 * 100vw), 22px);
  border: 1px solid #ccc;
  background: #fff;
  text-align: left;
  vertical-align: middle;
}
.about-page-table th {
  width: 30%;
  text-align: center;
  font-weight: 700;
  background: #f2f5f7;
}
.about-page-company-table {
  margin-top: clamp(16px, calc(20 / 1600 * 100vw), 20px);
}
.about-page-sub-ttl {
  display: flex;
  align-items: center;
  margin: 0;
  color: #343464;
  font-size: clamp(20px, calc(24 / 1600 * 100vw), 24px);
  font-weight: 700;
  line-height: 1.35;
}
.about-page-sub-ttl::before {
  content: "";
  flex-shrink: 0;
  display: block;
  width: clamp(4px, calc(5 / 1600 * 100vw), 5px);
  height: clamp(28px, calc(34 / 1600 * 100vw), 34px);
  margin-right: clamp(12px, calc(16 / 1600 * 100vw), 16px);
  background: #343464;
}
.about-page-office {
  margin-top: clamp(44px, calc(62 / 1600 * 100vw), 62px);
}
.about-page-office-table {
  margin-top: clamp(14px, calc(20 / 1600 * 100vw), 20px);
}
.about-page-office-gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(14px, calc(24 / 1600 * 100vw), 24px);
  margin-top: clamp(24px, calc(32 / 1600 * 100vw), 32px);
}
.about-page-office-img {
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: #e9e9e9;
}
.about-page-map {
  display: block;
  width: 100%;
  aspect-ratio: 1120 / 460;
  margin-top: clamp(24px, calc(34 / 1600 * 100vw), 34px);
  border: 0;
}
.about-page-history {
  margin-top: clamp(54px, calc(76 / 1600 * 100vw), 76px);
}
.about-page-history-table {
  margin-top: clamp(16px, calc(20 / 1600 * 100vw), 20px);
}
.about-page-history-table th {
  width: 30%;
}
.about-page-business-row {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(36px, calc(58 / 1600 * 100vw), 58px);
  margin-top: clamp(54px, calc(76 / 1600 * 100vw), 76px);
}
.about-page-business-list {
  margin: clamp(14px, calc(20 / 1600 * 100vw), 20px) 0 0;
  padding-left: 0;
  border: 1px solid #ccc;
  list-style: none;
}
.about-page-business-list li {
  padding: clamp(8px, calc(10 / 1600 * 100vw), 10px) clamp(14px, calc(18 / 1600 * 100vw), 18px);
  font-size: clamp(18px, calc(20 / 1600 * 100vw), 20px);
  line-height: 1.5;
}
.about-page-business-list li + li {
  border-top: 1px solid #ccc;
}

/*-----------------------------------------------
  お問合せ
-----------------------------------------------*/
.contact-page {
  padding: clamp(30px, calc(40 / 1600 * 100vw), 40px) 0 clamp(80px, calc(120 / 1600 * 100vw), 120px);
}
.contact-page-in.wrapper {
  max-width: 960px;
}
.contact-page-form-row {
  display: grid;
  grid-template-columns: clamp(190px, calc(240 / 1600 * 100vw), 240px) 1fr;
  border-top: 1px solid #ccc;
  border-left: 1px solid #ccc;
  border-right: 1px solid #ccc;
}
.contact-page-form-row-textarea {
  border-bottom: 1px solid #ccc;
}
.contact-page-form-label {
  display: flex;
  align-items: center;
  gap: clamp(8px, calc(12 / 1600 * 100vw), 12px);
  padding: clamp(16px, calc(20 / 1600 * 100vw), 20px) clamp(14px, calc(20 / 1600 * 100vw), 20px);
  background: #f2f5f7;
  font-size: clamp(16px, calc(18 / 1600 * 100vw), 18px);
  font-weight: 700;
  line-height: 1.5;
}
.contact-page-form-required {
  display: inline-block;
  padding: 2px 6px;
  margin-left: clamp(4px, calc(6 / 1600 * 100vw), 6px);
  background: #962e33;
  color: #fff;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
}
.contact-page-form-field {
  padding: clamp(12px, calc(16 / 1600 * 100vw), 16px) clamp(14px, calc(20 / 1600 * 100vw), 20px);
}
.contact-page-form-field input,
.contact-page-form-field textarea {
  display: block;
  width: 100%;
  padding: clamp(8px, calc(10 / 1600 * 100vw), 10px);
  border: 1px solid #ccc;
  border-radius: 0;
  background: #fff;
  font-size: clamp(16px, calc(18 / 1600 * 100vw), 18px);
  line-height: 1.5;
}
.contact-page-form-field textarea {
  min-height: clamp(160px, calc(220 / 1600 * 100vw), 220px);
  resize: vertical;
}
.contact-page-form-note {
  margin: 0 0 clamp(8px, calc(10 / 1600 * 100vw), 10px);
  font-size: clamp(15px, calc(17 / 1600 * 100vw), 17px);
  line-height: 1.5;
}
.contact-page-form-field input[type="file"] {
  padding: 0;
  border: 0;
}
.contact-page-form-submit {
  margin-top: clamp(30px, calc(44 / 1600 * 100vw), 44px);
  text-align: center;
}
.contact-page-form-submit input[type="submit"] {
  width: clamp(220px, calc(294 / 1600 * 100vw), 294px);
  min-height: clamp(50px, calc(65 / 1600 * 100vw), 65px);
  border: 0;
  border-radius: 0;
  background: #343464;
  color: #fff;
  font-size: clamp(16px, calc(20 / 1600 * 100vw), 20px);
  font-weight: 500;
  letter-spacing: 0.12em;
  cursor: pointer;
}
.contact-page .wpcf7-spinner {
  display: block;
  margin: clamp(12px, calc(16 / 1600 * 100vw), 16px) auto 0;
}
.contact-page .wpcf7-not-valid-tip {
  margin-top: 6px;
  font-size: 16px;
}
.contact-page .wpcf7-response-output {
  margin: clamp(20px, calc(28 / 1600 * 100vw), 28px) 0 0;
  font-size: clamp(16px, calc(18 / 1600 * 100vw), 18px);
}
.contact-page-notice {
  margin: 0;
  font-size: 18px;
}

/*-----------------------------------------------
  施工実績一覧
-----------------------------------------------*/
.works-archive {
  padding: clamp(30px, calc(40 / 1600 * 100vw), 40px) 0 clamp(80px, calc(120 / 1600 * 100vw), 120px);
}
.works-archive-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(34px, calc(48 / 1600 * 100vw), 48px) clamp(24px, calc(34 / 1600 * 100vw), 34px);
}
.works-archive-link {
  display: block;
  color: #000 !important;
  text-decoration: none;
}
.works-archive-img {
  aspect-ratio: 360 / 240;
  overflow: hidden;
  background: #e9e9e9;
}
.works-archive-img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.works-archive-body {
  margin-top: clamp(12px, calc(16 / 1600 * 100vw), 16px);
}
.works-archive-ttl {
  margin: clamp(6px, calc(8 / 1600 * 100vw), 8px) 0 0;
  font-size: clamp(18px, calc(22 / 1600 * 100vw), 22px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
.works-archive-pagination {
  margin-top: clamp(48px, calc(70 / 1600 * 100vw), 70px);
  text-align: center;
}
.works-archive-pagination .page-numbers {
  width: fit-content;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: clamp(8px, calc(12 / 1600 * 100vw), 12px);
  margin: 0 auto;
  padding-left: 0;
  list-style: none;
  border: none;
}
.works-archive-pagination .page-numbers li {
  line-height: 1;
}
.works-archive-pagination .page-numbers a,
.works-archive-pagination .page-numbers span {
  display: flex;
  justify-content: center;
  align-items: center;
  min-width: clamp(38px, calc(44 / 1600 * 100vw), 44px);
  height: clamp(38px, calc(44 / 1600 * 100vw), 44px);
  padding: 0 clamp(8px, calc(10 / 1600 * 100vw), 10px);
  border: 1px solid #343464;
  color: #343464 !important;
  font-size: clamp(15px, calc(17 / 1600 * 100vw), 17px);
  font-weight: 700;
  text-decoration: none;
}
.works-archive-pagination .page-numbers .current {
  background: #343464;
  color: #fff !important;
}
.works-archive-empty {
  margin: 0;
  font-size: clamp(16px, calc(18 / 1600 * 100vw), 18px);
  line-height: 1.8;
  letter-spacing: 0.04em;
}

/*-----------------------------------------------
  施工実績詳細
-----------------------------------------------*/
.works-detail {
  padding: clamp(30px, calc(40 / 1600 * 100vw), 40px) 0 clamp(80px, calc(120 / 1600 * 100vw), 120px);
}
.works-detail-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: clamp(24px, calc(40 / 1600 * 100vw), 40px);
}
.works-detail-ttl {
  margin: 0;
  color: #0d1530;
  font-size: clamp(26px, calc(36 / 1600 * 100vw), 36px);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.04em;
}
.works-detail-gallery {
  margin-top: clamp(24px, calc(36 / 1600 * 100vw), 36px);
}
.works-detail-main-slider {
  background: #111;
}
.works-detail-main-slider .splide__slide {
  aspect-ratio: 1200 / 640;
  background: #e9e9e9;
}
.works-detail-main-slider .splide__slide img,
.works-detail-thumb-slider .splide__slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.works-detail-main-slider .splide__arrow {
  width: clamp(34px, calc(48 / 1600 * 100vw), 48px);
  height: clamp(34px, calc(48 / 1600 * 100vw), 48px);
  border-radius: 0;
  background: transparent;
  opacity: 1;
}
.works-detail-main-slider .splide__arrow svg {
  width: clamp(24px, calc(32 / 1600 * 100vw), 32px);
  height: clamp(24px, calc(32 / 1600 * 100vw), 32px);
  fill: #fff;
}
.works-detail-main-slider .splide__arrow--prev {
  left: clamp(12px, calc(24 / 1600 * 100vw), 24px);
}
.works-detail-main-slider .splide__arrow--next {
  right: clamp(12px, calc(24 / 1600 * 100vw), 24px);
}
.works-detail-thumb-slider {
  padding: clamp(8px, calc(12 / 1600 * 100vw), 12px);
  background: #111;
}
.works-detail-thumb-slider .splide__track {
  overflow: hidden;
}
.works-detail-thumb-slider .splide__slide {
  overflow: hidden;
  border: 2px solid transparent;
  background: #333;
  cursor: pointer;
}
.works-detail-thumb-slider .splide__slide.is-active {
  border-color: #fff;
}
.works-detail-summary {
  margin-top: clamp(50px, calc(70 / 1600 * 100vw), 70px);
}
.works-detail-sec-ttl {
  display: flex;
  align-items: center;
  gap: clamp(24px, calc(36 / 1600 * 100vw), 36px);
  margin: 0;
  color: #0d1530;
  font-size: clamp(24px, calc(32 / 1600 * 100vw), 32px);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.08em;
  text-align: center;
}
.works-detail-sec-ttl::before,
.works-detail-sec-ttl::after {
  content: "";
  flex: 1;
  height: 2px;
  background: #343464;
}
.works-detail-summary-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: clamp(24px, calc(34 / 1600 * 100vw), 34px) 0 0;
  border: 1px solid #e4e4e8;
}
.works-detail-summary-item {
  display: grid;
  grid-template-columns: minmax(120px, 30%) minmax(0, 1fr);
  margin: 0;
}
.works-detail-summary-item:only-child {
  grid-column: 1 / -1;
}
.works-detail-summary-item + .works-detail-summary-item {
  border-left: 1px solid #e4e4e8;
}
.works-detail-summary-item dt,
.works-detail-summary-item dd {
  margin: 0;
  padding: clamp(14px, calc(18 / 1600 * 100vw), 18px) clamp(18px, calc(28 / 1600 * 100vw), 28px);
  font-size: clamp(16px, calc(18 / 1600 * 100vw), 18px);
  line-height: 1.6;
  letter-spacing: 0.04em;
}
.works-detail-summary-item dt {
  display: flex;
  justify-content: center;
  align-items: center;
  background: #343464;
  color: #fff;
  font-weight: 700;
}
.works-detail-summary-item dd {
  background: #f4f4f6;
  color: #0d1530;
}
.works-detail-content {
  margin-top: clamp(36px, calc(52 / 1600 * 100vw), 52px);
}
.works-detail-content p {
  margin: 0;
  color: #0d1530;
  font-size: clamp(16px, calc(18 / 1600 * 100vw), 18px);
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.04em;
}
.works-detail-content p + p {
  margin-top: clamp(24px, calc(36 / 1600 * 100vw), 36px);
}
.works-detail-post-nav {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(24px, calc(34 / 1600 * 100vw), 34px);
  margin-top: clamp(50px, calc(70 / 1600 * 100vw), 70px);
}
.works-detail-post-nav-link {
  display: block;
  min-height: clamp(100px, calc(124 / 1600 * 100vw), 124px);
  padding: clamp(20px, calc(28 / 1600 * 100vw), 28px) clamp(26px, calc(42 / 1600 * 100vw), 42px);
  border: 1px solid #d8d8dd;
  border-radius: 4px;
  color: #0d1530 !important;
  text-decoration: none;
}
.works-detail-post-nav-link-next {
  text-align: right;
}
.works-detail-post-nav-label {
  display: block;
  color: #777;
  font-size: clamp(15px, calc(17 / 1600 * 100vw), 17px);
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0.04em;
}
.works-detail-post-nav-ttl {
  display: block;
  margin-top: clamp(10px, calc(14 / 1600 * 100vw), 14px);
  font-size: clamp(16px, calc(18 / 1600 * 100vw), 18px);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.04em;
}

/*-----------------------------------------------
  採用情報
-----------------------------------------------*/
.recruit-page {
  padding: clamp(30px, calc(40 / 1600 * 100vw), 40px) 0 clamp(80px, calc(120 / 1600 * 100vw), 120px);
}
.recruit-page-lead {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 48%);
  align-items: center;
  gap: clamp(36px, calc(64 / 1600 * 100vw), 64px);
}
.recruit-page-lead-ttl {
  margin: 0;
  color: #343464;
  font-size: clamp(26px, calc(38 / 1600 * 100vw), 38px);
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.08em;
}
.recruit-page-lead-txt {
  margin: clamp(18px, calc(28 / 1600 * 100vw), 28px) 0 0;
  font-size: clamp(16px, calc(18 / 1600 * 100vw), 18px);
  line-height: 2;
  letter-spacing: 0.04em;
}
.recruit-page-lead-img img {
  display: block;
  width: 100%;
  height: auto;
}
.recruit-page-sec {
  margin-top: clamp(64px, calc(92 / 1600 * 100vw), 92px);
}
.recruit-page-sec-ttl {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: clamp(20px, calc(34 / 1600 * 100vw), 34px);
  margin: 0 0 clamp(40px, calc(56 / 1600 * 100vw), 56px);
  color: #343464;
  font-size: clamp(22px, calc(28 / 1600 * 100vw), 28px);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.08em;
  text-align: center;
}
.recruit-page-sec-ttl::before,
.recruit-page-sec-ttl::after {
  content: "";
  height: 1px;
  background: #343464;
}
.recruit-page-placeholder {
  background: #e9e9e9;
}
.recruit-page-voice-list {
  display: grid;
  gap: clamp(20px, calc(28 / 1600 * 100vw), 28px);
}
.recruit-page-voice {
  display: grid;
  grid-template-columns: clamp(190px, calc(250 / 1600 * 100vw), 250px) 1fr;
  align-items: center;
  gap: clamp(24px, calc(40 / 1600 * 100vw), 40px);
}
.recruit-page-voice-img {
  aspect-ratio: 1 / 1;
  min-height: clamp(140px, calc(170 / 1600 * 100vw), 170px);
  overflow: hidden;
  background: #e9e9e9;
}
.recruit-page-voice-img img,
.recruit-page-gallery-img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.recruit-page-voice-body {
  position: relative;
  padding: clamp(16px, calc(22 / 1600 * 100vw), 22px) clamp(18px, calc(28 / 1600 * 100vw), 28px);
  border: 1px solid #343464;
  border-radius: 8px;
}
.recruit-page-voice-body::before {
  content: "";
  position: absolute;
  top: 50%;
  left: -13px;
  width: 24px;
  height: 24px;
  border-bottom: 1px solid #343464;
  border-left: 1px solid #343464;
  background: #fff;
  transform: translateY(-50%) rotate(45deg);
}
.recruit-page-voice-ttl,
.recruit-page-voice-txt {
  position: relative;
  margin: 0;
}
.recruit-page-voice-ttl {
  color: #343464;
  font-size: clamp(17px, calc(20 / 1600 * 100vw), 20px);
  font-weight: 700;
  line-height: 1.5;
}
.recruit-page-voice-txt {
  margin-top: clamp(8px, calc(12 / 1600 * 100vw), 12px);
  font-size: clamp(15px, calc(17 / 1600 * 100vw), 17px);
  line-height: 1.8;
  letter-spacing: 0.04em;
}
.recruit-page-env-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(16px, calc(28 / 1600 * 100vw), 28px);
}
.recruit-page-env-item {
  padding: clamp(18px, calc(26 / 1600 * 100vw), 26px);
  background: #f5f5f5;
  text-align: center;
}
.recruit-page-env-icon {
  display: block;
  width: clamp(72px, calc(100 / 1600 * 100vw), 100px);
  height: clamp(72px, calc(100 / 1600 * 100vw), 100px);
  margin: 0 auto;
  object-fit: contain;
}
.recruit-page-env-ttl {
  margin: clamp(12px, calc(18 / 1600 * 100vw), 18px) 0 0;
  color: #343464;
  font-size: clamp(18px, calc(22 / 1600 * 100vw), 22px);
  font-weight: 700;
  line-height: 1.45;
}
.recruit-page-env-txt {
  margin: clamp(12px, calc(16 / 1600 * 100vw), 16px) 0 0;
  font-size: clamp(15px, calc(17 / 1600 * 100vw), 17px);
  line-height: 1.8;
  letter-spacing: 0.04em;
  text-align: left;
}
.recruit-page-job-radio {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  clip-path: inset(50%);
}
.recruit-page-job-tabs {
  display: grid;
  grid-template-columns: repeat(2, clamp(140px, calc(200 / 1600 * 100vw), 200px));
}
.recruit-page-job-tab {
  padding: clamp(10px, calc(14 / 1600 * 100vw), 14px);
  border: 1px solid #ccc;
  background: #fff;
  font-size: clamp(16px, calc(18 / 1600 * 100vw), 18px);
  line-height: 1.4;
  text-align: center;
  cursor: pointer;
}
.recruit-page-job-tab + .recruit-page-job-tab {
  border-left: 0;
}
.recruit-page-job-tabs label[for="recruit-job-management"] {
  border-color: #343464;
  background: #343464;
  color: #fff;
}
.recruit-page-job-panel {
  display: none;
}
.recruit-page-job-panel-management {
  display: block;
}
.recruit-page-job-tabs br { display: none; }
.recruit-page-jobs:has(#recruit-job-other:checked) .recruit-page-job-tabs label[for="recruit-job-management"] {
  border-color: #ccc;
  background: #fff;
  color: inherit;
}
.recruit-page-jobs:has(#recruit-job-other:checked) .recruit-page-job-tabs label[for="recruit-job-other"] {
  border-color: #343464;
  background: #343464;
  color: #fff;
}
.recruit-page-jobs:has(#recruit-job-other:checked) .recruit-page-job-panel-management {
  display: none;
}
.recruit-page-jobs:has(#recruit-job-other:checked) .recruit-page-job-panel-other {
  display: block;
}
.recruit-page-jobs:has(#recruit-job-management:checked) .recruit-page-job-tabs label[for="recruit-job-management"] {
  border-color: #343464;
  background: #343464;
  color: #fff;
}
.recruit-page-jobs:has(#recruit-job-management:checked) .recruit-page-job-tabs label[for="recruit-job-other"] {
  border-color: #ccc;
  background: #fff;
  color: inherit;
}
.recruit-page-jobs:has(#recruit-job-management:checked) .recruit-page-job-panel-management {
  display: block;
}
.recruit-page-jobs:has(#recruit-job-management:checked) .recruit-page-job-panel-other {
  display: none;
}
.recruit-page-job-panel-other {
  min-height: 0;
}
.recruit-page-job-table {
  width: 100%;
  border-collapse: collapse;
  font-size: clamp(15px, calc(17 / 1600 * 100vw), 17px);
  line-height: 1.6;
}
.recruit-page-job-table th,
.recruit-page-job-table td {
  padding: clamp(8px, calc(10 / 1600 * 100vw), 10px) clamp(12px, calc(18 / 1600 * 100vw), 18px);
  border: 1px solid #ccc;
  background: #fff;
  text-align: left;
  vertical-align: middle;
}
.recruit-page-job-table th {
  width: 25%;
  background: #f2f5f7;
  font-weight: 700;
  text-align: center;
}
.recruit-page-message-txt {
  margin: 0;
  font-size: clamp(16px, calc(18 / 1600 * 100vw), 18px);
  line-height: 1.9;
  letter-spacing: 0.04em;
}
.recruit-page-gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(16px, calc(28 / 1600 * 100vw), 28px);
  margin-top: clamp(24px, calc(34 / 1600 * 100vw), 34px);
}
.recruit-page-gallery-img {
  aspect-ratio: 360 / 170;
  overflow: hidden;
  background: #e9e9e9;
}
.recruit-page-entry-link {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: min(100%, 760px);
  min-height: clamp(62px, calc(78 / 1600 * 100vw), 78px);
  margin: clamp(42px, calc(58 / 1600 * 100vw), 58px) auto 0;
  padding: clamp(12px, calc(16 / 1600 * 100vw), 16px) clamp(56px, calc(72 / 1600 * 100vw), 72px);
  border-radius: 6px;
  background: #343464;
  color: #fff !important;
  font-size: clamp(20px, calc(26 / 1600 * 100vw), 26px);
  font-weight: 500;
  letter-spacing: 0.12em;
  text-decoration: none;
}
.recruit-page-entry-link::after {
  content: "";
  position: absolute;
  top: 50%;
  right: clamp(28px, calc(40 / 1600 * 100vw), 40px);
  width: clamp(12px, calc(16 / 1600 * 100vw), 16px);
  height: clamp(12px, calc(16 / 1600 * 100vw), 16px);
  border-top: 3px solid #fff;
  border-right: 3px solid #fff;
  transform: translateY(-50%) rotate(45deg);
}

/*1280px以下*/
@media screen and (max-width: 1280px){
  /*-----------------------------------------------
    header
  -----------------------------------------------*/
  .header-in.wrap {
    padding:
        calc(14 / 1280 * 100vw)
        calc(30 / 1280 * 100vw)
        calc(14 / 1280 * 100vw)
        calc(20 / 1280 * 100vw);
  }

  /*-----( header-body )-----*/
  .header-logo-img {
    width: calc(110 / 1280 * 100vw);
    margin-right: calc(12 / 1280 * 100vw);
  }
  .header-logo-txt {
    font-size: calc(20 / 1280 * 100vw);
    letter-spacing: 0;
  }
  .header-navi-item + .header-navi-item {
    margin-left: calc(16 / 1280 * 100vw);
  }
  .header-navi-link {
    padding: calc(4 / 1280 * 100vw) calc(10 / 1280 * 100vw);
    font-size: calc(21 / 1280 * 100vw);
    letter-spacing: 0.02em;
  }

  /*-----( lower-page-ttl )-----*/
  .lower-page-ttl {
    min-height: calc(260 / 1280 * 100vw);
    padding-top: calc(82 / 1280 * 100vw);
  }
}

/*834px以下*/
@media screen and (max-width: 834px){
  /*-----------------------------------------------
    header
  -----------------------------------------------*/
  .header-in.wrap {
    padding: calc(10 / 390 * 100vw) calc(14 / 390 * 100vw);
  }

  /*-----( header-body )-----*/
  .header-body {
    overflow: hidden;
    align-items: center;
    padding-right: 0;
  }
  .header-logo-img {
    width: calc(60 / 390 * 100vw);
    margin-right: calc(6 / 390 * 100vw);
  }
  .header-logo-txt {
    font-size: calc(16 / 390 * 100vw);
  }

  /*-----( header-navi )-----*/
  .header-navi {
    position: fixed;
    top: 0;
    left: 100%;
    z-index: 5;
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, .9);
    overflow-y: scroll;
    overscroll-behavior-y: contain;
    transition: .5s;
  }
  .header-navi[aria-hidden="false"] {
    left: 20%;
  }
  .header-navi-in {
    height: 100%;
  }
  .header-navi-ul {
    flex-direction: column;
    justify-content: center;
    width: 100%;
    height: 100%;
    padding-left: calc(20 / 390 * 100vw);
  }
  .header-navi-item,
  .header-navi-item-sp {
    display: block;
    width: 100%;
  }
  .header-navi-item + .header-navi-item {
    margin-top: calc(30 / 390 * 100vw);
    margin-left: 0;
  }
  .header-navi-link {
    width: 100%;
    padding-top: 0;
    padding-bottom: 0;
    text-align: left;
    font-size: calc(22 / 390 * 100vw);
  }

  /*-----( header-btn )-----*/
  .header-btn {
    position: relative;
    width: 40px;
    height: 40px;
    z-index: 6;
    background: #fff;
    border: 2px solid #000;
    border-radius: 8px;
  }  
  .header-btn-in {
    position: absolute;
    top: 50%;
    left: 50%;
    display: block;
    width: 20px;
    height: 18px;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
  }
  .header-btn,
  .header-btn-in span {
    display: inline-block;
    transition: .4s;
    box-sizing: border-box;
  }
  .header-btn-in span {
    position: absolute;
    left: 50%;
    width: 20px;
    height: 3px;
    border-radius: 2px;
    /* background-color: #000; */
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
  }
  .header-btn-in span:nth-of-type(1) {
    top: 0;
    background-color: #962e33;
  }
  .header-btn-in span:nth-of-type(2) {
    top: 7px;
    background-color: #006f45;
  }
  .header-btn-in span:nth-of-type(3) {
    bottom: 0px;
    background-color: #343464;
  }
  .header-btn[aria-expanded=true] .header-btn-in span:nth-of-type(1) {
    -webkit-transform: translateY(10px) rotate(-45deg);
    transform: translateY(10px) translateX(-50%) rotate(-45deg);
    top: -2px;
  }
  .header-btn[aria-expanded=true] .header-btn-in span:nth-of-type(2) {
    opacity: 0;
  }
  .header-btn[aria-expanded=true] .header-btn-in span:nth-of-type(3) {
    -webkit-transform: translateY(-10px) rotate(45deg);
    transform: translateY(-10px) translateX(-50%) rotate(45deg);
    bottom: -3px;
  }

  /*-----( fixed-contact-menu )-----*/
  .fixed-contact-menu {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 20;
    display: flex;
    width: 100%;
    height: calc(62 / 390 * 100vw);
    min-height: 54px;
    max-height: 68px;
    background: #fff;
    border-top: 1px solid #777;
    box-sizing: content-box;
  }
  .fixed-contact-menu-link {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 50%;
    min-width: 0;
    color: #000 !important;
    font-weight: 400;
    line-height: 1;
    text-decoration: none;
    box-sizing: border-box;
  }
  .fixed-contact-menu-link + .fixed-contact-menu-link {
    border-left: 1px solid #777;
  }
  .fixed-contact-menu-icon {
    flex-shrink: 0;
    display: block;
    width: calc(30 / 390 * 100vw);
  }
  .fixed-contact-menu-txt {
    display: block;
    white-space: nowrap;
    letter-spacing: 0;
    font-weight: 600;
  }
  .fixed-contact-menu-link-tel .fixed-contact-menu-txt {
    font-size: clamp(16px, calc(21 / 390 * 100vw), 21px);
  }
  .fixed-contact-menu-link-mail .fixed-contact-menu-txt {
    margin-left: calc(8 / 390 * 100vw);
    font-size: clamp(17px, calc(19 / 390 * 100vw), 19px);
  }

  /*-----( lower-page-ttl )-----*/
  .lower-page-ttl {
    min-height: calc(150 / 390 * 100vw);
    padding-top: calc(58 / 390 * 100vw);
  }
  .lower-page-ttl-txt {
    font-size: calc(22 / 390 * 100vw);
  }
  .lower-page-ttl-txt::before {
    bottom: calc(2 / 390 * 100vw);
    left: calc(-252 / 390 * 100vw);
    width: calc(250 / 390 * 100vw);
  }

  /*-----------------------------------------------
    トップページ
  -----------------------------------------------*/
  /*-----( トップページ共通 )-----*/
  .front-sec-ttl {
    font-size: calc(30 / 390 * 100vw);
  }
  .front-sec-ttl::before {
    width: calc(200 / 390 * 100vw);
    left: calc(-206 / 390 * 100vw);
    bottom: calc(2 / 390 * 100vw);
  }
  .front-sec-sub {
    margin-left: calc(4 / 390 * 100vw);
    font-size: calc(14 / 390 * 100vw);
  }
  .home .cmn-btn-01 {
    margin-right: auto;
  }

  /*-----( front-mv )-----*/
  .front-mv {
    padding-top: calc(60 / 390 * 100vw);
  }
  .front-mv-ttl {
    left: calc(10 / 390 * 100vw);
    right: auto;
    top: calc(70 / 390 * 100vw);
    padding: calc(30 / 390 * 100vw);
    font-size: calc(22 / 390 * 100vw);
    letter-spacing: 0.08em;
  }
  .front-mv-ttl::before {
    inset:
      calc(6 / 390 * 100vw)
      calc(-2 / 390 * 100vw)
      calc(12 / 390 * 100vw)
      calc(-10 / 390 * 100vw);
    filter: blur(calc(14 / 390 * 100vw));
  }
  .front-mv-ttl::after {
    inset:
      calc(11 / 390 * 100vw)
      calc(8 / 390 * 100vw)
      calc(17 / 390 * 100vw)
      calc(0 / 390 * 100vw);
    filter: blur(calc(8 / 390 * 100vw));
  }
  .front-mv-ttl span + span {
    margin-top: calc(6 / 390 * 100vw);
  }
  .front-mv-recruit {
    bottom: calc(10 / 390 * 100vw);
    width: calc(32 / 390 * 100vw);
    height: calc(90 / 390 * 100vw);
    padding-top: calc(8 / 390 * 100vw);
    border-radius: calc(6 / 390 * 100vw) 0 0 calc(6 / 390 * 100vw);
  }
  .front-mv-recruit::before {
    width: calc(12 / 390 * 100vw);
  }
  .front-mv-recruit span {
    font-size: calc(12 / 390 * 100vw);
  }

  /*-----( front-lead )-----*/
  .front-lead {
    padding: calc(40 / 390 * 100vw) 0 0;
  }
  .front-lead-bg::after {
    width: 60%;
    margin-top: calc(50 / 390 * 100vw);
  }
  .front-lead-inner {
    display: block;
    background-position: center 50%;
  }
  .front-lead-ttl {
    text-align: center;
    width: 100%;
    font-size: calc(20 / 390 * 100vw);
  }
  .front-lead-ttl span {
    display: inline-block;
  }
  .front-lead-ttl span:nth-child(2) {
    text-align: left;
  }
  .front-lead-body {
    padding-top: calc(30 / 390 * 100vw);
    padding-left: 0;
  }
  .front-lead-body-inner {
    padding-right: 0;
  }
  .front-lead-txt {
    font-size: calc(15 / 390 * 100vw);
  }
  .front-lead-txt br {
    display: none;
  }
  .front-lead-txt + .front-lead-txt {
    margin-top: calc(18 / 390 * 100vw);
  }
  .front-lead-link {
    margin: calc(30 / 390 * 100vw) auto 0;
  }

  /*-----( front-biz )-----*/
  .front-biz {
    padding: calc(60 / 390 * 100vw) 0;
  }
  .front-biz::before {
    top: 10%;
    height: calc(2 / 390 * 100vw);
  }
  .front-biz-list {
    grid-template-columns: repeat(2, 1fr);
    gap: calc(10 / 390 * 100vw);
    margin: calc(30 / 390 * 100vw) auto calc(40 / 390 * 100vw);
  }
  .front-biz-list-item {
    padding: calc(20 / 390 * 100vw) 0 0 calc(20 / 390 * 100vw);
  }
  .front-biz-list-item-ttl {
    font-size: calc(18 / 390 * 100vw);
  }
  .front-biz-list-item-txt {
    padding-left: calc(5 / 390 * 100vw);
    font-size: calc(10 / 390 * 100vw);
  }

  /*-----( front-work )-----*/
  .front-work {
    padding: calc(40 / 390 * 100vw) 0;
  }
  .front-work-list {
    gap: calc(14 / 390 * 100vw);
  }
  .front-work-list-ttl {
    margin-top: calc(8 / 390 * 100vw);
    font-size: calc(14 / 390 * 100vw);
  }

  /*-----( front-ig-banner )-----*/
  .front-ig-banner {
    width: calc(340 / 390 * 100vw);
    padding: calc(20 / 390 * 100vw) 0;
    margin: calc(60 / 390 * 100vw) auto 0;
    font-size: calc(14 / 390 * 100vw);
    border-width: calc(2 / 390 * 100vw);
  }
  .front-ig-banner::before {
    width: calc(24 / 390 * 100vw);
  }
  .front-ig-banner-txt::before,
  .front-ig-banner-txt::after {
    height: calc(30 / 390 * 100vw);
    margin-bottom: calc(-2 / 390 * 100vw);
  }
  .front-ig-banner-txt::before {
    margin-right: calc(10 / 390 * 100vw);
  }
  .front-ig-banner-txt::after {
    margin-left: calc(10 / 390 * 100vw);
  }
  .front-ig-banner-txt b,
  .front-ig-banner-txt span {
    margin-bottom: calc(-2 / 390 * 100vw);
    font-size: calc(18 / 390 * 100vw);
  }

  /*-----( front-recruit )-----*/
  .front-recruit {
    padding: calc(60 / 390 * 100vw) 0;
  }
  .front-recruit::before {
    height: calc(2 / 390 * 100vw);
  }
  .front-recruit::after {
    top: calc(180 / 390 * 100vw);
    width: 92%;
  }
  .front-recruit-txt {
    margin-top: calc(20 / 390 * 100vw);
    margin-right: 0;
    margin-bottom: calc(140 / 390 * 100vw);
    font-size: calc(22 / 390 * 100vw);
  }

  /*-----------------------------------------------
    footer
  -----------------------------------------------*/
  /*-----( footer-cta )-----*/
  .footer-cta-lead {
    display: block;
    padding: calc(20 / 390 * 100vw) 0 calc(30 / 390 * 100vw);
  }
  .footer-cta-lead-header {
    margin-right: 0;
  }
  .footer-cta-lead-header-en {
    font-size: calc(26 / 390 * 100vw);
  }
  .footer-cta-lead-header-ja {
    font-size: calc(14 / 390 * 100vw);
  }
  .footer-cta-lead-body {
    margin-top: calc(14 / 390 * 100vw);
    font-size: calc(14 / 390 * 100vw);
  }
  .footer-cta-lead-body br {
    display: none;
  }
  .footer-cta-box {
    padding: calc(12 / 390 * 100vw);
  }
  .footer-cta-box-ttl {
    font-size: calc(18 / 390 * 100vw);
  }
  .footer-cta-box-ttl::before {
    width: calc(24 / 390 * 100vw);
    margin-right: calc(8 / 390 * 100vw);
  }
  .footer-cta-tel {
    margin: calc(10 / 390 * 100vw) 0 0;
  }
  .footer-cta-tel-link {
    font-size: calc(20 / 390 * 100vw);
    letter-spacing: 0.05em;
  }
  .footer-cta-tel-txt {
    margin-top: calc(6 / 390 * 100vw);
    font-size: calc(12 / 390 * 100vw);
  }
  .footer-cta-mail {
    margin: calc(8 / 390 * 100vw) 0 0;
    font-size: calc(12 / 390 * 100vw);
    line-height: 1.6;
  }

  /*-----( footer-main )-----*/
  .footer-main {
    padding: calc(40 / 390 * 100vw) 0 calc(30 / 390 * 100vw);
  }
  .footer-main-wrapper {
    display: block;
  }
  .footer-main .header-logo-img {
    width: calc(130 / 390 * 100vw);
    margin-right: calc(16 / 390 * 100vw);
  }
  .footer-main .header-logo-txt {
    color: #fff;
    font-size: calc(16 / 390 * 100vw);
  }
  .footer-main-body {
    width: 100%;
    margin-top: calc(30 / 390 * 100vw);
  }
  .footer-main-info {
    grid-template-columns: calc(92 / 390 * 100vw) 1fr;
    gap: calc(14 / 390 * 100vw);
  }
  .footer-main-info + .footer-main-info {
    margin-top: calc(24 / 390 * 100vw);
  }
  .footer-main-info-txt {
    font-size: calc(13 / 390 * 100vw);
  }

  /*-----( footer-end )-----*/
  .footer-end-wrapper {
    flex-direction: column-reverse;
    min-height: auto;
    padding: calc(30 / 390 * 100vw) 0 calc(86 / 390 * 100vw);
  }
  .footer-end-list {
    position: static;
    margin-bottom: calc(8 / 390 * 100vw);
    transform: none;
  }
  .footer-end-txt,
  .footer-end-list-link {
    font-size: calc(10 / 390 * 100vw);
  }
 
  /*-----------------------------------------------
    プライバシーポリシー
  -----------------------------------------------*/
  .privacy-page {
    padding: 0 0 calc(70 / 390 * 100vw);
  }
  .privacy-page-in.wrapper {
    width: calc(342 / 390 * 100vw);
  }
  .privacy-page-lead {
    padding-bottom: calc(28 / 390 * 100vw);
  }
  .privacy-page-sec {
    padding: calc(30 / 390 * 100vw) 0;
  }
  .privacy-page-sec-ttl {
    margin-bottom: calc(14 / 390 * 100vw);
    padding-left: calc(12 / 390 * 100vw);
    border-left-width: 3px;
    font-size: calc(18 / 390 * 100vw);
  }
  .privacy-page-txt,
  .privacy-page-list-item {
    font-size: calc(14 / 390 * 100vw);
    line-height: 1.9;
    letter-spacing: 0.02em;
  }
  .privacy-page-list {
    margin-top: calc(14 / 390 * 100vw);
  }
  .privacy-page-list-item {
    padding-left: calc(16 / 390 * 100vw);
  }
  .privacy-page-list-item::before {
    top: calc(11 / 390 * 100vw);
    width: calc(5 / 390 * 100vw);
  }
  .privacy-page-list-item + .privacy-page-list-item {
    margin-top: calc(8 / 390 * 100vw);
  }

  /*-----------------------------------------------
    事業内容
  -----------------------------------------------*/
  .service-page {
    padding: calc(10 / 390 * 100vw) 0 calc(62 / 390 * 100vw);
  }
  .service-page-lead {
    font-size: calc(15 / 390 * 100vw);
    line-height: 1.8;
  }
  .service-page-list {
    margin-top: calc(34 / 390 * 100vw);
  }
  .service-page-item,
  .service-page-item:nth-child(even) {
    display: block;
  }
  .service-page-item + .service-page-item {
    margin-top: calc(40 / 390 * 100vw);
  }
  .service-page-img {
    aspect-ratio: 335 / 210;
    margin-bottom: calc(20 / 390 * 100vw);
  }
  .service-page-item-ttl {
    padding-bottom: calc(12 / 390 * 100vw);
    font-size: calc(22 / 390 * 100vw);
  }
  .service-page-item-ttl::before {
    width: calc(5 / 390 * 100vw);
    height: calc(36 / 390 * 100vw);
    margin-right: calc(12 / 390 * 100vw);
  }
  .service-page-item-txt {
    margin-top: calc(16 / 390 * 100vw);
    font-size: calc(14 / 390 * 100vw);
    line-height: 1.9;
  }
  .service-page-work-link {
    width: calc(280 / 390 * 100vw);
    min-height: calc(86 / 390 * 100vw);
    margin-top: calc(44 / 390 * 100vw);
    padding:
      calc(14 / 390 * 100vw)
      calc(60 / 390 * 100vw)
      calc(16 / 390 * 100vw);
    border-radius: calc(6 / 390 * 100vw);
  }
  .service-page-work-link::after {
    right: calc(30 / 390 * 100vw);
    width: calc(14 / 390 * 100vw);
    height: calc(14 / 390 * 100vw);
    border-top-width: calc(3 / 390 * 100vw);
    border-right-width: calc(3 / 390 * 100vw);
  }
  .service-page-work-link-ja {
    font-size: calc(22 / 390 * 100vw);
  }
  .service-page-work-link-en {
    margin-top: 0;
    font-size: calc(14 / 390 * 100vw);
  }

  /*-----------------------------------------------
    企業情報
  -----------------------------------------------*/
  .about-page {
    padding: calc(10 / 390 * 100vw) 0 calc(70 / 390 * 100vw);
  }
  .about-page-sec-ttl {
    min-width: calc(150 / 390 * 100vw);
    padding:
      calc(8 / 390 * 100vw)
      calc(38 / 390 * 100vw)
      calc(8 / 390 * 100vw)
      calc(14 / 390 * 100vw);
    font-size: calc(20 / 390 * 100vw);
  }
  .about-page-greeting-row {
    display: block;
    margin-top: calc(24 / 390 * 100vw);
  }
  .about-page-greeting-ttl {
    font-size: calc(18 / 390 * 100vw);
  }
  .about-page-txt {
    margin-top: calc(12 / 390 * 100vw);
    font-size: calc(14 / 390 * 100vw);
    line-height: 1.9;
  }
  .about-page-greeting-creed {
    margin: calc(12 / 390 * 100vw) 0;
    font-size: calc(14 / 390 * 100vw);
    line-height: 1.9;
  }
  .about-page-txt br {
    display: none;
  }
  .about-page-representative {
    width: calc(240 / 390 * 100vw);
    margin: calc(24 / 390 * 100vw) auto 0;
  }
  .about-page-representative-name {
    margin-top: calc(10 / 390 * 100vw);
    font-size: calc(14 / 390 * 100vw);
  }
  .about-page-company {
    margin-top: calc(46 / 390 * 100vw);
  }
  .about-page-table {
    font-size: calc(13 / 390 * 100vw);
  }
  .about-page-table th,
  .about-page-table td {
    padding: calc(7 / 390 * 100vw) calc(8 / 390 * 100vw);
  }
  .about-page-table th {
    width: 28%;
  }
  .about-page-company-table,
  .about-page-history-table {
    margin-top: calc(14 / 390 * 100vw);
  }
  .about-page-sub-ttl {
    font-size: calc(18 / 390 * 100vw);
  }
  .about-page-sub-ttl::before {
    width: calc(4 / 390 * 100vw);
    height: calc(26 / 390 * 100vw);
    margin-right: calc(10 / 390 * 100vw);
  }
  .about-page-office {
    margin-top: calc(38 / 390 * 100vw);
  }
  .about-page-office-table {
    margin-top: calc(12 / 390 * 100vw);
  }
  .about-page-office-gallery {
    gap: calc(8 / 390 * 100vw);
    margin-top: calc(18 / 390 * 100vw);
  }
  .about-page-map {
    aspect-ratio: 342 / 180;
    margin-top: calc(18 / 390 * 100vw);
  }
  .about-page-history {
    margin-top: calc(46 / 390 * 100vw);
  }
  .about-page-history-table th {
    width: 38%;
  }
  .about-page-business-row {
    display: block;
    margin-top: calc(46 / 390 * 100vw);
  }
  .about-page-business + .about-page-business {
    margin-top: calc(32 / 390 * 100vw);
  }
  .about-page-business-list {
    margin-top: calc(12 / 390 * 100vw);
  }
  .about-page-business-list li {
    padding: calc(7 / 390 * 100vw) calc(10 / 390 * 100vw);
    font-size: calc(13 / 390 * 100vw);
  }

  /*-----------------------------------------------
    お問合せ
  -----------------------------------------------*/
  .contact-page {
    padding: calc(10 / 390 * 100vw) 0 calc(70 / 390 * 100vw);
  }
  .contact-page-form-row {
    display: block;
  }
  .contact-page-form-label {
    gap: calc(8 / 390 * 100vw);
    padding: calc(10 / 390 * 100vw) calc(12 / 390 * 100vw);
    font-size: calc(14 / 390 * 100vw);
  }
  .contact-page-form-required {
    padding: calc(2 / 390 * 100vw) calc(5 / 390 * 100vw);
    font-size: calc(10 / 390 * 100vw);
  }
  .contact-page-form-field {
    padding: calc(10 / 390 * 100vw) calc(12 / 390 * 100vw) calc(14 / 390 * 100vw);
  }
  .contact-page-form-field input,
  .contact-page-form-field textarea {
    padding: calc(8 / 390 * 100vw);
    font-size: calc(14 / 390 * 100vw);
  }
  .contact-page-form-field textarea {
    min-height: calc(150 / 390 * 100vw);
  }
  .contact-page-form-note {
    margin-bottom: calc(8 / 390 * 100vw);
    font-size: calc(13 / 390 * 100vw);
  }
  .contact-page-form-submit {
    margin-top: calc(30 / 390 * 100vw);
  }
  .contact-page-form-submit input[type="submit"] {
    width: calc(220 / 390 * 100vw);
    min-height: calc(52 / 390 * 100vw);
    font-size: calc(16 / 390 * 100vw);
  }
  .contact-page .wpcf7-spinner {
    margin-top: calc(12 / 390 * 100vw);
  }
  .contact-page .wpcf7-not-valid-tip {
    margin-top: calc(6 / 390 * 100vw);
    font-size: calc(12 / 390 * 100vw);
  }
  .contact-page .wpcf7-response-output {
    margin-top: calc(20 / 390 * 100vw);
    font-size: calc(13 / 390 * 100vw);
  }

  /*-----------------------------------------------
    施工実績一覧
  -----------------------------------------------*/
  .works-archive {
    padding: calc(10 / 390 * 100vw) 0 calc(70 / 390 * 100vw);
  }
  .works-archive-list {
    display: block;
  }
  .works-archive-item + .works-archive-item {
    margin-top: calc(32 / 390 * 100vw);
  }
  .works-archive-body {
    margin-top: calc(10 / 390 * 100vw);
  }
  .works-archive-ttl {
    margin-top: calc(4 / 390 * 100vw);
    font-size: calc(18 / 390 * 100vw);
  }
  .works-archive-pagination {
    margin-top: calc(38 / 390 * 100vw);
  }
  .works-archive-pagination .page-numbers {
    gap: calc(8 / 390 * 100vw);
  }
  .works-archive-pagination .page-numbers a,
  .works-archive-pagination .page-numbers span {
    min-width: calc(36 / 390 * 100vw);
    height: calc(36 / 390 * 100vw);
    padding: 0 calc(8 / 390 * 100vw);
    font-size: calc(14 / 390 * 100vw);
  }
  .works-archive-empty {
    font-size: calc(14 / 390 * 100vw);
  }

  /*-----------------------------------------------
    施工実績詳細
  -----------------------------------------------*/
  .works-detail {
    padding: calc(10 / 390 * 100vw) 0 calc(70 / 390 * 100vw);
  }
  .works-detail-header {
    display: block;
  }
  .works-detail-ttl {
    font-size: calc(24 / 390 * 100vw);
  }
  .works-detail-gallery {
    margin-top: calc(22 / 390 * 100vw);
  }
  .works-detail-main-slider .splide__track,
  .works-detail-main-slider .splide__list,
  .works-detail-main-slider .splide__slide {
    height: 100%;
  }

  .works-detail-main-slider .splide__slide {
    aspect-ratio: auto;
  }
  .works-detail-main-slider .splide__arrow {
    width: calc(32 / 390 * 100vw);
    height: calc(32 / 390 * 100vw);
  }
  .works-detail-main-slider .splide__arrow svg {
    width: calc(22 / 390 * 100vw);
    height: calc(22 / 390 * 100vw);
  }
  .works-detail-main-slider .splide__arrow--prev {
    left: calc(6 / 390 * 100vw);
  }
  .works-detail-main-slider .splide__arrow--next {
    right: calc(6 / 390 * 100vw);
  }
  .works-detail-thumb-slider {
    padding: calc(6 / 390 * 100vw);
  }
  .works-detail-summary {
    margin-top: calc(38 / 390 * 100vw);
  }
  .works-detail-sec-ttl {
    gap: calc(14 / 390 * 100vw);
    font-size: calc(22 / 390 * 100vw);
  }
  .works-detail-summary-list {
    display: block;
    margin-top: calc(22 / 390 * 100vw);
  }
  .works-detail-summary-item {
    grid-template-columns: calc(112 / 390 * 100vw) minmax(0, 1fr);
  }
  .works-detail-summary-item + .works-detail-summary-item {
    border-top: 1px solid #e4e4e8;
    border-left: none;
  }
  .works-detail-summary-item dt,
  .works-detail-summary-item dd {
    padding: calc(12 / 390 * 100vw) calc(14 / 390 * 100vw);
    font-size: calc(14 / 390 * 100vw);
  }
  .works-detail-content {
    margin-top: calc(28 / 390 * 100vw);
  }
  .works-detail-content p {
    font-size: calc(14 / 390 * 100vw);
    line-height: 1.9;
  }
  .works-detail-content p + p {
    margin-top: calc(22 / 390 * 100vw);
  }
  .works-detail-post-nav {
    display: block;
    margin-top: calc(38 / 390 * 100vw);
  }
  .works-detail-post-nav-link {
    min-height: auto;
    padding: calc(18 / 390 * 100vw) calc(20 / 390 * 100vw);
  }
  .works-detail-post-nav-link + .works-detail-post-nav-link {
    margin-top: calc(14 / 390 * 100vw);
  }
  .works-detail-post-nav-label {
    font-size: calc(13 / 390 * 100vw);
  }
  .works-detail-post-nav-ttl {
    margin-top: calc(8 / 390 * 100vw);
    font-size: calc(14 / 390 * 100vw);
  }

  /*-----------------------------------------------
    採用情報
  -----------------------------------------------*/
  .recruit-page {
    padding: calc(10 / 390 * 100vw) 0 calc(70 / 390 * 100vw);
  }
  .recruit-page-lead {
    display: flex;
    flex-direction: column-reverse;
    gap: calc(18 / 390 * 100vw);
  }
  .recruit-page-lead-img {
    width: 100%;
  }
  .recruit-page-lead-ttl {
    font-size: calc(24 / 390 * 100vw);
    line-height: 1.65;
  }
  .recruit-page-lead-txt {
    margin-top: calc(14 / 390 * 100vw);
    font-size: calc(14 / 390 * 100vw);
    line-height: 1.9;
  }
  .recruit-page-sec {
    margin-top: calc(48 / 390 * 100vw);
  }
  .recruit-page-sec-ttl {
    gap: calc(12 / 390 * 100vw);
    margin-bottom: calc(20 / 390 * 100vw);
    font-size: calc(18 / 390 * 100vw);
  }
  .recruit-page-voice-list {
    gap: calc(20 / 390 * 100vw);
  }
  .recruit-page-voice {
    display: block;
  }
  .recruit-page-voice-img {
    min-height: 0;
  }
  .recruit-page-voice-body {
    margin-top: calc(10 / 390 * 100vw);
    padding: calc(14 / 390 * 100vw);
    border-radius: calc(6 / 390 * 100vw);
  }
  .recruit-page-voice-body::before {
    top: calc(-8 / 390 * 100vw);
    left: calc(24 / 390 * 100vw);
    width: calc(14 / 390 * 100vw);
    height: calc(14 / 390 * 100vw);
    transform: rotate(135deg);
  }
  .recruit-page-voice-ttl {
    font-size: calc(16 / 390 * 100vw);
  }
  .recruit-page-voice-txt {
    margin-top: calc(8 / 390 * 100vw);
    font-size: calc(14 / 390 * 100vw);
    line-height: 1.8;
  }
  .recruit-page-env-list {
    display: block;
  }
  .recruit-page-env-item + .recruit-page-env-item {
    margin-top: calc(12 / 390 * 100vw);
  }
  .recruit-page-env-item {
    padding: calc(16 / 390 * 100vw);
  }
  .recruit-page-env-icon {
    width: calc(72 / 390 * 100vw);
    height: calc(72 / 390 * 100vw);
  }
  .recruit-page-env-ttl {
    margin-top: calc(8 / 390 * 100vw);
    font-size: calc(18 / 390 * 100vw);
  }
  .recruit-page-env-txt {
    margin-top: calc(8 / 390 * 100vw);
    font-size: calc(14 / 390 * 100vw);
    line-height: 1.8;
  }
  .recruit-page-job-tabs {
    grid-template-columns: repeat(2, 1fr);
  }
  .recruit-page-job-tab {
    padding: calc(10 / 390 * 100vw);
    font-size: calc(14 / 390 * 100vw);
  }
  .recruit-page-job-table {
    font-size: calc(15 / 390 * 100vw);
  }
  .recruit-page-job-table th,
  .recruit-page-job-table td {
    display: block;
    width: 100%;
    padding: calc(7 / 390 * 100vw) calc(8 / 390 * 100vw);
  }
  .recruit-page-job-table th {
    border-bottom: 0;
    text-align: left;
  }
  .recruit-page-job-panel-other {
    min-height: 0;
  }
  .recruit-page-message-txt {
    font-size: calc(14 / 390 * 100vw);
    line-height: 1.8;
  }
  .recruit-page-gallery {
    display: block;
    gap: calc(8 / 390 * 100vw);
    margin-top: calc(18 / 390 * 100vw);
  }
  .recruit-page-gallery-img + .recruit-page-gallery-img {
    margin-top: calc(12 / 390 * 100vw);
  }
  .recruit-page-entry-link {
    min-height: calc(58 / 390 * 100vw);
    margin-top: calc(34 / 390 * 100vw);
    padding: calc(12 / 390 * 100vw) calc(50 / 390 * 100vw);
    border-radius: calc(6 / 390 * 100vw);
    font-size: calc(18 / 390 * 100vw);
  }
  .recruit-page-entry-link::after {
    right: calc(24 / 390 * 100vw);
    width: calc(12 / 390 * 100vw);
    height: calc(12 / 390 * 100vw);
    border-top-width: calc(3 / 390 * 100vw);
    border-right-width: calc(3 / 390 * 100vw);
  }

}

.grecaptcha-badge {display:none !important;}
