@charset "utf-8";

@media screen and (max-width:1200px) {}
@media only screen and (-webkit-min-device-pixel-ratio: 2) {}
/*==================================================
$common
==================================================*/
:root {
  --body-bg: #f1eeea;
  --contact-bg: #EA3676;
  --teamexpo-bg: #4BCCC5;
  --border-color: #D6D3CF;
  --font-en: "brandon-grotesque", sans-serif;
  --gray: #A0A0A0;
  --light-gray: #F8F8F8;
  --link-color: #EA3676;
  --map-color: #639DB4;
  --label-bg: #ECEDED;
  --label-color: #6B6B70;
  --promotion-color: #EA3676;
  --filter-promotion: brightness(0) saturate(100%) invert(30%) sepia(82%) saturate(1897%) hue-rotate(317deg) brightness(95%) contrast(94%);
  --events-color: #FF600E;
  --filter-events: brightness(0) saturate(100%) invert(42%) sepia(86%) saturate(2194%) hue-rotate(353deg) brightness(101%) contrast(102%);
  --creative-color: #E6BA00;
  --filter-creative: brightness(0) saturate(100%) invert(72%) sepia(83%) saturate(1862%) hue-rotate(7deg) brightness(98%) contrast(101%);
  --marketing-color: #2D41DC;
  --filter-marketing: brightness(0) saturate(100%) invert(9%) sepia(93%) saturate(6458%) hue-rotate(241deg) brightness(112%) contrast(77%);
  --housing-color: #C799F7;
  --filter-housing: brightness(0) saturate(100%) invert(82%) sepia(22%) saturate(6670%) hue-rotate(208deg) brightness(98%) contrast(97%);
  --tourism-color: #8ADB9A;
  --filter-tourism: brightness(0) saturate(100%) invert(94%) sepia(95%) saturate(468%) hue-rotate(56deg) brightness(95%) contrast(80%);
  --municipality-color: #4BCCC5;
  --filter-municipality: brightness(0) saturate(100%) invert(63%) sepia(81%) saturate(307%) hue-rotate(128deg) brightness(97%) contrast(86%);
  --filter-white: brightness(0) saturate(100%) invert(100%) sepia(100%) saturate(0%) hue-rotate(103deg) brightness(103%) contrast(105%);
  --filter-gray: brightness(0) saturate(100%) invert(93%) sepia(9%) saturate(819%) hue-rotate(315deg) brightness(109%) contrast(78%);
}
html {
  width: 100%;
  overflow-x: hidden;
}
body {
	margin: 0 auto;
	padding: 0;
	font-size: 14px;
	line-height: 1.7;
	position: relative;
	color: #000;
	font-family: "Noto Sans JP","游ゴシック","Yu Gothic","游ゴシック体","YuGothic","ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","Meiryo UI","メイリオ",Meiryo,"ＭＳ Ｐゴシック","MS PGothic",sans-serif;
	font-weight: 400;
	text-align: left;
  background: var(--body-bg);
  width: 100%;
  overflow-x: hidden;
  letter-spacing: 0.05em;
}
main {
  width: 100%;
  overflow: hidden;
}
.brandon-grotesque {
  font-family: "brandon-grotesque", sans-serif;
  font-weight: 700;
  font-style: normal;
}
a {color: inherit;text-decoration: none;}
a[href^="tel:"] {pointer-events: none;}
a.newtab {
  text-decoration: underline;
}
a.newtab::after {
  content: "";
  width: 1em;
  height: 1em;
  background: url(../img/icon_newtab.svg) no-repeat center/contain;
  margin: 0 5px;
  display: inline-block;
  vertical-align: middle;
}
.pc {display: none !important;}
img {max-width: 100%;height: auto;}
input, select {
  -webkit-appearance: none;
  appearance: none;
  border: 1px solid #000;
  border-radius: 0px;
}

.en {
  display: block;
  font-family: var(--font-en);
  font-weight: 700;
  font-style: normal;
}
.btn>a,
.btn>button,
.btn>span {
  background: #000;
  color: #fff;
  padding: 5px 20px;
  border-radius: 100px;
  min-width: 115px;
  text-align: center;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  font-size: 14px;
  border: 1px solid #000;
}
.btn.arrow>a,
.btn.arrow>button,
.btn.arrow>span {
  min-height: 56px;
  justify-content: space-between;
  max-width: 250px;
  margin: auto;
  padding-left: 5%;
  font-size: 11px;
}
.btn.arrow>a::after,
.btn.arrow>button::after,
.btn.arrow>span::after {
  content: "";
  width: 35px;
  height: 35px;
  background: url(../img/icon_circle_arrow.svg) no-repeat center/contain;
  filter: var(--filter-white)
}
.btn>a>span>span:nth-child(2),
.btn>button>span>span:nth-child(2),
.btn>span>span>span:nth-child(2) {
  display: none;
}
.block {
  max-width: 1200px;
  width: 96%;
  margin: auto;
  position: relative;
  z-index: 5;
}
.block.sec {
  background: #fff;
  border-radius: 10px;
  padding: 80px 0;
  margin-top: 50px;
}
.inner {
  max-width: 1000px;
  width: 90%;
  margin: auto;
  position: relative;
}
.page_title {
  padding: 50px 0 0;
  position: relative;
  margin: auto;
  z-index: 2;
}
.page_title .en {
  font-size: 52px;
  line-height: 1;
}
.page_title .jp {
  display: block;
  font-size: 14px;
}
.page_title.invert .en {
  font-size: 14px;
}
.page_title.invert .jp {
  font-size: 25px;
  font-weight: bold;
}
.shape {
  display: block;
  width: 100%;
  max-width: 1366px;
  margin: auto;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: -1;
  pointer-events: none;
}
.shape .item {
  position: absolute;
  margin: auto;
  z-index: -1;
  will-change: filter;
}
.shape .item01 {
  width: 31.21vw;
  height: 31.57vw;
  background: url(../img/shape_page01.svg) no-repeat center/contain;
  transform:rotate(-48deg);
  top: 30.98vw;
  left: 32.94vw;
  filter: var(--filter-events);
}
.shape .item02 {
  width: 26.38vw;
  height: 26.38vw;
  background: url(../img/shape_page02.svg) no-repeat center/contain;
  transform: rotate(-17deg);
  top: 13.66vw;
  right: -5.86vw;
  filter: var(--filter-creative);
}
.shape .item03 {
  width: 72.72vw;
  height: 49.02vw;
  background: url(../img/shape_page03.svg) no-repeat center/contain;
  transform: rotate(142deg);
  top: -8.3vw;
  left: -24.52vw;
  filter: var(--filter-gray);
}
.shape .item04 {
  width: 39.41vw;
  height: 39.41vw;
  background: #4BCCC5;
  top: -7.94vw;
  right: 7.69vw;
  border-radius: 100vw;
  filter: var(--filter-municipality);
  mix-blend-mode: multiply;
}
.contents.service:not(.lists) .shape .item01,
.contents.service:not(.lists) .shape .item02,
.contents.service:not(.lists) .shape .item03,
.contents.service:not(.lists) .shape .item04 {
  filter: var(--filter-gray);
}
.contents.service.promotion .shape .item01,
.contents.service.promotion .shape .item02 {
  filter: var(--filter-promotion);
}
.contents.service.events .shape .item01,
.contents.service.events .shape .item02 {
  filter: var(--filter-events);
}
.contents.service.creative .shape .item01,
.contents.service.creative .shape .item02 {
  filter: var(--filter-creative);
}
.contents.service.marketing .shape .item01,
.contents.service.marketing .shape .item02 {
  filter: var(--filter-marketing);
}
.contents.service.housing .shape .item01,
.contents.service.housing .shape .item02 {
  filter: var(--filter-housing);
}
.contents.service.tourism .shape .item01,
.contents.service.tourism .shape .item02 {
  filter: var(--filter-tourism);
}
.contents.service.municipality .shape .item01,
.contents.service.municipality .shape .item02 {
  filter: var(--filter-municipality);
}
.heading {
  margin-bottom: 50px;
}
.heading .en {
  font-size: 32px;
  font-weight: bold;
  line-height: 1.2;
}
.heading .jp {
  font-size: 12px;
  font-weight: bold;
  color: var(--gray);
}
.pankuzu .block {
  overflow-x: auto;
  white-space: nowrap;
  padding-right: 5%;
}
.pankuzu .block ul {
  display: flex;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: center;
  margin-top: 25px;
}
.pankuzu .block ul li {
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  align-items: center;
  margin-right: 0.5em;
  font-size: 12px;
}
.pankuzu .block ul li:not(:last-child)::after {
  content: ">";
  margin-left: 0.5em;
}
.pankuzu .block ul li:not(:last-child) a {
  text-decoration: underline;
}
.pankuzu .block ul li:last-child a {
  pointer-events: none;
}

