@charset "UTF-8";


/* ---------------------------------------------------------------- */
/* common */
/* ---------------------------------------------------------------- */

/* font */
@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=Roboto:wght@300;400;500;700;900&display=swap');
.notosans {
  font-family: 'Noto Sans JP', sans-serif;
}
.roboto {
  font-family: 'Roboto', sans-serif;
}


/* html */
html {
  font-size: 62.5%;
  font-family: 'Noto Sans JP', sans-serif;
  color: #4E5258;
  font-feature-settings: "palt" 1;
  text-align: justify;
  scroll-padding-top: 17rem;
}
html * {
  box-sizing: border-box;
}
body {
  background-color: rgb(255 255 255 / 1);
}
.pc {
  display: inline !important;
}
.sp {
  display: none !important;
}
p, a, li, dd, dt, th, td {
  font-size: 1.8rem;
  line-height: 2;
}
img {
  max-width: 100%;
}
a {
  -webkit-tap-highlight-color: transparent;
  color: #4E5258;
}
.tel a {
  pointer-events: none;
}

 
/* header
*******************/
.header {
  z-index: 100;
  position: fixed;
  top: 3.2rem;
  left: 3.2rem;
  right: 3.2rem;
  width: calc(100% - 6.4rem); 
  height: 8rem;
}
.header section {
  display: flex;
  align-items: center;
  position:relative;
  width: 100%;
  height: 100%;
  padding: 0 0 0 3.2rem;
  background-color: rgb(255 255 255 / 0.8);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-radius: 0.8rem;
}
.header .headerRight {
  margin-left: auto;
}
.headerLogo a {
  display: block;
  line-height: 1;
}
.headerLogo a img {
  width: 12rem;
}
.header nav {
  height: 100%;
}
.header nav ul.mainNavi {
  display: flex;
  height: 100%;
}
.header nav ul.mainNavi li {
  padding-left: 3.2rem;
  text-align: center;
}
.header nav ul.mainNavi li a {
  position: relative;
  display: grid;
  justify-items: center;
  align-items: center;
  height: 8rem;
  font-size: 1.6rem;
  line-height: 1;
  font-weight: 700;
  white-space: nowrap;
  opacity: 1;
}
.header nav ul.mainNavi li a:hover {
  color: #5893E3;
}
body.company .header nav ul.mainNavi li:nth-of-type(1) a,
body.works .header nav ul.mainNavi li:nth-of-type(2) a,
body.case .header nav ul.mainNavi li:nth-of-type(3) a,
body.single-case_detail .header nav ul.mainNavi li:nth-of-type(3) a,
body.faq .header nav ul.mainNavi li:nth-of-type(4) a,
body.news .header nav ul.mainNavi li:nth-of-type(5) a,
body.archive .header nav ul.mainNavi li:nth-of-type(5) a,
body.single-newsletter_detail .header nav ul.mainNavi li:nth-of-type(5) a,
body.recruit .header nav ul.mainNavi li:nth-of-type(6) a {
  color: #5893E3;
}
body.archive.case .header nav ul.mainNavi li:nth-of-type(5) a {
  color: #4E5258;
}
.header nav ul.mainNavi li a:after {
  position: absolute;
  left: auto;
  right: 0.15rem;
  bottom: 2.4rem;
  content: "";
  display:inline-block;
  width: 0;
  height: 0.2rem;
  background-color: rgb(88 147 227 / 1);
  transition: all 0.3s ease;
}
body.company .header nav ul.mainNavi li:nth-of-type(1) a:after,
body.works .header nav ul.mainNavi li:nth-of-type(2) a:after,
body.case .header nav ul.mainNavi li:nth-of-type(3) a:after,
body.single-case_detail  .header nav ul.mainNavi li:nth-of-type(3) a:after,
body.faq .header nav ul.mainNavi li:nth-of-type(4) a:after,
body.news .header nav ul.mainNavi li:nth-of-type(5) a:after,
body.archive .header nav ul.mainNavi li:nth-of-type(5) a:after,
body.single-newsletter_detail .header nav ul.mainNavi li:nth-of-type(5) a:after,
body.recruit .header nav ul.mainNavi li:nth-of-type(6) a:after,
.header nav ul.mainNavi li a:hover:after {
  left: 0;
  right: 0.15rem;
  width: calc(100% - 0.15rem);
}
body.archive.case .header nav ul.mainNavi li:nth-of-type(5) a:after {
  left: auto;
  right: 0.15rem;
  width: 0;
}

.header nav ul.mainNavi li.headerContact {
}
.header nav ul.mainNavi li.headerContact a {
  justify-items: start;
  width: 18.4rem;
  padding: 0 0 0 3.2rem;
  font-size: 1.6rem;
  font-weight: 500;
  color: #fff;
  background: linear-gradient(0.25turn, rgb(88 147 227 / 1), rgb(61 98 172 / 1) );
  border-radius: 0 0.8rem 0.8rem 0;
}
.header nav ul.mainNavi li.headerContact a:after {
  position: absolute;
  left: auto;
  right: 1.6rem;
  bottom: 2.4rem;
  content: "";
  display:inline-block;
  width: 3.2rem;
  height: 3.2rem;
  background-color: rgb(88 147 227 / 1);
  background-image: url(../images/icon_arrow_r_white.svg), url(../images/icon_arrow_r_blue.svg);
  background-repeat: no-repeat;
  background-size: 2rem;
  background-position: center center, center left -1rem;
  border-radius: 0.4rem;
  transition: all 0.3s ease;
}
.header nav ul.mainNavi li.headerContact a:hover:after {
  background-color: rgb(255 255 255 / 1);
  background-position: center right -1rem, center center;
}

.header nav .subNavi {
  display: none;
}
.header .hNaviBtn {
  display: none;
}


/* crumbs
*******************/
.crumbs {
  width: 100%;
  max-width: 140.8rem;
  margin: 0px auto;
  padding: 8rem 0 4rem;
  font-size: 1.4rem;
  color: #4E5258;
}
.crumbs p {
  font-size: 1.4rem;
}
.crumbs a {
  color: #4E5258;
  opacity: 1;
  line-height: 1;
  font-size: 1.4rem;
  transition: opacity 0.3s ease;
}
.crumbs a:hover {
  opacity: 0.5;
}
.crumbs span {
  padding: 0 0.5rem;
}


/* pageTitle
*******************/
.pageTitle {
  width: 100%;
  background-color: rgba(241, 245, 247, 1);
}
.pageTitle .contents {
  display: inline grid;
  align-items: center;
  position: relative;
  width: 100%;
  max-width: 100%;
  height: auto;
  padding: 16rem 0 5rem;
}
.pageTitle .contents:before {
  display: block;
  content: "";
  position: absolute;
  top: calc( 50% + 5rem );
  left: calc( (100% - 140.8rem ) / 2);
  width: 100%;
  max-width: 140.8rem;
  height: 1px;
  background: linear-gradient(90deg, rgb(88 147 227 / 1), rgb(61 98 172 / 1) );
}
.pageTitle h1 {
  position: relative;
  font-size: 2.1rem;
  font-weight: 500;
  line-height: 2;
  text-align: center;
  color: #909BAA;
}
.pageTitle h1 .h1Inner {
  display: inline-block;
  padding: 0 5rem;
  background-color: rgba(241, 245, 247, 1);
}
.pageTitle h1 .large {
  font-size: 7rem;
  font-weight: 300;
  line-height: 1.15;
  background-image: linear-gradient( 160deg, rgba(145, 219, 255, 1), rgba(61, 98, 172, 1) );
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}


/* main
*******************/
.main {
  position: relative;
  width: 100%;
  background-color: rgb(255 255 255 / 1);
}


/* contents
*******************/
.contents {
  position: relative;
  width: 100%;
  max-width: 140.8rem;
  margin: 0 auto;
}
.contents.widthFull {
  width: 100%;
  max-width: 100%;
}


/* SubpageTitle - h3
*******************/
body:not(.home) h3 {
  font-size: 3.6rem;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0.15em;
  font-feature-settings: normal;
}


/* SubpageTitle - h4
*******************/
body:not(.home) h4 {
  font-size: 2.8rem;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.05em;
  font-feature-settings: normal;
}


/* button
*******************/
.button01b {
  display: flex;
  gap: 0 3rem;
}
.button01b a,
.button01b .buttonInner {
  position: relative;
  display: grid;
  justify-items: start;
  align-items: center;
  width: auto;
  height: 6.4rem;
  padding: 0 8rem 0 1.6rem;
  font-size: 1.6rem;
  line-height: 1;
  font-weight: 700;
  color: #fff;
  white-space: nowrap;
  background: linear-gradient(0.25turn, rgb(88 147 227 / 1), rgb(61 98 172 / 1) );
  border-radius: 0.8rem;
}
.button01b a:after,
.button01b .buttonInner:after {
  position: absolute;
  left: auto;
  right: 1.6rem;
  bottom: 1.6rem;
  content: "";
  display:inline-block;
  width: 3.2rem;
  height: 3.2rem;
  background-color: rgb(88 147 227 / 1);
  background-image: url(../images/icon_arrow_r_white.svg), url(../images/icon_arrow_r_blue.svg);
  background-repeat: no-repeat;
  background-size: 2rem;
  background-position: center center, center left -1rem;
  border-radius: 0.4rem;
  transition: all 0.3s ease;
}
.button01b a:hover:after,
.buttonOutside:hover .button01b .buttonInner:after {
  background-color: rgb(255 255 255 / 1);
  background-position: center right -1rem, center center;
}
.button01b a[target="_blank"],
a[target="_blank"] .button01b .buttonInner {
  padding: 0 10.4rem 0 1.6rem;
  background: url(../images/icon_blank_white.svg), linear-gradient(0.25turn, rgb(88 147 227 / 1), rgb(61 98 172 / 1) );
  background-repeat: no-repeat;
  background-size: 2rem, auto;
  background-position: center right 8rem, top left;
}

.button01w {
  display: flex;
  gap: 0 3rem;
}
.button01w a,
.button01w .buttonInner {
  position: relative;
  display: grid;
  justify-items: start;
  align-items: center;
  width: auto;
  height: 6.4rem;
  padding: 0 8rem 0 1.6rem;
  font-size: 1.6rem;
  line-height: 1;
  font-weight: 700;
  color: #4E5258;
  white-space: nowrap;
  background: rgb(255 255 255 / 1);
  border: 1px solid #C3CDDC;
  border-radius: 0.8rem;
}
.button01w a:after,
.button01w .buttonInner:after {
  position: absolute;
  left: auto;
  right: 1.6rem;
  bottom: 1.6rem;
  content: "";
  display:inline-block;
  width: 3.2rem;
  height: 3.2rem;
  background-color: rgb(88 147 227 / 1);
  background-image: url(../images/icon_arrow_r_white.svg), url(../images/icon_arrow_r_blue.svg);
  background-repeat: no-repeat;
  background-size: 2rem;
  background-position: center center, center left -1rem;
  border-radius: 0.4rem;
  transition: all 0.3s ease;
}
.button01w a:hover:after,
.buttonOutside:hover .button01w .buttonInner:after {
  background-color: rgb(255 255 255 / 1);
  background-image: url(../images/icon_arrow_r_white.svg), url(../images/icon_arrow_r_blue.svg);
  background-position: center right -1rem, center center;
}
.button01w a[target="_blank"],
a[target="_blank"] .button01w .buttonInner {
  padding: 0 10.4rem 0 1.6rem;
  background: url(../images/icon_blank_blue.svg), rgb(255 255 255 / 1);
  background-repeat: no-repeat;
  background-size: 2rem, auto;
  background-position: center right 8rem, top left;
}


/* Pagination
*******************/
.pagination {
  display: flex;
  justify-content: center;
  gap: 0 1rem;
  width: 100%;
}
.pagination .page-numbers {
  display: inline grid;
  place-content: center;
  place-items: center;
  width: 5rem;
  height: 5rem;
  font-size: 1.6rem;
  line-height: 1;
  font-weight: 600;
  color: #003399;
  background-color: rgb(250 250 250 / 1);
  border: 1px solid #C3CDDC;
  border-radius: 0.8rem;
}
.pagination .page-numbers.current {
  color: #fff;
  background-color: rgb(0 51 153 / 1);
}
.pagination .page-numbers.dots {
  color: #373737;
  background-color: transparent;
}
.pagination .page-numbers.prev:before,
.pagination .page-numbers.next:before {
  display: block;
  content: "";
  width: 5rem;
  height: 5rem;
  background-image: url(../images/icon_arrow_l_blue.svg);
  background-repeat: no-repeat;
  background-size: 50%;
  background-position: center;
}
.pagination .page-numbers.next:before {
  background-image: url(../images/icon_arrow_r_blue.svg);
}


/* in animation
*******************/
.inAnime {
  visibility:hidden;
  opacity: 0;
  filter: blur(1rem);
  transform: translateY(10rem);
  transition: filter 1s cubic-bezier(0.215, 0.61, 0.355, 1), opacity 1s cubic-bezier(0.215, 0.61, 0.355, 1), transform 1s cubic-bezier(0.215, 0.61, 0.355, 1);
}
.inAnime.on {
  visibility:visible;
  opacity: 1;
  filter: blur(0);
  transform: translateY(0);
}


/* Footer Contact
*******************/
.widthFull:has(.footerContact) {
  position: relative;
  padding: 0 0 9.6rem;
  background-image: linear-gradient( rgba(255, 255, 255, 1) 30%, rgba(241, 245, 247, 1) 100% );
}
.footerContact {
  display: flex;
  gap: 4.8rem;
  width: 100%;
  max-width: 140.8rem;
  margin: 0 auto;
}
.footerContact .contactBox,
.footerContact .newsletterBox {
  display: block;
  width: 50%;
  padding: 3.2rem 4.8rem;
  color: #fff;
  background: linear-gradient(0.25turn, rgb(88 147 227 / 1), rgb(61 98 172 / 1));
  box-shadow: 0 0.5rem 2rem 0 rgba(132, 159, 183, .5);
  border-radius: 1.6rem;
}
.footerContact .contactBox {
  padding: 0;
}
.footerContact .contactBox a {
  display: block;
  padding: 3.2rem 4.8rem;
  color: #fff;
}
.footerContact .contactBox h4 {
  position: static;
  padding: 1rem 0 1rem 5.2rem;
  font-size: 3.3rem;
  line-height: 1;
  font-weight: 400;
  background-image: url(../images/icon_contact.svg);
  background-repeat: no-repeat;
  background-size: 4.8rem;
  background-position: left -0.2rem center;
}
.footerContact .newsletterBox h4 {
  position: static;
  padding: 1rem 0 1rem 5.6rem;
  font-size: 3.1rem;
  line-height: 1;
  font-weight: 400;
  background-image: url(../images/icon_mm.svg);
  background-repeat: no-repeat;
  background-size: 4.8rem;
  background-position: left center;
}
.footerContact p {
  height: 9rem;
  padding: 1rem 0 0.5rem;
  font-size: 1.6rem;
  line-height: 1.5;
  font-weight: 600;
}
.footerContact p span {
  font-size: 1.4rem;
  line-height: 1.5;
  font-weight: 400;
}
.footerContact p span a {
  font-size: 1.4rem;
  line-height: 1.5;
  font-weight: 400;
  text-decoration: underline;
  color: #fff;
}
.footerContact form {
  display: flex;
  justify-content: space-between;
  gap: 2.4rem;
  width: 100%;
}
.footerContact form input[type=mail] {
  width: 72%;
  height: 6.4rem;
  padding: 0 2rem;
  font-size: 1.8rem;
  background-color: #fff;
  border: none;
  border-radius: 0.8rem;
}
.footerContact form input[type=mail]::placeholder {
  color: #999;
}
.footerContact form .submitBtn {
  position: relative;
  display: inline grid;
  justify-items: start;
  align-items: center;
  width: auto;
  height: 6.4rem;
  padding: 0 8rem 0 1.6rem;
  font-size: 1.6rem;
  line-height: 1;
  font-weight: 700;
  color: #4E5258;
  white-space: nowrap;
  background: rgb(255 255 255 / 1);
  border: 1px solid #C3CDDC;
  border-radius: 0.8rem;
}
.footerContact form .submitBtn:after {
  position: absolute;
  left: auto;
  right: 1.6rem;
  bottom: 1.6rem;
  content: "";
  display:inline-block;
  width: 3.2rem;
  height: 3.2rem;
  background-color: rgb(88 147 227 / 1);
  background-image: url(../images/icon_arrow_r_white.svg), url(../images/icon_arrow_r_blue.svg);
  background-repeat: no-repeat;
  background-size: 2rem;
  background-position: center center, center left -1rem;
  border-radius: 0.4rem;
  transition: all 0.3s ease;
}
.footerContact form .submitBtn:hover:after {
  background-color: rgb(255 255 255 / 1);
  background-position: center right -1rem, center center;
}

.footerContact form input[type=submit] {
  font-size: 1.6rem;
  line-height: 1;
  font-weight: 700;
  color: #4E5258;
}

/* Footer Contact - Contact Only */
body:not(.home) .footerContact .contactBox {
  display: block;
  position: relative;
  width: 100%;
}
body:not(.home) .footerContact .contactBox .button01w {
  position: absolute;
  top: 4.7rem;
  right: 4.8rem;
}
body:not(.home) .footerContact p {
  height: auto;
  padding: 1rem 0 0.5rem;
}
body:not(.home) .footerContact .newsletterBox {
  display: none;
}

