@charset "utf-8";
@import url("https://cdn.jsdelivr.net/npm/yakuhanjp@4.1.1/dist/css/yakuhanjp_s.css");
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;600;700;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=M+PLUS+1p:wght@400;500;700;900&family=Zen+Kaku+Gothic+Antique:wght@400;700&display=swap');

:root {
  --color-base: #5766AF;
  --color-base-light: #F4F3F9;
  --color-base-dark: #D6CCF4;
  --color-white: #fff;
  --color-black: #000;
  --color-text-base: #000;
  --color-text-blue: #5766AF;
  --color-text-white: #fff;
  --color-text-gray: #707070;
  --font-thin: 300;
  --font-regular: 400;
  --font-bold: 500;
  --font-black: 700;
  --font-family-base: "YakuHanJPs", "Noto Sans JP", sans-serif;
  --font-family-title: "YakuHanJPs", "Zen Kaku Gothic Antique", sans-serif;
  --font-size-64px: 4rem;
  --font-size-50px: 3.125rem;
  --font-size-48px: 3rem;
  --font-size-46px: 2.875rem;
  --font-size-42px: 2.625rem;
  --font-size-40px: 2.5rem;
  --font-size-36px: 2.25rem;
  --font-size-30px: 1.875rem;
  --font-size-28px: 1.75rem;
  --font-size-24px: 1.5rem;
  --font-size-22px: 1.375rem;
  --font-size-20px: 1.25rem;
  --font-size-18px: 1.125rem;
  --font-size-16px: 1rem;
  --font-size-15px: 0.9375rem;
  --font-size-14px: 0.875rem;
  --font-size-13px: 0.8125rem;
  --font-size-12px: 0.75rem;
  --font-size-11px: 0.6875rem;
  --font-size-10px: 0.625rem;
}

@font-face {
  font-family: 'icomoon';
  src:  url('../fonts/icomoon.eot?7pat4x');
  src:  url('../fonts/icomoon.eot?7pat4x#iefix') format('embedded-opentype'),
    url('../fonts/icomoon.ttf?7pat4x') format('truetype'),
    url('../fonts/icomoon.woff?7pat4x') format('woff'),
    url('../fonts/icomoon.svg?7pat4x#icomoon') format('svg');
  font-weight: normal;
  font-style: normal;
  font-display: block;
}

[class^="icon-"], [class*=" icon-"] {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'icomoon' !important;
  speak: never;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;

  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-home:before {
  content: "\e902";
}
.icon-tel:before {
  content: "\e903";
  color: #5766af;
}
.icon-mail:before {
  content: "\e900";
  color: #5766af;
}
.icon-recruit:before {
  content: "\e901";
  color: #5766af;
}


*,
*::before,
*::after {
  box-sizing: border-box;
}
html {
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
  scroll-behavior: smooth;
}
html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,abbr,address,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,var,b,i,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,time,mark,audio,video {
  margin: 0;
  padding: 0;
  margin-block-end: 0;
  border: 0;
  outline: 0;
  vertical-align: baseline;
}
ul[role='list'],
ol[role='list'] {
  list-style: none;
}
h1, h2, h3, h4,
button, input, label {
  line-height: 1.1;
}
a {
  color: var(--base-text-color);
  text-decoration: none;
  transition: all 0.3s;
}
a.underline {
  text-decoration: underline;
}
a:not([class]) {
  text-decoration-skip-ink: auto;
  color: currentColor;
}
img,
picture {
  display: block;
  max-width: 100%;
  height: auto;
}
address,
em {
  font-style: normal;
}
input, button,
textarea, select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: transparent;
  border: none;
  border-radius: 0;
  font: inherit;
  outline: none;
}
button {
  transition : all 0.3s;
}
textarea {
  padding: 7px;
  resize: vertical;
}
input[type='checkbox'],
input[type='radio'] {  
  position: absolute;
  opacity: 0;
  -webkit-appearance: none;
  appearance: none;
}
input[type='submit'],
input[type='button'],
label, button, select {
  cursor: pointer;
}
select::-ms-expand {
  display: none;
}
input[type='text'],
input[type='email'],
input[type='tel'],
input[type='password'],
textarea {
  padding: 15px 15px;
  font-size: var(--font-size-16px);
  background: #fff;
  border-radius: 6px;
}
::placeholder {
  color: #999;
}
input, select {
	vertical-align: middle;
}
textarea:not([rows]) {
  min-height: 10em;
}
table {
  border-collapse: separate;
  border-spacing: 0;
}
:target {
  scroll-margin-block: 5ex;
}
.text_center {
  text-align: center;
}
@media (min-width: 768px) {
  a[href*="tel:"] {
    pointer-events: none;
    cursor: default;
    text-decoration: none;
  }
}

a[x-apple-data-detectors] {
  color: inherit !important;
  text-decoration: none !important;
  pointer-events: none !important;
}

.d-inline {
  display: inline !important;
}
.d-inline-block {
  display: inline-block !important;
}
.d-block {
  display: block !important;
}
.d-none {
  display: none !important;
}
@media (min-width: 521px) {
  .d-sm-inline {
    display: inline !important;
  }
  .d-sm-inline-block {
    display: inline-block !important;
  }
  .d-sm-block {
    display: block !important;
  }
  .d-sm-none {
    display: none !important;
  }
}
@media (min-width: 769px) {
  .d-md-inline {
    display: inline !important;
  }
  .d-md-inline-block {
    display: inline-block !important;
  }
  .d-md-block {
    display: block !important;
  }
  .d-md-none {
    display: none !important;
  }
}
@media (min-width: 961px) {
  .d-lg-inline {
    display: inline !important;
  }
  .d-lg-inline-block {
    display: inline-block !important;
  }
  .d-lg-block {
    display: block !important;
  }
  .d-lg-none {
    display: none !important;
  }
}
@media (min-width: 1201px) {
  .d-xl-inline {
    display: inline !important;
  }
  .d-xl-inline-block {
    display: inline-block !important;
  }
  .d-xl-block {
    display: block !important;
  }
  .d-xl-none {
    display: none !important;
  }
}
@media (min-width: 1401px) {
  .d-xxl-inline {
    display: inline !important;
  }
  .d-xxl-inline-block {
    display: inline-block !important;
  }
  .d-xxl-block {
    display: block !important;
  }
  .d-xxl-none {
    display: none !important;
  }
}


/*----------------------------------------*/
/* base */
/*----------------------------------------*/
html {
  height: 100%;
}
body {
  height: 100%;
  font-family: var(--font-family-base);
  font-feature-settings: "palt";
  color: var(--color-text-base);
  font-weight: var(--font-regular);
  line-height: 1.8;
  letter-spacing: .05em;
  /*opacity: 0;*/
  transition: opacity 1.0s ease-in-out;
  -webkit-font-smoothing: antialiased;
}
.wrapper {
  position: relative;
}
.wrapper > footer {
  position: sticky;
  top: 100vh;
}