/*==================================================
$header
==================================================*/
header {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100;
  padding: 20px;
  width: 100%;
  background: var(--body-bg);
}
header .logo {
  max-width: 130px;
  position: relative;
  z-index: 1000;
}
header .logo a {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
}
.burger,
.burger span {
  display: inline-block;
  transition: all .4s;
  box-sizing: border-box;
}
.burger {
  width: 36px;
  height: 36px;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 5%;
  z-index: 1000;
  margin: auto;
  cursor: pointer;
  z-index: 1000;
  background: #000;
  border-radius: 50vw;
}
.burger span {
  position: absolute;
  left: 0;
  right: 0;
  width: 35%;
  height: 1px;
  background-color: #fff;
  border-radius: 4px;
  margin: auto;
}
.burger span:nth-of-type(1) {
  top: 0;
  bottom: 8px;
}
.burger span:nth-of-type(2) {
  top: 0;
  bottom: 0;
  margin: auto;
}
.burger span:nth-of-type(3) {
  top: 8px;
  bottom: 0;
}
.burger.active span:nth-of-type(1) {
  -webkit-transform: translateY(4px) rotate(-45deg);
  transform: translateY(4px) rotate(-45deg);
}
.burger.active span:nth-of-type(2) {
  opacity: 0;
}
.burger.active span:nth-of-type(3) {
  -webkit-transform: translateY(-4px) rotate(45deg);
  transform: translateY(-4px) rotate(45deg);
}
header nav {
  padding: 0 20px;
  border-radius: 5px;
  width: 100%;
  display: block;
  position: fixed;
  top: 0;
  right: -100%;
  z-index: 100;
  height: 100%;
  background: var(--body-bg);
  padding: 70px 0 10%;
  transition: 0.3s ease-in-out;
  overflow-y: auto;
}
header nav.open {
  display: block;
  right: 0%;
}
header nav>ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: flex-start;
  font-size: 16px;
  font-weight: bold;
  width: 90%;
  margin: auto;
}
header nav>ul>li {
  position: relative;
  width: 100%;
}
header nav>ul>li a {
  display: flex;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: center;
  padding: 15px;
  width: 100%;
}
header nav>ul>li a>span>span:nth-child(2) {
  display: none;
}
header nav>ul>li .btn a {
  margin: 20px auto 0;
  height: 55px;
  width: calc(100% - 30px);
}
header nav>ul>li .accordion::after {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-color: #000 transparent transparent transparent;
  border-width: 3px 3px 0px 3px;
  margin-left: 10px;
  transform: scale(1,1);
  display: none;
}
header nav>ul>li .accordion.active::after {
  transform: scale(1,-1);
}
header nav>ul>li .accordion + ul {
  display: none;
  width: 100%;
  padding: 0 30px;
}
header nav>ul>li .accordion.active + ul {
  top: calc(100% - 20px);
  pointer-events: auto;
  opacity: 1;
}
header nav>ul>li ul li {
  white-space: nowrap;
}
header nav>ul>li ul li:not(:last-child) {
  margin-bottom: 10px;
}
header nav>ul>li ul li a {
  display: inline-block;
  padding: 0;
}
/*==================================================
$footer
==================================================*/
.contact_block {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  text-align: center;
  height: 55vw;
  max-height: 780px;
  min-height: 380px;
  color: #fff;
  padding-bottom: 5vw;
  margin-top: 130px;
  animation: colorful 30s linear infinite;
}
@keyframes colorful {
  0% {
    background: var(--promotion-color);
  }
  20% {
    background: var(--creative-color);
  }
  40% {
    background: var(--creative-color);
  }
  60% {
    background: var(--marketing-color);
  }
  80% {
    background: var(--housing-color);
  }
  100% {
    background: var(--promotion-color);
  }
}
.contact_block .inner strong {
  font-size: 40px;
  font-weight: bold;
  line-height: 1;
  margin-bottom: 10px;
  display: block;
}
.contact_block .inner p {
  margin-bottom: 30px;
}
.expo_block {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  text-align: center;
  color: #fff;
  position: relative;
  overflow: hidden;
  z-index: 2;
  margin-top: -5vw;
  padding: 8vh 0;
}
.expo_block::before {
  content: "";
  background: var(--teamexpo-bg);
  position: absolute;
  top: 0;
  bottom: 0;
  left: -200px;
  right: -200px;
  margin: auto;
  border-radius: 2000px 2000px 0 0 / 300px 300px 0 0;
}
.expo_block .inner p {
  margin-bottom: 30px;
}
.expo_block .inner ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  max-width: 400px;
  margin: auto;
}
.expo_block .inner ul li {
  width: 100%;
}
.expo_block .inner ul li:not(:first-child) {
  margin-top: 15px;
}
footer {
  background: #fff;
  padding: 70px 0 30px;
}
footer .block {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: stretch;
}
footer .block .left {
  width: 90%;
  margin: 0 auto 50px;
}
footer .block .left .logo {
  display: block;
  width: 180px;
  margin-bottom: 10px;
}
footer .block .left address {
  font-size: 12px;
}
footer .block .right {
  width: 90%;
  margin: auto;
}
footer .block .right .footer_nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: stretch;
  width: 100%;
}
footer .block .right .footer_nav>ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: stretch;
  width: 100%;
}
footer .block .right .footer_nav>ul>li {
  width: 48%;
}
footer .block .right .footer_nav>ul:not(:first-child) {
  width: 48%;
}
footer .block .right .footer_nav>ul:not(:first-child)>li {
  width: 100%;
}
footer .block .right .footer_nav ul li a {
  display: inline-block;
  font-weight: bold;
  margin-bottom: 10px;
  line-height: 1.3;
}
footer .block .right .footer_nav ul li ul li a {
  font-weight: normal;
  font-size: 12px;
}
footer .block .lower {
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  border-top: 1px solid var(--border-color);
  border-bottom: 1px solid var(--border-color);
  padding: 15px 5%;
  margin-top: 50px;
}
footer .block .lower .sns {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  width: 48%;
}
footer .block .lower .sns strong {
  font-size: 21px;
  font-weight: bold;
  width: 100%;
  text-align: center;
}
footer .block .lower .sns ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: center;
}
footer .block .lower .sns ul li:last-child {
  margin-left: 20px;
}
footer .block .lower .sns ul li a img {
  width: 22px;
}
footer .block .lower .link {
  width: 48%;
}
footer .block .lower .link ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  width: 100%;
}
footer .block .lower .link ul li:first-child {
  margin-right: 20px;
}
footer .block .lower .link ul li:last-child {
  width: 100%;
}
footer .block .lower .link ul li a {
  text-decoration: underline;
}
footer .block .lower .link ul li .totop {
  width: 100%;
  height: 30px;
  background: #efefef;
  color: #BCB6B0;
  font-size: 12px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  text-align: center;
  text-decoration: none;
  border-radius: 100px;
  position: relative;
}
footer .block .lower .link ul li .totop>span>span:nth-child(2) {
  display: none;
}
footer .block .lower .link ul li .totop::after {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-color: transparent transparent #BCB6B0 transparent;
  border-width: 0px 5px 8px 5px;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 20px;
  margin: auto;
}
footer .block .copyright {
  width: 100%;
  text-align: center;
  font-size: 12px;
  font-weight: bold;
  padding-top: 50px;
}
/*==================================================
$toppage
==================================================*/
.shape_block {
  padding-bottom: 170px;
  position: relative;
}
.shape_block>span:nth-child(1) {
  width: 366px;
  height: 1263px;
  border-radius: 50vw;
  position: absolute;
  bottom: 2000px;
  left: -600px;
  right: 0;
  margin: auto;
  background: var(--marketing-color);
  transform: rotate(300deg);
}
.shape_block>span:nth-child(2) {
  width: 1040px;
  height: 690px;
  background: url(../img/shape_page03.svg) no-repeat center/contain;
  filter: var(--filter-municipality);
  position: absolute;
  top: calc(-4000px + -4000px);
  bottom: 0;
  left: -800px;
  right: 0;
  margin: auto;
}
.shape_block>span:nth-child(3) {
  width: 710px;
  height: 705px;
  border-radius: 180px;
  background: var(--events-color);
  position: absolute;
  top: calc(-4000px + 600px);
  bottom: 0;
  left: 750px;
  right: 0;
  margin: auto;
  z-index: -1;
  transform: rotate(20deg);
}
.shape_block {
  position: relative;
  max-width: 1366px;
  margin: auto;
}
.mv {
  width: 100%;
  height: 0;
  position: relative;
  overflow: hidden;
  padding: 80vw 0;
}
.mv::before {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  opacity: 1;
  background: var(--body-bg);
  z-index: 3;
  transition: 1s;
  pointer-events: none;
}
.mv.active::before {
  opacity: 0;
}
.mv .inbox {
  width: 100%;
  height: 100%;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  position: relative;
}
.mv .inbox video {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  width: 100%;
  z-index: -1;
}
.mv .inbox .mv_text {
  display: none;
}
.mv .scroll {
  display: none;
}