/* Footer Contact - Newsletter Only */
body.contact .footerContact .contactBox {
  display: none;
}
body.contact .footerContact .newsletterBox {
  display: block;
  position: relative;
  width: 100%;
}
body.contact .footerContact form {
  position: absolute;
  top: 5.8rem;
  right: 4.8rem;
  width: 50%;
}
body.contact .footerContact form input[type=mail] {
  width: 80%;
}


/* footer
*******************/
.footer {
  position: relative;
  width: 100%;
  padding: 9.6rem 9.6rem 0;
  background-color: rgb(78 82 88 / 1);
  color: rgb(255 255 255 / 1);
}

footer .fNavi {
  display: grid;
  gap: 2.4rem 3.2rem;
  grid-template-rows: 11rem 1fr;
  grid-template-columns: 1fr 14% 14% 14% 14% 14%;
  padding-bottom: 4.8rem;
}
footer .fNavi li:nth-of-type(1) {
  grid-row: 1 / 3;
  grid-column: 1 / 2;
}
footer .fNavi li:nth-of-type(2) {
  grid-row: 1 / 3;
  grid-column: 2 / 3;
}
footer .fNavi li:nth-of-type(3) {
  grid-row: 1 / 3;
  grid-column: 3 / 4;
}

footer .footerLogo img {
  width: 15rem;
}
footer .name {
  padding-top: 1rem;
  font-size: 1.8rem;
  font-weight: 700;
}
footer .add {
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 1.6;
}
footer .sns {
  display: flex;
  gap: 0 2rem;
  padding-top: 1.6rem;
}
footer .sns li {
  width: 3.2rem;
  height: 3.2rem;
  transition: all 0.3s ease;
}
footer .sns li:hover {
  opacity: 0.5;
}
footer .sns li img {
  width: 100%;
  vertical-align: top;
}
footer .chara img {
  width: 16rem;
  transform: translate(4rem, -3.5rem);
}

footer .category {
  padding-bottom: 1.2rem;
}
footer .category a,
footer .page a {
  opacity: 1;
  transition: all 0.3s ease;
}
footer .category a:hover,
footer .page a:hover {
  opacity: 0.7;
}
footer .category a {
  display: block;
  padding: 0.6rem 0;
  font-size: 2rem;
  font-weight: 500;
  color: rgb(255 255 255 / 1);
  border-bottom: 1px solid #999;
}
footer .page a {
  display: block;
  padding: 0.6rem 0;
  font-size: 1.6rem;
  font-weight: 400;
  color: rgb(210 210 210 / 1);
}

footer .copyright {
  display: flex;
  justify-content: space-between;
  padding: 4.8rem 0;
  border-top: 1px solid #999;
}
footer .copyright p:nth-of-type(1) a {
  font-size: 1.6rem;
  font-weight: 500;
  color: rgb(255 255 255 / 1);
  transition: all 0.3s ease;
}
footer .copyright p:nth-of-type(1) a:hover {
  opacity: 0.7;
}
footer .copyright p:nth-of-type(2) {
  font-size: 1.5rem;
  font-weight: 500;
}




/* ---------------------------------------------------------------- */
/* home */
/* ---------------------------------------------------------------- */


/* homeH2
*******************/
body.home .homeH2 {
  width: 100%;
  padding-left: calc( (100% - 140.8rem ) / 2);
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.25;
  color: #909BAA;
}
body.home .homeH2 span {
  display: inline-block;
  font-size: 4rem;
  font-weight: 300;
  background-image: linear-gradient( 160deg, rgba(145, 219, 255, 1), rgba(61, 98, 172, 1) );
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
body.home .homeH2:before {
  display: block;
  content: "";
  width: calc( (100vw - 146.8rem ) / 2 );
  height: 1px;
  background: linear-gradient(90deg, rgb(88 147 227 / 1), rgb(61 98 172 / 1) );
  transform: translate( calc( (100vw - 140.8rem ) / 2 * -1 ), 4rem );
  
}


/* mv
*******************/
body.home .mv {
  position: relative;
  width: 100%;
}
body.home .mv .image img {
  width: 100%;
  height: 100%;
}
body.home .mv .text {
  position: absolute;
  top: 13vw;
  left: 9.6rem;
}
body.home .mv .text h1 {
  font-size: 4.25vw;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.05em;
  font-feature-settings: "palt" 0;
}
body.home .mv .text h2 {
  padding-top: 5rem;
  font-size: 1.375vw;
  font-weight: 500;
  line-height: 1.6;
  font-feature-settings: "palt" 0;
}
body.home .mv .text p {
  padding: 2.4rem 0 5rem;
  font-size: 1vw;
  font-weight: 400;
  line-height: 1.6;
  font-feature-settings: "palt" 0;
}


/* about
*******************/
body.home .about {
  position: relative;
  padding: 4.8rem 0 10rem;
}
body.home .about .image {
  position: absolute;
  top: -10rem;
  left: 0;
}
body.home .about .image img {
  width: 50.4rem;
  border: 4px solid #fff;
  border-radius: 1.6rem;
  box-shadow: 0 0.5rem 2rem 0 rgba(132, 159, 183, .2);
}
body.home .about .text {
  padding-left: 60.8rem;
}
body.home .about .text h2 {
  padding-bottom: 4rem;
  font-size: 5.8rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 1.25;
}
body.home .about .text h2 .h2Mini01 {
  font-size: 4.2rem;
  letter-spacing: 0.05em;
  color: rgba(61, 98, 172, 1);
}
body.home .about .text h2 .h2Mini02 {
  font-size: 3.6rem;
  letter-spacing: 0.05em;
}
body.home .about .text h2 .cross {
  font-size: 7.2rem;
  font-weight: 400;
  vertical-align: -0.6rem;
  background-image: linear-gradient(-135deg, rgba(161, 126, 255, 1), rgba(44, 218, 191, 1));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
body.home .about .text p {
  padding-bottom: 2.8rem;
  font-weight: 400;
}
body.home .about .button01b {
  padding-top: 1.4rem;
}


/* solution
*******************/
body.home .widthFull:has(.solution) {
  position: relative;
  padding: 9.6rem 0;
  background-image: linear-gradient( rgba(241, 245, 247, 1) 30%, rgba(255, 255, 255, 1) 100% );
}
body.home .solution {
  width: 100%;
  max-width: 140.8rem;
  margin: 0 auto;
}
body.home .solution .pickup ul {
  display: flex;
  gap: 4.8rem;
  width: 100%;
  padding-top: 4rem;
}
body.home .solution .pickup li {
  flex: 1;
  display: block;
  width: 100%;
  padding-bottom: 4rem;
  background-color: rgba(255, 255, 255, 1);
  border-radius: 1.6rem;
  box-shadow: 0 0.5rem 2rem 0 rgba(132, 159, 183, .1);
  overflow: hidden;
}
body.home .solution .pickup ul li .number {
  width: 100%;
  height: 9.6rem;
  padding: 2.6rem 3rem 0;
  font-size: 4.8rem;
  font-weight: 300;
  line-height: 1;
  color: rgba(255, 255, 255, 1);
  background-color: rgba(88, 147, 227, 1);
}



body.home .solution .pickup ul li:nth-of-type(1) .number {
  background-color: rgba(81, 98, 172, 1);
}
body.home .solution .pickup ul li:nth-of-type(2) .number {
  background-color: rgba(85, 122, 199, 1);
}
body.home .solution .pickup ul li:nth-of-type(3) .number {
  background-color: rgba(88, 147, 227, 1);
}



body.home .solution .pickup ul li .icon {
  width: 100%;
  height: 16rem;
  text-align: center;
}
body.home .solution .pickup ul li .icon img {
  width: 20rem;
  border-radius: 50%;
  transform: translateY(-3.6rem);
}
body.home .solution .pickup ul li h3 {
  position: relative;
  width: 82%;
  margin: 0 auto;
  font-size: 3.2rem;
  font-weight: 500;
  text-align: center;
  letter-spacing: 0.2rem;
  line-height: 1.5;
  color: rgba(81, 98, 172, 1);
}
body.home .solution .pickup ul li .text {
  padding: 2.6rem 0;
  width: 82%;
  margin: 0 auto;
  line-height: 1.8;
}
body.home .solution .pickup ul li .button01w {
  width: 82%;
  margin: 1.6rem auto 0;
}
body.home .solution .pickup ul li .button01w a {
  width: 100%;
}
body.home .solution .button01b.center {
  width: 100%;
  max-width: 140.8rem;
  padding-top: 6.4rem;
  justify-content: center;
}

body.home .solution .sliderWrapper {
  display: flex;
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 15rem;
  overflow: hidden;
}
body.home .solution .sliderWrapper .slider1,
body.home .solution .sliderWrapper .slider2 {
  flex-shrink: 0;
  animation: scrollLeft 90s infinite linear .5s both;
}

body.home .solution .sliderWrapper .slider1 img,
body.home .solution .sliderWrapper .slider2 img {
  width: 162rem;
}
@keyframes scrollLeft {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-100%);
  }
}


/* Case Studies
*******************/
body.home .widthFull:has(.case) {
  position: relative;
  padding: 9.6rem 0;
  background-color: rgba(241, 245, 247, 1);
}
body.home .case {
  width: 100%;
  max-width: 140.8rem;
  margin: 0 auto;
}
body.home .case .pickup ul {
  display: flex;
  flex-flow: column;
  gap: 5.6rem 0;
  width: 100%;
  padding-top: 4rem;
}
body.home .case .pickup li {
  display: block;
  position: relative;
  width: calc( 100% - 20rem );
}
body.home .case .pickup li:nth-child(even) {
  margin-left: 20rem;
}
body.home .case .pickup li:before {
  display: block;
  content: "";
  position: absolute;
  top: -0.2rem;
  left: -0.2rem;
  width: 12rem;
  height: 12rem;
  background: linear-gradient( 135deg, rgba(145, 219, 255, 1), rgba(61, 98, 172, 1) );
  border-radius: 1.8rem 0 0 0;
}
body.home .case .pickup li:after {
  display: block;
  content: "";
  position: absolute;
  bottom: -0.2rem;
  right: -0.2rem;
  width: 12rem;
  height: 12rem;
  background: linear-gradient( -45deg, rgba(145, 219, 255, 1), rgba(61, 98, 172, 1) );
  border-radius: 0 0 1.8rem 0;
}
body.home .case .pickup li .pickupInner {
  z-index: 1;
  display: block;
  position: relative;
  width: 100%;
  padding: 4.8rem;
  background-color: rgba(255, 255, 255, 1);
  border-radius: 1.6rem;
  box-shadow: 0 0.5rem 2rem 0 rgba(132, 159, 183, .1);
}
body.home .case .pickup ul li .image {
  position: absolute;
  top: 4.8rem;
  left: 4.8rem;
  width: 32rem;
  height: auto;
  border-radius: 0.8rem;
  overflow: hidden;
}
body.home .case .pickup ul li h4 {
  padding: 0 0 0.8rem 38rem;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: 0.2rem;
  line-height: 1.5;
}
body.home .case .pickup ul li h3 {
  padding: 0 0 2.4rem 38rem;
  font-size: 2.4rem;
  font-weight: 700;
  letter-spacing: 0.2rem;
  line-height: 1.5;
  color: rgba(81, 98, 172, 1);
}
body.home .case .pickup ul li .text {
  padding: 0 0 3.2rem 38rem;
  line-height: 1.8;
}
body.home .case .pickup ul li .button01w {
  padding: 0 0 0 38rem;
}
body.home .case .button01b.center {
  width: 100%;
  max-width: 140.8rem;
  padding-top: 6.4rem;
  justify-content: center;
}


/* news
*******************/
body.home .widthFull:has(.news) {
  position: relative;
  padding: 9.6rem 0;
}
body.home section.news {
  width: 100%;
  max-width: 140.8rem;
  margin: 0 auto;
}
body.home .news .list .scroll {
  height: 40rem;
  margin-top: 1rem;
  padding-right: 3rem;
  overflow-Y: scroll;
}
body.home .news .list ul {
  width: 100%;
}
body.home .news .list li {
  border-bottom: 1px solid #C3CDDC;
}
body.home .news .list li a {
  display: flex;
  padding: 4.8rem 3.2rem;
  font-size: 1.6rem;
  text-decoration: none;
  text-underline-offset: 0.4rem;
  transition: all 0.3s ease;
}
body.home .news .list li a:hover {
  color: #00bbCC;
  text-decoration: none;
}
body.home .news .list li a span:nth-of-type(1) {
  flex-shrink: 0;
  padding: 0.2rem;
  background: linear-gradient( 160deg, rgba(145, 219, 255, 1), rgba(61, 98, 172, 1) );
  border-radius: 0.4rem;
}
body.home .news .list li a span:nth-of-type(1) span {
  display: grid;
  justify-items: center;
  align-items: center;
  width: 11rem;
  height: 3.2rem;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.05em;
  color: rgba(88, 147, 227, 1);
  text-align: center;
  border-radius: 0.3rem;
  background: rgba(255, 255, 255, 1);
}
body.home .news .list li a span:nth-of-type(2) {
  flex-shrink: 0;
  display: grid;
  justify-items: start;
  align-items: center;
  height: 3rem;
  margin: 0 4rem;
  font-size: 1.8rem;
  font-weight: 400;
  line-height: 1;
  color: rgba(88, 147, 227, 1);
}
body.home .news .list li a span:nth-of-type(3) {
  display: block;
  font-size: 1.6rem;
  font-weight: 400;
  text-decoration: underline;
}
body.home .news .list li a[target="_blank"] span:nth-of-type(3) {
  padding: 0 11rem 0 0;
  background: url(../images/icon_blank_blue.svg);
  background-repeat: no-repeat;
  background-size: 2rem;
  background-position: center right 8rem;
}

body.home .news .list .scroll::-webkit-scrollbar {
  width: 0.6rem;
}
body.home .news .list .scroll::-webkit-scrollbar&:hover {
  width: 0.6rem;
}
body.home .news .list .scroll::-webkit-scrollbar-track {
  background-color: rgba(241, 245, 247, 1);
}
body.home .news .list .scroll::-webkit-scrollbar-thumb {
  background-color: rgba(81, 98, 172, 1);
}

body.home .news .button01b.center {
  width: 100%;
  max-width: 140.8rem;
  padding-top: 6.4rem;
  justify-content: center;
}




/* ---------------------------------------------------------------- */
/* Company */
/* ---------------------------------------------------------------- */


/* contents
*******************/
body.company .widthFull {
  position: relative;
  background-color: rgba(241, 245, 247, 1);
}
body.company .about,
body.company .history,
body.company .philosophy,
body.company .message,
body.company .office,
body.company .access {
  position: relative;
  width: 100%;
  max-width: 140.8rem;
  margin: 0 auto;
  padding: 10rem 0;
}
body.company h3,
body.company h4 {
  position: absolute;
  top: 10rem;
  left: 0;
}


/* about
*******************/
body.company .about {
  padding: 10rem 0 10rem 40rem;
}
body.company .about table {
  width: 100%;
}
body.company .about table tr {
  border-bottom: 1px solid #C3CDDC;
}
body.company .about table tr:first-child {
  border-top: 1px solid #C3CDDC;
}
body.company .about table th,
body.company .about table td {
  padding: 3.2rem 0;
  border: none;
}
body.company .about table th {
  padding-right: 4.8rem;
  white-space: nowrap;
}


/* history
*******************/
body.company .history {
  padding: 10rem 0 10rem 40rem;
}
body.company .history table {
  position: relative;
  width: 100%;
}
body.company .history table th,
body.company .history table td {
  border: none;
}
body.company .history table th {
  white-space: nowrap;
  position: relative;
  width: 16.6rem;
  padding: 3.2rem 3.2rem 3.2rem 0;
}
body.company .history table td {
  padding: 3.2rem;
  background-color: rgba(255, 255, 255, 1);
  border-top: 3.2rem solid rgba(241, 245, 247, 1);
  border-bottom: 3.2rem solid rgba(241, 245, 247, 1);
}
body.company .history table:before {
  display: block;
  content: "";
  position: absolute;
  top: 0;
  left: 12.4rem;
  width: 0.3rem;
  height: 100%;
  background: rgb(88 147 227 / 1);
}
body.company .history table th:after {
  display: block;
  content: "";
  position: absolute;
  top: 5.9rem;
  right: 3.3rem;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 50%;
  background: rgb(88 147 227 / 1);
}


/* philosophy
*******************/
body.company .philosophy ul {
  display: flex;
  gap: 0 8rem;
  width: 100%;
  padding-top: 10rem;
}
body.company .philosophy li {
  flex: 1;
  display: block;
  width: 100%;
  padding: 0 0 0 4rem;
  border-left: 1px solid #C3CDDC;
}
body.company .philosophy li > p:first-child {
  padding: 1rem 0 3rem;
  font-size: 1.6rem;
  font-weight: 600;
  color: rgba(81, 98, 172, 1);
}
body.company .philosophy li > p:first-child span {
  display:block;
  font-size: 4.8rem;
  font-weight: 400;
  line-height: 1;
}
body.company .philosophy li .image img {
  width: 100%;
  border-radius: 1.6rem;
}
body.company .philosophy li h4 {
  position: static;
  padding: 2.4rem 0;
  color: rgba(81, 98, 172, 1);
}


/* message
*******************/
body.company .message .text {
  width: 100%;
  padding: 14rem 0 0 40rem;
}
body.company .message .text h4 {
  position: static;
  padding-bottom: 4rem;
  color: rgba(81, 98, 172, 1);
}
body.company .message .text h4 br {
  display: none;
}
body.company .message .text p {
  padding-bottom: 4rem;
}
body.company .message .text p.ceo {
  font-size: 1.6rem;
  text-align: right;
}
body.company .message .text p.ceo span {
  display: inline-block;
  padding-left: 1.4rem;
  font-size: 2.6rem;
  font-weight: 400;
  transform: translateY(0.25rem);
}
body.company .message .image {
  position: absolute;
  top: 23.4rem;
  left: 0;
  width: 32rem;
}