/*---header---*/
.header-area {
  /*position: fixed;*/
  position: sticky;
  top: 0;
  left: 0;
  display: flex;
  align-items: flex-end;
  width: 100%;
  height: 120px;
  line-height: 1;
  z-index: 999;
  background-color: var(--color-white);
}
/*PCサイズ時のヘッダー*/
.header-area__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  height: 100%;
  padding: 0 30px;
}
.header-label-block {
  display: flex;
  align-items: center;
}
.header-logo-block {
  display: flex;
  align-items: baseline;
  gap: 20px;
}
.header-logo {
  width: 95px;
}
.header-logo_name {
  width: 260px;
}
.header-label {
  display: none;
}
.header-menu-block {
  display: flex;
  /* flex-direction: column-reverse; */
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-end;
  height: 100%;
  font-size: clamp(15px,1.25vw,16px);
  font-weight: var(--font-bold);
}
.globalnav-list {
  display: flex;
  align-items: center;
  list-style: none;
  text-decoration: none;
}
.globalnav-list-item:hover {
  color: var(--color-text-blue);
}
.globalnav-list-item {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0 20px;
  height: 70px;
  letter-spacing: .1em;
  transition: color 0.3s;
}
.globalnav-list-item::after {
  position: absolute;
  left: 0;
  bottom: 0;
  content: '';
  width: 100%;
  height: 2px;
  background: var(--color-base);
  transform: scale(0,1);
  transform-origin: left top;
  transition: transform 0.8s;
}
.globalnav-list-item:hover::after {
  transform: scale(1,1);
}
.globalnav-btn {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 190px;
  height: 50px;
  background-color: var(--color-base-light);
  border-radius: 30px;
  line-height: 0;
  margin-left: 20px;
}
.globalnav-list_sub {
  display: flex;
  list-style: none;
  margin-bottom: 10px;
}
.globalnav-list_sub > li {
  padding: 0 15px;
  border-left: 1px solid var(--color-base);
}
.globalnav-list_sub > li:last-child {
  margin-right: 0;
  border-right: 1px solid var(--color-base);
}
.globalnav-btn_contact::before {
  content: '\e900';
  font-family: 'icomoon';
  margin-right: 0.5em;
  margin-top: 0.1em;
  font-size: 1.2rem;
  color: var(--color-text-blue);
}
.globalnav-btn_recruit::before {
  content: '\e901';
  font-family: 'icomoon';
  margin-right: 0.5em;
  font-size: 1.1rem;
  color: var(--color-text-blue);
}
.globalnav-btn:hover {
  background-color: var(--color-base-dark);
  transition: background-color 0.7s;
}
/*スクロールで変化後*/
.header_fix .header-area {
  position: fixed;
  top: 0;
  height: 70px;
  transition: height 0.5s 0s ease;
}
.header_fix .globalnav-list_sub {
  display: none;
  transition: all 0.5s 0s ease;
}
/*.header_fix .front-headerlogo {
  width: 5em;
}*/
/* .header_fix .header-area__inner {
  height: 70px;
} */
.header_fix .header-logo {
  width: 75px;
}
.header_fix .header-logo_name {
  width: 180px;
  transition: all 0.2s 0s ease;
}

/*--- SPメニュー ---*/
/*ハンバーガーメニューとロゴ部分*/
.header-sp-logo-block {
  display: flex;
  align-items: center;
  font-family: var(--font-family-title);
  width: 100%;
  height: 75px;
  padding-left: 30px;
  /*color: var(--color-white);*/
  font-size: var(--font-size-16px);
  font-weight: var(--font-black);
  line-height: 1;
  letter-spacing: .1em;
  background: var(--color-base-light);
  z-index: 999;
}
.header-sp-logo-block a {
  /*display: inline-block;
  text-align: center;
  white-space: nowrap;*/
  display: inline-flex;
  align-items: center;
  height: 100%;
}
/*.header-sp-logo-block a > span {
  display: block;
  padding-top: 10px;
  font-size: var(--font-size-15px);
  font-weight: var(--font-regular);
}*/
.gnavi-btn {
  display: none;
  position: fixed;
  z-index: 9999;
  top: 12px;
  right: 13px;
  width: 50px;
  height: 50px;
  cursor: pointer;
}
.gnavi-btn span {
  display: inline-block;
  position: absolute;
  left: 10px;
  height: 2px;
  width: 70%;
  border-radius: 2px;
  background-color: var(--color-base);
  transition: all .4s;
}
.gnavi-btn span:nth-of-type(1) {
	top: 14px;	
}
.gnavi-btn span:nth-of-type(2) {
	top: 25px;
}
.gnavi-btn span:nth-of-type(3) {
	top: 35px;
}
.gnavi-btn.active span:nth-of-type(1) {
  top: 14px;
  left: 14px;
  width: 70%;
  transform: translateY(6px) rotate(-45deg);
}
.gnavi-btn.active span:nth-of-type(2) {
	opacity: 0;
}
.gnavi-btn.active span:nth-of-type(3){
  top: 27px;
  left: 14px;
  width: 70%;
  transform: translateY(-6px) rotate(45deg);
}
/*ナビ部分*/
.gnavi-wrap {
  width: 100vw;
  height: calc(100dvh - 75px);
  max-width: 640px;
  margin-right: auto;
  margin-left: auto;
  padding: 50px 30px 100px;
  color: var(--color-text-base);
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  scrollbar-width: none;
  -ms-overflow-style: none;  
}
.gnavi-wrap::-webkit-scrollbar {
  display: none;
}
.gnavi-wrap ul {
  list-style: none;
}
.gnavi-list {
  font-size: var(--font-size-16px);
  list-style: none;
}
.gnavi-list > li .gnavi-list_col,
.gnavi-list-accordion > li a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 72px;
  border-bottom: 1px solid var(--color-base);
  cursor: pointer;
}
.gnavi-area {
  position: fixed;
  top: 0;
  right: -120%;
  width: 100%;
  height: 100%;
  min-height: 100vh;
  background: var(--color-base-light);
  transition: all 0.6s;
  z-index: 999;
  opacity: 0;
}
.gnavi-area.panelactive {
  opacity: 1;
  right: 0;
}
.gnavi-list_col {
  width: 100%;
  height: 50px;
  position: relative;
}
.gnavi-list_col::after {
  content: '';
  position: absolute;
  top: 50%;
  right: 0;
  display: block;
  width: 30px;
  height: 100%;
  background: url("../images/nav_sp_btn.svg") no-repeat center;
  background-size: contain;
  transform: translateY(-50%);
}
.gnavi-btnlist {
  width: 100%;
  max-width: 400px;
  margin-top: 30px;
  margin-right: auto;
  margin-left: auto;
  font-size: var(--font-size-16px);
}
.gnavi-btnlist > li {
  margin-bottom: 20px;
}
.gnavi-btnlist > li:last-child {
  margin-bottom: 0;
}
.gnavi-btnlist > li > a {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 50px;
  color: var(--color-text-white);
  background-color: var(--color-base);
  border-radius: 30px;
  line-height: 0;
}
.gnavi-btnlist_contact::before {
  content: '\e900';
  font-family: 'icomoon';
  margin-right: 0.5em;
  margin-top: 0.15em;
  font-size: 1.2rem;
  color: var(--color-white);
}
.gnavi-btnlist_recruit::before {
  content: '\e901';
  font-family: 'icomoon';
  margin-right: 0.5em;
  font-size: 1.1rem;
  color: var(--color-white);
}
.gnavi-btnlist_other {
  margin-top: 50px;
  font-size: var(--font-size-14px);
  color: var(--color-text-gray);
}
.gnavi-btnlist > li >a.gnavi-btnlist_laser {
  color: var(--color-text-blue);
  background-color: var(--color-white);
  border: 1px solid var(--color-base);
}