.top_page_title {
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 30px;
}
.top_page_title .page_title {
  padding: 0;
  margin: 0;
}
.top_page .inner {
  padding-bottom: 100px;
}
.top_page_title .btn {
  min-width: 200px;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
}
.top_page_title .btn a {
  min-height: 56px;
}
.top_page_title+p {
  margin-bottom: 50px;
}
.block.sec.top_concept {
  background: none;
  padding: 0;
}
.top_concept .inner .inblock .text .top_consept_title {
  font-size: 9.3vw;
  font-weight: bold;
  font-family: var(--font-en);
  margin-bottom: 30px;
  line-height: 1.3;
}
.top_concept .inner .inblock .text p:not(:last-child) {
  margin-bottom: 30px;
}
.top_images_wrap {
  margin-top: 80px;
  height: 450px;
  width: 3470px;
  position: relative;
  z-index: 2;
}
.top_images_wrap .top_images {
  display: flex;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: flex-start;
}
.top_images_wrap .top_images .slick-track {
  height: 450px;
}
.top_images_wrap .top_images .top_images_item {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  position: relative;
  margin: auto 40px auto 0;
}
.top_images_wrap .top_images .top_images_item.item01,
.top_images_wrap .top_images .top_images_item.item05 {
  width: 300px;
}
.top_images_wrap .top_images .top_images_item.item01 span:first-child,
.top_images_wrap .top_images .top_images_item.item05 span:first-child {
  margin-bottom: 40px;
}
.top_images_wrap .top_images .top_images_item.item02,
.top_images_wrap .top_images .top_images_item.item03,
.top_images_wrap .top_images .top_images_item.item06,
.top_images_wrap .top_images .top_images_item.item07 {
  width: 505px;
}
.top_images_wrap .top_images .top_images_item.item04,
.top_images_wrap .top_images .top_images_item.item08 {
  width: 295px;
  align-items: flex-end;
}
.top_images_wrap .top_images .top_images_item span {
  overflow: hidden;
  border-radius: 10px;
}
.top_images_wrap .top_images .top_images_item span img {
  width: 100%;
}
.top_column {
  position: relative;
}
.block.sec.top_recruit {
  padding: 0;
  background: none;
  overflow: hidden;
  box-shadow: 5px 5px 10px rgba(0,0,0,.1);
}
.top_textblock {
  font-size: 100px;
  font-weight: bold;
  font-family: var(--font-en);
  white-space: nowrap;
  margin-top: 50px;
  line-height: 1.3;
  position: relative;
  z-index: 2;
}
.top_textblock .text_slide {
  display: flex;
  width: 100%;
}
.top_textblock .text_slide .text_slide_wrapper {
  display: flex;
  width: max-content;
}
.top_textblock .text_slide.upper .text_slide_wrapper {
  animation: uppertext 200s linear infinite;
}
.top_textblock .text_slide.lower .text_slide_wrapper {
  animation: lowertext 200s linear infinite;
}
.top_textblock .text_slide .text_slide_wrapper .text_slide_item {
  display: inline-block;
  padding-right: 80px;
  white-space: nowrap;
}
@keyframes uppertext {
  from {
    transform: translateX(0%);
  }
  to {
    transform: translateX(-100%);
  }
}
@keyframes lowertext {
  from {
    transform: translateX(-100%);
  }
  to {
    transform: translateX(0%);
  }
}
.top_page + .contact_block {
  margin-top: 0;
  position: relative;
}
.top_news .list_link {
  display: none;
}
.top_news .list_link.active {
  display: block;
}
.top_service .top_page_title+p {
  margin-bottom: 70px;
}
.top_solution_box {
  margin-bottom: 100px;
  position: relative;
}
.top_solution_box::before {
  content: "";
  width: 100%;
  height: 80%;
  background: url(../img/shape_donut.svg) no-repeat center/contain;
  filter: brightness(0) saturate(100%) invert(100%) sepia(23%) saturate(1704%) hue-rotate(309deg) brightness(112%) contrast(85%);
  opacity: 0.7;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  margin: auto;
  z-index: -1;
}
.top_solution_box ol {
  counter-reset: service 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: stretch;
  margin-bottom: -6vw;
}
.top_solution_box ol li {
  width: 46%;
  color: #fff;
  font-size: 14px;
  font-weight: bold;
  padding: 20px 5%;
  border-radius: 5px;
  margin: 0 2% 4%;
}
.top_solution_box ol li:nth-child(1) {
  background: var(--promotion-color);
}
.top_solution_box ol li:nth-child(2) {
  background: var(--municipality-color);
}
.top_solution_box ol li:nth-child(3) {
  background: var(--creative-color);
}
.top_solution_box ol li::before {
  counter-increment: service 1;
  content: counter(service)".";
  font-family: var(--font-en);
  font-size: 35px;
  display: block;
  line-height: 1;
  margin-bottom: 10px;
}
.top_solution_box ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  width: 100%;
}
.top_solution_box ul li {
  width: 32%;
  height: 0;
  padding: 16% 0;
  background: #fff;
  border-radius: 100vw;
  overflow: hidden;
  margin-right: 1%;
  box-shadow: 10px 2px 26px rgba(0,0,0,.04);
  position: relative;
}
.top_solution_box ul li:nth-child(3n) {
  margin-right: 0;
}
.top_solution_box ul li a {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  text-align: center;
  width: 100%;
  height: 100%;
  font-size: 13px;
  font-weight: bold;
  position: relative;
  transition: .3s ease-in-out;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
}
@media screen and (max-width:500px) {
  .top_solution_box ul li a {
    font-size: 11px;
  }
}
.top_solution_box ul li a::before {
  content: "";
  display: block;
  margin: 0 auto;
  line-height: 1;
  width: 7px;
  height: 7px;
  position: absolute;
  top: 25%;
  left: 0;
  right: 0;
  margin: auto;
  border-radius: 100vw;
  transition: .3s ease-in-out;
}
.top_solution_box ul li a span {
  position: relative;
  z-index: 2;
}
.top_solution_box ul li.promotion a {
  color: var(--promotion-color);
}
.top_solution_box ul li.promotion a::before {
  background: var(--promotion-color);
}
.top_solution_box ul li.events a {
  color: var(--events-color);
}
.top_solution_box ul li.events a::before {
  background: var(--events-color);
}
.top_solution_box ul li.creative a {
  color: var(--creative-color);
}
.top_solution_box ul li.creative a::before {
  background: var(--creative-color);
}
.top_solution_box ul li.marketing a {
  color: var(--marketing-color);
}
.top_solution_box ul li.marketing a::before {
  background: var(--marketing-color);
}
.top_solution_box ul li.housing a {
  color: var(--housing-color);
}
.top_solution_box ul li.housing a::before {
  background: var(--housing-color);
}
.top_solution_box ul li.tourism a {
  color: var(--tourism-color);
}
.top_solution_box ul li.tourism a::before {
  background: var(--tourism-color);
}
.top_solution_box ul li.municipality a {
  color: var(--municipality-color);
}
.top_solution_box ul li.municipality a::before {
  background: var(--municipality-color);
}
.top_solution_box ul.solution_service_list02 {
  width: 66%;
  margin: auto;
}
.top_solution_box ul.solution_service_list02 li {
  width: 48.5%;
  padding: 24% 0;
  margin-right: 2%;
  margin-bottom: 2%;
}
.top_solution_box ul.solution_service_list02 li:nth-child(3n) {
  margin-right: 2%;
}
.top_solution_box ul.solution_service_list02 li:nth-child(2n) {
  margin-right: 0;
}
.top_solution_box .btn {
  margin-top: 70px;
}
/*==================================================
$works
==================================================*/
.works_contents {
  margin-top: 50px;
}
.works_contents>*:not(.heading):not(.subheading) {
  margin-bottom: 50px;
}
.works_contents p strong,
.works_contents p em,
.works_contents p b {
  font-weight: bold;
}
.works_contents p i {
  font-style: italic;
}
.works_contents .text p:not(:last-child) {
  margin-bottom: 20px;
}
.works_contents .images {
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  align-items: flex-start;
}
.works_contents .images span {
  width: 100%;
  overflow: hidden;
  border-radius: 5px;
}
.works_contents .images span:not(:first-child) {
  margin-left: 10px;
}
.works_contents .images.short {
  max-width: 640px;
  margin: auto;
}
.works_contents .images.overlap {
  max-width: 750px;
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.works_contents .images.overlap span {
  width: 70%;
  margin: 0 auto;
  display: block;
}
.works_contents .images.overlap span:first-child {
  margin-left: 0;
}
.works_contents .images.overlap span:last-child {
  margin-right: 0;
  margin-top: -30%;
}
.works_contents .heading {
  margin-bottom: 30px;
}
.works_contents .subheading {
  margin-bottom: 30px;
  font-size: 18px;
  font-weight: bold;
  display: block;
}
.works_contents .box {
  padding: 30px 5%;
  background: var(--light-gray);
  border-radius: 5px;
}
.works_contents .youtube {
  display: block;
  padding: 28% 0;
  overflow: hidden;
  position: relative;
}
.works_contents .youtube iframe {
  width: 100%;
  max-width: none;
  height: 100%;
  object-fit: cover;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
}
.works_contents .point {
  background: var(--light-gray);
  border-radius: 5px;
  padding: 50px 20px;
}
.works_contents .point ol {
  max-width: 900px;
  width: 96%;
  margin: auto;
  counter-reset: number 0;
}
.works_contents .point ol li {
  padding-left: 50px;
  position: relative;
  font-size: 14px;
  font-weight: bold;
}
.works_contents .point ol li:not(:last-child) {
  margin-bottom: 25px;
}
.works_contents .point ol li::before {
  counter-increment: number 1;
  content: counter(number);
  width: 30px;
  height: 30px;
  min-width: 30px;
  background: #000;
  color: #fff;
  font-family: var(--font-en);
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  border-radius: 5px;
  font-size: 18px;
  font-weight: bold;
  position: absolute;
  top: 0;
  left: 0;
  margin: auto;
}
.works_contents .profile {
  padding: 20px 5%;
  background: var(--light-gray);
  border-radius: 5px;
}
.works_contents .profile .image {
  width: 100%;
  overflow: hidden;
  border-radius: 5px;
  margin-bottom: 20px;
}
.works_contents .profile .text {
  width: 100%;
}
.works_contents .profile .text strong {
  font-weight: bold;
  display: block;
  margin-bottom: 10px;
  font-size: 16px;
}
.works_contents .profile .text p {
  font-size: 14px;
  line-height: 2;
}
.works_contents .interview dl {
  margin-bottom: 50px;
  line-height: 2;
}
.works_contents .interview dl dt {
  font-weight: bold;
  margin-bottom: 10px;
  font-size: 16px;
}
.works_contents .interview dl dd {
  font-size: 14px;
}
.works.pages .block_link>ul {
  margin-bottom: 30px;
}
.works_linklist {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: center;
}
.works_linklist li {
  margin-top: 10px;
  width: 100%;
}
.works_linklist li .btn a {
  min-height: 45px;
  text-decoration: none;
}
.works_linklist li .btn.outlink a::before {
  content: "";
  width: 1em;
  height: 1em;
  background: url(../img/icon_outlink.svg) no-repeat center/contain;
  margin-right: 15px;
  filter: var(--filter-white);
}
/*==================================================
$service
==================================================*/
.service_block>*:not(:last-child) {
  margin-bottom: 50px;
}
.service_block>p {
  line-height: 2;
}
.service_block .service_list .inbox:not(:last-child) {
  margin-bottom: 80px;
}
.service_block .service_list .inbox>*:not(:last-child) {
  margin-bottom: 20px;
}
.service_block .service_list .inbox .headview {
  width: 100%;
  height: 42.67vw;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  color: #fff;
  background: #000;
  border-radius: 10px;
  position: relative;
  overflow: hidden;
  padding: 0 10%;
  font-size: 20px;
  font-weight: bold;
  z-index: 2;
}
.service_block .service_list .inbox.promotion .headview {
  background: var(--promotion-color);
}
.service_block .service_list .inbox.events .headview {
  background: var(--events-color);
}
.service_block .service_list .inbox.creative .headview {
  background: var(--creative-color);
}
.service_block .service_list .inbox.marketing .headview {
  background: var(--marketing-color);
}
.service_block .service_list .inbox.housing .headview {
  background: var(--housing-color);
}
.service_block .service_list .inbox.tourism .headview {
  background: var(--tourism-color);
}
.service_block .service_list .inbox.municipality .headview {
  background: var(--municipality-color);
}
.service_block .service_list .inbox .headview .inshape {
  width: 35.85vw;
  height: 34.55vw;
  position: absolute;
  bottom: -6.52vw;
  right: -1.96vw;
}
.service_block .service_list .inbox .headview .inshape i,
.service_block .service_list .inbox .headview .inshape::before,
.service_block .service_list .inbox .headview .inshape::after,
.service_block .service_list .inbox .headview .inshape span::before,
.service_block .service_list .inbox .headview .inshape span::after {
  content: "";
  position: absolute;
  z-index: -1;
}
.service_block .service_list .inbox .headview .inshape i {
  width: 1.56vw;
  height: 1.56vw;
  border-radius: 100px;
  background: var(--creative-color);
  position: absolute;
  top: 17.6vw;
  left: 6.91vw;
}
.service_block .service_list .inbox .headview .inshape::before {
  width: 26.47vw;
  height: 17.6vw;
  transform: rotate(198deg);
  background: url(../img/shape_page03.svg) no-repeat center/contain;
  top: 13.04vw;
  left: 0;
  filter: var(--filter-marketing);
}
.service_block .service_list .inbox .headview .inshape::after {
  width: 8.6vw;
  height: 8.6vw;
  transform: rotate(-43deg);
  background: url(../img/shape_page01.svg) no-repeat center/contain;
  top: 14.99vw;
  left: 24.12vw;
  filter: var(--filter-municipality);
}
.service_block .service_list .inbox .headview .inshape span::before {
  width: 15.38vw;
  height: 15.38vw;
  border-radius: 50vw;
  background: var(--creative-color);
  top: 0;
  left: 13.04vw;
}
.service_block .service_list .inbox .headview .inshape span::after {
  width: 8.87vw;
  height: 8.87vw;
  transform: rotate(-15deg);
  background: url(../img/shape_page02.svg) no-repeat center/contain;
  top: 13.04vw;
  left: 11.08vw;
  filter: var(--filter-events);
}
.service_block .service_list .inbox p {
  line-height: 2;
}
.service_block .service_list .inbox .inlist {
  padding: 30px 5%;
  background: var(--light-gray);
  border-radius: 5px;
  margin-bottom: 30px;
}
.service_block .service_list .inbox .inlist ul {
  display: inline;
}
.service_block .service_list .inbox .inlist ul li {
  display: inline-block;
  line-height: 1.3;
  font-weight: bold;
  margin-bottom: 20px;
  margin-right: 10px;
  padding-left: 25px;
  position: relative;
}
.service_block .service_list .inbox .inlist ul li::before {
  content: "";
  width: 20px;
  min-width: 20px;
  height: 20px;
  background: #fff url(../img/icon_checkbox.svg) no-repeat center/contain;
  border-radius: 5px;
  margin-right: 5px;
  display: inline-block;
  vertical-align: middle;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  margin: auto;
}
.service_block .service_list .inbox .btn a {
  max-width: 260px;
}
.service_contents>*:not(.service_title):not(p):not(:last-child) {
  margin-bottom: 50px;
}
.service_contents .service_title {
  font-size: 24px;
  font-weight: bold;
  line-height: 1.3;
  margin-bottom: 50px;
}
.service_contents>p {
  line-height: 2;
  margin-bottom: 30px;
}
.service_contents>p+.btn {
  display: block;
}
.service_contents .heading {
  margin-bottom: 30px;
}
.service_contents .inlist {
  background: var(--light-gray);
  padding: 30px 5%;
}
.service_contents .inlist ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: stretch;
}
.service_contents .inlist ul li {
  width: 48%;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: flex-start;
  margin-bottom: 30px;
}
.service_contents .inlist ul li .image {
  width: 123px;
  min-width: 123px;
  height: 123px;
  border-radius: 200px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  margin-bottom: 20px;
  overflow: hidden;
  position: relative;
}
.service_contents .inlist ul li .image::after {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  background: var(--label-bg);
  z-index: 1;
  opacity: 0.2;
}
.service_contents .inlist ul li .image img {
  position: relative;
  z-index: 2;
}
.service_contents .inlist ul li .text strong {
  display: block;
  text-align: center;
  font-weight: bold;
  margin-bottom: 10px;
}
.service_contents .inlist ul li .text p {
  line-height: 2;
}
.contents.promotion .service_contents .inlist ul li .image {
  filter: var(--filter-promotion);
}
.contents.promotion .service_contents .inlist ul li .image::after {
  background: var(--promotion-color);
}
@media screen and (max-width:500px) {
  .service_contents .inlist ul li {
    width: 100%;
  }
}