/* office
*******************/
body.company .office .officeSet {
  display: flex;
  align-items: stretch;
  gap: 0 6rem;
  width: 100%;
  padding-top: 10rem;
}
body.company .office .officeSetInner {
  display: block;
  width: 25%;
  padding: 0
}
body.company .office .photo {
  width: 100%;
  height: 21rem;
  border-radius: 0.8rem;
  overflow: hidden;
}
body.company .office .photo img {
  width: 100%;
  object-fit: cover;
}
body.company .office .add {
  height: 22rem;
  padding: 1.5rem 0;
}
body.company .office .add h4 {
  position: static;
  padding: 0 0 1.6rem;
  font-size: 2.4rem;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0;
  text-align: justify;
  color: rgba(81, 98, 172, 1);
}
body.company .office .add h4 span {
  font-size: 1.6rem;
}
body.company .office .add p {
  line-height: 1.4;
  text-align: justify;
}
body.company .office .info {
  margin-top: 2.4rem;
  padding: 1.2rem 1.6rem;
  background-color: rgba(241, 245, 247, 1);
  border-radius: 0.8rem;
}
body.company .office .info table tr {
  border-top: 1px solid #C3CDDC;
}
body.company .office .info table tr:first-child {
  border-top: none;
}
body.company .office .info table th,
body.company .office .info table td {
  border: none;
}
body.company .office .info table th {
  padding: 1.6rem 1.6rem 1.6rem 0;
  text-align: left;
  font-weight: 400;
  line-height: 1.2;
  white-space: nowrap;
}
body.company .office .info table td {
  padding: 1.6rem 0;
  text-align: left;
  line-height: 1.2;
}
body.company .office .button01w {
  justify-content: center;
  width: 100%;
}
body.company .office .button01w a {
  width: 100%;
  background-position: center right 18rem, top left;
}



/* access
*******************/
body.company .access iframe {
  margin: 10rem 0 2rem;
  height: 50rem;
}
body.company .access .button01w {
  justify-content: flex-end;
}
body.company .access .text {
  display: flex;
  align-items: stretch;
  gap: 0 10rem;
  width: 100%;
}
body.company .access .text h4 {
  position: static;
  padding: 0;
  font-size: 2.1rem;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0;
  text-align: justify;
}
body.company .access .text ul li {
  position: relative;
  padding: 0 0 3rem 4rem;
  letter-spacing: 0;
  text-align: justify;
}
body.company .access .text ul li span {
  position: absolute;
  top: 0.4rem;
  left: 0;
  display: grid;
  place-content: center;
  width: 3rem;
  height: 3rem;
  padding-bottom: 0.1rem;
  color: rgba(255, 255, 255, 1);
  background-color: rgba(81, 98, 172, 1);
  border-radius: 0.4rem
}
body.company .access .text ul li span:before{
  display: block;
  content: "";
  position: absolute;
  top: 95%;
  left: 0;
  width: 3rem;
  height: 2.5rem;
  background-image: url(../images/icon_arrow_under_blue.svg);
  background-repeat: no-repeat;
  background-size: 3.5rem;
  background-position: center bottom;
}
body.company .access .text ul li:last-child span:before{
  display: none;
}




/* ---------------------------------------------------------------- */
/* Solution */
/* ---------------------------------------------------------------- */


/* contents
*******************/
body.works .widthFull {
  width: 100%;
  background-color: rgba(241, 245, 247, 1);
}
body.works .content {
  width: 100%;
  max-width: 140.8rem;
  margin: 0 auto;
  padding: 10rem 0 0;
}


/* index
*******************/
body.works .contents .index {
  padding: 10rem 0;
  text-align: center;
  background-color: rgba(255, 255, 255, 1);
}
body.works .index h2 {
  padding: 0 0 4rem 1rem;
  font-size: 3.4rem;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.15em;
}
body.works .index p {
  font-size: 2rem;
  font-weight: 500;
  letter-spacing: 0.15em;
}


/* solutions
*******************/
body.works .content .solutions {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 5.6rem;
  width: 100%;
  padding: 0 0 10rem;
}
body.works .content .solution {
  position: relative;
  display: block;
  width: calc( 50% - 2.8rem);
  padding-bottom: 12rem;
  background-color: rgba(255, 255, 255, 1);
  border-radius: 1.6rem;
  box-shadow: 0 0.5rem 2rem 0 rgba(132, 159, 183, .1);
  overflow: hidden;
}
body.works .content .solution:before {
  display: block;
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 9.6rem;
  background-color: rgba(81, 98, 172, 1);
}
body.works .content .solution h3 {
  position: relative;
  width: 82%;
  margin: 0 auto;
  font-size: 3.2rem;
  font-weight: 500;
  text-align: center;
  letter-spacing: 0.2rem;
  line-height: 1.5;
  color: rgba(81, 98, 172, 1);
}
body.works .content .solution p {
  padding: 2.6rem 0;
  width: 82%;
  margin: 0 auto;
  line-height: 1.8;
}
body.works .content .solution .icon {
  width: 100%;
  height: 16rem;
  margin: 8rem 0 0;
  text-align: center;
}
body.works .content .solution .icon img {
  width: 20rem;
  border-radius: 50%;
  transform: translateY(-3.6rem);
}
body.works .content .solution .button01w {
  position: absolute;
  bottom: 4rem;
  left: 0;
  width: 100%;
  text-align: center;
}
body.works .content .solution .button01w a {
  display: grid inline;
  margin: 0 auto;
}
body.works .content .solution .wp-block-buttons .wp-block-button__link {
  width: auto;
}


/* page-child - contents
*******************/
body.works.page-child .widthFull {
  background-color: transparent;
}
body.works.page-child .widthFull:nth-child(even) {
  background-color: rgba(241, 245, 247, 1);
}


/* page-child - index
*******************/
body.works.page-child .contents .index {
  width: 80%;
  margin: 0 auto;
}
body.works.page-child .index p {
  padding-bottom: 2.4rem;
  text-align: left;
}
body.works.page-child .index p.problem {
  font-size: 2.6rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: rgba(154, 28, 40, 1);
}
body.works.page-child .index p.action {
  font-size: 2.6rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: rgba(81, 98, 172, 1);
}
body.works.page-child .index p.action span {
  background: linear-gradient(transparent 60%, #ffff00 80%);
}


/* page-child - solutions
*******************/
body.works.page-child .content h3 {
  padding-bottom: 2rem;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
body.works.page-child .content h4 {
  padding: 1rem 0 2rem;
  color: rgba(81, 98, 172, 1);
}
body.works.page-child .content p {
  padding-bottom: 10rem;
}
body.works.page-child .content p.number {
  margin-top: 5rem;
  padding-bottom: 0;
  font-size: 8rem;
  font-weight: 400;
  line-height: 1;
  color: rgba(81, 98, 172, 1);
}
body.works.page-child .content p.notes {
  padding-bottom: 10rem;
  transform: translateY(-3rem);
}
body.works.page-child .content p.notes2 {
  padding: 0 0 10rem 12.6rem;
  transform: translateY(-3rem);
}
body.works.page-child .content .wp-block-image+p.notes,
body.works.page-child .content .wp-block-image+p.notes2,
body.works.page-child .content .wp-block-table+p.notes,
body.works.page-child .content .wp-block-table+p.notes2,
body.works.page-child .content .details+p.notes,
body.works.page-child .content .details+p.notes2,
body.works.page-child .content .strengths+p.notes,
body.works.page-child .content .strengths+p.notes2 {
  transform: translateY(-5rem);
  padding-bottom: 5rem;
}


/* page-child - details
*******************/
body.works.page-child .details {
  display: flex;
  flex-wrap: nowrap;
  align-items: start;
  gap: 3.2rem 5.6rem;
  width: 100%;
  padding-bottom: 10rem;
}
body.works.page-child .details p {
  font-weight: 600;
  white-space: nowrap;
}
body.works.page-child .details ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 3.2rem;
  width: 100%;
}
body.works.page-child .details li {
  display: grid;
  justify-items: center;
  align-items: center;
  width: calc( 33.3% - 2.4rem );
  padding: 5rem;
  font-size: 2rem;
  font-weight: 600;
  background-color: rgba(255, 255, 255, 1);
  border-radius: 1.6rem;
}
body.works.page-child .widthFull:nth-child(odd) .details li {
  background-color: rgba(241, 245, 247, 1);
}
body.works.page-child .content table {
  width: 100%;
  margin-bottom: 10rem;
}
body.works.page-child .content table tr {
  border-bottom: 1px solid #C3CDDC;
}
body.works.page-child .content table tr:first-child {
  border-top: 1px solid #C3CDDC;
}
body.works.page-child .content table th,
body.works.page-child .content table td {
  padding: 3.2rem 1.6rem;
  border: none;
}
body.works.page-child .content table th {
  width: 28rem;
  padding-right: 4.8rem;
  white-space: nowrap;
}
body.works.page-child .content img {
  padding-bottom: 10rem;
  width: 100%;
}


/* page-child - results
*******************/
body.works.page-child .results {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: stretch;
  gap: 6rem;
  width: 100%;
  padding: 5rem 0 10rem;
}
body.works.page-child .data {
  position: relative;
  width: 28%;
  border-radius: 1.6rem;
  box-shadow: 0 0.5rem 1.5rem 0 rgba(132, 159, 183, .3);
}
body.works.page-child .data:before {
  z-index: 0;
  display: block;
  content: "";
  position: absolute;
  top: -0.4rem;
  left: -0.4rem;
  width: 12rem;
  height: 12rem;
  background: linear-gradient(135deg, rgba(145, 219, 255, 1), rgba(61, 98, 172, 1));
  border-radius: 1.8rem 0 0 0;
}
body.works.page-child .data:after {
  z-index: 0;
  display: block;
  content: "";
  position: absolute;
  bottom: -0.4rem;
  right: -0.4rem;
  width: 12rem;
  height: 12rem;
  background: linear-gradient(135deg, rgba(61, 98, 172, 1), rgba(145, 219, 255, 1));
  border-radius: 0 0 1.8rem 0;
}
body.works.page-child .data .dataInner {
  z-index: 1;
  display: grid;
  justify-items: center;
  align-items: center;
  position: relative;
  height: 100%;
  background-color: rgba(255, 255, 255, 1);
  border: 0.5rem solid #fff;
  border-radius: 1.6rem;
  overflow: hidden;
}
body.works.page-child .data .dataInner .wp-block-group__inner-container {
  display: grid;
  justify-items: center;
  align-items: center;
  width: 100%;
}
body.works.page-child .data p:first-child {
  padding: 0 0 1rem;
  font-size: 3.2rem;
  font-weight: 600;
  color: rgba(81, 98, 172, 1);
}
body.works.page-child .data p:first-child span {
  font-size: 8rem;
  font-weight: 600;
}
body.works.page-child .data p:last-child {
  width: 100%;
  padding: 1.6rem 0;
  font-size: 2.4rem;
  font-weight: 600;
  text-align: center;
  color: rgba(255, 255, 255, 1);
  background-color: rgba(88, 147, 227, 1);
}
body.works.page-child .results+p {
  padding: 0 0 5rem;
  font-size: 2.4rem;
  font-weight: 600;
  text-align: center;
  transform: translateY(-5rem);
}


/* page-child - strengths
*******************/
body.works.page-child h5 {
  font-size: 1.8rem;
  line-height: 2;
  font-weight: 600;
  padding-bottom: 5rem;
}
body.works.page-child .strengths {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: stretch;
  gap: 6rem;
  width: 100%;
  padding-bottom: 10rem;
}
body.works.page-child .strengths .info {
  position: relative;
  width: 28%;
  border-radius: 1.6rem;
  box-shadow: 0 0.5rem 1.5rem 0 rgba(132, 159, 183, .3);
}
body.works.page-child .strengths .info:before {
  z-index: 0;
  display: block;
  content: "";
  position: absolute;
  top: -0.4rem;
  left: -0.4rem;
  width: 12rem;
  height: 12rem;
  background: linear-gradient(135deg, rgba(145, 219, 255, 1), rgba(61, 98, 172, 1));
  border-radius: 1.8rem 0 0 0;
}
body.works.page-child .strengths .info:after {
  z-index: 0;
  display: block;
  content: "";
  position: absolute;
  bottom: -0.4rem;
  right: -0.4rem;
  width: 12rem;
  height: 12rem;
  background: linear-gradient(135deg, rgba(61, 98, 172, 1), rgba(145, 219, 255, 1));
  border-radius: 0 0 1.8rem 0;
}
body.works.page-child .strengths .info .infoInner {
  z-index: 1;
  display: grid;
  justify-items: center;
  align-items: center;
  position: relative;
  height: 100%;
  background-color: rgba(255, 255, 255, 1);
  border: 0.5rem solid #fff;
  border-radius: 1.6rem;
  overflow: hidden;
}
body.works.page-child .strengths .info .infoInner .wp-block-group__inner-container {
  display: grid;
  justify-items: center;
  align-items: center;
  width: 100%;
}
body.works.page-child .strengths .info p:first-child {
  position: relative;
  width: 100%;
  padding: 8.2rem 3rem 2rem;
  font-size: 3.2rem;
  font-weight: 600;
  text-align: center;
  color: rgba(255, 255, 255, 1);
  background-color: rgba(88, 147, 227, 1);
}
body.works.page-child .strengths .info p:first-child:before {
  z-index: 0;
  display: block;
  content: "";
  position: absolute;
  top: 0;
  left: calc( 50% - 4rem );
  width: 8rem;
  height: 7rem;
  background-color: rgba(255, 255, 255, 1);
  background-image: url(../images/icon_check_blue.svg);
  background-repeat: no-repeat;
  background-size: 4.5rem;
  background-position: center center;
  border-radius: 0 0 0.8rem 0.8rem;
}
body.works.page-child .strengths .info p:last-child {
  width: 100%;
  padding: 3rem 3rem;
  font-size: 2rem;
  font-weight: 500;
  text-align: center;
}


/* page-child - plan
*******************/
body.works.page-child .content .plan {
  width: 100%;
}
body.works.page-child .content .plan thead,
body.works.page-child .content .plan tr,
body.works.page-child .content .plan tr:first-child,
body.works.page-child .content .plan th,
body.works.page-child .content .plan td {
  border: none;
}
body.works.page-child .content .plan thead tr {
  display: flex;
  flex-wrap: wrap;
  align-items: start;
  justify-content: space-between;
}
body.works.page-child .content .plan thead th {
  display: block;
  width: auto;
  margin: 2rem 0 5rem 0;
  padding: 1rem 4rem;
  font-size: 2.4rem;
  font-weight: 500;
  background-color: rgb(255 255 255 / 1);
  box-shadow: 0 1rem 2rem 0 rgba(132, 159, 183, .3);
}
body.works.page-child .content .plan thead th strong {
  font-weight: 500;
}
body.works.page-child .content .plan thead th:nth-of-type(1) {
  color: rgb(255 255 255 / 1);
  background-color: rgba(154, 28, 40, 1);
  border-radius: 3.2rem 3.2rem 3.2rem 0;
}
body.works.page-child .content .plan thead th:nth-of-type(2) {
  color: rgb(255 255 255 / 1);
  background-color: rgba(81, 98, 172, 1);
  border-radius: 3.2rem 3.2rem 0 3.2rem;
}
body.works.page-child .content .plan tbody td {
  position: relative;
  display: block;
  width: 60%;
  padding: 3rem 3rem;
  font-size: 2.4rem;
  font-weight: 500;
  background-color: rgb(255 255 255 / 1);
  background-repeat: no-repeat;
  background-size: 4rem;
  border-radius: 3.2rem;
  box-shadow: 0 1rem 2rem 0 rgba(132, 159, 183, .3);
}
body.works.page-child .content .plan tbody td:nth-of-type(1) {
  margin: 0 0 5rem 6%;
  background-image: url(../images/icon_triangle_red.svg);
  background-position: left bottom;
  border-radius: 3.2rem 3.2rem 3.2rem 0;
}
body.works.page-child .content .plan tbody td:nth-of-type(2) {
  margin: 0 6% 5rem 34%;
  background-image: url(../images/icon_triangle_blue.svg);
  background-position: right bottom;
  border-radius: 3.2rem 3.2rem 0 3.2rem;
}
body.works.page-child .content .plan tbody td:nth-of-type(1):before {
  z-index: 0;
  display: block;
  content: "";
  position: absolute;
  bottom: -5rem;
  left: -8rem;
  width: 8rem;
  height: 8rem;
  background-image: url(../images/icon_person_red.svg);
  background-repeat: no-repeat;
  background-size: 8rem;
  background-position: center;
}
body.works.page-child .content .plan tbody td:nth-of-type(2):before {
  z-index: 0;
  display: block;
  content: "";
  position: absolute;
  bottom: -5rem;
  right: -8rem;
  width: 8rem;
  height: 8rem;
  background-image: url(../images/icon_person_alter.svg);
  background-repeat: no-repeat;
  background-size: 8rem;
  background-position: center;
}


/* page-child - tagList
*******************/
body.works .content:has(.tag) {
  padding-bottom: 10rem;
}
body.works.page-child .content .tag {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 2rem 1rem;
  margin: 5rem 0 0;
  padding: 2rem;
  background-color: rgb(255 255 255 / 1);
  border-radius: 1.6rem;
}
body.works.page-child .widthFull:nth-child(odd) .content .tag {
  background-color: rgba(241, 245, 247, 1);
}
body.works.page-child .content .tag li a {
  display: inline grid;
  justify-items: center;
  align-items: center;
  width: auto;
  height: 3rem;
  padding: 0 2rem;
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.05em;
  color: #373737;
  text-align: center;
  background-color: rgb(239 239 239 / 1);
  border-radius: 1.5rem;
}
body.works.page-child .widthFull:nth-child(odd) .content .tag li a {
  background-color: rgba(255, 255, 255, 1);
}




/* ---------------------------------------------------------------- */
/* Case Studies */
/* ---------------------------------------------------------------- */


/* contents
*******************/
body.case .widthFull {
  position: relative;
  background-color: rgba(241, 245, 247, 1);
}
body.case .case {
  width: 100%;
  max-width: 140.8rem;
  margin: 0 auto;
}


/* index
*******************/
body.case .contents .index {
  padding: 10rem 0;
  text-align: center;
  background-color: rgba(255, 255, 255, 1);
}
body.case .index h2 {
  padding: 0 0 4rem 1rem;
  font-size: 3.4rem;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.15em;
}
body.case .index p {
  font-size: 2rem;
  font-weight: 500;
  letter-spacing: 0.15em;
}


/* search
*******************/
body.case .search {
  text-align: center;
  background-color: rgb(88 147 227 / 1);
}
body.case .search .searchInner {
  display: flex;
  justify-content: center;
  width: 100%;
  max-width: 140.8rem;
  margin: 0 auto;
}
body.case .search .text {
  display: grid;
  justify-items: center;
  align-items: center;
  padding: 3.2rem 0;
  font-size: 1.6rem;
  line-height: 1;
  font-weight: 500;
  color: #fff;
  letter-spacing: 0.1em;
}
body.case .search .select {
  display: grid;
  justify-items: center;
  align-items: center;
  padding: 3.2rem;
  font-size: 1.6rem;
  line-height: 1;
  font-weight: 500;
  letter-spacing: 0.1em;
}
body.case .search .select select {
  width: 100%;
  min-width: 50rem;
  height: auto;
  padding: 2rem 6rem 2rem 2rem;
  background-color: #fff;
  background-image: url(../images/icon_select.svg);
  background-repeat: no-repeat;
  background-size: 2.4rem;
  background-position: right 1.5rem center;
  border-radius: 4px;
}



/* caseList
*******************/
body.case .caseList ul {
  display: flex;
  flex-flow: column;
  gap: 5.6rem 0;
  width: 100%;
  padding: 8rem 0;
}
body.case .caseList li {
  display: block;
  position: relative;
  width: calc( 100% - 20rem );
}
body.case .caseList li:nth-child(even) {
  margin-left: 20rem;
}
body.case .caseList li:before {
  display: block;
  content: "";
  position: absolute;
  top: -0.2rem;
  left: -0.2rem;
  width: 12rem;
  height: 12rem;
  background: linear-gradient( 135deg, rgba(145, 219, 255, 1), rgba(61, 98, 172, 1) );
  border-radius: 1.8rem 0 0 0;
}
body.case .caseList li:after {
  display: block;
  content: "";
  position: absolute;
  bottom: -0.2rem;
  right: -0.2rem;
  width: 12rem;
  height: 12rem;
  background: linear-gradient( -45deg, rgba(145, 219, 255, 1), rgba(61, 98, 172, 1) );
  border-radius: 0 0 1.8rem 0;
}
body.case .caseList li .pickupInner {
  z-index: 1;
  display: block;
  position: relative;
  width: 100%;
  padding: 4.8rem;
  background-color: rgba(255, 255, 255, 1);
  border-radius: 1.6rem;
  box-shadow: 0 0.5rem 2rem 0 rgba(132, 159, 183, .1);
}
body.case .caseList ul li .image {
  position: absolute;
  top: 4.8rem;
  left: 4.8rem;
  width: 32rem;
  height: auto;
  border-radius: 0.8rem;
  overflow: hidden;
}
body.case .caseList ul li h4 {
  padding: 0 0 0.8rem 38rem;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: 0.2rem;
  line-height: 1.5;
}
body.case .caseList ul li h4:before {
  display: none;
}
body.case .caseList ul li h3 {
  padding: 0 0 2.4rem 38rem;
  font-size: 2.4rem;
  font-weight: 700;
  letter-spacing: 0.2rem;
  line-height: 1.5;
  color: rgba(81, 98, 172, 1);
}
body.case .caseList ul li .text {
  padding: 0 0 3.2rem 38rem;
  line-height: 1.8;
}
body.case .caseList ul li .button01w {
  padding: 0 0 0 38rem;
}




/* ---------------------------------------------------------------- */
/* FAQ */
/* ---------------------------------------------------------------- */


/* faq
*******************/
body.faq .contents {
  width: 100%;
  max-width: 100%;
}


/* tabSet
*******************/
body.faq .tabSet {
  position: relative;
  width: 100%;
  padding: 3.2rem 0;
  text-align: center;
}
body.faq .tabSet:before {
  display: block;
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 8rem;
  margin: 0 auto;
  background-color: rgb(88 147 227 / 1);
}
body.faq .tabSet input[name="qatab"] {
  display: none;
}
body.faq .tabSet .tabButton {
  position: relative;
  display: inline grid;
  justify-items: center;
  align-items: center;
  width: auto;
  height: 7rem;
  margin-right: 1.5rem;
  padding: 0 2.4rem 2rem;
  font-size: 1.8rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  color: #fff;
  text-align: center;
  background-color: rgb(255 255 255 / 0);
  border: 1px solid #fff;
  border-radius: 0.8rem;
  transition: all 0.3s ease;
}
body.faq .tabSet .tabButton:hover,
body.faq .tabSet input:checked + .tabButton {
  color: #2982e6;
  background-color: rgb(255 255 255 / 1);
}


/* qaList
*******************/
body.faq .qaList {
  display: none;
  position: relative;
  width: 100%;
  max-width: 140.8rem;
  margin: 0 auto;
  padding: 10rem 0 5rem;
  text-align: left;
}
body.faq #tab1:checked ~ #qa1,
body.faq #tab2:checked ~ #qa2,
body.faq #tab3:checked ~ #qa3,
body.faq #tab4:checked ~ #qa4 {
  display: block;
}