.gnavi-btn,
.gnavi-area,
.gnavi-wrap {
  display: none;
}

@media screen and (max-width: 1400px) {
  .globalnav-list-item {
    padding: 30px 10px;
  }
}
@media screen and (max-width: 1210px) {
  .header-area {
    height: 110px;
  }
  .header-logo,
  .header_fix .header-logo  {
    width: 75px;
  }
  .header-logo_name,
  .header_fix .header-logo_name {
    width: 180px;
  }
  .header-logo-block {
    gap: 10px;
  }
  .globalnav-btn {
    width: 150px;
    height: 40px;
    border-radius: 25px;
  }
  .globalnav-btn_contact::before {
    font-size: 1rem;
  }
  .globalnav-btn_recruit::before {
    font-size: 0.9rem;
  }
  .header-area__inner {
    padding: 0 20px;
  }
}
@media screen and (max-width: 1080px) {
  .header-area {
    height: 70px;
  }
  .header-menu-block {
    display: none;
  }
  .gnavi-btn,
  .gnavi-area,
  .gnavi-wrap {
    display: block;
  }
}
@media screen and (max-width: 767px) {
  .header-area,
  .header_fix .header-area {
    height: 6vh;
  }
  .gnavi-wrap {
    height: calc(100dvh - 6vh);
    padding-top: 20px;
  }
  .gnavi-list {
    font-size: 1rem;
  }
  .gnavi-list > li .gnavi-list_col,
  .gnavi-list-accordion > li a {
    height: 55px;
  }
  .header-sp-logo-block {
    height: 6vh;
    padding-left: 30px;
  }
  .header-sp-logo-block a > span {
    font-size: var(--font-size-12px);
  }
  /*.header_fix .front-headerlogo {
    width: 4em;
  }*/
  .gnavi-list_col::after {
    width: 20px;
  }
  .gnavi-btn {
    top: 0.5%;
  }
  .gnavi-btn span:nth-of-type(1) {
    top: 1.5vh;	
  }
  .gnavi-btn span:nth-of-type(2) {
    top: 2.5vh;
  }
  .gnavi-btn span:nth-of-type(3) {
    top: 3.5vh;
  }
}
@media screen and (max-width: 480px) {
  .header-logo,
  .header_fix .header-logo {
    width: 50px;
  }
  .header-logo_name,
  .header_fix .header-logo_name {
    width: 120px;
  }
  .header-area__inner,
  .header_fix .header-area__inner {
    height: 50px;
  }
}

/*---footer---*/
.footer-area {
}
/* フッター内コンタクト部分 */
.footer-contact-block {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 300px;
  padding-top: 30px;
  padding-bottom: 30px;
  background: var(--color-base);
  color: var(--color-text-white);
}
.footer-contact-block ul {
  list-style: none;
}
.footer-contact-block__inner {
  display: flex;
  justify-content: space-between;
  width: 100%;
  max-width: 1360px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 30px;
}
.footer-contact-box {
  display: flex;
}
.footer-contact-box .for_business {
  margin-right: 40px;
}
.footer-contact_title {
  display: block;
  color: var(--color-text-white);
  font-size: var(--font-size-15px);
  font-weight: var(--font-thin);
}
.footer-contact-block_item ul {
  display: flex;
}
.footer-contact-block_item > p {
  margin-bottom: 15px;
  font-size: var(--font-size-18px);
  font-weight: var(--font-thin);
  line-height: 1;
}

/*コンタクトのボタン*/
.footer-contact-btn {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 280px;
  height: 100px;
  /*max-width: 280px;*/
  padding: 20px;
  line-height: 1;
  color: var(--color-text-base);
  background: var(--color-white);
  border-radius: 5px;
}
.footer-contact-block_item ul li {
  margin-right: 20px;
}
.footer-contact-block_item ul li:last-child {
  margin-right: 0;
}
.contact-btn_tel {
  font-family: var(--font-family-title);
  font-size: var(--font-size-24px);
  font-weight: var(--font-black);
}
.contact-btn_tel span {
  font-family: var(--font-family-base);
  font-size: var(--font-size-13px);
  font-weight: var(--font-regular);
}
.contact-btn_tel::before {
  content: '\e903';
  font-family: 'icomoon';
  margin-right: 0.5em;
  font-size: 1.7rem;
  color: var(--color-text-blue);
}
.contact-btn_mail::before {
  content: '\e900';
  font-family: 'icomoon';
  margin-right: 0.5em;
  margin-top: 0.1em;
  font-size: 1.7rem;
  color: var(--color-text-blue);
}
.contact-btn_entry::before {
  content: '\e901';
  font-family: 'icomoon';
  margin-right: 0.5em;
  font-size: 1.7rem;
  color: var(--color-text-blue);
}
.footer-contact-btn.contact-btn_mail:hover,
.footer-contact-btn.contact-btn_entry:hover {
  background: var(--color-base-dark);
}

@media screen and (min-width: 768px) {
  .contact-btn_tel {
    pointer-events: none;
  }
}
@media screen and (max-width: 960px) {
 .footer-contact-btn.contact-btn_mail:hover,
  .footer-contact-btn.contact-btn_entry:hover {
    background: none;
  } 
}

/*ボタン右下の英字と区切り線*/
.for_business,
.for_business ul,
.for_recruit ul {
  position: relative;
}
.for_business ul::after {
  content: '';
  position: absolute;
  bottom: -33px;
  right: 0;
  display: block;
  width: 100px;
  height: 23px;
  background: url("../images/sub_eng_business.svg") no-repeat center;
  background-size: contain;
}
.for_recruit ul::after {
  content: '';
  position: absolute;
  bottom: -33px;
  right: 0;
  display: block;
  width: 100px;
  height: 23px;
  background: url("../images/sub_eng_recruit.svg") no-repeat center;
  background-size: contain;
}
.footer-contact-block_item {
  padding-bottom: 33px;
}
.for_business::after {
  content: '';
  position: absolute;
  top: 9px;
  right: -20px;
  width: 1px;
  height: 152.5px;
  background: var(--color-white);
}
.for_business::before {
  content: '';
  position: absolute;
  top: 9px;
  right: -20px;
  width: 30%;
  height: 1px;
  background: var(--color-white);
}
/*.footer-contact-block_item-sp {
  display: none;
}*/