.service_contents .strengths .heading {
  margin-bottom: 30px;
}
.service_contents .strengths ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: stretch;
}
.service_contents .strengths ul::after {
  content: "";
  width: 30%;
}
.service_contents .strengths ul li {
  border-radius: 10px;
  background: var(--light-gray);
  width: 30%;
  height: 30vw;
}
.service_contents .strengths .inbox {
  background: var(--light-gray);
  border-radius: 5px;
  padding: 20px 5%;
}
.service_contents .strengths .inbox strong {
  display: block;
  font-size: 20px;
  font-weight: bold;
  margin-bottom: 20px;
  line-height: 1.3;
}
.service_contents .service_list .inbox:not(:last-child) {
  margin-bottom: 20px;
}
.service_contents .service_list .inbox strong {
  display: block;
  font-size: 16px;
  font-weight: bold;
  margin-bottom: 20px;
  line-height: 1.3;
}
.service_contents .service_list .inbox ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: stretch;
}
.service_contents .service_list .inbox ul li {
  border-radius: 5px;
  font-weight: bold;
  padding: 5px 15px;
  margin: 0 10px 10px 0;
  position: relative;
  overflow: hidden;
  font-size: 12px;
}
.service_contents .service_list .inbox ul li::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: var(--light-gray);
  opacity: 0.12;
}
.contents.promotion .service_contents .service_list .inbox ul li {
  color: var(--promotion-color);
}
.contents.promotion .service_contents .service_list .inbox ul li::before {
  background: var(--promotion-color);
}
.contents.events .service_contents .service_list .inbox ul li {
  color: var(--events-color);
}
.contents.events .service_contents .service_list .inbox ul li::before {
  background: var(--events-color);
}
.contents.creative .service_contents .service_list .inbox ul li {
  color: var(--creative-color);
}
.contents.creative .service_contents .service_list .inbox ul li::before {
  background: var(--creative-color);
}
.contents.marketing .service_contents .service_list .inbox ul li {
  color: var(--marketing-color);
}
.contents.marketing .service_contents .service_list .inbox ul li::before {
  background: var(--marketing-color);
}
.contents.housing .service_contents .service_list .inbox ul li {
  color: var(--housing-color);
}
.contents.housing .service_contents .service_list .inbox ul li::before {
  background: var(--housing-color);
}
.contents.tourism .service_contents .service_list .inbox ul li {
  color: var(--tourism-color);
}
.contents.tourism .service_contents .service_list .inbox ul li::before {
  background: var(--tourism-color);
}
.contents.municipality .service_contents .service_list .inbox ul li {
  color: var(--municipality-color);
}
.contents.municipality .service_contents .service_list .inbox ul li::before {
  background: var(--municipality-color);
}
.service_contents .works .heading {
  margin-bottom: 30px;
}
.contents.service .works .block_link {
  margin-bottom: 30px;
}
.service_links ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: stretch;
}
.service_links ul li {
  width: 100%;
  margin-bottom: 20px;
  overflow: hidden;
  border-radius: 10px;
}
.service_links ul li a {
  height: 42.67vw;
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  align-items: center;
  color: #fff;
  position: relative;
  overflow: hidden;
  box-shadow: 5px 5px 0 rgba(0,0,0,.1);
}
.service_links ul li a::after {
  content: "";
  position: absolute;
  pointer-events: none;
}
.service_links ul li a div {
  width: 80%;
  position: relative;
  z-index: 2;
  margin-bottom: 5vw;
}
.service_links ul li a div>span {
  display: block;
  font-weight: bold;
}
.service_links ul li a div>span:not(.btn) {
  font-size: 20px;
  line-height: 1.3;
}
.service_links ul li a div>.btn.arrow span {
  padding: 0;
  justify-content: flex-start;
  background: none;
  border: none;
  margin: 10px 0 0;
  min-height: auto;
}
.service_links ul li a div>.btn.arrow span::after {
  margin-left: 20px;
}
.service_links ul li.promotion a {
  background: var(--promotion-color);
}
.service_links ul li.promotion a::after {
  width: 38.13vw;
  height: 36.53vw;
  background: url(../img/shape_pattern01.svg) no-repeat center/contain;
  bottom: -6.52vw;
  right: -2.61vw;
}
.service_links ul li.events a {
  background: var(--events-color);
}
.service_links ul li.events a::after {
  width: 35.73vw;
  height: 21.6vw;
  background: url(../img/shape_pattern02.svg) no-repeat center/contain;
  bottom: -5.33vw;
  right: -2.67vw;
}
.service_links ul li.creative a {
  background: var(--creative-color);
}
.service_links ul li.creative a::after {
  width: 43.4vw;
  height: 19.87vw;
  background: url(../img/shape_pattern03.svg) no-repeat center/contain;
  bottom: -1.67vw;
  right: -6.67vw;
}
.service_links ul li.marketing a {
  background: var(--marketing-color);
}
.service_links ul li.marketing a::after {
  width: 40.27vw;
  height: 22.13vw;
  background: url(../img/shape_pattern04.svg) no-repeat center/contain;
  bottom: -3.67vw;
  right: -6.67vw;
}
.service_links ul li.housing a {
  background: var(--housing-color);
}
.service_links ul li.housing a::after {
  width: 35.2vw;
  height: 29.33vw;
  background: url(../img/shape_pattern05.svg) no-repeat center/contain;
  bottom: -4.33vw;
  right: -3.67vw;
}
.service_links ul li.tourism a {
  background: var(--tourism-color);
}
.service_links ul li.tourism a::after {
  width: 51.6vw;
  height: 27.67vw;
  background: url(../img/shape_pattern06.svg) no-repeat center/contain;
  bottom: -3.67vw;
  right: -12vw;
}
.service_links ul li.municipality a {
  background: var(--municipality-color);
}
.service_links ul li.municipality a::after {
  width: 42.47vw;
  height: 33.4vw;
  background: url(../img/shape_pattern07.svg) no-repeat center/contain;
  bottom: -11.33vw;
  right: -5.67vw;
}
/*==================================================
$company
==================================================*/
.company_btn_list ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: stretch;
}
.company_btn_list ul::after {
  content: "";
}
.company_btn_list ul li,
.company_btn_list ul::after {
  width: 48%;
  min-height: 60px;
  margin-bottom: 15px;
  line-height: 1.3;
}
.company_btn_list ul li .btn {
  height: 100%;
}
.company_btn_list ul li .btn a {
  height: 100%;
}
.company_btn_list ul li .btn:not(.active) a {
  background: #fff;
  color: #000;
  border-color: var(--border-color);
}
/* information */
.info_table_block {
  margin-bottom: 50px;
}
.info_table_block>table {
  width: 100%;
}
.info_table_block>table>tbody>tr {
  border-bottom: 1px solid var(--border-color);
}
.info_table_block>table>tbody>tr>th {
  padding: 20px 5%;
  min-width: 110px;
}
.info_table_block>table>tbody>tr>td {
  padding: 20px 5% 20px 0;
}
.info_table_block>table>tbody>tr>td table tr:not(:last-child) th,
.info_table_block>table>tbody>tr>td table tr:not(:last-child) td {
  padding-bottom: 10px;
}
.info_table_block>table>tbody>tr>td table tr th {
  padding-right: 1em;
}
.info_access_block address {
  margin-bottom: 35px;
}
.info_access_block .map {
  width: 100%;
  padding: 25% 0;
  position: relative;
  overflow: hidden;
}
.info_access_block .map iframe {
  width: 100%;
  height: 100%;
  object-fit: cover;
  max-width: none;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
}
/* message */
.message_block>*:not(:last-child):not(.heading) {
  margin-bottom: 50px;
}
.message_block .text .subheading {
  width: 90%;
  max-width: 640px;
  margin: 0 auto 50px;
}
.message_block .text p {
  margin-bottom: 30px;
}
.message_block .name {
  text-align: right;
  font-weight: bold;
}
/* philosophy */
.philosophy_block>*:not(:last-child):not(.heading) {
  margin-bottom: 50px;
}
.philosophy_block .image {
  max-width: 400px;
  width: 90%;
  margin: auto;
}
.philosophy_block .text .subheading {
  width: 90%;
  max-width: 370px;
  margin: 0 auto 50px;
}
.philosophy_block .text p:not(:last-child) {
  margin-bottom: 20px;
}
/* history */
.history_table_block table {
  width: 100%;
}
.history_table_block table tbody tr {
  border-bottom: 1px solid var(--border-color);
}
.history_table_block table tbody tr th {
  padding: 20px 5% 10px;
  float: left;
  width: 100%;
  font-weight: bold;
}
.history_table_block table tbody tr td {
  padding: 0 5% 20px;
  float: left;
  width: 100%;
}
/* group */
.group_block .map {
  max-width: 580px;
  width: 100%;
  margin: 0 auto 70px;
  position: relative;
}
.group_block .map ul {
  position: absolute;
}
.group_block .map ul::before {
  content: "";
  width: 10px;
  height: 10px;
  position: absolute;
  margin: auto;
  z-index: 2;
  background: var(--map-color);
  border-radius: 100px;
  box-shadow: 
  2px 2px 15px var(--map-color),
  -2px 2px 15px var(--map-color),
  2px -2px 15px var(--map-color),
  -2px -2px 15px var(--map-color);
}
.group_block .map ul li {
  font-size: 14px;
  font-weight: bold;
  color: var(--map-color);
}
.group_block .map .osaka {
  top: 530px;
  left: 270px;
}
.group_block .map .osaka::before {
  top: -30px;
  left: -55px;
}
.group_block .map .osaka::after {
  content: "";
  width: 50px;
  height: 1px;
  background: var(--map-color);
  position: absolute;
  top: -12px;
  left: -50px;
  transform: rotate(28deg);
}
.group_block .map .tokyo {
  top: 370px;
  left: 380px;
}
.group_block .map .tokyo::before {
  top: 80px;
  left: -20px;
}
.group_block .map .nagoya {
  top: 500px;
  left: 340px;
}
.group_block .map .nagoya::before {
  top: -20px;
  left: -80px;
}
.group_block .map .nagoya::after {
  content: "";
  width: 70px;
  height: 1px;
  background: var(--map-color);
  position: absolute;
  top: -5px;
  left: -74px;
  transform: rotate(16deg);
}
.group_block .map .kyoto {
  top: 435px;
  left: 160px;
}
.group_block .map .kyoto::before {
  top: 35px;
  left: 50px;
}
.group_block .map .kobe {
  top: 480px;
  left: 115px;
}
.group_block .map .kobe::before {
  top: 10px;
  left: 75px;
}
.group_block .map .fukuoka {
  top: 505px;
  left: 0;
}
.group_block .map .fukuoka::before {
  top: 30px;
  left: 45px;
}
.group_block .map .sendai {
  top: 305px;
  left: 425px;
}
.group_block .map .sendai::before {
  top: 10px;
  left: -20px;
}
.group_block .map .sapporo {
  top: 80px;
  left: 355px;
}
.group_block .map .sapporo::before {
  top: 25px;
  left: 55px;
}
@media screen and (max-width:660px) {
  .group_block .map ul li {
    font-size: 11px;
  }
  .group_block .map .osaka {
    top: 80.3vw;
    left: 40.91vw;
  }
  .group_block .map .osaka::after {
    width: 7.58vw;
    top: -1.82vw;
    left: -7.58vw;
  }
  .group_block .map .osaka::before {
    top: -4.55vw;
    left: -8.33vw;
  }
  .group_block .map .tokyo {
    top: 56.09vw;
    left: 57.58vw;
  }
  .group_block .map .tokyo::before {
    top: 12.09vw;
    left: -3.03vw;
  }
  .group_block .map .nagoya {
    top: 77.76vw;
    left: 51.52vw;
  }
  .group_block .map .nagoya::before {
    top: -5.03vw;
    left: -12.12vw;
  }
  .group_block .map .nagoya::after {
    width: 10.61vw;
    top: -2.76vw;
    left: -11.21vw;
  }
  .group_block .map .kyoto {
    top: 65.91vw;
    left: 24.24vw;
  }
  .group_block .map .kyoto::before {
    top: 5.3vw;
    left: 7.58vw;
  }
  .group_block .map .kobe {
    top: 75.73vw;
    left: 17.42vw;
  }
  .group_block .map .kobe::before {
    top: -1.48vw;
    left: 11.36vw;
  }
  .group_block .map .fukuoka {
    top: 76.52vw;
    left: 0;
  }
  .group_block .map .fukuoka::before {
    top: 4.55vw;
    left: 6.82vw;
  }
  .group_block .map .sendai {
    top: 46.21vw;
    left: 64.39vw;
  }
  .group_block .map .sendai::before {
    top: 1.52vw;
    left: -3.03vw;
  }
  .group_block .map .sapporo {
    top: 11.12vw;
    left: 53.79vw;
  }
  .group_block .map .sapporo::before {
    top: 4.79vw;
    left: 8.33vw;
  }
}
@media screen and (max-width:660px) {
}
.group_block .group_list .col1 {
  margin-bottom: 20px;
}
.group_block .group_list .col2 {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: stretch;
}
.group_block .group_list .inbox {
  background: #fff;
  border: 1px solid var(--border-color);
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: flex-start;
  border-radius: 10px;
  padding: 30px 0;
}
.group_block .group_list .col1 .inbox {
  width: 100%;
}
.group_block .group_list .col2 .inbox {
  width: 48.5%;
  margin-bottom: 20px;
}
@media screen and (max-width:500px) {
  .group_block .group_list .col2 .inbox {
    width: 100%;
  }
}
.group_block .group_list .inbox .branch_name {
  width: 80%;
  font-size: 16px;
  font-weight: bold;
  margin: 0 auto 20px;
  padding-bottom: 20px;
  position: relative;
}
.group_block .group_list .inbox .branch_name::after {
  content: "";
  width: 110%;
  height: 1px;
  background: var(--border-color);
  position: absolute;
  bottom: 0;
  left: -5%;
  right: 0;
  margin: auto;
}
.group_block .group_list .inbox .branch_name span {
  font-size: 14px;
  display: block;
}
.group_block .group_list .thirdlab .inbox .branch_name img {
  max-width: 95px;
}
.group_block .group_list .inbox .branch_name img + span {
  margin-top: 10px;
}
.group_block .group_list .col1 .inbox .content {
  width: 80%;
}
.group_block .group_list .col2 .inbox .content {
  width: 80%;
}
.group_block .group_list .inbox .content div:not(:last-child) {
  margin-bottom: 20px;
}
.group_block .group_list .inbox .content div p {
  font-size: 14px;
}
.group_block .group_list .inbox .content div p:not(:last-child) {
  margin-bottom: 10px;
}
.group_block .group_list .inbox .content div .office_name {
  display: inline-block;
  font-size: 14px;
  font-weight: bold;
  margin-bottom: 10px;
  margin-right: 20px;
}
.group_block .group_list .col2 .inbox .content div .office_name {
  display: block;
  margin-bottom: 10px;
}
.group_block .group_list .inbox .content div ul,
.group_block .group_list .inbox .content div ul li {
  display: inline-block;
}
.group_block .group_list .inbox .content div ul li:not(:last-child) {
  margin-right: 30px;
}
.group_block .group_list .inbox .content div ul li a {
  color: var(--link-color);
  text-decoration: underline;
  line-height: 1;
  font-weight: bold;
}
.group_block .group_list .inbox .content div ul li a.outlink::after {
  content: "";
  display: inline-block;
  width: 0.6em;
  height: 0.6em;
  background: url(../img/icon_outlink.svg) no-repeat center/contain;
  margin-left: 5px;
  filter: brightness(0) saturate(100%) invert(31%) sepia(82%) saturate(1508%) hue-rotate(310deg) brightness(93%) contrast(98%);
}
/*==================================================
$column  &  $news
==================================================*/
.category_list ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: stretch;
  margin-bottom: 10px;
}
.category_list ul::after,
.category_list ul li {
  content: "";
  width: 48%;
  margin-bottom: 15px;
}
.category_list ul li span  {
  display: block;
  height: 100%;
}
.category_list ul li .btn a {
  background: #fff;
  color: var(--label-color);
  border: 1px solid var(--label-bg);
  position: relative;
  min-height: 45px;
  line-height: 1.3;
  font-size: 12px;
  height: 100%;
}
.category_list ul li .btn.active a {
  background: #000;
  color: #fff;
  border: 1px solid #000;
}
.tag_list {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: flex-start;
  background: var(--light-gray);
  padding: 15px 5%;
  border-radius: 5px;
  margin-bottom: 30px;
}
.tag_list strong {
  font-weight: bold;
  line-height: 1.3;
  position: relative;
  width: 100%;
}
.tag_list ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: center;
}
.tag_list ul li:not(:last-child) {
  margin: 5px 10px 5px 0;
}
.tag_list ul li span a {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  width: 100%;
  min-width: 80px;
  height: 100%;
  padding: 5px 15px;
  font-size: 12px;
  text-align: center;
  border-radius: 5px;
  background: var(--label-bg);
  border: 1px solid var(--label-bg);
  color: var(--label-color);
  line-height: 1.2;
}
.tag_list ul li span.company a {
  border-color: var(--promotion-color);
  color: var(--promotion-color);
  background: #fff;
}
.tag_list ul li span.topics a {
  border-color: var(--marketing-color);
  color: var(--marketing-color);
  background: #fff;
}
.tag_list ul li span.active a {
  color: #fff;
  background: #000;
  border: 1px solid #000;
}
.tag_list ul li span.company.active a {
  color: #fff;
  background: var(--promotion-color);
  border-color: var(--promotion-color);
}
.tag_list ul li span.topics.active a {
  color: #fff;
  background: var(--marketing-color);
  border-color: var(--marketing-color);
}
.search_box  {
  margin-bottom: 50px;
}
.search_box .tag_list {
  margin-bottom: 10px;
}
.search_box .tag_list strong {
  min-width: 125px;
  text-align: left;
  justify-content: flex-start;
}
.search_box .category_list ul li .btn.active a::after {
  content: "";
  width: 15px;
  height: 6px;
  background: url(../img/icon_triangle.svg) no-repeat center/contain;
  position: absolute;
  bottom: -12px;
  left: 0;
  right: 0;
  margin: auto;
}
.works_aside:not(:last-child) {
  margin-bottom: 80px;
}
.works_aside .heading {
  margin-bottom: 30px;
}
.works_aside .tag_list {
  background: none;
  padding: 0;
}
.works_aside .tag_list ul {
  padding: 0;
}
.works_aside .tag_list ul li span a {
  background: #fff;
  font-weight: bold;
}
.pager {
  margin-top: 80px;
}
.pager .wp-pagenavi {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  font-weight: bold;
  font-family: var(--font-en);
  position: relative;
}
.pager .wp-pagenavi .pages,
.pager .wp-pagenavi a.first,
.pager .wp-pagenavi a.last {
  display: none;
}
.pager .wp-pagenavi>* {
  margin: 0 10px;
}
.pager .wp-pagenavi span.current {
  width: 50px;
  min-width: 50px;
  height: 50px;
  background: #000;
  color: #fff;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  border-radius: 100px;
}
.pager .wp-pagenavi a.previouspostslink,
.pager .wp-pagenavi a.nextpostslink {
  width: 125px;
  min-width: 125px;
  height: 50px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  border-radius: 100px;
  border: 1px solid #000;
  background: #fff;
  font-size: 14px;
}
.pager .wp-pagenavi a.previouspostslink::before,
.pager .wp-pagenavi a.nextpostslink::after {
  content: "";
  width: 26px;
  min-width: 26px;
  height: 26px;
  background: url(../img/icon_circle_arrow.svg) no-repeat center/contain;
}
.pager .wp-pagenavi a.previouspostslink::before {
  transform: scale(-1,1);
  margin-right: 20px;
}
.pager .wp-pagenavi a.nextpostslink::after {
  margin-left: 20px;
}
@media screen and (max-width:620px) {
  .pager .wp-pagenavi {
    padding-top: 60px;
  }
  .pager .wp-pagenavi a.previouspostslink,
  .pager .wp-pagenavi a.nextpostslink {
    position: absolute;
    top: 0;
  }
  .pager .wp-pagenavi a.previouspostslink {
    left: 0;
  }
  .pager .wp-pagenavi a.nextpostslink {
    right: 0;
  }
}
.pager ul {
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  align-items: stretch;
}
.pager ul li a {
  width: 125px;
  height: 50px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  text-align: center;
  background: #000;
  color: #fff;
  border-radius: 100px;
  font-size: 14px;
  font-weight: bold;
  font-family: var(--font-en);
  position: relative;
  padding: 0 20px;
  margin: 0 5px;
}
.pager ul li a>span>span:nth-child(2) {
  display: none;
}
.pager ul li a.prev::before {
  content: "";
  width: 25px;
  min-width: 25px;
  height: 25px;
  background: url(../img/icon_circle_arrow.svg) no-repeat center/contain;
  transform: scale(-1,1);
  filter: var(--filter-white);
}
.pager ul li a.next::after {
  content: "";
  width: 25px;
  min-width: 25px;
  height: 25px;
  background: url(../img/icon_circle_arrow.svg) no-repeat center/contain;
  transform: scale(1,1);
  filter: var(--filter-white);
}
.pager ul li a.back {
  width: 170px;
  justify-content: center;
}
.pager ul li a.back::before {
  content: "";
  width: 25px;
  min-width: 25px;
  height: 25px;
  background: url(../img/icon_circle_arrow.svg) no-repeat center/contain;
  transform: scale(-1,1);
  filter: var(--filter-white);
  position: absolute;
  top: 0;
  bottom: 0;
  left: 20px;
  margin: auto;
}