body.faq .qaList details {
  padding: 0;
  border-bottom: 1px solid #ccc;
}
body.faq .qaList details:first-of-type {
  border-top: 1px solid #ccc;
}
body.faq .qaList summary {
  padding: 4rem 7rem 4rem 7rem;
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 1.6;
  background-image: url(../images/icon_faq_open.svg), url(../images/icon_faq_q.svg);
  background-repeat: no-repeat;
  background-size: 3.4rem, 3.8rem;
  background-position: top 3.6rem right 1.6rem, top 3.4rem left 1.6rem;
  list-style: none; /* Safariの一部バージョンやiOS対策 */
}
body.faq .qaList summary::-webkit-details-marker {
  display: none; /* Safari・Chrome向けの矢印非表示 */
}
body.faq .qaList summary::marker {
  display: none;
  content: "";
}
body.faq .qaList details:open summary {
  background-image: url(../images/icon_faq_close.svg), url(../images/icon_faq_q.svg);
  background-position: top 3.6rem right 1.6rem, top 3.4rem left 1.6rem;
}
body.faq .qaList details p {
  margin: 0 0 3rem 7rem;
  padding: 3rem 3rem 3rem 7rem;
  font-size: 1.8rem;
  font-weight: 400;
  line-height: 1.8;
  color: #373737;
  background-color: rgba(241, 245, 247, 1);
  background-image: url(../images/icon_faq_a.svg);
  background-repeat: no-repeat;
  background-size: 3.8rem;
  background-position: top 2.7rem left 1.6rem;
  border-radius: 0.8rem;
}
body.faq .qaList details p a {
  color: #5893E3;
  text-decoration: underline;
}

body.faq .qaList p.index {
  display: none;
}




/* ---------------------------------------------------------------- */
/* News(topics) + archive */
/* ---------------------------------------------------------------- */


/* newsNavi
*******************/
body.news ul.newsNavi,
body.archive ul.newsNavi {
  display: flex;
  justify-content: flex-end;
  width: 100%;
  padding: 6rem 0 3rem;
}
body.news ul.newsNavi li,
body.archive ul.newsNavi li {
  padding-left: 1rem;
  text-align: center;
}
body.news ul.newsNavi li a,
body.archive ul.newsNavi li a {
  position: relative;
  display: grid;
  justify-items: center;
  align-items: center;
  padding: 0.9rem 2.4rem;
  font-size: 1.6rem;
  line-height: 1;
  font-weight: 500;
  letter-spacing: 0.1em;
  color: #4E5258;
  background-color: rgb(241 245 247 / 1);
  border-radius: 0.4em;
  white-space: nowrap;
  transition: all 0.3s ease;
}
body.news ul.newsNavi li a.is-active,
body.archive ul.newsNavi li a.is-active,
body.news ul.newsNavi li a:hover,
body.archive ul.newsNavi li a:hover {
  color: #fff;
  background-color: rgb(61 98 172 / 1);
}
body.news ul.newsNavi li a.is-active:before,
body.archive ul.newsNavi li a.is-active:before{
  display: block;
  content: "";
  position: absolute;
  top: 95%;
  left: calc( 50% - 1.2rem );
  width: 0;
  height: 0;
  border-top: 1.2rem solid rgb(61 98 172 / 1);
  border-left: 1.2rem solid transparent;
  border-right: 1.2rem solid transparent;
}


/* archiveTitle
*******************/
body.news .archiveTitle,
body.archive .archiveTitle {
  padding-top: 4.8rem;
  font-size: 1.6rem;
  font-weight: 500;
}


/* infoList
*******************/
body.news .list ul,
body.archive .list ul {
  width: 100%;
  padding-bottom: 8rem;
}
body.news .list li,
body.archive .list li {
  border-bottom: 1px solid #C3CDDC;
}
body.news .list li a,
body.archive .list li a {
  display: flex;
  padding: 4.8rem 3.2rem;
  font-size: 1.6rem;
  text-decoration: none;
  text-underline-offset: 0.4rem;
  transition: all 0.3s ease;
}
body.news .list li a:hover,
body.archive .list li a:hover {
  color: #00bbCC;
  text-decoration: none;
}
body.news .list li a span:nth-of-type(1),
body.archive .list li a span:nth-of-type(1) {
  flex-shrink: 0;
  padding: 0.2rem;
  background: linear-gradient( 160deg, rgba(145, 219, 255, 1), rgba(61, 98, 172, 1) );
  border-radius: 0.4rem;
}
body.news .list li a span:nth-of-type(1) span,
body.archive .list li a span:nth-of-type(1) span {
  display: grid;
  justify-items: center;
  align-items: center;
  width: 11rem;
  height: 3.2rem;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.05em;
  color: rgba(88, 147, 227, 1);
  text-align: center;
  border-radius: 0.3rem;
  background: rgba(255, 255, 255, 1);
}
body.news .list li a span:nth-of-type(2),
body.archive .list li a span:nth-of-type(2) {
  flex-shrink: 0;
  display: grid;
  justify-items: start;
  align-items: center;
  height: 3rem;
  margin: 0 4rem;
  font-size: 1.8rem;
  font-weight: 400;
  line-height: 1;
  color: rgba(88, 147, 227, 1);
}
body.news .list li a span:nth-of-type(3),
body.archive .list li a span:nth-of-type(3) {
  display: block;
  font-size: 1.6rem;
  font-weight: 400;
  text-decoration: underline;
}
body.news .list li a[target="_blank"] span:nth-of-type(3),
body.archive .list li a[target="_blank"] span:nth-of-type(3) {
  padding: 0 11rem 0 0;
  background: url(../images/icon_blank_blue.svg);
  background-repeat: no-repeat;
  background-size: 2rem;
  background-position: center right 8rem;
}
body.news .noResults,
body.archive .noResults {
  padding: 3.2rem 0;
  font-size: 2.8rem;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.05em;
  font-feature-settings: "palt" 1;
}
body.news .noResults span,
body.archive .noResults span {
  font-size: 1.8rem;
  line-height: 2;
}



/* ---------------------------------------------------------------- */
/* single (Case Studies) */
/* ---------------------------------------------------------------- */


/* infoTitle
*******************/
body.single-case_detail .case {
  width: 100%;
  max-width: 140.8rem;
  margin: 0 auto;
}
body.single-case_detail .infoTitle {
  padding: 5rem 2.5rem;
  border-bottom: 1px solid #cccccc;
}
body.single-case_detail .infoTitle h3 {
  padding-bottom: 0.8rem;
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0.2rem;
  line-height: 1.5;
}
body.single-case_detail .infoTitle h2 a {
  padding: 0;
  font-size: 3.2rem;
  font-weight: 700;
  letter-spacing: 0.2rem;
  line-height: 1.5;
  color: rgba(81, 98, 172, 1);
}


/* infoContent
*******************/
body.single-case_detail .infoContent {
  padding: 5rem 0;
}
body.single-case_detail .infoContent .image {
  width: 60%;
  height: auto;
  margin: 0 auto;
  border-radius: 0.8rem;
  overflow: hidden;
}

body.single-case_detail .infoContent .text {
  display: flex;
  flex-wrap: nowrap;
  gap: 0 6rem;
  position: relative;
  width: 100%;
  padding: 5rem 2.5rem;
  border-bottom: 1px solid #cccccc;
}
body.single-case_detail .infoContent .text:nth-of-type(1) {
  padding-top: 7.5rem;
}
body.single-case_detail .infoContent p:nth-of-type(1) {
  flex: 1;
  font-weight: 500;
  line-height: 1.5;
  color: rgba(81, 98, 172, 1);
} 
body.single-case_detail .infoContent p:nth-of-type(2) {
  flex: 70%;
}


/* infoTagList
*******************/
body.single-case_detail .infoTagList {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 2rem 1rem;
  padding-top: 2rem;
  font-size: 1.4rem;
  line-height: 1;
  font-weight: 400;
}
body.single-case_detail .infoTagList a {
  display: inline grid;
  justify-items: center;
  align-items: center;
  width: auto;
  height: 3rem;
  padding: 0 2rem;
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.05em;
  color: #373737;
  text-align: center;
  background-color: rgb(239 239 239 / 1);
  border-radius: 1.5rem;
}




/* ---------------------------------------------------------------- */
/* single (News Letter, news) */
/* ---------------------------------------------------------------- */


/* infoTitle
*******************/
body.single-post .single,
body.single-newsletter_detail .newsletter {
  width: 100%;
  max-width: 140.8rem;
  margin: 0 auto;
}
body.single-post .infoTitle,
body.single-newsletter_detail .infoTitle {
  padding: 5rem 2.5rem;
  border-bottom: 1px solid #cccccc;
}
body.single-post .infoDate,
body.single-newsletter_detail .infoDate {
  padding-bottom: 0.8rem;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 1.5;
}
body.single-post .infoDate span,
body.single-newsletter_detail .infoDate span {
  display: inline-block;
  padding: 0.4rem 1.2rem;
  margin-right: 0.8rem;
  font-size: 1.4rem;
  font-weight: 500;
  text-align: center;
  color: #373737;
  background-color: rgb(239 239 239 / 1);
  border-radius: 0.8rem;
  transform: translateY(-0.1rem);
}
body.single-post .infoTitle h2 a,
body.single-newsletter_detail .infoTitle h2 a {
  padding: 0;
  font-size: 3.2rem;
  font-weight: 700;
  letter-spacing: 0.2rem;
  line-height: 1.5;
  color: rgba(81, 98, 172, 1);
}


/* infoCategories
*******************/
body.single-post .post-categories {
  padding-top: 1.2rem;
}
body.single-post .post-categories li {
  display: inline-block;
  flex-shrink: 0;
  padding: 0.2rem;
  background: linear-gradient( 160deg, rgba(145, 219, 255, 1), rgba(61, 98, 172, 1) );
  border-radius: 0.4rem;
}
body.single-post .post-categories li a {
  display: grid;
  justify-items: center;
  align-items: center;
  width: 11rem;
  height: 3.2rem;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.05em;
  color: rgba(88, 147, 227, 1);
  text-align: center;
  border-radius: 0.3rem;
  background: rgba(255, 255, 255, 1);
}


/* infoContent
*******************/
body.single-post .infoContent,
body.single-newsletter_detail .infoContent {
  padding: 5rem 0;
}


/* infoTagList
*******************/
body.single-post .infoTagList,
body.single-newsletter_detail .infoTagList {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 2rem 1rem;
  padding-top: 2rem;
  font-size: 1.4rem;
  line-height: 1;
  font-weight: 400;
}
body.single-post .infoTagList a,
body.single-newsletter_detail .infoTagList a {
  display: inline grid;
  justify-items: center;
  align-items: center;
  width: auto;
  height: 3rem;
  padding: 0 2rem;
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.05em;
  color: #373737;
  text-align: center;
  background-color: rgb(239 239 239 / 1);
  border-radius: 1.5rem;
}




/* ---------------------------------------------------------------- */
/* single block css */
/* ---------------------------------------------------------------- */