/* フッター内会社情報・メニューボタン部分 */
.footer-main-block {
  display: flex;
  justify-content: center;
  width: 100%;
  margin: 80px 0;
  font-size: var(--font-size-15px);
}
.footer-main-block ul {
  list-style: none;
}
.footer-main-block__inner {
  display: flex;
  justify-content: space-between;
  width: 100%;
  max-width: 1360px;
  height: auto;
  margin-left: auto;
  margin-right: auto;
  padding: 0 30px;
}
.footer-label {
  display: none;
}
.footer-main-item_menu {
  display: flex;
}
.footer-menu_title {
  font-family: var(--font-family-title);
  font-size: var(--font-size-13px);
  padding-bottom: 15px;
}
.footer-menu_title li {
  width: 150px;
}
.footer-main-item_menu_list li {
  padding-right: 30px;
}
.footer-main-item_menu_list a:hover {
  opacity: 0.5;
}
.footer-main-item_menu-sp {
  display: none;
}
.footer-copy-block {
  display: flex;
  justify-content: center;
  border-top: solid 1px var(--color-base);
}
.footer-copy-block_inner {
  display: flex;
  justify-content: space-between;
  width: 100%;
  max-width: 1360px;
  padding: 20px 30px;
  font-size: var(--font-size-12px);
}
.fotter-logo {
  width: 300px;
  height: auto;
}
.footer-main-item_logo a {
    display: inline-block;
  }
/*フッター内工場一覧*/
.footer-factory-block {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  grid-gap: 30px;
  margin-left: 140px;
}
.footer-factory-list li {
  font-size: var(--font-size-14px);
  line-height: 1.5;
}
.footer-factory-list li.footer-factory-list_title {
  font-size: var(--font-size-16px);
  font-weight: var(--font-bold);
}
/*フッター内SNS*/
.footer-sns-list {
  display: flex;
  gap: 10px;
  margin-top: 20px;
}
.footer-sns-list img {
  width: 30px;
  height: auto;
}

@media screen and (max-width: 1210px) {
  .footer-contact-box {
    flex-flow: column;
  }
  .footer-contact-block {
    height: 100%;
    padding-top: 50px;
    padding-bottom: 50px;
  }
  .footer-contact-block_item {
    padding-bottom: 30px;
  }
  .footer-contact-block_item:last-child {
    padding-bottom: 0;
  }
  .for_business::after,
  .for_business::before,
  .for_business ul::after,
  .for_recruit ul::after  {
    display: none;
  }
  .footer-contact-box > .for_business {
    margin-right: 0;
  }
  /*.footer-contact_title {
    height: 310.59px; 
  }*/
}
@media screen and (max-width: 960px) {
  .footer-contact-block__inner,
  .footer-main-block__inner {
    /*flex-flow: column;*/
    display: block;
  }
  /*.footer-menu_title {
    display: none;
  }*/
  .footer-contact_title {
    width: 100%;
    height: 100%;
    margin-bottom: 50px;
  }
  .footer-main-block {
    /*padding-top: 30px;
    padding-bottom: 50px;*/
    padding: 50px 0 30px;
    margin: 0;
  }
  .footer-contact-block {
    /*background: var(--color-white);*/
    /*border-top: 5px solid var(--color-base);*/
  }
  .footer-contact-block_item ul {
    display: flex;
    flex-direction: column;
    justify-content: center;
    flex-grow: 1;
    padding: 20px 0 25px;
    background: var(--color-white);
  }
  .footer-contact-block_item ul li {
    display: flex;
    justify-content: center;
    margin-right: 0;
  }
  .footer-contact-block_item {
    display: flex;
    flex-direction: column;
    width: 49%;
    background: none;
    color: var(--color-text-base);
    padding-bottom: 0;
  }
  .footer-contact-block_item > p {
    font-size: var(--font-size-16px);
    color: var(--color-text-white);
    padding-bottom: 15px;
    margin-bottom: 0;
  }
  .footer-contact-btn {
    width: auto;
    height: 60px;
    background: none;
    padding: 0;
    border-radius: 0;
  }
  .footer-contact-btn:hover {
    background: none;
  }
  .footer-contact-box .for_business {
    margin-right: 0;
  }
  .contact-btn_mail::after,
  .contact-btn_entry::after {
    content: '';
    position: absolute;
    bottom: 8%;
    left: 0;
    width: 100%;
    height: 1px;
    background: var(--color-base);
  }
  .footer-main-block {
    border-top: 1px solid var(--color-base);
  }
  .footer-main-item_menu {
    font-size: var(--font-size-13px);
    font-weight: var(--font-thin);
  }
  .footer-contact-box {
    flex-flow: row;
    justify-content: space-between;
    width: 100%;
  }
  .footer-main-item_menu {
    display: none;
  }
  .footer-factory-block {
    margin-left: 0;
    margin-top: 50px;
  }
}
@media screen and (max-width: 767px) {
  .footer-contact-block__inner,
  .footer-main-block__inner {
    padding: 0 20px;
  }
  .footer-contact-box {
    max-width: 450px;
    margin: 0 auto;
  }
  .footer-contact-box > div {
    width: 100%;
  }
  .footer-contact-block_item {
    margin-bottom: 40px;
  }
  .footer-contact-block_item:last-child {
    margin-bottom: 0;
  }
  .footer-contact-box {
    flex-flow: column;
  }
  
  .footer-copy-block_inner {
    flex-direction: column-reverse;
    justify-content: flex-start;
    gap: 10px;
    padding: 15px 20px;
    font-size: var(--font-size-11px);
  }
  .footer-factory-block {
    display: block;
  }
  .footer-factory-list {
    margin-bottom: 20px;
  }
  .footer-factory-list:last-child {
    margin-bottom: 0;
  }
  .footer-factory-list li {
    font-size: var(--font-size-12px);
    line-height: 1.2;
  }
  .footer-factory-list li.footer-factory-list_title {
    font-size: var(--font-size-14px);
    margin-bottom: 5px;
  }
}
@media screen and (max-width: 480px) {

}