/*==================================================
$column
==================================================*/
.block_link {
  width: 100%;
}
.block_link ul {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: stretch;
}
.block_link ul li {
  width: 100%;
  margin-bottom: 50px;
}
.block_link ul li:last-child {
  margin-bottom: 0;
}
.block_link ul li a {
  display: block;
}
.block_link ul li a .image {
  width: 100%;
  padding: 30% 0;
  position: relative; 
  overflow: hidden;
  background: var(--light-gray);
  border-radius: 10px;
  display: block;
  margin-bottom: 20px;
}
.block_link ul li a .image img {
  width: 100%;
  max-width: none;
  height: 100%;
  object-fit: cover;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
}
.block_link ul li a .label {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: stretch;
}
.block_link ul li a .label li {
  background: var(--label-bg);
  color: var(--label-color);
  padding: 0 20px;
  width: auto;
  border-radius: 5px;
  margin-right: 5px;
  margin-bottom: 10px;
  font-size: 10px;
}
.block_link ul li a .text {
  display: block;
  font-weight: bold;
}
.block_link ul li a .date {
  font-size: 10px;
  display: block;
  color: var(--label-color);
}
.block_link ul li a .sup {
  display: block;
  font-size: 10px;
  color: #000;
  font-weight: bold;
}
/*==================================================
$news
==================================================*/
.list_link {
  width: 100%;
}
.list_link ul li a {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: flex-start;
  border-bottom: 1px solid var(--border-color);
  padding: 20px 0;
  position: relative;
}
.list_link ul li a .date {
  font-size: 10px;
  min-width: 50px;
  text-align: center;
  margin-right: 30px;
  color: var(--label-color);
}
.list_link ul li a .label {
  background: var(--label-bg);
  color: var(--label-color);
  font-size: 10px;
  text-align: center;
  min-width: 90px;
  margin-right: 30px;
  border-radius: 5px;
}
.list_link ul li a .label.company {
  color: #fff;
  background: var(--promotion-color);
  border-color: var(--promotion-color);
}
.list_link ul li a .label.topics {
  color: #fff;
  background: var(--marketing-color);
  border-color: var(--marketing-color);
}
.list_link ul li a .text {
  width: 100%;
  margin-top: 10px;
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  align-items: center;
}
.list_link ul li a .text::after {
  content: "";
  width: 12px;
  min-width: 12px;
  height: 12px;
  background: url(../img/icon_arrow.svg) no-repeat center/contain;
  margin-left: 20px;
}
.article_block {
  margin-bottom: 30px;
}
.article_block .article_title {
  font-size: 24px;
  font-weight: bold;
  margin-bottom: 30px;
  line-height: 1.3;
}
.article_block .date {
  display: block;
  font-size: 12px;
  color: var(--label-color);
  margin-bottom: 5px;
}
.article_block .sup {
  display: block;
  font-size: 14px;
  margin-bottom: 5px;
}
.article_block .label {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: stretch;
  text-align: center;
}
.article_block .label li {
  background: var(--label-bg);
  color: var(--label-color);
  font-size: 10px;
  text-align: center;
  min-width: 70px;
  margin-right: 10px;
  border-radius: 5px;
  padding: 2px 15px;
}
.article_block .label li.company {
  color: #fff;
  background: var(--promotion-color);
  border-color: var(--promotion-color);
}
.article_block .label li.topics {
  color: #fff;
  background: var(--marketing-color);
  border-color: var(--marketing-color);
}
.article_block a {
  text-decoration: underline;
  word-break: break-all;
}
.article_block .article_contents {
  margin-top: 30px;
}
.article_block .article_contents>*:not(:last-child) {
  margin-bottom: 30px;
}
.article_block .article_contents h2,
.article_block .article_contents h3,
.article_block .article_contents h4,
.article_block .article_contents h5,
.article_block .article_contents h6,
.article_block .article_contents strong {
  font-weight: bold;
}
.article_block .article_contents h2 {
  font-size: 130%;
}
.article_block .article_contents h3 {
  font-size: 120%;
}
.article_block .article_contents h4 {
  font-size: 110%;
}
.article_block .article_contents em {
  font-style: italic;
}
.article_block .article_contents blockquote {
  padding: 25px;
  position: relative;
  background-color: var(--light-gray);
  border-radius: 5px;
}
.article_block .article_contents blockquote:before,
.article_block .article_contents blockquote:after {
  position: absolute;
  opacity: 1;
  font-size: 50px;
}
.article_block .article_contents blockquote:before {
  content: '“';
  line-height: 1;
  top: 0;
  left: 5px;
  color: var(--label-color);
  font-family: var(--font-en);
}
.article_block .article_contents blockquote:after {
  content: '”';
  line-height: 0;
  bottom: 5px;
  right: 5px;
  color: var(--label-color);
  font-family: var(--font-en);
}
.article_block .article_contents ul {
  padding-left: 15px;
}
.article_block .article_contents ul li {
  position: relative;
}
.article_block .article_contents ul li::before {
  content: "";
  width: 5px;
  min-width: 5px;
  height: 5px;
  background: #000;
  border-radius: 100px;
  position: absolute;
  top: 10px;
  left: -14px;
}
.article_block .article_contents ol {
  counter-reset: number 0;
  padding-left: 1.7em;
  text-indent: -1.7em;
}
.article_block .article_contents ol li::before {
  counter-increment: number 1;
  content: counter(number,decimal-leading-zero)". ";
  font-family: var(--font-en);
}