/* margin
*******************/
body.single .wp-block-columns,
body.single .wp-block-column,
body.single .wp-block-group,
body.single .wp-block-group.is-nowrap,
body.single .wp-block-group.is-vertical,
body.single .wp-block-more,
body.single .wp-block-separator,
body.single .wp-block-spacer,
body.single .wp-block-button,
body.single .wp-block-buttons,
body.single .wp-block-paragraph,
body.single .wp-block-image,
body.single .wp-block-gallery,
body.single .wp-block-video,
body.single .wp-block-audio,
body.single .wp-block-file {
  margin: 2rem 0;
}


/* button
*******************/
body.single .wp-block-button,
body.single .wp-block-buttons {
  display: flex;
  gap: 0 3rem;
}
body.single .wp-block-button a,
body.single .wp-block-buttons a {
  position: relative;
  display: grid;
  justify-items: start;
  align-items: center;
  width: auto;
  height: 6.4rem;
  padding: 0 8rem 0 1.6rem;
  font-size: 1.6rem;
  line-height: 1;
  font-weight: 700;
  color: #fff;
  white-space: nowrap;
  background: linear-gradient(0.25turn, rgb(88 147 227 / 1), rgb(61 98 172 / 1) );
  border-radius: 0.8rem;
}
body.single .wp-block-button a:after,
body.single .wp-block-buttons a:after {
  position: absolute;
  left: auto;
  right: 1.6rem;
  bottom: 1.6rem;
  content: "";
  display:inline-block;
  width: 3.2rem;
  height: 3.2rem;
  background-color: rgb(88 147 227 / 1);
  background-image: url(../images/icon_arrow_r_white.svg), url(../images/icon_arrow_r_blue.svg);
  background-repeat: no-repeat;
  background-size: 2rem;
  background-position: center center, center left -1rem;
  border-radius: 0.4rem;
  transition: all 0.3s ease;
}
body.single .wp-block-button a:hover:after,
body.single .wp-block-buttons a:hover:after {
  background-color: rgb(255 255 255 / 1);
  background-position: center right -1rem, center center;
}
body.single .wp-block-button a[target="_blank"],
body.single .wp-block-buttons a[target="_blank"] {
  padding: 0 10.4rem 0 1.6rem;
  background: url(../images/icon_blank_white.svg), linear-gradient(0.25turn, rgb(88 147 227 / 1), rgb(61 98 172 / 1) );
  background-repeat: no-repeat;
  background-size: 2rem, auto;
  background-position: center right 8rem, top left;
}




/* ---------------------------------------------------------------- */
/* Recruit */
/* ---------------------------------------------------------------- */


/* requirements
*******************/
body.recruit .requirements {
  padding: 10rem 0 0;
}
body.recruit .requirements h3 {
  padding: 0 0 8rem;
}
body.recruit .requirements tr {
  border-bottom: 1px solid #cccccc;
}
body.recruit .requirements tr:first-child {
  border-top: 1px solid #cccccc;
}
body.recruit .requirements th,
body.recruit .requirements td {
  border: none;
}
body.recruit .requirements th {
  width: 16rem;
  padding: 3.2rem 0;
  font-weight: 600;
}
body.recruit .requirements td {
  padding: 3.2rem 0;
  font-weight: 400;
}





/* ---------------------------------------------------------------- */
/* Contact */
/* ---------------------------------------------------------------- */


/* form */
.wpcf7 {
  margin-top: 10rem;
  padding: 8rem 10rem;
  background-color: rgba(241, 245, 247, 1);
  border-radius: 1.6rem;
}
body.contact form p {
  font-size: 1.8rem;
  font-weight: 500;
}
body.contact form .input {
  width: 100%;
  caret-color: auto;
}
body.contact form .input th {
  width: 25%;
  padding: 3.4rem 0 0;
  font-size: 1.4rem;
  text-align: left;
  vertical-align: top;
}
body.contact form .input th span.optional,
body.contact form .input th span.haveto {
  display: inline-block;
  margin-right: 1rem;
  padding: 0.7rem 1rem 0.8rem;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1;
  color: #fff;
  background-color: rgb(218 0 0 / 1);
  border-radius: 0.4rem;
}
body.contact form .input th span.optional {
    background-color: rgb(153 150 150 / 1);
}
body.contact form .input td {
  width: 75%;
  padding: 1.6rem 0;
}
body.contact form input[type=text],
body.contact form input[type=email],
body.contact form input[type=tel] {
  width: 100%;
  padding: 2rem;
  font-size: 1.8rem;
  background-color: #fff;
  border: none;
  border-radius: 0.8rem;
}

body.contact form .wpcf7-checkbox {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}
body.contact form .wpcf7-checkbox .wpcf7-list-item {
  margin: 0;
}
body.contact form input[type=checkbox] {
  display: none;
}
body.contact form input[type=checkbox] + span {
  display: inline-block;
  padding: 1rem 3.2rem;
  font-size: 1.4rem;
  background-color: #fff;
  background-repeat: no-repeat;
  background-size: 2rem;
  background-position: 0.8rem center;
  border: solid 2px #fff;
  border-radius: 3rem;
  transition: all 0.3s ease;
}
body.contact form input[type=checkbox]:checked + span {
  padding: 1rem 3.2rem 1rem 5rem;
  background-image: url(../images/icon_check.svg);
  background-position: 1.6rem center;
  border: solid 2px #5893E3;
}

body.contact form .input td textarea {
  width: 100%;
  padding: 2rem;
  font-size: 1.6rem;
  background-color: #fff;
  border-radius: 0.8rem;
  resize: vertical;
}

body.contact .wpcf7 form .wpcf7-not-valid-tip {
  display: block;
  padding-top: 1rem;
  font-size: 1.6rem;
  color: #c00;
}
.wpcf7 form .wpcf7-not-valid {
  background-color: rgb(218 0 0 / 1);
}

.wpcf7 form .wpcf7-response-output {
  width: 100% !important;
  margin: 3rem 0 0 !important;
  padding: 2rem !important;
  font-size: 2rem;
  text-align: center;
  color: rgb(255 255 255 / 1) !important;
  background-color: rgba(81, 98, 172, 1) !important;
  border: none 0 !important;
  border-radius: 0.8rem;
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
  color: rgb(255 255 255 / 1) !important;
  background-color: rgb(218 0 0 / 1) !important;
  border: none 0 !important;
}

body.contact form td.agree {
  padding: 3.2rem 0;
}
body.contact form td.agree p:nth-of-type(1) a {
  color: #3f4c8a;
}
body.contact form td.agree p:nth-of-type(2) {
  margin: 2rem 0 1rem;
}
body.contact form td.agree .wpcf7-list-item {
  margin: 0 !important;
}
.wpcf7 form .btn {
  margin-top: 3rem;
  text-align: center;
}
.wpcf7 form .btn p {
  position: relative;
  display: inline grid;
  justify-items: start;
  align-items: center;
  width: auto;
  margin: 0 auto;
  white-space: nowrap;
  background: linear-gradient(0.25turn, rgb(88 147 227 / 1), rgb(61 98 172 / 1) );
  border-radius: 0.8rem;
}
.wpcf7 form .btn input {
  width: 30rem;
  height: 6rem;
  font-size: 1.8rem;
  color: #fff;
}
.wpcf7 form .wpcf7-spinner {
  display: none !important;
  position: absolute;
  top: 0;
  left: 0;
  width: 30rem;
  height: 6rem;
  background-color: rgba(51, 51, 51, 0.7);
  border-radius: 0.8rem;
}
.wpcf7 form.submitting .wpcf7-spinner {
  display: block !important;
  margin: 0 auto !important;
}
.wpcf7 form .wpcf7-spinner:before {
  top: 38%;
  left: 48%;
}
.wpcf7 form .cf-turnstile {
  width: 300px;
  margin: 0 auto;
}


/* thanks */
body.thanks .thanks {
  padding: 0 0 10rem;
}
body.thanks .text {
  display: grid;
  justify-items: center;
  align-items: center;
  padding: 8rem 0;
}
body.thanks .text h4 {
  text-align: center;
}
body.thanks .text h4 br {
  display: none;
}
body.thanks .text p {
  display: inline-block;
  padding-top: 4rem;
}
body.thanks .button01b {
  justify-content: center;
}




/* ---------------------------------------------------------------- */
/* Privacy */
/* ---------------------------------------------------------------- */


/* text
*******************/
body.privacy .text {
  padding: 10rem 0 0;
}
body.privacy .text h3 {
  padding: 0 0 8rem;
}
body.privacy .text p {
  padding: 0 0 8rem;
}
body.privacy .text .ppTitle {
  padding: 0 0 2rem;
  font-size: 2.4rem;
  font-weight: 500;
  letter-spacing: 0.15em;
}
body.privacy .text ul {
  list-style: revert;
  margin: revert;
  padding: revert;
  padding-bottom: 8rem;
}




/* ---------------------------------------------------------------- */
/* error 404 */
/* ---------------------------------------------------------------- */


body.error404 .error {
  padding: 0 0 10rem;
}
body.error404 .error .text {
  padding: 8rem 0;
  font-weight: 500;
}
body.error404 .error .text h4 {
  font-feature-settings: "palt" 1;
}
body.error404 .error .button01b {
  justify-content: center;
}




@media screen and (min-width: 751px) and (max-width: 1600px) {
  /* html */
  html {
    font-size: 0.625vw;
  }
}