/*ページトップボタン*/
.pagetop {
  position: fixed;
  bottom: 40px;
  right: 55px;
  display: block;
  width: 60px;
  height: 60px;
  opacity: 0;
  background: var(--color-base);
  border-radius: 50%;
  z-index: 100;
}
.pagetop-arrow {
  position: relative;
  display: inline-block;
  width: 27px;
  height: 15px;
  top: calc(50% - 6px);
  left: 50%;
  transform: translate(-50%, -50%);
}
.pagetop-arrow::before,
.pagetop-arrow::after {
  content: "";
  position: absolute;
  top: 0;
  left: calc(50% - 1.5px);
  width: 3px;
  height: 18px;
  border-radius: 9999px;
  background-color: var(--color-white);
  transform-origin: 50% 1.5px;
}
.pagetop-arrow::before {
  transform: rotate(45deg);
}
.pagetop-arrow::after {
  transform: rotate(-45deg);
}
.pagetop span {
  display: none;
  font-size: 0;
}
.pagetop.upmove {
	animation: UpAnime 0.5s forwards;
}
@keyframes UpAnime {
  from {
    opacity: 0;
	  transform: translateY(120px);
  }
  to {
    opacity: 1;
	  transform: translateY(0);
  }
}

@media screen and (max-width: 767px) {
  /*.pagetop {
    bottom: 20px;
    right: 20px;
    width: 50px;
    height: 50px;
  }
  .pagetop-arrow {
    height: 14px;
  }
  .pagetop-arrow::before,
  .pagetop-arrow::after {
    height: 13px;
  }*/
  .pagetop {
    display: none;
  }
}

/*-----タイトル・見出し-----*/
.title-lev1 {
  font-size: var(--font-size-48px);
  font-weight: var(--font-black);
  letter-spacing: .1em;
}
.title-lev2 {
  font-size: var(--font-size-36px);
  font-weight: var(--font-black);
  letter-spacing: .1em;
  line-height: 1.5;
}
.title-lev3 {
  font-size: var(--font-size-28px);
  font-weight: var(--font-bold);
  letter-spacing: .1em;
  line-height: 1.5;
}
.title-lev4 {
  font-size: var(--font-size-20px);
  font-weight: var(--font-black);
  letter-spacing: .1em;
  line-height: 1;
}

/*各ページメインタイトル*/
.page-label-area {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 400px;
  padding: 0 90px;
  background-image: url("../images/pagettl-img_001.jpg");
  background-size: cover;
  background-position: left;
}
.page-label-area.service-pagelbl {
  background-image: url("../images/pagettl-img_002.jpg");
}
.page-label-area.production-pagelbl {
  background-image: url("../images/pagettl-img_003.jpg");
}
.page-label-area.works-pagelbl {
  background-image: url("../images/pagettl-img_004.jpg");
}
.page-label-block_title {
  display: flex;
  align-items: center;
  flex: 1;
}
.page-label {
  position: relative;
}
.page-label::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 6px;
  height: 100%;
  background: var(--color-base);
  border-radius: 5px;
}
.page-label {
  padding-left: 40px;
}
.page-label span {
  display: block;
  color: var(--color-text-blue);
  font-size: var(--font-size-20px);
  letter-spacing: 0.1em;
  font-weight: var(--font-regular);
  padding-bottom: 10px;
}
.page-label-block_list {
  height: 40px;
  margin-bottom: 10px;
}
.breadcrumb-list {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  list-style: none;
  font-size: var(--font-size-13px);
}
.breadcrumb-list_home span {
  display: none;
}
.breadcrumb-list li {
  position: relative;
  padding-right: 30px;
}
.breadcrumb-list li:last-child {
  padding-right: 0;
}
.breadcrumb-list_home {
  position: relative;
  display: inline-block;
}
.breadcrumb-list_home a {
  font-size: 0;
  text-indent: -999999px;
}
.breadcrumb-list_home a::before {
  content: '\e902';
  font-family: 'icomoon';
  font-size: 1rem;
  color: var(--color-text-blue);
}
.breadcrumb-list li::before {
  content: '';
  position: absolute;
  bottom: 48%;
  left: -20px;
  width: 8px;
  height: 1px;
  background: var(--color-black);
}
.breadcrumb-list li:first-child::before {
  width: 0;
  height: 0;
}
@media screen and (max-width: 960px) {
  .page-label {
    font-size: var(--font-size-30px);
  }
  .page-label span {
    font-size: var(--font-size-16px);
  }
  .page-label-block_title {
    height: 20dvh;
  }
  .page-label-area {
    height: 300px;
    padding: 0 30px;
  }
  .page-label-block_list {
    height: 30px;
  }
}
@media screen and (max-width: 767px) {
  .page-label {
    font-size: var(--font-size-28px);
    padding-left: 20px;
  }
  .page-label span {
    font-size: var(--font-size-13px);
    padding-bottom: 0.5rem;
  }
  .page-label-area {
    height: 250px;
  }
}
@media screen and (max-width: 480px) {
  .page-label-area {
   padding: 0 15px; 
  }
  .page-label-block_list {
    display: none;
  }
  .page-label-block_title {
    padding-bottom: 10px;
  }
}

/*各ページ中タイトル*/

.contents-main-title,
.contents-main-title2,
.contents-main-title3,
.contents-main-title4,
.contents-main-title5,
.contents-main-title6,
.contents-main-title7,
.contents-main-title8,
.contents-main-title9 {
  position: relative;
  padding: 65px 0 65px 40px;
}
.contents-main-title::before {
  content: '';
  position: absolute;
  top: 44%;
  left: 0;
  width: 23px;
  height: 23px;
  background-image: url("../images/contents-title-001.svg");
  background-repeat: no-repeat;
  background-size: 100%;
}
.contents-main-title2::before {
  content: '';
  position: absolute;
  top: 44%;
  left: 0;
  width: 23px;
  height: 23px;
  background-image: url("../images/contents-title-002.svg");
  background-repeat: no-repeat;
  background-size: 100%;
}
.contents-main-title3::before {
  content: '';
  position: absolute;
  top: 44%;
  left: 0;
  width: 23px;
  height: 23px;
  background-image: url("../images/contents-title-003.svg");
  background-repeat: no-repeat;
  background-size: 100%;
}
.contents-main-title4::before {
  content: '';
  position: absolute;
  top: 44%;
  left: 0;
  width: 23px;
  height: 23px;
  background-image: url("../images/contents-title-004.svg");
  background-repeat: no-repeat;
  background-size: 100%;
}
.contents-main-title5::before {
  content: '';
  position: absolute;
  top: 44%;
  left: 0;
  width: 23px;
  height: 23px;
  background-image: url("../images/contents-title-005.svg");
  background-repeat: no-repeat;
  background-size: 100%;
}
.contents-main-title6::before {
  content: '';
  position: absolute;
  top: 44%;
  left: 0;
  width: 23px;
  height: 23px;
  background-image: url("../images/contents-title-006.svg");
  background-repeat: no-repeat;
  background-size: 100%;
}
.contents-main-title7::before {
  content: '';
  position: absolute;
  top: 44%;
  left: 0;
  width: 23px;
  height: 23px;
  background-image: url("../images/contents-title-007.svg");
  background-repeat: no-repeat;
  background-size: 100%;
}
.contents-main-title8::before {
  content: '';
  position: absolute;
  top: 44%;
  left: 0;
  width: 23px;
  height: 23px;
  background-image: url("../images/contents-title-008.svg");
  background-repeat: no-repeat;
  background-size: 100%;
}
.contents-main-title9::before {
  content: '';
  position: absolute;
  top: 44%;
  left: 0;
  width: 23px;
  height: 23px;
  background-image: url("../images/contents-title-009.svg");
  background-repeat: no-repeat;
  background-size: 100%;
}
.contents-main-title_sub {
  display: flex;
}
.contents-main-title_sub p {
  display: block;
  width: auto;
  color: var(--color-base);
  font-size: var(--font-size-12px);
  padding-right: 20px;
}
.contents-main-title_sub span {
  position: relative;
  flex-grow: 1;
}
.contents-main-title_sub span::after {
  content: '';
  position: absolute;
  top: 50%;
  right: 0;
  width: 100%;
  height: 1px;
  background: var(--color-base);
}
.contents-sm-title {
  padding-bottom: 30px;
  line-height: 1.5;
}