/*==================================================
$recruit
==================================================*/
/*==================================================
$contact
==================================================*/
.tab_list ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: stretch;
  margin-bottom: 70px;
}
.tab_list ul li {
  width: 49%;
  background: #fff;
  border: 1px solid var(--border-color);
  color: var(--label-color);
  text-align: center;
  font-size: 12px;
  font-weight: bold;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  min-height: 45px;
  border-radius: 50vw;
  position: relative;
  cursor: pointer;
  line-height: 1.3;
}
.tab_list ul li.active {
  color: #fff;
  background: #000;
  border-color: #000;
}
.tab_list ul li.active::after {
  content: "";
  width: 15px;
  height: 6px;
  background: url(../img/icon_triangle.svg) no-repeat center/contain;
  position: absolute;
  bottom: -12px;
  left: 0;
  right: 0;
  margin: auto;
}
::placeholder {
  color: var(--label-color);
}
.form_block {
  width: 100%;
  max-width: 880px;
  margin: auto;
  display: block;
}
.form_block .form_heading {
  display: block;
  width: 100%;
  font-size: 24px;
  font-weight: bold;
  text-align: center;
  margin-bottom: 20px;
}
.form_block .form_subheading {
  font-size: 16px;
  font-weight: bold;
  display: block;
  margin-bottom: 30px;
}
.form_block p a {
  text-decoration: underline;
}
.form_block .required {
  color: #B50000;
  font-weight: bold;
}
.form_block table {
  width: 100%;
  margin: 80px 0;
}
.form_block table tbody tr {
  clear: both;
}
.form_block table tbody tr th {
  float: left;
  width: 100%;
  font-weight: bold;
  margin-bottom: 10px;
  font-size: 16px;
}
.form_block table tbody tr th span:not(.required) {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: center;
  min-height: 40px;
}
.form_block table tbody tr td {
  float: left;
  width: 100%;
  margin-bottom: 30px;
}
.form_block .radio ul li:not(:last-child) {
  margin-bottom: 5px;
}
.form_block .radio ul li input {
  display: none;
}
.form_block .radio ul li label {
  position: relative;
  cursor: pointer;
  padding-left: 25px;
  display: inline-block;
}
.form_block .radio ul li label::before {
  content: "";
  display: inline-block;
  vertical-align: middle;
  width: 16px;
  min-width: 16px;
  height: 16px;
  border-radius: 50vw;
  border: 1px solid var(--border-color);
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  margin: auto;
}
.form_block .radio ul li input[type="radio"]:checked+label::after {
  content: "";
  width: 10px;
  height: 10px;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 4px;
  margin: auto;
  background: #000;
  border-radius: 50vw;
}
.form_block .checkbox ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: flex-start;
}
.form_block .checkbox ul li:not(:last-child) {
  margin-right: 20px;
  margin-bottom: 10px;
}
.form_block .checkbox ul li input {
  display: none;
}
.form_block .checkbox ul li label {
  position: relative;
  cursor: pointer;
}
.form_block .checkbox ul li label::before {
  content: "";
  display: inline-block;
  vertical-align: middle;
  width: 16px;
  min-width: 16px;
  height: 16px;
  margin-right: 10px;
  border: 1px solid var(--border-color);
  background: #fff;
  margin-bottom: 3px;
  border-radius: 5px;
}
.form_block .checkbox ul li input[type="checkbox"]:checked+label::after {
  content: "";
  width: 10px;
  height: 8px;
  background: url(../img/icon_check.svg) no-repeat center/contain;
  position: absolute;
  top: 3px;
  bottom: 0;
  left: 4px;
  margin: auto;
}
.form_block .text label input,
.form_block .text_area label textarea,
.form_block .select label select {
  width: 100%;
  font-size: 16px;
  padding: 20px;
  border: 1px solid var(--border-color);
  border-radius: 5px;
}
.form_block .select label select:invalid {
  color: var(--label-color);
}
.form_block .select label select option {
  color: #000;
}
.form_block .select label select option:first-child {
  color: var(--label-color);
}
.form_block .text_area label textarea {
  height: 200px;
}
.form_block .form_privacy {
  margin-bottom: 30px;
}
.form_block .form_privacy strong {
  display: block;
  font-size: 16px;
  font-weight: bold;
  text-align: center;
  margin-bottom: 10px;
}
.form_block .form_privacy p {
  line-height: 2;
  text-align: center;
  margin-bottom: 30px;
}
.form_block .form_privacy .inbox {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 80px;
  background: var(--light-gray);
}
.form_block .form_privacy .inbox input {
  display: none;
}
.form_block .form_privacy .inbox label {
  position: relative;
  cursor: pointer;
}
.form_block .form_privacy .inbox label::before {
  content: "";
  display: inline-block;
  vertical-align: middle;
  width: 16px;
  min-width: 16px;
  height: 16px;
  margin-right: 10px;
  border: 1px solid var(--border-color);
  background: #fff;
  margin-bottom: 3px;
  border-radius: 5px;
}
.form_block .form_privacy .inbox input[type="checkbox"]:checked+label::after {
  content: "";
  width: 10px;
  height: 8px;
  background: url(../img/icon_check.svg) no-repeat center/contain;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 4px;
  margin: auto;
}
.form_block .form_btn ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: stretch;
}
.form_block .form_btn ul li {
  width: 48%;
  padding: 0 1%;
}
@media screen and (max-width:550px) {
  .form_block .form_btn ul li {
    width: 100%;
    margin-bottom: 10px;
  }
}
.form_block .form_btn ul li .btn button {
  width: 100%;
  cursor: pointer;
}
.form_block .form_btn ul li .btn.back span {
  background: var(--label-bg);
  color: #000;
  flex-direction: row-reverse;
}
.form_block .form_btn ul li .btn.back span::after {
  transform: scale(-1,1);
  filter: none;
}
/*==================================================
$privacy
==================================================*/
.page_link ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: stretch;
  margin-bottom: 80px;
}
.page_link ul li {
  min-width: auto;
  width: 48%;
  margin: 0 0 15px 0;
}
@media screen and (max-width:550px) {
  .page_link ul li {
    width: 100%;
  }
}
.page_link ul li .btn:not(.active) a {
  color: var(--label-color);
  border-color: var(--label-bg);
  background: #fff;
}
.page_link ul li .btn a {
  min-height: 46px;
  height: 100%;
  font-weight: bold;
  padding: 0 30px;
}
.privacy_block {
  line-height: 2;
}
.privacy_block:not(:last-child) {
  margin-bottom: 50px;
}
.privacy_block>*:not(:last-child) {
  margin-bottom: 20px;
}
.privacy_block .privacy_heading {
  font-size: 24px;
  font-weight: bold;
  display: block;
}
.privacy_block .privacy_subheading {
  font-weight: bold;
  display: block;
  border-bottom: 1px solid var(--border-color);
  padding-bottom: 10px;
}
.privacy_block ol {
  width: 100%;
  counter-reset: p_number 0;
}
.privacy_block ol>li {
  padding-left: 30px;
  position: relative;
  margin-bottom: 10px;
}
.privacy_block ol>li:last-child {
  margin-bottom: 0;
}
.privacy_block ol>li::before {
  counter-increment: p_number 1;
  content: counter(p_number)".";
  width: 1.2em;
  min-width: 1.2em;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  margin: auto;
}
.privacy_block ul>li {
  padding-left: 1em;
  position: relative;
}
.privacy_block ul>li::before {
  content: "・";
  width: 1em;
  min-width: 1em;
  position: absolute;
  top: 0;
  left: 0;
}
.privacy_block strong {
  font-weight: bold;
}
.privacy_block .box {
  padding: 30px 5%;
  background: var(--light-gray);
  border-radius: 5px;
}
.privacy_block .right_box {
  text-align: right;
  line-height: 1.3;
}
.privacy_block .right_box span {
  font-size: 11px;
}
.privacy_block .small {
  font-size: 12px;
}
.privacy_block .indent {
  padding-left: 1em;
  text-indent: -1em;
}
.privacy_mark a {
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  align-items: center;
  border: 1px solid var(--border-color);
  padding: 30px 5%;
  border-radius: 10px;
  font-size: 12px;
}
.privacy_mark a img {
  width: 50px;
  min-width: 50px;
  margin-right: 5%;
}
/*==================================================
$solution
==================================================*/
.solution_points {
  counter-reset: solution 0;
}
.solution_points>li {
  margin-bottom: 100px;
  position: relative;
  padding-top: 20px;
}
.solution_points>li:last-child {
  margin-bottom: 0;
}
.solution_points>li>span {
  font-size: 50px;
  opacity: 0.05;
  line-height: 1;
  position: absolute;
  top: 0;
  left: 0;
  font-weight: bold;
  font-family: var(--font-en);
}
.solution_points>li>span::after {
  counter-increment: solution 1;
  content: counter(solution);
  margin-left: 0.5em;
}
.solution_points>li .solution_heading {
  font-size: 21px;
  font-weight: bold;
  line-height: 1.5;
}
.solution_points>li p {
  margin-top: 20px;
}
.solution_points>li .image {
  display: block;
  margin-top: 30px;
  width: 100%;
}
.solution_points>li ol {
  margin-top: 30px;
  padding-top: 30px;
}
.solution_points>li ol li {
  width: 100%;
  position: relative;
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  align-items: stretch;
  margin-top: -30px;
}
.solution_points>li ol li:nth-child(1) {
  z-index: 5;
}
.solution_points>li ol li:nth-child(2) {
  z-index: 4;
}
.solution_points>li ol li:nth-child(3) {
  z-index: 3;
}
.solution_points>li ol li:nth-child(4) {
  z-index: 2;
}
.solution_points>li ol li strong {
  background: #544e35;
  font-size: 16px;
  font-weight: bold;
  color: #fff;
  text-align: center;
  width: 60px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  border: 10px solid #fff;
  border-bottom-left-radius: 100px;
  border-bottom-right-radius: 100px;
  line-height: 1.3;
  padding: 30px 0;
  writing-mode: vertical-rl;
  white-space: nowrap;
}
.solution_points>li ol li p {
  font-size: 14px;
  padding: 30px 5%;
  width: calc(100% - 60px);
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
}
.solution_points>li picture {
  display: block;
  margin-top: 30px;
  filter: drop-shadow(10px 2px 26px rgba(0,0,0,0.06));
}