@media screen and (max-width: 750px) {
  /* ---------------------------------------------------------------- */
  /* common */
  /* ---------------------------------------------------------------- */
  
  
  /* html */
  html {
    font-size: 1.3vw;
  }
  p, a, li, dd, dt, th, td {
    font-size: 3.2rem;
  }
  body.navfixed {
    overflow: hidden;
  }
  body .pc {
    display: none !important;
  }
  body .sp {
    display: inline !important;
  }
  
  /* header
  *******************/
  .header,
  body:not(.home) .header {
    z-index: 100;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%; 
    height: 12rem;
    transition: none;
    border-radius: 0;
  }
  .header section {
    display: flex;
    align-items: center;
    position:relative;
    width: 100%;
    height: 100%;
    padding: 0 1.5rem 0 4rem;
    background-color: rgb(255 255 255 / 0.8);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border-radius: 0;
    transition: none;
  }
  .headerLogo {
    position:relative;
    z-index: 200;
  }
  .headerLogo a img {
    display: inline;
    width: 20rem;
  }
  .headerLogo a img.difference {
    display: none;
  }
  .header .hNaviBtn {
    -webkit-tap-highlight-color: transparent;
    cursor: pointer;
    z-index: 300;
    display: block;
    position: relative;
    margin-left: auto;
  }
  .header .hNaviBtn p {
    display: block;
    position: relative;
    width: 12rem;
    height: 12rem;
  }
  .header .hNaviBtn span {
    display: block;
    position: absolute;
    top: 50%;
    left: calc(50% - 1.25rem);
    width: 5rem;
    height: 0.4rem;
    margin: -0.2rem 0 0 -1.4rem;
    border-radius: 0.2rem;
    transition: 0.3s;
  }
  .header .hNaviBtn span:before,
  .header .hNaviBtn span:after {
    display: block;
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    width: 5rem;
    height: 0.4rem;
    background: rgb(78 82 88 / 1);
    border-radius: 0.2rem;
    transition: 0.3s;
  }
  .header .hNaviBtn span:before {
    margin-top: calc(-15% - 0.2rem);
  }
  .header .hNaviBtn span:after {
    margin-top: calc(15% - 0.2rem);
  }
  .header .hNaviBtn p .open {
    background: transparent;
  }
  .header .hNaviBtn p .open:before,
  .header .hNaviBtn p .open:after {
    margin-top: -0.4rem;
  }
  .header .hNaviBtn p .open:before {
    background: rgb(78 82 88 / 1);
    transform: rotate(45deg);
  }
  .header .hNaviBtn p .open:after {
    background: rgb(78 82 88 / 1);
    transform: rotate(-45deg);
  }
  .header .headerRight {
    display: block;
    position:fixed;
    top: 0;
    right: 0;
    width: 100%;
    height: 100vh;
    padding: 0;
    background-color: rgb(255 255 255 / 1);
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    transition: all 0.5s ease;
  }
  .header .headerRight.open {
    opacity: 1;
    visibility: visible;
  }
  .header nav {
    width: 100vw;
    padding: 16rem 5rem 12rem;
  }
  .header nav ul.mainNavi {
    display: flex;
    flex-flow: column;
    height: auto;
    padding-bottom: 7rem;
  }
  .header nav ul.mainNavi li {
    padding: 0;
  }
  .header nav ul.mainNavi li.headerContact {
    padding-top: 4rem;
  }
  .header nav ul.mainNavi li a,
  body:not(.home) .header nav ul.mainNavi li a,
  body.company .header nav ul.mainNavi li:nth-of-type(1) a,
  body.works .header nav ul.mainNavi li:nth-of-type(2) a,
  body.case .header nav ul.mainNavi li:nth-of-type(3) a,
  body.faq .header nav ul.mainNavi li:nth-of-type(4) a,
  body.news .header nav ul.mainNavi li:nth-of-type(5) a,
  body.recruit .header nav ul.mainNavi li:nth-of-type(6) a {
    position: relative;
    display: grid;
    justify-items: start;
    align-items: center;
    height: 12rem;
    padding: 0 0 0 8rem;
    font-size: 3.6rem;
    line-height: 1;
    font-weight: 600;
    letter-spacing: 0;
    color: #1c1a1a;
    white-space: nowrap;
    background: transparent;
    border-radius: 0;
    opacity: 1;
    transition: none;
  }
  body.company .header nav ul.mainNavi li:nth-of-type(1) a,
  body.works .header nav ul.mainNavi li:nth-of-type(2) a,
  body.case .header nav ul.mainNavi li:nth-of-type(3) a,
  body.single-case_detail .header nav ul.mainNavi li:nth-of-type(3) a,
  body.faq .header nav ul.mainNavi li:nth-of-type(4) a,
  body.news .header nav ul.mainNavi li:nth-of-type(5) a,
  body.tag .header nav ul.mainNavi li:nth-of-type(5) a,
  body.archive .header nav ul.mainNavi li:nth-of-type(5) a,
  body.recruit .header nav ul.mainNavi li:nth-of-type(6) a,
  .header nav ul.mainNavi li a:hover {
    color: #1c1a1a;
  }
  .header nav ul.mainNavi li.headerContact a,
  body:not(.home) .header nav ul.mainNavi li.headerContact a {
    justify-items: start;
    width: 100%;
    height: 14rem;
    padding: 0 9.3rem 0 4rem;
    font-size: 3.6rem;
    font-weight: 600;
    color: #fff;
    background: linear-gradient(0.25turn, rgb(88 147 227 / 1), rgb(61 98 172 / 1));
    border-radius: 1.6rem;
  }
  
  body.company .header nav ul.mainNavi li:nth-of-type(1) a:after,
  body.works .header nav ul.mainNavi li:nth-of-type(2) a:after,
  body.case .header nav ul.mainNavi li:nth-of-type(3) a:after,
  body.single-case_detail .header nav ul.mainNavi li:nth-of-type(3) a:after,
  body.faq .header nav ul.mainNavi li:nth-of-type(4) a:after,
  body.news .header nav ul.mainNavi li:nth-of-type(5) a:after,
  body.archive .header nav ul.mainNavi li:nth-of-type(5) a:after,
  body.recruit .header nav ul.mainNavi li:nth-of-type(6) a:after,
  .header nav ul.mainNavi li a:after,
  .header nav ul.mainNavi li.headerContact a:after {
    position: absolute;
    top: 3.8rem;
    left: 0;
    right: auto;
    bottom: auto;
    content: "";
    display: inline-block;
    width: 5rem;
    height: 5rem;
    background-color: rgb(88 147 227 / 1);
    background-image: url(../images/icon_arrow_r_white.svg), url(../images/icon_arrow_r_blue.svg);
    background-repeat: no-repeat;
    background-size: 3.2rem;
    background-position: center center, center left -1rem;
    border-radius: 0.8rem;
    transition: all 0.3s ease;
  }
  .header nav ul.mainNavi li.headerContact a:after {
    top: 3.5rem;
    left: auto;
    right: 3.5rem;
    bottom: auto;
    width: 7rem;
    height: 7rem;
    border-radius: 1.2rem;
  }
  .header nav ul.mainNavi li a:hover:after {
    left: 0;
    right: auto;
    width: 5rem;
    background-color: rgb(88 147 227 / 1);
    background-position: center center, center left -1rem;
  }
  .header nav ul.mainNavi li.headerContact a:hover:after {
    left: auto;
    right: 3.5rem;
    width: 7rem;
    background-color: rgb(88 147 227 / 1);
    background-position: center center, center left -1rem;
  }
  .header nav .subNavi {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  .header nav .subNavi .sns {
    display: flex;
    gap: 0 3rem;
  }
  .header nav .subNavi .sns li,
 .header nav .subNavi .sns li:hover {
    width: 8rem;
    height: 8rem;
    transition: none;
  }
  .header nav .subNavi .sns li img {
    width: 100%;
  }
  .header nav .subNavi p a,
  .header nav .subNavi p a:hover {
    padding-left: 3.2rem;
    font-size: 3rem;
    font-weight: 600;
    transition: none;
  }
  
  
  /* crumbs
  *******************/
  .crumbs {
    padding: 8rem 5rem;
    font-size: 2rem;
    line-height: 1.8;
  }
  .crumbs p {
    font-size: 2rem;
  }
  .crumbs a {
    font-size: 2rem;
    transition: none;
  }
  
  
  /* pageTitle
  *******************/
  .pageTitle .contents {
    height: auto;
    padding: 16rem 0 5rem;
  }
  .pageTitle .contents:before {
    top: 65%;
    left: calc( (100% - 66rem ) / 2);
    width: 66rem;
    max-width: 66rem;
    height: 1px;
  }
  .pageTitle h1 {
    font-size: 2.1rem;
  }
  .pageTitle h1 .h1Inner {
    padding: 0 4.6rem;
  }
  .pageTitle h1 .large {
    font-size: 7rem;
  }


  /* contents
  *******************/
  .contents {
    max-width: 66rem;
  }
  
  
  /* title - h3
  *******************/
  body:not(.home) h3 {
    font-size: 5.2rem;
    line-height: 1.2;
    font-feature-settings: "palt" 1;
  }
  
  
  /* title - h4
  *******************/
  body:not(.home) h4 {
    padding-bottom: 7rem;
    font-size: 4rem;
  }
  
  
  /* button
  *******************/
  .button01b,
  .button01w {
    width: 100%;
    margin: 0;
    padding-bottom: 12rem;
  }
  .button01b a,
  .button01w a,
  .button01b .buttonInner,
  .button01w .buttonInner {
    height: 9.6rem;
    margin: 0 auto;
    padding: 0 9.3rem 0 2.8rem;
    font-size: 2.8rem;
    border-radius: 1.6rem;
  }
  .button01b a:after,
  .button01w a:after,
  .button01b a:hover:after,
  .button01w a:hover:after,
  .button01b .buttonInner:after,
  .button01w .buttonInner:after,
  .buttonOutside .button01b .buttonInner:after,
  .buttonOutside .button01w .buttonInner:after {
    right: 2.3rem;
    bottom: 2.3rem;
    width: 5rem;
    height: 5rem;
    background-color: rgb(88 147 227 / 1);
    background-size: 3.2rem;
    background-position: center center, center left -1rem;
    border-radius: 0.8rem;
    transition: none;
  }
  .button01b a[target="_blank"],
  .button01w a[target="_blank"],
  a[target="_blank"] .button01b .buttonInner,
  a[target="_blank"] .button01w .buttonInner {
    padding: 0 15rem 0 2.8rem;
    background-size: 3.2rem, auto;
    background-position: center right 11rem, top left;
  }
  
  
  /* Pagination
  *******************/
  .pagination {
    gap: 1.5rem;
  }
  .pagination .page-numbers {
    display: none;
    width: 8rem;
    height: 8rem;
    font-size: 3.2rem;
    border-radius: 1.6rem;
  }
  .pagination .page-numbers.current,
  .pagination .page-numbers:has(+ .current),
  .pagination .page-numbers.current+a,
  .pagination .page-numbers.prev,
  .pagination .page-numbers.next {
    display: inline grid;
  }
  .pagination .page-numbers.prev:before,
  .pagination .page-numbers.next:before {
    width: 8rem;
    height: 8rem;
    background-size: 50%;
  }
  
  
  /* in animation
  *******************/
  .inAnime,
  .inAnime.on {
    visibility:visible;
    opacity: 1;
    filter: none;
    transform: none;
    transition: none;
  }
  
  
  /* Footer Contact
  *******************/
  .widthFull:has(.footerContact) {
    padding: 0 0 10rem;
  }
  .footerContact {
    flex-flow: column;
    gap: 4rem;
    width: 66rem;
    max-width: 66rem;
  }
  .footerContact .contactBox,
  .footerContact .newsletterBox {
    width: 100%;
    padding: 7.5%;
    box-shadow: 0 1rem 4rem 0 rgba(132, 159, 183, .5);
    border-radius: 3.2rem;
  }
  .footerContact .contactBox {
    padding: 0;
  }
  .footerContact .contactBox a {
    padding: 7.5%;
  }
  .footerContact .contactBox h4 {
    padding: 2rem 0 2rem 8.6rem;
    font-size: 4.8rem;
    line-height: 1;
    font-weight: 400;
    letter-spacing: 0;
    background-image: url(../images/icon_contact.svg);
    background-repeat: no-repeat;
    background-size: 8rem;
    background-position: left -0.2rem center;
    font-feature-settings: "palt" 1;
  }
  .footerContact .newsletterBox h4 {
    padding: 2.1rem 0 1.9rem 8.6rem;
    font-size: 3.6rem;
    line-height: 1;
    font-weight: 500;
    letter-spacing: 0;
    background-image: url(../images/icon_mm.svg);
    background-repeat: no-repeat;
    background-size: 8rem;
    background-position: left -0.2rem center;
    font-feature-settings: "palt" 1;
  }
  .footerContact p {
    height: auto;
    padding: 4rem 0 4rem;
    font-size: 2.4rem;
    line-height: 1.5;
    font-weight: 600;
  }
  .footerContact p span {
    display: inline-block;
    padding-top: 1rem;
    font-size: 2.4rem;
    line-height: 1.5;
    font-weight: 400;
  }
  .footerContact p span a {
    font-size: 2.4rem;
    line-height: 1.5;
    font-weight: 400;
    text-decoration: underline;
    color: #fff;
  }
  .footerContact .button01w {
    width: 100%;
    margin: 0;
    padding-bottom: 0;
  }
  .footerContact .button01w a,
  .footerContact .button01w .buttonInner {
    width: 100%;
  }
  
  .footerContact form {
    display: flex;
    flex-flow: column;
    gap: 4rem;
    width: 100%;
  }
  .footerContact form input[type=mail] {
    width: 100%;
    height: 9.6rem;
    padding: 0 2rem;
    font-size: 2.8rem;
    background-color: #fff;
    border: none;
    border-radius: 1.6rem;
  }
  .footerContact form input[type=mail]::placeholder {
    color: #999;
  }
  .footerContact form .submitBtn {
    position: relative;
    display: inline grid;
    justify-items: start;
    align-items: center;
    width: auto;
    height: 9.6rem;
    padding: 0 8rem 0 1.6rem;
    font-size: 1.6rem;
    line-height: 1;
    font-weight: 700;
    color: #4E5258;
    white-space: nowrap;
    background: rgb(255 255 255 / 1);
    border: 1px solid #C3CDDC;
    border-radius: 1.6rem;
  }
  .footerContact form .submitBtn:after {
    content: "";
    display:inline-block;
    position: absolute;
    left: auto;
    right: 2.3rem;
    bottom: 2.3rem;
    width: 5rem;
    height: 5rem;
    background-color: rgb(88 147 227 / 1);
    background-image: url(../images/icon_arrow_r_white.svg), url(../images/icon_arrow_r_blue.svg);
    background-repeat: no-repeat;
    background-size: 3.2rem;
    background-position: center center, center left -1rem;
    border-radius: 0.8rem;
    transition: none;
  }
  .footerContact form .submitBtn:hover:after {
    background-color: rgb(255 255 255 / 1);
    background-position: center right -1rem, center center;
  }
  .footerContact form input[type=submit] {
    font-size: 2.8rem;
    line-height: 1;
    font-weight: 700;
    color: #4E5258;
  }
  
  /* Footer Contact - Contact Only */
  body:not(.home) .footerContact .contactBox {
    display: block;
    position: relative;
    width: 100%;
  }
  body:not(.home) .footerContact .contactBox .button01w {
    position: static;
  }
  body:not(.home) .footerContact p {
    height: auto;
    padding: 4rem 0 4rem;
  }
  body:not(.home) .footerContact .newsletterBox {
    display: none;
  }

  /* Footer Contact - Newsletter Only */
  body.contact .footerContact .contactBox {
    display: none;
  }
  body.contact .footerContact .newsletterBox {
    display: block;
    position: relative;
    width: 100%;
  }
  body.contact .footerContact form {
    position: static;
    width: 100%;
  }
  body.contact .footerContact form input[type=mail] {
    width: 100%;
  }
  
  
  /* footer
  *******************/
  .footer {
    padding: 9.6rem 7.5% 0;
  }

  footer .fNavi {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0;
    padding-bottom: 8rem;
  }
  footer .fNavi > li {
    width: 48%;
  }
  footer .fNavi > li:first-child {
    width: 100%;
  }
  
  footer .footerLogo img {
    width: 30rem;
  }
  footer .name {
    padding-top: 2rem;
    font-size: 3.4rem;
  }
  footer .add {
    font-size: 2.4rem;
  }
  footer .sns {
    gap: 0 3rem;
    padding-top: 4rem;
  }
  footer .sns li {
    width: 8rem;
    height: 8rem;
    transition: none;
  }
  footer .sns li:hover {
    opacity: 1;
  }
  footer .sns li img {
    width: 100%;
    vertical-align: top;
  }

  footer .category {
    padding-bottom: 4rem;
  }
  footer .category a,
  footer .page a {
    opacity: 1;
    transition: none;
  }
  footer .category a:hover,
  footer .page a:hover {
    opacity: 1;
  }
  footer .category a {
    padding: 8rem 0 1rem;
    font-size: 3.6rem;
  }
  footer .page a {
    padding: 2rem 0;
    font-size: 2.8rem;
  }

  footer .copyright {
    display: block;
    padding: 8rem 0;
    text-align: center;
  }
  footer .copyright p:nth-of-type(1) {
    padding-bottom: 2rem;
  }
  footer .copyright p:nth-of-type(1) a {
    font-size: 2.8rem;
    transition: none;
  }
  footer .copyright p:nth-of-type(1) a:hover {
    opacity: 1;
  }
  footer .copyright p:nth-of-type(2) {
    font-size: 2.8rem;
  }
  
  footer .chara img {
    width: 20rem;
    transform: translate(8rem, -6rem);
  }
  
  
  
  
  /* ---------------------------------------------------------------- */
  /* home */
  /* ---------------------------------------------------------------- */
  
  
  /* homeH2
  *******************/
  body.home .homeH2 {
    padding-left: calc( (100% - 66rem ) / 2);
    font-size: 2.6rem;
  }
  body.home .homeH2 span {
    font-size: 8rem;
  }
  body.home .homeH2:before {
    width: calc( (100vw - 70rem ) / 2 );
    height: 0.4rem;
    transform: translate( calc( (100vw - 66rem ) / 2 * -1 ), 7.6rem );
    
  }
  
  
  /* mv
  *******************/
  body.home .mv {
    height: 146rem;
    margin-top: 12rem;
    background-color: rgba(145, 219, 255, 1);
  } 
  body.home .mv .text {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    padding: 56rem 0 10rem;
  }
  body.home .mv .text h1 {
    padding-left: 10rem;
    font-size: 5.8rem;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: 0.05em;
    font-feature-settings: "palt" 0;
    color: rgba(255, 255, 255, 1);
  }
  body.home .mv .text h2 {
    width: 67rem;
    padding: 5rem 0 0 10rem;
    font-size: 2.8rem;
    font-weight: 600;
    line-height: 1.8;
    font-feature-settings: "palt" 1;
    color: rgba(50, 53, 57, 1);
  }
  body.home .mv .text p {
    width: 67rem;
    padding: 3rem 0 5rem 10rem;
    font-size: 2.4rem;
    font-weight: 500;
    line-height: 1.6;
    font-feature-settings: "palt" 1;
    color: rgba(50, 53, 57, 1);
  }
  body.home .mv .text h2 br,
  body.home .mv .text p br {
    display: none;
  }
  
  
  /* about
  *******************/
  body.home .about {
    padding: 4.8rem 0 0;
  }
  body.home .about .image {
    position: static;
    top: 0;
    left: 0;
    transform: translateY(-18rem);
  }
  body.home .about .image img {
    width: 100%;
    border: 4px solid #fff;
    border-radius: 1.6rem;
    box-shadow: 0 1rem 4rem 0 rgba(132, 159, 183, .2);
  }
  body.home .about .text {
    padding: 0;
    transform: translateY(-10rem);
  }
  body.home .about .text h2 {
    padding-bottom: 7rem;
    font-size: 6.2rem;
    letter-spacing: 0.1em;
    line-height: 1.25;
  }
  body.home .about .text h2 .h2Mini01 {
    font-size: 4.4rem;
    letter-spacing: 0.05em;
  }
  body.home .about .text h2 .h2Mini02 {
    font-size: 3.6rem;
    letter-spacing: 0.05em;
  }
  body.home .about .text h2 .cross {
    font-size: 8rem;
    vertical-align: -0.7rem;
  }
  body.home .about .text p {
    padding-bottom: 6rem;
    font-weight: 400;
  }
  body.home .about .button01b {
    padding: 2.4rem 0 6rem;
  }
  
  
  /* solution
  *******************/
  body.home .widthFull:has(.solution) {
    padding: 9.6rem 0;
  }
  body.home .solution {
    max-width: 66rem;
  }
  body.home .solution .pickup ul {
    flex-direction: column;
    gap: 8rem;
    padding-top: 6rem;
  }
  body.home .solution .pickup li {
    padding-bottom: 3rem;
    border-radius: 3.2rem;
    box-shadow: 0 1rem 4rem 0 rgba(132, 159, 183, .2);
  }
  body.home .solution .pickup ul li .number {
    height: 13.4rem;
    padding: 3.2rem 3.2rem 0;
    font-size: 7.2rem;
  }
  body.home .solution .pickup ul li .icon {
    height: 24rem;
  }
  body.home .solution .pickup ul li .icon img {
    width: 30rem;
    transform: translateY(-5rem);
  }
  body.home .solution .pickup ul li h3 {
    width: 85%;
    font-size: 4.8rem;
  }
  body.home .solution .pickup ul li .text {
    padding: 4rem 0;
    width: 85%;
  }
  body.home .solution .pickup ul li .button01w {
    width: 85%;
    margin: 1.6rem auto 0;
    padding-bottom: 2rem;
  }
  body.home .solution .pickup ul li .button01w a {
    width: 100%;
  }
  body.home .solution .button01b.center {
    max-width: 66rem;
    padding-top: 8rem;
  }

  body.home .solution .sliderWrapper {
    height: 23.5rem;
  }
  body.home .solution .sliderWrapper .slider1 img,
  body.home .solution .sliderWrapper .slider2 img {
    width: 240rem;
  }
  
  
  /* Case Studies
  *******************/
  body.home .widthFull:has(.case) {
    padding: 9.6rem 0 0;
  }
  body.home .case {
    max-width: 66rem;
  }
  body.home .case .pickup ul {
    gap: 8rem 0;
    padding-top: 6rem;
  }
  body.home .case .pickup li {
    width: 100%;
  }
  body.home .case .pickup li:nth-child(even) {
    margin-left: 0;
  }
  body.home .case .pickup li:before {
    top: -0.4rem;
    left: -0.4rem;
    width: 16rem;
    height: 16rem;
    border-radius: 3.2rem 0 0 0;
  }
  body.home .case .pickup li:after {
    bottom: -0.4rem;
    right: -0.4rem;
    width: 16rem;
    height: 16rem;
    border-radius: 0 0 3.2rem 0;
  }
  body.home .case .pickup li .pickupInner {
    padding: 7.5%;
    border-radius: 3rem;
    box-shadow: 0 1rem 4rem 0 rgba(132, 159, 183, .2);
  }
  body.home .case .pickup ul li .image {
    position: static;
    width: 100%;
    border-radius: 1.6rem;
  }
  body.home .case .pickup ul li h4 {
    padding: 4rem 0 2.4rem 0;
    font-size: 2.8rem;
    font-weight: 600;
    letter-spacing: 0.1rem;
    line-height: 1.5;
  }
  body.home .case .pickup ul li h3 {
    padding: 0 0 4rem 0;
    font-size: 4.2rem;
    font-weight: 600;
    letter-spacing: 0.1rem;
    line-height: 1.5;
  }
  body.home .case .pickup ul li h3 br {
    display: none;
  }
  body.home .case .pickup ul li .text {
    padding: 0 0 4rem 0;
  }
  body.home .case .pickup ul li .button01w {
    width: 100%;
    margin: 1.6rem auto 0;
    padding: 0 0 2rem;
  }
  body.home .case .pickup ul li .button01w a {
    width: 100%;
  }
  body.home .case .button01b.center {
    max-width: 66rem;
    padding-top: 8rem;
  }
  
  
  /* news
  *******************/
  body.home .widthFull:has(.news) {
    padding: 9.6rem 0 0;
  }
  body.home section.news {
    max-width: 66rem;
  }
  body.home .news .list .scroll {
    height: 50vh;
    margin-top: 4rem;
    padding-right: 4rem;
  }
  body.home .news .list ul {
    width: 100%;
  }
  body.home .news .list li a {
    display: block;
    padding: 4.8rem 0.5rem;
    font-size: 1.6rem;
    text-underline-offset: 0.8rem;
    transition: none;
  }
  body.home .news .list li a span:nth-of-type(1) {
    display: inline-block;
    padding: 0.4rem;
    border-radius: 0.8rem;
  }
  body.home .news .list li a span:nth-of-type(1) span {
    display: grid;
    width: 20rem;
    height: 5rem;
    font-size: 2.4rem;
    border-radius: 0.5rem;
  }
  body.home .news .list li a span:nth-of-type(2) {
    display: inline grid;
    margin: 0 3rem;
    font-size: 3.2rem;
  }
  body.home .news .list li a span:nth-of-type(3) {
    display: block;
    font-size: 3.2rem;
  }
  body.home .news .list li a[target="_blank"] span:nth-of-type(3) {
    padding: 2rem 8rem 0 0;
    background-size: 4rem;
    background-position: center right;
  }

  body.home .news .button01b.center {
    max-width: 66rem;
    padding-top: 8rem;
  }
  
  
  
  
  /* ---------------------------------------------------------------- */
  /* Company */
  /* ---------------------------------------------------------------- */


  /* contents
  *******************/
  body.company .about,
  body.company .history,
  body.company .philosophy,
  body.company .message,
  body.company .office,
  body.company .access {
    max-width: 100%;
    padding: 10rem 0;
  }
  body.company h3,
  body.company h4 {
    position: static;
    padding-bottom: 10rem;
  }


  /* about
  *******************/
  body.company .about {
    padding: 10rem 0;
  }
  body.company .about table {
    width: 100%;
  }
  body.company .about table th,
  body.company .about table td {
    display: block;
    padding: 0 0 3.2rem;
  }
  body.company .about table th {
    padding: 3.2rem 0 0;
  }


  /* history
  *******************/
  body.company .history {
    width: 100%;
    max-width: 66rem;
    padding: 10rem 0;
  }
  body.company .history table {
    position: relative;
    width: 100%;
  }
  body.company .history table th,
  body.company .history table td {
    display: block;
    border: none;
  }
  body.company .history table th {
    padding: 5rem 0 2.4rem 5rem;
  }
  body.company .history table td {
    padding: 3.2rem 5rem;
    background-color: rgba(255, 255, 255, 1);
    border-left: 5rem solid rgba(241, 245, 247, 1);
    border-top: none;
    border-bottom: none;
  }
  body.company .history table:before {
    left: 1.6rem;
    width: 0.4rem;
    height: 100%;
  }
  body.company .history table th:after {
    top: 6.8rem;
    left: 0.3rem;
    right: auto;
    width: 3rem;
    height: 3rem;
  }


  /* philosophy
  *******************/
  body.company .philosophy {
    padding: 10rem 0 0;
  }
  body.company .philosophy ul {
    flex-direction: column;
    gap: 0;
    padding-top: 0;
  }
  body.company .philosophy li {
    padding: 8rem 0;
    border-top: 1px solid #C3CDDC;
    border-left: none;
  }
  body.company .philosophy li:first-child {
    padding: 0 0 8rem;
    border-top: none;
  }
  body.company .philosophy li > p:first-child {
    padding: 0 0 3rem;
    font-size: 3.2rem;
  }
  body.company .philosophy li > p:first-child span {
    font-size: 14rem;
    font-weight: 300;
  }
  body.company .philosophy li .image img {
    width: 100%;
    border-radius: 3.2rem;
  }
  body.company .philosophy li h4 {
    position: static;
    padding: 6rem 0 4rem;
    color: rgba(81, 98, 172, 1);
  }


  /* message
  *******************/
  body.company .message {
    width: 100%;
    max-width: 66rem;
    padding: 10rem 0;
  }
  body.company .message .text {
    padding: 0;
  }
  body.company .message .text h4 {
    padding-bottom: 8rem;
  }
  body.company .message .text h4 br {
    display: block;
  }
  body.company .message .text p {
    padding-bottom: 8rem;
  }
  body.company .message .text p.ceo {
    font-size: 2.8rem;
    padding-bottom: 12rem;
  }
  body.company .message .text p.ceo span {
    padding-left: 2rem;
    font-size: 4.6rem;
    transform: translateY(0.5rem);
  }
  body.company .message .image {
    position: static;
    text-align: center;
  }


  /* office
  *******************/
  body.company .office {
    padding: 10rem 0 0;
  }
  body.company .office .officeSet {
    flex-direction: column;
    gap: 0;
    padding: 0
  }
  body.company .office .officeSetInner {
    width: 100%;
    padding: 8rem 0;
    border-top: 1px solid #C3CDDC;
  }
  body.company .office .officeSetInner:first-child {
    padding: 0 0 8rem;
    border-top: none;
  }
  body.company .office .photo {
    height: 50rem;
    border-radius: 1.6rem;
  }
  body.company .office .add {
    height: auto;
    padding: 4rem 0 5rem;
  }
  body.company .office .add h4 {
    padding: 0 0 3.2rem;
    font-size: 4.6rem;
  }
  body.company .office .add h4 span {
    font-size: 3.6rem;
  }
  body.company .office .add p {
    line-height: 1.8;
  }
  body.company .office .info {
    margin-top: 6rem;
    padding: 4rem 4rem;
    border-radius: 1.6rem;
  }
  body.company .office .info h5 {
    font-size: 2.4rem;
    padding-bottom: 2rem;
  }
  body.company .office .info table tr {
    border-top: 1px solid #C3CDDC;
  }
  body.company .office .info table tr:first-child {
    border-top: none;
  }
  body.company .office .info table th,
  body.company .office .info table td {
    border: none;
  }
  body.company .office .info table th {
    padding: 2.8rem 2.8rem 2.8rem 0;
    font-size: 2.8rem;
  }
  body.company .office .info table td {
    padding: 2.8rem 0;
    font-size: 2.8rem;
  }
  body.company .office .button01w {
    justify-content: center;
    width: 100%;
    padding-bottom: 0;
  }
  body.company .office .button01w a {
    width: auto;
    background-position: center right 11rem, top left;
  }



  /* access
  *******************/
  body.company .access {
    padding: 10rem 0 4rem;
  }
  body.company .access iframe {
    margin: 0 0 4rem;
    height: 50rem;
  }
  body.company .access .button01w {
    justify-content: flex-end;
    padding-bottom: 8rem;
  }
  body.company .access .text {
    display: block;
    width: 66rem;
    margin: 0 auto;
  }
  body.company .access .text h4 {
    padding: 0 0 6rem;
    font-size: 3.2rem;
  }
  body.company .access .text ul li {
    position: relative;
    padding: 0 0 6rem 9rem;
    letter-spacing: 0;
    text-align: justify;
  }
  body.company .access .text ul li span {
    top: 0.4rem;
    left: 0;
    width: 6rem;
    height: 6rem;
    padding-bottom: 0.3rem;
    border-radius: 0.8rem
  }
  body.company .access .text ul li span:before{
    display: block;
    content: "";
    position: absolute;
    top: 95%;
    left: 0;
    width: 6rem;
    height: 4.2rem;
    background-image: url(../images/icon_arrow_under_blue.svg);
    background-repeat: no-repeat;
    background-size: 5.5rem;
    background-position: center bottom;
  }
  body.company .access .text ul li:last-child span:before{
    display: none;
  }
  
  
  
  
  /* ---------------------------------------------------------------- */
  /* Solution */
  /* ---------------------------------------------------------------- */
  
  
  /* contents
  *******************/
  body.works .content {
    max-width: 66rem;
  }
  
  
  /* index
  *******************/
  body.works .contents .index {
    padding: 10rem 0;
  }
  body.works .index h2 {
    padding: 0 0 4rem 0;
    font-size: 4.2rem;
    letter-spacing: 0;
  }
  body.works .index p {
    font-size: 2.8rem;
    letter-spacing: 0;
  }


  /* solutions
  *******************/
  body.works .content .solutions {
    gap: 8rem;
  }
  body.works .content .solution {
    width: 100%;
    padding-bottom: 5.2rem;
    border-radius: 3.2rem;
    box-shadow: 0 1rem 4rem 0 rgba(132, 159, 183, .1);
  }
  body.works .content .solution:before {
    height: 13.4rem;
  }
  body.works .content .solution h3 {
    width: 85%;
    font-size: 4.8rem;
  }
  body.works .content .solution p {
    padding: 4rem 0;
    width: 85%;
  }
  body.works .content .solution .icon {
    height: 30rem;
    margin: 8rem 0 0;
  }
  body.works .content .solution .icon img {
    width: 30rem;
    transform: translateY(0);
  }
  body.works .content .solution .button01w {
    position: static;
    width: 100%;
    padding: 0;
  }
  body.works .content .solution .wp-block-buttons .wp-block-button__link {
    width: 85%;
  }


  /* page-child - index
  *******************/
  body.works.page-child .contents .index {
    width: 100%;
    padding-bottom: 5.4rem;
  }

  body.works.page-child .index p {
    padding-bottom: 4.6rem;
  }
  body.works.page-child .index p.problem {
    font-size: 3.2rem;
    letter-spacing: 0;
  }
  body.works.page-child .index p.action {
    font-size: 3.2rem;
    letter-spacing: 0;
  }


  /* page-child - solutions
  *******************/
  body.works.page-child .content h3 {
    padding-bottom: 3.2rem;
  }
  body.works.page-child .content h4 {
    padding: 2rem 0 4rem;
  }
  body.works.page-child .content p {
    padding-bottom: 10rem;
  }
  body.works.page-child .content p.number {
    margin-top: 6.8rem;
    padding-bottom: 0;
    font-size: 14rem;
    font-weight: 300;
  }
  body.works.page-child .content p.notes {
    padding-bottom: 10rem;
    font-size: 2.4rem;
    transform: translateY(-2rem);
  }
  body.works.page-child .content p.notes2 {
    padding: 0 0 10rem 0;
    font-size: 2.4rem;
    transform: translateY(-2rem);
  }
  
  
	
	
	
	
	
  body.works.page-child .content table {
    width: 100%;
  }
  body.works.page-child .content table tr {
    border-bottom: 1px solid #C3CDDC;
  }
  body.works.page-child .content table tr:first-child {
    border-top: 1px solid #C3CDDC;
  }
  body.works.page-child .content table th {
    display: block;
    padding: 3.2rem 0 0;
    padding-right: 0;
    white-space: nowrap;
    border: none;
  }
  body.works.page-child .content table td {
    display: block;
    padding: 0 0 3.2rem;
    padding-right: 0;
    border: none;
  }
  body.works.page-child .content img {
    padding-bottom: 10rem;
    width: 100%;
  }
  
  
  /* page-child - details
  *******************/
  body.works.page-child .details {
    flex-wrap: wrap;
    gap: 0;
    padding-bottom: 10rem;
  }
  body.works.page-child .details p {
    padding-bottom: 2rem;
    font-size: 2.8rem;
    font-weight: 600;
    white-space: nowrap;
  }
  body.works.page-child .details ul {
    gap: 4rem;
  }
  body.works.page-child .details li {
    width: 100%;
    padding: 5rem;
    font-size: 3.4rem;
    line-height: 1.5;
    font-weight: 500;
    border-radius: 3.2rem;
  }
  
  
  /* page-child - results
  *******************/
  body.works.page-child .results {
    gap: 10rem;
    padding: 5rem 0 10rem;
  }
  body.works.page-child .data {
    width: 100%;
    border-radius: 3.2rem;
    box-shadow: 0 1rem 3rem 0 rgba(132, 159, 183, .3);
  }
  body.works.page-child .data:before {
    top: -0.8rem;
    left: -0.8rem;
    width: 16rem;
    height: 16rem;
    border-radius: 3.2rem 0 0 0;
  }
  body.works.page-child .data:after {
    bottom: -0.8rem;
    right: -0.8rem;
    width: 16rem;
    height: 16rem;
    border-radius: 0 0 3.2rem 0;
  }
  body.works.page-child .data .dataInner {
    border: 1rem solid #fff;
    border-radius: 2.6rem;
    overflow: hidden;
  }
  body.works.page-child .data p:first-child {
    padding: 0 0 1rem;
    font-size: 4.2rem;
  }
  body.works.page-child .data p:first-child span {
    padding-right: 1rem;
    font-size: 12rem;
  }
  body.works.page-child .data p:last-child {
    padding: 3.2rem 0;
    font-size: 4.2rem;
  }
  body.works.page-child .results+p {
    padding: 5rem 0;
    font-size: 3.6rem;
  }
  
  
  /* page-child - strengths
  *******************/
  body.works.page-child h5 {
    font-size: 2.8rem;
    padding-bottom: 2rem;
  }
  body.works.page-child .strengths {
    gap: 10rem;
    padding-bottom: 10rem;
  }
  body.works.page-child .strengths .info {
    position: relative;
    width: 100%;
    border-radius: 1.6rem;
    box-shadow: 0 0.5rem 1.5rem 0 rgba(132, 159, 183, .3);
  }
  body.works.page-child .strengths .info:before {
    top: -0.8rem;
    left: -0.8rem;
    width: 16rem;
    height: 16rem;
    border-radius: 3.2rem 0 0 0;
  }
  body.works.page-child .strengths .info:after {
    bottom: -0.8rem;
    right: -0.8rem;
    width: 16rem;
    height: 16rem;
    border-radius: 0 0 3.2rem 0;
  }
  body.works.page-child .strengths .info .infoInner {
    border: 1rem solid #fff;
    border-radius: 2.6rem;
  }
  body.works.page-child .strengths .info p:first-child {
    position: relative;
    width: 100%;
    padding: 12rem 4rem 3rem;
    font-size: 4.8rem;
  }
  body.works.page-child .strengths .info p:first-child:before {
    left: calc( 50% - 6rem );
    width: 12rem;
    height: 10rem;
    background-size: 6.8rem;
    border-radius: 0 0 1.6rem 1.6rem;
  }
  body.works.page-child .strengths .info p:last-child {
    width: 100%;
    padding: 4rem 4rem;
    font-size: 3.2rem;
    font-weight: 500;
    text-align: left;
  }
  
  
  
  /* page-child - plan
  *******************/
  body.works.page-child .content .plan thead th {
    margin: 3rem 0 8rem 0;
    padding: 1rem 4rem;
    font-size: 3.2rem;
    font-weight: 500;
  }
  body.works.page-child .content .plan tbody td {
    position: relative;
    display: block;
    width: 50rem;
    padding: 4rem 4rem;
    font-size: 3.2rem;
    font-weight: 500;
    background-color: rgb(255 255 255 / 1);
    background-repeat: no-repeat;
    background-size: 4rem;
    border-radius: 3.2rem;
    box-shadow: 0 1rem 2rem 0 rgba(132, 159, 183, .3);
  }
  body.works.page-child .content .plan tbody td:nth-of-type(1) {
    margin: 0 0 8rem 3rem;
    background-image: url(../images/icon_triangle_red.svg);
    background-position: left bottom;
    border-radius: 3.2rem 3.2rem 3.2rem 0;
  }
  body.works.page-child .content .plan tbody td:nth-of-type(2) {
    margin: 0 3rem 8rem 13rem;
    background-image: url(../images/icon_triangle_blue.svg);
    background-position: right bottom;
    border-radius: 3.2rem 3.2rem 0 3.2rem;
  }
  body.works.page-child .content .plan tbody td:nth-of-type(1):before {
    z-index: 0;
    display: block;
    content: "";
    position: absolute;
    bottom: -12.5rem;
    left: -3rem;
    width: 12rem;
    height: 12rem;
    background-image: url(../images/icon_person_red.svg);
    background-repeat: no-repeat;
    background-size: 12rem;
    background-position: center left -3rem;
  }
  body.works.page-child .content .plan tbody td:nth-of-type(2):before {
    z-index: 0;
    display: block;
    content: "";
    position: absolute;
    bottom: -12.5rem;
    right: -3rem;
    width: 12rem;
    height: 12rem;
    background-image: url(../images/icon_person_alter.svg);
    background-repeat: no-repeat;
    background-size: 12rem;
    background-position: center right -1rem;
  }
  
  
  /* page-child - tagList
  *******************/
  body.works.page-child .content .tag {
    gap: 2rem;
    margin-top: 3rem;
    padding: 4rem;
    border-radius: 3.2rem;
    white-space: wrap;
  }
  body.works.page-child .content .tag li a {
    height: 6rem;
    padding: 0 3rem;
    font-size: 2rem;
    letter-spacing: 0;
    white-space: nowrap;
    border-radius: 3rem;
  }
  
  
  
  
  /* ---------------------------------------------------------------- */
  /* Case Studies */
  /* ---------------------------------------------------------------- */
  
  
  /* case
  *******************/
  body.case .widthFull:has(.case) {
    padding: 0;
  }
  body.case .case {
    max-width: 66rem;
  }
  
  
  /* text
  *******************/
  body.case .contents .index {
    padding: 10rem 4.5rem;
  }
  body.case .index h2 {
    padding: 0 0 4rem 1rem;
    font-size: 4.2rem;
    letter-spacing: 0;
  }
  body.case .index p {
    font-size: 2.8rem;
    letter-spacing: 0;
  }
  
  
  /* search
  *******************/
  body.case .search .searchInner {
    gap: 0;
    flex-direction: column;
    max-width: 66rem;
  }
  body.case .search .text {
    padding: 2.4rem 0 0;
  }
  body.case .search .select {
    padding: 3.2rem;
    font-size: 2.8rem;
  }
  body.case .search .select select {
    width: 100%;
    min-width: 50rem;
    height: auto;
    padding: 4rem 6rem 4rem 4rem;
    background-color: #fff;
    background-image: url(../images/icon_select.svg);
    background-repeat: no-repeat;
    background-size: 4rem;
    background-position: right 3rem center;
    border-radius: 1.6rem;
  }
  
  
  /* caseList
  *******************/
  body.case .caseList ul {
    gap: 8rem 0;
    padding: 12rem 0;
  }
  body.case .caseList li {
    width: 100%;
  }
  body.case .caseList li:nth-child(even) {
    margin-left: 0;
  }
  body.case .caseList li:before {
    top: -0.8rem;
    left: -0.8rem;
    width: 16rem;
    height: 16rem;
    border-radius: 3.2rem 0 0 0;
  }
  body.case .caseList li:after {
    bottom: -0.8rem;
    right: -0.8rem;
    width: 16rem;
    height: 16rem;
    border-radius: 0 0 3.2rem 0;
  }
  body.case .caseList li .pickupInner {
    padding: 7.5%;
    border-radius: 2.6rem;
    box-shadow: 0 1rem 3rem 0 rgba(132, 159, 183, .3);
  }
  body.case .caseList ul li .image {
    position: static;
    width: 100%;
    border-radius: 1.6rem;
  }
  body.case .caseList ul li h4 {
    padding: 4rem 0 2.4rem 0;
    font-size: 2.8rem;
    font-weight: 600;
    letter-spacing: 0.1rem;
    line-height: 1.5;
  }
  body.case .caseList ul li h3 {
    padding: 0 0 4rem 0;
    font-size: 4.2rem;
    font-weight: 600;
    letter-spacing: 0.1rem;
    line-height: 1.5;
  }
  body.case .caseList ul li h3 br {
    display: none;
  }
  body.case .caseList ul li .text {
    padding: 0 0 4rem 0;
  }
  body.case .caseList ul li .button01w {
    width: 100%;
    margin: 1.6rem auto 0;
    padding: 0 0 2rem;
  }
  body.case .caseList ul li .button01w a {
    width: 100%;
  }
  
  
  
  
  /* ---------------------------------------------------------------- */
  /* FAQ */
  /* ---------------------------------------------------------------- */
  
  
  /* tabSet
  *******************/
  body.faq .tabSet {
    padding: 5rem 0 0;
  }
  body.faq .tabSet:before {
    display: none;
  }
  body.faq .tabSet .tabButton {
    display: none;
    transition: none;
  }
  
  
  /* qaList
  *******************/
  body.faq .qaList {
    display: block;
    max-width: 66rem;
    padding: 0 0 10rem;
  }
  body.faq #tab1:checked ~ #qa1,
  body.faq #tab2:checked ~ #qa2,
  body.faq #tab3:checked ~ #qa3,
  body.faq #tab4:checked ~ #qa4 {
    display: block;
  }
  body.faq .qaList p.index {
    display: block;
    padding-bottom: 3rem;
    color: rgba(81, 98, 172, 1);
  }
  body.faq .qaList summary {
    padding: 4rem 7rem 4rem 7rem;
    font-size: 2.8rem;
    background-size: 4rem, 6rem;
    background-position: top 4.5rem right 1.6rem, top 3.2rem left;
  }
  body.faq .qaList details:open summary {
    background-position: top 4.5rem right 1.6rem, top 3.2rem left;
  }
  body.faq .qaList details p {
    margin: 0 0 3rem 2.4rem;
    padding: 3rem 4rem 3rem 7.4rem;
    font-size: 2.8rem;
    text-align: justify;
    background-repeat: no-repeat;
    background-size: 6rem;
    background-position: top 2.5rem left 0.8rem;
    border-radius: 1.6rem;
  }
  body.faq .qaList details p a {
    font-size: 2.8rem;
    line-height: 1.8;
  }
  
  
  
  /* ---------------------------------------------------------------- */
  /* News(topics) + archive */
  /* ---------------------------------------------------------------- */


  /* newsNavi
  *******************/
  body.news ul.newsNavi,
  body.archive ul.newsNavi {
    flex-wrap: wrap;
    justify-content: center;
    gap: 3rem 2rem;
    padding: 8rem 0 5rem;
  }
  body.news ul.newsNavi li,
  body.archive ul.newsNavi li {
    padding-left: 0;
  }
  body.news ul.newsNavi li a,
  body.archive ul.newsNavi li a {
    padding: 2.4rem 3.2rem;
    font-size: 2.4rem;
    border-radius: 0.8em;
    transition: none;
  }
  body.news ul.newsNavi li a.is-active,
  body.archive ul.newsNavi li a.is-active,
  body.news ul.newsNavi li a:hover,
  body.archive ul.newsNavi li a:hover {
    color: #fff;
    background-color: rgb(61 98 172 / 1);
  }
  body.news ul.newsNavi li a.is-active:before,
  body.archive ul.newsNavi li a.is-active:before{
    display: none;
  }


  /* archiveTitle
  *******************/
  body.news .archiveTitle,
  body.archive .archiveTitle {
    padding: 4.8rem 0;
    font-size: 3.2rem;
    font-weight: 500;
  }


  /* infoList
  *******************/
  body.news .list .scroll,
  body.archive .list .scroll {
    height: 50vh;
    margin-top: 4rem;
    padding-right: 4rem;
  }
  body.news .list ul,
  body.archive .list ul {
    width: 100%;
  }
  body.news .list li,
  body.archive .list li {
    border-bottom: 1px solid #C3CDDC;
  }
  body.news .list li a,
  body.archive .list li a {
    display: block;
    padding: 4.8rem 0.5rem;
    font-size: 1.6rem;
    text-underline-offset: 0.8rem;
    transition: none;
  }
  body.news .list li a:hover,
  body.archive .list li a:hover {
    color: #4E5258;
    text-decoration: underline;
  }
  body.news .list li a span:nth-of-type(1),
  body.archive .list li a span:nth-of-type(1) {
    display: inline-block;
    padding: 0.4rem;
    border-radius: 0.8rem;
  }
  body.news .list li a span:nth-of-type(1) span,
  body.archive .list li a span:nth-of-type(1) span {
    display: grid;
    width: 20rem;
    height: 5rem;
    font-size: 2.4rem;
    border-radius: 0.5rem;
  }
  body.news .list li a span:nth-of-type(2),
  body.archive .list li a span:nth-of-type(2) {
    display: inline grid;
    margin: 0 3rem;
    font-size: 3.2rem;
  }
  body.news .list li a span:nth-of-type(3),
  body.archive .list li a span:nth-of-type(3) {
    display: block;
    font-size: 3.2rem;
  }
  body.news .list li a[target="_blank"] span:nth-of-type(3),
  body.archive .list li a[target="_blank"] span:nth-of-type(3) {
    padding: 2rem 8rem 0 0;
    background-size: 4rem;
    background-position: center right;
  }




  /* ---------------------------------------------------------------- */
  /* single (Case Studies) */
  /* ---------------------------------------------------------------- */


  /* infoTitle
  *******************/
  body.single-case_detail .case {
    max-width: 100%;
  }
  body.single-case_detail .infoTitle {
    padding: 7rem 0;
  }
  body.single-case_detail .infoTitle h3 {
    padding-bottom: 1rem;
    font-size: 2.8rem;
  }
  body.single-case_detail .infoTitle h2 a {
    padding: 0;
    font-size: 4.2rem;
  }


  /* infoContent
  *******************/
  body.single-case_detail .infoContent {
    padding: 8rem 0;
  }
  body.single-case_detail .infoContent .image {
    width: 100%;
    border-radius: 1.6rem;
  }

  body.single-case_detail .infoContent .text {
    flex-wrap: wrap;
    gap: 0;
    flex-direction: column;
    padding: 8rem 0;
  }
  body.single-case_detail .infoContent .text:nth-of-type(1) {
    padding-top: 8rem;
  }
  body.single-case_detail .infoContent p:nth-of-type(1) {
    flex: 100%;
    padding-bottom: 2rem;
    font-size: 3.6rem;
  }
  body.single-case_detail .infoContent p:nth-of-type(1) br {
    display: none;
  }
  body.single-case_detail .infoContent p:nth-of-type(2) {
    flex: 100%;
  }


  /* infoTagList
  *******************/
  body.single-case_detail .infoTagList {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 2rem;
    padding: 0;
    font-size: 2rem;
    white-space: wrap;
  }
  body.single-case_detail .infoTagList span {
    width: 100%;
  }
  body.single-case_detail .infoTagList a {
    height: 6rem;
    padding: 0 3rem;
    font-size: 2rem;
    white-space: nowrap;
    border-radius: 3rem;
  }




  /* ---------------------------------------------------------------- */
  /* single (News Letter, news) */
  /* ---------------------------------------------------------------- */


  /* infoTitle
  *******************/
  body.single-post .single,
  body.single-newsletter_detail .newsletter {
    max-width: 100%;
  }
  body.single-post .infoTitle,
  body.single-newsletter_detail .infoTitle {
    padding: 7rem 0;
  }
  body.single-post .infoDate,
  body.single-newsletter_detail .infoDate {
    padding-bottom: 2rem;
    font-size: 2.8rem;
  }
  body.single-post .infoDate span,
  body.single-newsletter_detail .infoDate span {
    padding: 1rem 2rem;
    margin-right: 1.6rem;
    font-size: 2.2rem;
    border-radius: 1.6rem;
  }
  body.single-post .infoTitle h2 a,
  body.single-newsletter_detail .infoTitle h2 a {
    padding: 0;
    font-size: 4.2rem;
  }


  /* infoCategories
  *******************/
  body.single-post .post-categories {
    padding-top: 2rem;
  }
  body.single-post .post-categories li {
    display: inline-block;
    padding: 0.4rem;
    border-radius: 0.8rem;
  }
  body.single-post .post-categories li a {
    display: grid;
    width: 20rem;
    height: 5rem;
    font-size: 2.4rem;
    border-radius: 0.5rem;
  }


  /* infoContent
  *******************/
  body.single-post .infoContent,
  body.single-newsletter_detail .infoContent {
    padding: 4rem 0;
  }


  /* infoTagList
  *******************/
  body.single-post .infoTagList,
  body.single-newsletter_detail .infoTagList {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 2rem;
    padding: 0;
    font-size: 2rem;
    white-space: wrap;
  }
  body.single-post .infoTagList span,
  body.single-newsletter_detail .infoTagList span {
    width: 100%;
  }
  body.single-post .infoTagList a,
  body.single-newsletter_detail .infoTagList a {
    height: 6rem;
    padding: 0 3rem;
    font-size: 2rem;
    white-space: nowrap;
    border-radius: 3rem;
  }
  
  
  
  
  /* ---------------------------------------------------------------- */
  /* single block css */
  /* ---------------------------------------------------------------- */


  /* margin
  *******************/
  body.single .wp-block-columns,
  body.single .wp-block-column,
  body.single .wp-block-group,
  body.single .wp-block-group.is-nowrap,
  body.single .wp-block-group.is-vertical,
  body.single .wp-block-more,
  body.single .wp-block-separator,
  body.single .wp-block-spacer,
  body.single .wp-block-button,
  body.single .wp-block-buttons,
  body.single .wp-block-paragraph,
  body.single .wp-block-image,
  body.single .wp-block-gallery,
  body.single .wp-block-video,
  body.single .wp-block-audio,
  body.single .wp-block-file {
    margin: 4rem 0;
  }
  
  
  /* button
  *******************/
  body.single .wp-block-button,
  body.single .wp-block-buttons {
    width: 100%;
  }
  body.single .wp-block-button a,
  body.single .wp-block-buttons a {
    height: 9.6rem;
    margin: 0 auto;
    padding: 0 9.3rem 0 2.8rem;
    font-size: 2.8rem;
    border-radius: 1.6rem;
  }
  body.single .wp-block-button a:after,
  body.single .wp-block-buttons a:after,
  body.single .wp-block-button a:hover:after,
  body.single .wp-block-buttons a:hover:after {
    right: 2.3rem;
    bottom: 2.3rem;
    width: 5rem;
    height: 5rem;
    background-size: 3.2rem;
    background-position: center center, center left -1rem;
    border-radius: 0.8rem;
    transition: none;
  }
  body.single .wp-block-button a[target="_blank"],
  body.single .wp-block-buttons a[target="_blank"] {
    padding: 0 15rem 0 2.8rem;
    background-size: 3.2rem, auto;
    background-position: center right 11rem, top left;
  }
  
  
  
  
  /* ---------------------------------------------------------------- */
  /* Recruit */
  /* ---------------------------------------------------------------- */


  /* requirements
  *******************/
  body.recruit .requirements {
    padding: 10rem 0 0;
  }
  body.recruit .requirements h3 {
    padding: 0 0 8rem;
  }
  body.recruit .requirements tr {
    border-bottom: 1px solid #cccccc;
  }
  body.recruit .requirements tr:first-child {
    border-top: 1px solid #cccccc;
  }
  body.recruit .requirements th,
  body.recruit .requirements td {
    display: block;
  }
  body.recruit .requirements th {
    width: 100%;
    padding: 3.2rem 0 0;
  }
  body.recruit .requirements td {
    padding: 0 0 3.2rem;
  }
  
  
  
  
  /* ---------------------------------------------------------------- */
  /* Contact */
  /* ---------------------------------------------------------------- */


  /* form */
  .wpcf7 {
    margin-top: 5rem;
    padding: 5rem;
    border-radius: 3.2rem;
  }
  body.contact form p {
    font-size: 2.8rem;
  }
  body.contact form .input th {
    display: block;
    width: 100%;
    padding: 0 0 1.6rem;
    font-size: 2.6rem;
    vertical-align: middle;
  }
  body.contact form .input th span.optional,
  body.contact form .input th span.haveto {
    display: inline-block;
    margin-right: 1.6rem;
    padding: 1rem 1.6rem 1.2rem;
    font-size: 2.6rem;
    border-radius: 0.8rem;
  }
  body.contact form .input td {
    display: block;
    width: 100%;
    padding: 0 0 5rem;
  }
  body.contact form input[type=text],
  body.contact form input[type=email],
  body.contact form input[type=tel] {
    width: 100%;
    padding: 2rem;
    font-size: 3.2rem;
    border-radius: 1.6rem;
  }

  body.contact form input[type=checkbox] + span {
    width: 100%;
    padding: 2rem 4rem;
    font-size: 2.8rem;
    background-size: 2rem;
    background-position: 0.8rem center;
    border: solid 2px #fff;
    border-radius: 5rem;
    transition: all 0.3s ease;
  }
  body.contact form input[type=checkbox]:checked + span {
    padding: 2rem 4rem 2rem 8rem;
    background-size: 4rem;
    background-position: 3.2rem center;
    border: solid 3px #5893E3;
  }

  body.contact form .input td textarea {
    padding: 2rem;
    font-size: 3.2rem;
    border-radius: 1.6rem;
  }

  body.contact .wpcf7 form .wpcf7-not-valid-tip {
    display: block;
    padding-top: 1rem;
    font-size: 2.8rem;
    color: #c00;
  }

  .wpcf7 form .wpcf7-response-output {
    width: 100% !important;
    margin: 5rem 0 0 !important;
    padding: 3.2rem !important;
    font-size: 3.2rem;
    text-align: center;
    color: rgb(255 255 255 / 1) !important;
    background-color: rgba(81, 98, 172, 1) !important;
    border: none 0 !important;
    border-radius: 1.6rem;
  }
  .wpcf7 form.invalid .wpcf7-response-output,
  .wpcf7 form.unaccepted .wpcf7-response-output,
  .wpcf7 form.payment-required .wpcf7-response-output {
    color: rgb(255 255 255 / 1) !important;
    background-color: rgb(218 0 0 / 1) !important;
    border: none 0 !important;
  }

  body.contact form td.agree {
    padding: 3.2rem 0;
  }
  body.contact form td.agree p:nth-of-type(1) a {
    color: #3f4c8a;
  }
  body.contact form td.agree p:nth-of-type(2) {
    margin: 2rem 0 1rem;
  }
  body.contact form td.agree .wpcf7-list-item {
    width: 100%;
    margin: 0 !important;
  }
  .wpcf7 form .btn {
    margin-top: 5rem;
    text-align: center;
  }
  .wpcf7 form .btn p {
    position: relative;
    display: inline grid;
    justify-items: start;
    align-items: center;
    width: 100%;
    margin: 0 auto;
    white-space: nowrap;
    background: linear-gradient(0.25turn, rgb(88 147 227 / 1), rgb(61 98 172 / 1) );
    border-radius: 1.6rem;
  }
  .wpcf7 form .btn input {
    width: 100%;
    height: 10rem;
    font-size: 3.2rem;
    color: #fff;
  }
  .wpcf7 form .wpcf7-spinner {
    display: none !important;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 10rem;
    background-color: rgba(51, 51, 51, 0.7);
    border-radius: 1.6rem;
  }
  .wpcf7 form.submitting .wpcf7-spinner {
    display: block !important;
    margin: 0 auto !important;
  }
  .wpcf7 form .wpcf7-spinner:before {
    top: 38%;
    left: 48%;
  }


  /* thanks */
  body.thanks .thanks {
    padding: 0 0 10rem;
  }
  body.thanks .text {
    display: grid;
    justify-items: center;
    align-items: center;
    padding: 10rem 0;
  }
  body.thanks .text h4 {
    text-align: center;
  }
  body.thanks .text h4 br {
    display: block;
  }
  body.thanks .text p {
    display: inline-block;
    padding-top: 0;
    font-size: 2.8rem;
  }
  body.thanks .button01b {
    justify-content: center;
  }
  
  
  
  
  
  
  
  
  
  /* ---------------------------------------------------------------- */
  /* Privacy */
  /* ---------------------------------------------------------------- */


  /* text
  *******************/
  body.privacy .text {
    padding: 10rem 0 0;
  }
  body.privacy .text h3 {
    padding: 0 0 10rem;
  }
  body.privacy .text p {
    padding: 0 0 10rem;
  }
  body.privacy .text .ppTitle {
    padding: 0 0 4rem;
    font-size: 4rem;
    line-height: 1.6;
    letter-spacing: 0.1em;
  }
  body.privacy .text ul {
    list-style: revert;
    margin: revert;
    padding: revert;
    padding-bottom: 8rem;
  }
  
  
  
  
  /* ---------------------------------------------------------------- */
  /* error 404 */
  /* ---------------------------------------------------------------- */
  
  
  body.error404 .error {
    padding: 0 0 15rem;
  }
  body.error404 .error .text {
    padding: 10rem 0;
  }
  body.error404 .error .text h4 {
    font-size: 4rem;
    letter-spacing: 0;
  }
  body.error404 .error .text p {
    letter-spacing: 0;
    font-size: 2.8rem;
    font-weight: 400;
  }
  body.error404 .error .button01b {
    justify-content: center;
  }
  
}