@media screen and (max-width: 1080px) {
  .contents-main-title,
  .contents-main-title2,
  .contents-main-title3,
  .contents-main-title4,
  .contents-main-title5,
  .contents-main-title6,
  .contents-main-title7,
  .contents-main-title8,
  .contents-main-title9 {
    padding-top: 20px;
    padding-bottom: 50px;
  }
  .contents-main-title::before,
  .contents-main-title2::before,
  .contents-main-title3::before,
  .contents-main-title4::before,
  .contents-main-title5::before,
  .contents-main-title6::before,
  .contents-main-title7::before,
  .contents-main-title8::before,
  .contents-main-title9::before {
    top: 28.5%;
  }
  .contents-main-title_sub p {
    font-size: var(--font-size-11px);
  }
  .contents-main-title:not(.contents-main-title_sub) {
    margin-top: 20px;
  }
}
@media screen and (max-width: 767px) {
  .contents-main-title,
  .contents-main-title2,
  .contents-main-title3,
  .contents-main-title4,
  .contents-main-title5,
  .contents-main-title6,
  .contents-main-title7,
  .contents-main-title8,
  .contents-main-title9 {
    font-size: var(--font-size-24px);
  }
  .contents-main-title::before,
  .contents-main-title2::before,
  .contents-main-title3::before,
  .contents-main-title4::before,
  .contents-main-title5::before,
  .contents-main-title6::before,
  .contents-main-title7::before,
  .contents-main-title8::before,
  .contents-main-title9::before {
    top: 28%;
    width: 20px;
    height: 20px;
  }
  .contents-main-title:not(.contents-main-title_sub) {
    margin-top: 0;
  }
}

/*各ページ小タイトル*/
.contents-title_under {
  display: inline-block;
  padding-bottom: 10px;
  color: var(--color-text-blue);
  border-bottom: 1px dotted var(--color-base);
}
.contents-title_under + p {
  margin-top: 20px;
}

/*-----ボタン-----*/

/*基本のボタン*/
.btn-regular {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 200px;
  height: 45px;
  color: var(--color-text-blue);
  border: solid 1px var(--color-base);
  border-radius: 30px;
  background: var(--color-white);
  overflow: hidden;
  z-index: 1;
}
.btn-regular p {
  padding-left: 20px;
  margin: 0 auto;
  text-align: center;
  font-size: var(--font-size-15px);
  font-weight: var(--font-bold);
}
.btn-regular span {
  position: relative;
  display: block;
  width: 45px;
  height: 45px;
  background: var(--color-base);
  border-radius: 50%;
}
.btn-regular span::after {
  content: '';
  position: absolute;
  top: 32%;
  left: 30%;
  width: 100%;
  height: 100%;
  background-image: url("../images/button_arrow001.png");
  background-repeat: no-repeat;
}
.btn-regular::before {
  content: '';
  position: absolute;
  left: -100%;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: var(--color-base-light);
  transition: .4s;
  z-index: -1;
}
.btn-regular:hover::before {
  left: 0;
}

/*大きめのボタン*/
.btn-large {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 450px;
  height: 70px;
  background: var(--color-white);
  border: solid 1px var(--color-base);
  border-radius: 50px;
  color: var(--color-text-blue);
  overflow: hidden;
  z-index: 1; 
}
.btn-large p {
  padding-left: 40px;
  margin: 0 auto;
  font-size: var(--font-size-20px);
}
.btn-large span {
  position: relative;
  display: block;
  width: 70px;
  height: 70px;
  background: var(--color-base);
  border-radius: 50%;
}
.btn-large span::after {
  content: '';
  position: absolute;
  top: 40%;
  left: 38%;
  width: 100%;
  height: 100%;
  background-image: url("../images/button_arrow001.png");
  background-repeat: no-repeat;
}
.btn-large::before {
  content: '';
  position: absolute;
  left: -100%;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: var(--color-base-light);
  transition: .4s;
  z-index: -1;
}
.btn-large:hover::before {
  left: 0;
}

/*丸い小ボタン*/
.btn-small span {
  position: relative;
  display: block;
  width: 45px;
  height: 45px;
  background: var(--color-base);
  border-radius: 50%;
}
.btn-small span::after {
  content: '';
  position: absolute;
  top: 32%;
  left: 30%;
  width: 100%;
  height: 100%;
  background-image: url("../images/button_arrow001.png");
  background-repeat: no-repeat;
}
.btn-small:hover {
  filter: opacity(80%);
  transition: all 0.5s;
}

/*矢印だけの小ボタン*/
.btn-arrow span,
.pagenavi-arrow {
  position: relative;
  display: block;
  width: 18px;
  height: 16.5px;
}
.pagenavi-arrow {
  text-indent: -999999px;
}
.btn-arrow span::after,
.pagenavi-arrow::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url("../images/button_arrow002.png");
  background-repeat: no-repeat;
  background-position-y: center;
}
.btn-arrow-rv span::after,
.pagenavi-arrow-rv::after {
  transform: scale(-1, 1);
}
.btn-arrow:hover,
.pagenavi-arrow:hover {
  filter: opacity(80%);
  transition: all 0.5s;
}

/*トップページ用矢印ボタン*/
.btn-top-arrow {
  display: flex;
  align-items: center;
  width: calc(82px + 10px + 20px);
  height: auto;
  gap: 10px;
  font-size: var(--font-size-16px);
  font-weight: var(--font-bold);
}
.btn-top-arrow span {
  position: relative;
  display: block;
  width: 20px;
  height: 20px;
  background: var(--color-base);
}
.btn-top-arrow span::after {
  content: '';
  position: absolute;
  top: 15%;
  left: 10%;
  width: 100%;
  height: 100%;
  background-image: url("../images/button_arrow001.png");
  background-repeat: no-repeat;
  background-size: 80%;
}
.btn-top-arrow:hover {
  filter: opacity(80%);
  transition: all 0.3s;
  transform: translateX(5px);
}

@media screen and (max-width: 767px) {
  .btn-regular {
    width: 170px;
    height: 35px;
  }
  .btn-regular p {
    font-size: var(--font-size-14px);
  }
  .btn-regular span {
    width: 35px;
    height: 35px;
  }
  .btn-regular span::after {
    top: 31%;
    left: 28%;
    background-size: 15px 13px;
  }
  .btn-large {
    width: 100%;
    height: 50px;
  }
  .btn-large p {
    padding-left: 30px;
    font-size: var(--font-size-18px);
  }
  .btn-large span {
    width: 50px;
    height: 50px;
  }
  .btn-large span::after {
    top: 38%;
    left: 35%;
    background-size: 15px 13px;
  }
  .btn-small span {
    width: 35px;
    height: 35px;
  }
  .btn-small span::after {
    top: 31%;
    left: 28%;
    background-size: 15px 13px;
  }
  .btn-arrow span::after,
  .pagenavi-arrow::after {
    background-size: 15px 13px;
  }
  .btn-top-arrow {
    gap: 5px;
    font-size: var(--font-size-15px);
  }
  .btn-top-arrow span {
    width: 17px;
    height: 17px;
  }
  .btn-top-arrow span::after {
    background-size: 75%;
  }
}

/*-----表-----*/

/*基本の表*/
.table-basic-block {
  max-width: 1120px;
  /*padding-bottom: 80px;*/
}
.table-basic {
  width: 100%;
  border-spacing: 1em 0;
}
.table-basic th,
.table-basic td {
  padding: 2em 0 .5em;
  text-align: left;
}
.table-basic th {
  width: 12em;
  border-bottom: 1px solid var(--color-base-dark);
  font-weight: var(--font-bold);
}
.table-basic td {
  padding-left: 1.5em;
  border-bottom: 1px solid var(--color-base);
}
.table-basic ul {
  margin-left: 0!important;
}
.table-basic-list {
  list-style: none;
}
.table-list-label {
  padding-right: 20px;
}
.table-basic td a {
  color: var(--color-text-blue);
  text-decoration: underline;
}
@media screen and (max-width: 767px) {
  .table-basic-block {
    padding-bottom: 50px;
  }
  .table-basic {
    border-spacing: 0;
  }    
  .table-basic th,
  .table-basic td {
    display: block;
    width: 100%;
    font-size: var(--font-size-15px);
  }
  .table-basic th {
    padding: 1em 0 0.1em;
    border-bottom: none;
    font-weight: var(--font-black);
  }
  .table-basic td {
    padding: 1em 0;
  }
}

/*-----リスト-----*/

/*本文中のリスト*/
.contents-main-wrap ul {
  margin-left: 1.5em;
}
.contents-main-wrap ul > li {
  padding-right: 5px;
  margin-bottom: 5px;
}

/*---画像に枠を付けたい時---*/
.image-border img {
  border: 1px solid var(--color-text-gray);
}


/*-----共通レイアウト-----*/

/*事業案内・設備紹介・新着情報ページキャッチ部分*/
.container {
  position: relative;
  width: 100%;
  padding-bottom: 30px;
}
.contents-intro-wrap {
  overflow: hidden;
}
.contents-intro-wrap_back {
  position: relative;
  background: var(--color-base-light);
  margin-bottom: 100px;
}
.contents-intro-wrap__inner {
  position: relative;
  margin: 0 auto;
  max-width: 1120px;
  padding: 80px 30px;
  
}
.contents-main-wrap__inner {
  position: relative;
  margin: 0 auto;
  max-width: 1120px;
  padding: 80px 30px;
}
#honsha .contents-main-wrap__inner,
#qualified .contents-main-wrap__inner {
  padding: 0px 30px 80px;
}
.contents-main-wrap:last-child .contents-main-wrap__inner {
  margin-bottom: 0;
}
.container-main-wrap {
  margin-bottom: 80px;
}
.container-main-wrap:last-child {
  margin-bottom: 0;
}
.contents-intro-block,
.servise-intro-block {
  width: 65%;
  max-width: 780px;
}
.catchcopy-image_bg {
  position: absolute;
  bottom: -100px;
  right: -100px;
  width: 600px;
  height: 600px;
  clip-path: circle(300px at 50% 50%);
}
#servise .contents-intro-wrap {
  background: var(--color-white);
}
#servise .contents-intro-wrap_back {
  background: var(--color-base-light);
}
#servise .catchcopy-image_bg {
  top: 50px;
}
.catchcopy {
  display: inline-block;
  font-size: var(--font-size-40px);
  color: var(--color-text-white);
  background: var(--color-base);
  padding: 10px 15px;
  margin-bottom: 30px;
}
.catchcopy-main {
  /*display: inline;*/
  font-size: var(--font-size-30px);
  font-weight: var(--font-bold);
  line-height: 2.5;
  color: var(--color-text-blue);
  margin-bottom: 30px;
}
.catchcopy-main span {
  background: var(--color-white);
  padding: 5px 15px;
}
.catchcopy-text {
  font-size: var(--font-size-20px);
  font-weight: var();
  line-height: 2;
}
.catchcopy-image {
  display: none;
}
.catchcopy-image_servise {
  display: none;
}

@media screen and (max-width: 1400px) {
  .catchcopy-image_bg {
    bottom: -10px;
    right: -5em;
    width: 400px;
    height: 400px;
    clip-path: circle(200px at 50% 50%);
  }
  #servise .catchcopy-image_bg {
    top: auto;
    bottom: -10px;
  }
  .contents-intro-wrap_back {
    margin-bottom: 10px;
  }
}
@media screen and (max-width: 1080px) {
  .contents-intro-wrap__inner {
    padding: 50px 30px 30px;
  }
  .contents-intro-block,
  .servise-intro-block {
    width: 100%;
    max-width: 100%;
  }
  .contents-intro-wrap_back {
    margin-bottom: 0;
  }
  .catchcopy-image_bg {
    display: none;
  }
  .catchcopy {
    font-size: var(--font-size-28px);
  }
  .catchcopy-main {
    font-size: var(--font-size-24px);
  }
  .catchcopy-text {
    font-size: var(--font-size-16px);
  }
}
@media screen and (max-width: 767px) {
  .container {
    padding-bottom: 4em;
  }
  .catchcopy {
    font-size: var(--font-size-24px);
  }
  .catchcopy-main {
    font-size: var(--font-size-20px);
  }
  .catchcopy-text {
    font-size: var(--font-size-16px);
  }
  .contents-intro-wrap__inner,
  .contents-main-wrap__inner {
    padding: 50px 30px 30px;
  }
  #honsha .contents-main-wrap__inner,
  #qualified .contents-main-wrap__inner {
    padding: 50px 30px 30px;
  }
}
@media screen and (max-width: 480px) {
  .contents-intro-wrap__inner,
  .contents-main-wrap__inner {
    padding: 50px 15px 30px;
  }
  #honsha .contents-main-wrap__inner,
  #qualified .contents-main-wrap__inner {
    padding: 50px 15px 30px;
  }
}

/*ページ上部カテゴリー枠部分*/
.category-main-block-area {
  display: flex;
  justify-content: center;
  background: var(--color-base-light);
  padding: 20px 30px;
}
.category-main-block {
  display: flex;
  justify-content: center;
  align-items: center;
  max-width: 1060px;
  /*height: 70px;*/
  font-size: var(--font-size-15px);
}
.category-main-list {
  display: inline-flex;
  list-style: none;
  flex: 1;
  white-space: nowrap;
}
.category-main-block p {
  padding-right: 30px;
  color: var(--color-text-gray);
}
.category-main-list > li.current > a {
  color: var(--color-text-blue);
}
.category-main-list li {
  padding: 0 15px;
  border-right: solid 1px var(--color-base);
  text-align: center;
}
@media screen and (max-width: 960px) {
  .category-main-block {
    font-size: var(--font-size-13px);
  }
}
@media screen and (max-width: 767px) {
  .category-main-block-area {
    padding: 10px 30px;
  }
  .category-main-block {
    width: 100%;
  }
  .category-main-block p {
    display: none;
  }
  .category-main-list {
    display: inline-grid;
    grid-template-columns: repeat(auto-fit,minmax(90px,1fr));
    grid-row-gap: 10px;
  }
}
@media screen and (max-width: 520px) {
  .category-main-list li {
    padding: 0 10px;
    /*margin-bottom: 10px;*/
    font-size: var(--font-size-12px);
  }
}

/*ページ上部サブメニュー部分*/
.contents-navilist-area {
  display: flex;
  justify-content: center;
  padding: 20px 30px;
  border-top: 1px solid var(--color-base);
  border-bottom: 1px solid var(--color-base);
  background: var(--color-white);
}
.contents-navilist-block {
  /*display: flex;
  justify-content: center;
  align-items: center;*/
  max-width: 1060px;
  font-size: var(--font-size-16px);
}
.contents-navilist {
  display: inline-flex;
  list-style: none;
  /*flex: 1;*/
  gap: 50px;
  flex-wrap: wrap;
}
.contents-navilist > li > a {
  position: relative;
  display: inline-block;
  padding: 0 10px 0 30px;
}
.contents-navilist > li > a::before {
  content: '';
  width: 12px;
  height: 12px;
  border: 0;
  border-bottom: solid 1px var(--color-base);
  border-right: solid 1px var(--color-base);
  transform: rotate(45deg);
  position: absolute;
  top: 0;
  left: 0;
  bottom: 20%;
  margin: auto;
}
@media screen and (max-width: 1210px) {
  .contents-navilist-block {
    font-size: var(--font-size-16px);
  }
  .contents-navilist {
    gap: 20px;
  }
}
@media screen and (max-width: 767px) {
  .contents-navilist-area {
    padding: 10px 30px;
  }
  .contents-navilist {
    gap: 0;
  }
  .contents-navilist > li > a {
    padding: 0 20px;
  }
  .contents-navilist > li > a::before {
    width: 8px;
    height: 8px;
    bottom: 10%;
  }
}
@media screen and (max-width: 520px) {
  .contents-navilist li {
    padding: 0 10px;
    margin-bottom: 5px;
    font-size: var(--font-size-14px);
  }
  #servise .contents-navilist li {
    margin-bottom: 0;
  }
}

/*ページナビ部分*/
.pagenavi-area {
  margin: 50px 0;
}
.wp-pagenavi {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 5px;
}
.wp-pagenavi > * {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 35px;
  height: 35px;
}
.wp-pagenavi > span.current {
  color: var(--color-base);
  font-weight: var(--font-bold);
}
.wp-pagenavi > span.current::before {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 35px;
  height: 1px;
  background: var(--color-base);
}
.wp-pagenavi > a.page:hover,
.previouspostslink:hover,
.nextpostslink:hover {
  filter: opacity(50%);
}

/*swiper共通装飾*/
.swiper-button-next,
.swiper-button-prev {
  color: var(--color-white)!important;
}
.works-mainslider-wrap .swiper-slide figcaption {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 100%;
  font-size: var(--font-size-13px);
  text-align: right;
  padding: 5px 10px;
  background: var(--color-text-gray);
  color: var(--color-text-white);
}

/*スクロールしたときコンテンツをフェードイン*/
.fadein_up {
  opacity: 0;
  transform: translate(0, 15%);
  transition: 1.8s;
}
.fadein_up.is-show {
  transform: translate(0, 0);
  opacity: 1;
}

/*メールフォーム・エントリーフォーム共通*/
.contact-form-wrap button[name='btn-confirm']:disabled,
.contact-form-wrap button[name='btn-confirm']:disabled:hover,
.contact-form-wrap button[name='btn-confirm']:disabled:hover::before,
.entry-form-wrap button[name='btn-confirm']:disabled,
.entry-form-wrap button[name='btn-confirm']:disabled:hover,
.entry-form-wrap button[name='btn-confirm']:disabled:hover::before {
  filter: opacity(50%);
  cursor: inherit;
}
.contact-form-wrap button[name='btn-confirm']:disabled:hover::before,
.entry-form-wrap button[name='btn-confirm']:disabled:hover::before {
  left: -100%;
  background-color: var(--color-white);
}
.contact-form-wrap .checkbox + span,
.entry-form-wrap .checkbox + span {
	position: relative;
	padding-left: 30px;
}
.contact-form-wrap .checkbox + span::before,
.entry-form-wrap .checkbox + span::before {
	position: absolute;
	top: 0;
	left: 0;
	display: inline-block;
	content: '';
	width: 24px;
	height: 24px;
	border: 1px solid #ddd;
	border-radius: 2px;
	margin-right: .5em;
}
.contact-main-wrap__inner .contact-form-wrap .checkbox:checked + span::before,
.entry-form-block .checkbox:checked + span::before {
  background-image: url("../images/mailform_check.svg");
  background-repeat: no-repeat;
  background-position: 1px 5px;
  background-size: 20px;
}

/* エラーチェック */
.entry-form-wrap .form-err input[type='text'],
.entry-form-wrap .form-err textarea {
  border: 1px solid #D10808;
}
.form-errmsg {
  color: #D10808;
}
.form-privacy-block .form-errmsg {
  margin: 25px 0 -10px;
  text-align: center;
}