@charset "UTF-8";
.bg {
  width: 100vw;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 0;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  background-image: url(../img/bg_top02.jpg);
}
.hero .hero_head {
  width: 100vw;
  height: calc(280px + 12vw);
  padding: 0 0 12vw;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
}
.hero .hero_head::before {
  width: calc(100vw + 10px);
  padding: 12vw 0 0;
  position: absolute;
  bottom: 0;
  right: 50%;
  transform: translateX(50%);
  z-index: 0;
  content: '';
  background-position: top center;
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOTgwIiBoZWlnaHQ9IjMzNi4xMTciIHZpZXdCb3g9IjAgMCAxOTgwIDMzNi4xMTciPjxwYXRoIGQ9Ik0xNjQzLjIzNCw0NjEuMjdhMTA0LjA4OCwxMDQuMDg4LDAsMCwwLTU0LjA3LDBMMTIwNi40ODcsNTcwLjI1Miw2MjguMjM0LDM5Ny42M2E5NS4yMzQsOTUuMjM0LDAsMCwwLTI3LjAzNS0zLjc0NWgtLjA4NWE5NS4yMyw5NS4yMywwLDAsMC0yNi45NSwzLjc0NkwxMSw1NjUuNzUyVjczMEgxOTkxVjU2MC4zMTNabS02MTkuODcsMTE4Ljg5MS0xLjY5LS41OTQsMS45OS41OTRaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTEgLTM5My44ODMpIiBmaWxsPSIjZmZmIi8+PC9zdmc+);
  background-repeat: no-repeat;
  background-size: cover;
}
.hero .hero_head .hero_head_ttl {
  position: relative;
  z-index: 1;
  font-size: min(4vw, 50px);
  font-weight: 700;
  text-align: center;
  line-height: 1;
  letter-spacing: 2px;
  color: #fff;
  text-shadow: 0 0 10px rgba(0, 0, 0, 0.9);
}
.hero .hero_body {
  padding: 20px 20px 0;
  position: relative;
  z-index: 1;
  font-size: 18px;
  line-height: 2;
  background-color: #fff;
  box-shadow: 0 0 0 10px #fff;
}
.card {
  position: relative;
  background-color: #e8e8e8;
}
.card::before {
  width: 400px;
  height: 100%;
  position: absolute;
  z-index: 0;
  content: '';
  background-color: #bbbfca;
  border-radius: 1000px;
  opacity: 0.3;
}
.card:nth-child(n + 2) {
  margin: 60px 0 0;
}
.card .card_inner {
  position: relative;
  z-index: 1;
}
.card .card_inner:nth-child(2) .card_inner_ttl {
  font-size: 30px;
  font-weight: bold;
  color: #3fb6c1;
}
.card .card_inner:nth-child(2) .card_inner_txt {
  margin: 10px 0 0;
  font-size: 16px;
  text-align: left;
  line-height: 1.8;
}
.l_contents {
  padding: 60px 0 100px;
  position: relative;
  z-index: 1;
  background-color: #fff;
}
.contents .contents_head {
  width: 90%;
  max-width: 1000px;
  margin: auto;
}
.contents .contents_head .contents_head_ttl {
  font-family: 'Ubuntu', sans-serif;
  font-size: min(5vw, 80px);
  font-weight: bold;
  text-align: center;
  line-height: 1;
}
.contents .contents_body:nth-child(n + 2) {
  margin-top: 50px;
}
.contents .contents_body .contents_body_ttl {
  width: 90%;
  max-width: 1000px;
  margin: auto;
  font-size: min(7vw, 30px);
  font-weight: bold;
  text-align: center;
  line-height: 1;
}
.contents .contents_body .contents_body_ttl:nth-child(n + 2) {
  margin-top: 100px;
}
.contents .contents_body .contents_body_main {
  width: 90%;
  max-width: 1000px;
  margin: auto;
}
.contents .contents_body .contents_body_main:nth-child(n + 2) {
  margin-top: 60px;
}
.contents .contents_body .contents_body_nav {
  width: 90%;
  max-width: 1000px;
  margin: 40px auto 0;
}
.contents .contents_foot {
  margin: 100px 0 0;
  padding: 12vw 0;
  position: relative;
  z-index: 1;
  overflow: hidden;
}
.contents .contents_foot::before, .contents .contents_foot::after {
  width: calc(100vw + 10px);
  padding: 12vw 0 0;
  position: absolute;
  right: 50%;
  transform: translateX(50%);
  z-index: 0;
  content: '';
  background-repeat: no-repeat;
  background-size: cover;
}
.contents .contents_foot::before {
  top: 0;
  background-position: top center;
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOTgwIiBoZWlnaHQ9IjMzNi4xMTciIHZpZXdCb3g9IjAgMCAxOTgwIDMzNi4xMTciPjxwYXRoIGQ9Ik0xNjQzLjIzNCw0NjEuMjdhMTA0LjA4OCwxMDQuMDg4LDAsMCwwLTU0LjA3LDBMMTIwNi40ODcsNTcwLjI1Miw2MjguMjM0LDM5Ny42M2E5NS4yMzQsOTUuMjM0LDAsMCwwLTI3LjAzNS0zLjc0NWgtLjA4NWE5NS4yMyw5NS4yMywwLDAsMC0yNi45NSwzLjc0NkwxMSw1NjUuNzUyVjczMEgxOTkxVjU2MC4zMTNabS02MTkuODcsMTE4Ljg5MS0xLjY5LS41OTQsMS45OS41OTRaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTEgLTM5My44ODMpIiBmaWxsPSIjMjIyODMxIi8+PC9zdmc+);
}
.contents .contents_foot::after {
  bottom: 0;
  background-position: bottom center;
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOTgwIiBoZWlnaHQ9IjI2NS4yNTIiIHZpZXdCb3g9IjAgMCAxOTgwIDI2NS4yNTIiPjxwYXRoIGQ9Ik0xOTgxLDBWMjYwLjc1MkwxNDE3LjgzNiw5Mi42MzFhOTUuMjMxLDk1LjIzMSwwLDAsMC0yNi45NS0zLjc0NmgtLjA4NWE5NS4yMzQsOTUuMjM0LDAsMCwwLTI3LjAzNSwzLjc0NUw3ODUuNTEzLDI2NS4yNTIsNDAyLjgzNiwxNTYuMjdhMTA0LjA4OCwxMDQuMDg4LDAsMCwwLTU0LjA3LDBMMSwyNTUuMzEzVjBaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMSkiIGZpbGw9IiMyMjI4MzEiLz48L3N2Zz4=);
}
.contents .contents_foot .contents_foot_inner {
  padding: 40px 0;
  color: #fff;
  background-color: #222831;
  box-shadow: 0 0 0 10px #222831;
}
.contents .contents_foot .contents_foot_inner .contents_foot_inner_ttl, .contents .contents_foot .contents_foot_inner .contents_foot_inner_txt {
  width: 50%;
  max-width: 1000px;
  margin: auto;
}
.contents .contents_foot .contents_foot_inner .contents_foot_inner_ttl {
  font-size: 30px;
  font-weight: bold;
  line-height: 1;
  text-align: center;
  letter-spacing: 2px;
}
.contents .contents_foot .contents_foot_inner .contents_foot_inner_txt {
  margin-top: 40px;
  line-height: 2;
}
.contents .contents_foot .contents_foot_inner .contents_foot_inner_txt > a {
  text-decoration: underline;
  color: #fff;
}
.contents .contents_foot .contents_foot_inner .contents_foot_inner_btn {
  width: 90%;
  max-width: 376px;
  height: 65px;
  margin: 50px auto 0;
  font-size: 20px;
  font-weight: bold;
}
.servicenav .servicenav_btn {
  font-weight: bold;
  line-height: 1;
  transition: 0.3s background, 0.3s opacity;
}
.l_bgbox {
  padding: 30px 0;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  background-image: url(../img/pic_pr01.jpg);
}
.l_bgbox.l_bgbox__sns1 {
  background-image: url(../img/pic_sns01.jpg);
}
.l_bgbox.l_bgbox__sns2 {
  background-image: url(../img/pic_sns02.jpg);
}
.l_bgbox.l_bgbox__line {
  background-image: url(../img/pic_line01.jpg);
}
.l_bgbox.l_bgbox__movie {
  background-image: url(../img/pic_movie01.jpg);
}
.l_bgbox:nth-child(n + 2) {
  margin: 100px 0 0;
}
.bgbox {
  padding: 80px 0;
  background-color: rgba(255, 255, 255, 0.8);
  text-align: center;
}
.bgbox .bgbox_head, .bgbox .bgbox_body {
  max-width: 90%;
  margin: auto;
}
.bgbox .bgbox_head {
  font-size: min(7vw, 30px);
  font-weight: bold;
  line-height: 1;
}
.bgbox .bgbox_body {
  display: inline-block;
  font-size: 18px;
  text-align: left;
  line-height: 1.8;
}
.bgbox .bgbox_body:nth-child(n + 2) {
  margin-top: 40px;
}
.l_aboutus {
  padding: 80px 0 0;
  position: relative;
  z-index: 1;
  background-color: #fff;
}
.l_aboutus > li {
  max-width: 900px;
  margin: auto;
  padding: 60px 30px;
  position: relative;
  background-color: #f4f4f2;
}
.l_aboutus > li::before, .l_aboutus > li::after {
  height: 60px;
  position: absolute;
  right: 0;
  z-index: 0;
  content: '';
  border-radius: 1000px 0 0 1000px;
}
.l_aboutus > li::before {
  width: 80px;
  bottom: 60px;
  background-color: #e8e8e8;
}
.l_aboutus > li::after {
  width: 120px;
  bottom: 0;
  background-color: #bbbfca;
}
.l_aboutus > li:nth-child(n + 2) {
  margin-top: 50px;
}
.aboutus {
  position: relative;
  z-index: 1;
}
.aboutus .aboutus_ttl {
  font-size: 26px;
  font-weight: bold;
  text-align: center;
  color: #3fb6c1;
}
.aboutus .aboutus_img {
  width: 90%;
  max-width: 350px;
  margin: 30px auto 0;
}
.aboutus .aboutus_txt {
  margin: 30px 0 0;
  line-height: 1.8;
}
.aboutus .aboutus_txt > p {
  padding: 0 0 0 1.3em;
  display: inline-block;
  position: relative;
}
.aboutus .aboutus_txt > p::before {
  position: absolute;
  top: 0;
  left: 0;
  content: attr(data-txt);
}
.l_company {
  position: relative;
  z-index: 1;
  background-color: #fff;
}
.company .company_body {
  margin: 100px 0 0;
}
.company .company_body .company_body_ttl {
  font-family: 'Ubuntu', sans-serif;
  font-size: min(5vw, 80px);
  font-weight: bold;
  text-align: center;
  line-height: 1;
}
.company .company_body .company_body_map {
  width: 100%;
  height: 600px;
  margin: 40px 0 0;
  position: relative;
  overflow: hidden;
  filter: contrast(.9);
}
.company .company_body .company_body_map > iframe {
  width: 100%;
  height: 100%;
  position: absolute;
  bottom: 50%;
  right: 50%;
  transform: translate(50%, 50%);
}
.l_works {
  padding: 80px 0 0;
  position: relative;
  z-index: 1;
  background-color: #fff;
}
.works {
  width: 90%;
  max-width: 1000px;
  margin: auto;
}
.l_step > li {
  position: relative;
  background-color: #f4f4f2;
}
.step {
  text-align: center;
}
.step .step_img {
  width: 70%;
  margin: auto;
}
.step .step_ttl {
  margin: 20px 0 0;
  font-size: 18px;
  font-weight: bold;
  text-align: center;
  color: #3fb6c1;
}
.step .step_ttl > div {
  font-family: 'Ubuntu', sans-serif;
  font-size: 16px;
  letter-spacing: 2px;
  color: #222831;
}
.step .step_txt {
  margin: 10px 0 0;
  font-size: 15px;
  text-align: left;
  line-height: 1.8;
}
.step .step_txt > span {
  font-size: 12px;
}
.l_recruittxt {
  min-height: 30vh;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 1;
  background-color: #fff;
}
.recruittxt {
  font-size: 20px;
  font-weight: bold;
  line-height: 1.8;
}
.l_recruit {
  position: relative;
  z-index: 1;
  background-color: #fff;
}
.l_recruit:first-child {
  padding-top: 100px;
}
.recruit {
  max-width: 1000px;
  margin: auto;
  position: relative;
}
.recruit:nth-child(n + 2) {
  margin-top: 100px;
}
.recruit .recruit_head, .recruit .recruit_body {
  position: relative;
  z-index: 1;
}
.recruit .recruit_head {
  font-family: 'Ubuntu', sans-serif;
  font-size: min(5vw, 80px);
  font-weight: bold;
  text-align: center;
  line-height: 1;
}
.recruit .recruit_body {
  width: 90%;
  max-width: 782px;
  margin: auto;
}
.recruit .recruit_body .recruit_body_txt {
  text-align: center;
}
.recruit .recruit_body:nth-child(n + 2) {
  margin-top: 40px;
}
.l_news {
  padding: 70px 0 0;
  position: relative;
  z-index: 1;
  background-color: #fff;
}
.news {
  width: 90%;
  max-width: 800px;
  margin: auto;
}
.news .news_head {
  font-family: 'Ubuntu', sans-serif;
  font-size: min(5vw, 80px);
  font-weight: bold;
  text-align: center;
  line-height: 1;
}
.news .news_body {
  margin: 60px 0 0;
}
.l_newslist > li:nth-child(n + 2) {
  margin: 40px 0 0;
}
.newslist {
  transition: 0.3s opacity;
}
.newslist .newslist_date {
  font-family: 'Ubuntu', sans-serif;
  font-weight: bold;
  line-height: 1;
}
.newslist .newslist_ttl {
  margin: 20px 0 0;
  font-size: 20px;
  font-weight: bold;
  line-height: 1.8;
  text-decoration: underline;
}
.l_policy {
  padding: 40px 0 0;
  position: relative;
  z-index: 1;
  background-color: #fff;
}
.policy {
  width: 90%;
  max-width: 800px;
  margin: auto;
}
.policy .policy_ttl {
  font-size: 20px;
  font-weight: bold;
}
.policy .policy_ttl:nth-child(n + 2) {
  margin: 50px 0 0;
}
.policy .policy_txt {
  margin: 20px 0 0;
  line-height: 1.8;
}
.policy .policy_txt.policy_txt__right {
  text-align: right;
}
.policy .policy_list {
  margin: 20px 0 0 20px;
}
.policy .policy_list > li {
  list-style: decimal;
  line-height: 1.8;
}
.policy .policy_list > li:nth-child(n + 2) {
  margin: 20px 0 0;
}
.policy .policy_list > li > div {
  margin: 30px 0 0;
}
.policy .policy_list > li > div > div:nth-child(1) {
  font-weight: bold;
}
.policy .policy_list > li > div > div:nth-child(2) {
  margin: 10px 0 0;
}
.l_contact {
  padding: 0 0 100px;
  position: relative;
  z-index: 1;
  background-color: #fff;
}
.contact {
  width: 90%;
  max-width: 680px;
  margin: auto;
}
.contact.form .back_btn {
  display: none;
}
.contact.form .contact_body span {
  color: #d2585a;
  font-size: 72%;
}
.contact.confirm .back_btn {
  display: inline-block;
}
.contact.confirm .txtbox, .contact.confirm .txtarea {
  border: none;
  border-bottom: 1px solid #222831;
  border-top: 1px solid #222831;
  padding: 10px 0;
}
.contact .contact_head {
  text-align: center;
  line-height: 1.8;
}
.contact .contact_head > span {
  color: #d2585a;
}
.contact .contact_body {
  margin: 30px 0 0;
}
.contact .contact_body .contact_body_ttl {
  font-size: 20px;
  font-weight: bold;
  line-height: 1;
}
.contact .contact_body .contact_body_ttl:nth-child(n + 2) {
  margin: 40px 0 0;
}
.contact .contact_body .contact_body_box {
  margin: 15px 0 0;
}
.contact .contact_thanks {
  text-align: center;
}
.contact .contact_thanks .contact_thanks_ttl {
  font-size: 25px;
}
.contact .contact_thanks .contact_thanks_txt {
  margin: 20px 0 0;
  line-height: 1.8;
}
.contact .contact_foot .contact_foot_policy {
  margin: 40px 0 0;
}
.contact .contact_foot .contact_foot_btn {
  margin: 100px 0 0;
}
.contact .contact_foot .contact_foot_btn .contact_foot_btn_inner {
  width: 100%;
  max-width: 300px;
  height: 60px;
  font-size: 18px;
  font-weight: bold;
}
.txtbox {
  border: 1px solid #222831;
  background-color: #fff;
}
.txtbox > input {
  width: 100%;
  padding: 10px;
}
.txtarea {
  border: 1px solid #222831;
  background-color: #fff;
}
.txtarea > textarea {
  width: 100%;
  min-height: 160px;
  padding: 10px;
}
.l_checkbox {
  display: inline-block;
}
.checkbox > input {
  display: none;
}
.checkbox > label {
  padding: 0 0 0 28px;
  position: relative;
  line-height: 1;
  cursor: pointer;
}
.checkbox > label::before, .checkbox > label::after {
  display: block;
  position: absolute;
  bottom: 50%;
  content: '';
}
.checkbox > label::before {
  width: 16px;
  height: 16px;
  display: block;
  left: 0;
  transform: translateY(50%);
  background-color: #fff;
  border: 1px solid #222831;
  transition: 0.3s border;
}
.checkbox > label::after {
  width: 10px;
  height: 5px;
  left: 1px;
  transform: rotate(-45deg) translateY(50%);
  border-left: 2px solid #222831;
  border-bottom: 2px solid #222831;
  opacity: 0;
  transition: 0.2s opacity;
}
.checkbox > input:checked + label::after {
  opacity: 1;
}
.contactpolicy .contactpolicy_head {
  line-height: 1.8;
}
.contactpolicy .contactpolicy_body {
  margin: 40px 0 0;
}
.contactpolicy .contactpolicy_body .contactpolicy_body_main {
  height: 200px;
  padding: 15px;
  overflow: scroll;
  border: 1px solid #222831;
  background-color: #fff;
}
.contactpolicy .contactpolicy_body .contactpolicy_body_main .contactpolicy_body_main_inner {
  font-size: 14px;
  line-height: 1.8;
}
.contactpolicy .contactpolicy_body .contactpolicy_body_main .contactpolicy_body_main_inner > div {
  font-weight: bold;
}
.contactpolicy .contactpolicy_body .contactpolicy_body_main .contactpolicy_body_main_inner > div:nth-child(n + 2) {
  margin: 25px 0 0;
}
.contactpolicy .contactpolicy_body .contactpolicy_body_main .contactpolicy_body_main_inner > p {
  margin: 10px 0 0;
}
.contactpolicy .contactpolicy_body .contactpolicy_body_main .contactpolicy_body_main_inner > ul {
  margin: 10px 0 0;
}
.contactpolicy .contactpolicy_body .contactpolicy_body_main .contactpolicy_body_main_inner > ul > li {
  list-style-type: disc;
  list-style-position: inside;
}
.contactpolicy .contactpolicy_body .contactpolicy_body_sub {
  margin: 30px 0 0;
  line-height: 1.8;
}
.contactpolicy .contactpolicy_foot {
  margin: 30px 0 0;
  text-align: center;
}
.l_sendbtn {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.sendbtn {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  background-color: #222831;
  transition: 0.3s background, 0.5s border-radius;
}
.sendbtn .sendbtn_txt {
  position: relative;
  color: #fff;
  font-size: 1em;
  text-align: center;
  line-height: 1;
  transition: 0.3s color;
}
.contact.form .sendbtn.sendbtn_txt, .contact.confirm .sendbtn.sendbtn_txt {
  position: relative;
  color: #fff;
  font-size: 1em;
  text-align: center;
  line-height: 1;
  transition: 0.3s color;
  cursor: pointer;
}
@media (min-width: 1101px) {
  .hero .hero_body {
    text-align: center;
  }
  .card::before {
    bottom: 50%;
    transform: translateY(50%);
  }
  .card {
    padding: 30px 100px;
    display: flex;
    flex-flow: row wrap;
    align-items: center;
    justify-content: space-between;
    border-radius: 1000px;
  }
  .card:nth-child(odd)::before {
    left: 0;
  }
  .card:nth-child(even) {
    flex-flow: row-reverse wrap;
  }
  .card:nth-child(even)::before {
    right: 0;
  }
  .card .card_inner:nth-child(1) {
    width: 200px;
  }
  .card .card_inner:nth-child(2) {
    width: calc(100% - 350px);
  }
  .servicenav {
    text-align: center;
  }
  .servicenav .servicenav_btn {
    margin: 10px;
    padding: 15px 20px;
    display: inline-block;
    font-size: 16px;
    color: #fff;
    background-color: #3fb6c1;
    border-radius: 1000px;
  }
  .servicenav .servicenav_btn:hover {
    background-color: #bbbfca;
  }
  .aboutus .aboutus_txt {
    text-align: center;
  }
  .company .company_body .company_body_map {
    border-radius: 1000vw 0 0 1000vw;
  }
  .l_step {
    display: flex;
    flex-flow: row wrap;
    justify-content: space-between;
  }
  .l_step > li {
    width: calc((100% - 30px) / 4);
    padding: 30px 50px 30px 15px;
    border-radius: 0 150px 150px 0;
  }
  .l_step > li:last-child {
    width: calc(((100% - 30px) / 4) - 40px);
    padding: 30px 15px;
    border-radius: 0;
  }
  .l_step > li:nth-child(n + 2)::before {
    width: 0;
    height: 0;
    position: absolute;
    content: '';
    border-style: solid;
    right: calc(100% + 40px);
    bottom: 50%;
    transform: translateY(50%);
    border-width: 15px 0 15px 15px;
    border-color: transparent transparent transparent #222831;
  }
  .recruit {
    width: 90%;
    padding: 50px 0;
  }
  .recruit::before {
    width: 100vw;
    height: 100%;
    position: absolute;
    right: 50%;
    bottom: 50%;
    transform: translate(50%, 50%);
    content: '';
    background-color: #bbbfca;
    border-radius: 0 1000vw 1000vw 0;
  }
  .recruit:nth-child(even)::before {
    border-radius: 1000vw 0 0 1000vw;
  }
  .newslist:hover {
    opacity: 0.6;
  }
  .contact .contact_foot .contact_foot_btn {
    width: 100%;
    display: flex;
    justify-content: space-around;
    flex-flow: row wrap;
  }
  .contactpolicy .contactpolicy_head {
    text-align: center;
  }
  .contactpolicy .contactpolicy_body .contactpolicy_body_sub {
    text-align: center;
  }
  .sendbtn:hover {
    background-color: #3fb6c1;
    border-radius: 1000px;
  }
  .sendbtn:hover .sendbtn_txt {
    color: #fff;
  }
}
@media (max-width: 1100px) {
  .hero .hero_head {
    height: calc(200px + 12vw);
  }
  .hero .hero_head .hero_head_ttl {
    font-size: min(6vw, 30px);
    line-height: 1.5;
  }
  .hero .hero_body {
    padding: 30px 20px 0;
    font-size: 14px;
  }
  .card::before {
    width: 45%;
    height: 150px;
    right: 0;
    bottom: 0;
    border-radius: 1000px 0 0 1000px;
  }
  .card {
    padding: 20px;
  }
  .card .card_inner:nth-child(1) {
    width: 60%;
    max-width: 300px;
    margin: auto;
  }
  .card .card_inner:nth-child(2) {
    margin: 20px 0 0;
    text-align: center;
  }
  .card .card_inner:nth-child(2) .card_inner_ttl {
    font-size: 20px;
    text-align: center;
  }
  .card .card_inner:nth-child(2) .card_inner_txt {
    display: inline-block;
    font-size: 14px;
    text-align: left;
  }
  .l_contents {
    padding: 30px 0 80px;
  }
  .contents .contents_head .contents_head_ttl {
    font-size: min(11vw, 40px);
  }
  .contents .contents_body {
    width: 100%;
  }
  .contents .contents_body:nth-child(n + 2) {
    margin-top: 20px;
  }
  .contents .contents_body .contents_body_ttl {
    font-size: min(11vw, 30px);
  }
  .contents .contents_body .contents_body_ttl:nth-child(n + 2) {
    margin-top: 50px;
  }
  .contents .contents_body .contents_body_main:nth-child(n + 2) {
    margin-top: 30px;
  }
  .contents .contents_body .contents_body_nav {
    margin-top: 30px;
  }
  .contents .contents_foot {
    margin: 80px 0 0;
  }
  .contents .contents_foot .contents_foot_inner .contents_foot_inner_ttl, .contents .contents_foot .contents_foot_inner .contents_foot_inner_txt {
    width: 90%;
  }
  .contents .contents_foot .contents_foot_inner .contents_foot_inner_btn {
    height: 55px;
    font-size: 18px;
  }
  .servicenav .servicenav_btn {
    display: block;
    font-size: 16px;
    text-decoration: underline;
  }
  .servicenav .servicenav_btn::before {
    content: '・ ';
  }
  .servicenav .servicenav_btn:nth-child(n + 2) {
    margin: 25px 0 0;
  }
  .servicenav .servicenav_btn:active {
    opacity: 0.5;
  }
  .bgbox .bgbox_head {
    font-size: min(7vw, 24px);
    line-height: 1.5;
  }
  .bgbox .bgbox_body {
    font-size: 16px;
  }
  .l_aboutus {
    padding: 40px 0 0;
  }
  .l_aboutus > li {
    padding: 30px 20px;
  }
  .aboutus .aboutus_ttl {
    font-size: min(6vw, 20px);
  }
  .aboutus .aboutus_img {
    max-width: 250px;
  }
  .company .company_body {
    margin: 70px 0 0;
  }
  .company .company_body .company_body_ttl {
    font-size: min(11vw, 40px);
  }
  .company .company_body .company_body_map {
    height: 40vh;
    margin: 30px 0 0;
  }
  .l_works {
    padding: 30px 0 0;
  }
  .l_step > li {
    padding: 30px 20px;
  }
  .l_step > li:nth-child(n + 2) {
    margin: 50px 0 0;
  }
  .l_step > li:nth-last-child(n + 2) {
    padding: 30px 20px 90px 20px;
    border-radius: 0 0 150px 150px;
  }
  .l_step > li:nth-last-child(n + 2)::before {
    width: 0;
    height: 0;
    position: absolute;
    content: '';
    border-style: solid;
    bottom: 20px;
    right: 50%;
    transform: translateX(50%);
    border-width: 20px 20px 0 20px;
    border-color: #222831 transparent transparent transparent;
  }
  .step .step_txt {
    display: inline-block;
    font-size: 14px;
    text-align: left;
  }
  .recruit {
    padding: 30px 0;
    background-color: #bbbfca;
  }
  .recruit .recruit_head {
    font-size: min(11vw, 40px);
  }
  .recruit .recruit_body:nth-child(n + 2) {
    margin-top: 30px;
  }
  .l_news {
    padding: 50px 0 0;
  }
  .news .news_head {
    font-size: min(11vw, 40px);
  }
  .newslist:active {
    opacity: 0.6;
  }
  .newslist .newslist_ttl {
    font-size: 16px;
  }
  .l_policy {
    padding: 30px 0 0;
  }
  .policy .policy_ttl {
    font-size: min(5vw, 17px);
    text-align: center;
  }
  .l_contact {
    padding: 0 0 80px;
  }
  .contact .contact_head {
    text-align: left;
  }
  .contact .contact_thanks .contact_thanks_ttl {
    font-size: 16px;
  }
  .contact .contact_foot .contact_foot_btn {
    margin-top: 80px;
  }
  .contact .contact_foot .contact_foot_btn .contact_foot_btn_inner {
    margin: auto;
  }
  .contact .contact_foot .contact_foot_btn .contact_foot_btn_inner:nth-child(2) {
    margin-top: 20px;
  }
  .contactpolicy .contactpolicy_body .contactpolicy_body_main {
    height: 25vh;
  }
  .contactpolicy .contactpolicy_body .contactpolicy_body_main .contactpolicy_body_main_inner {
    font-size: 13px;
  }
  .sendbtn:active {
    background-color: #3fb6c1;
    border-radius: 1000px;
  }
  .sendbtn:active .sendbtn_txt {
    color: #fff;
  }
}
@media screen and (max-width: 370px) {
  .hero .hero_body {
    font-size: 13px;
  }
}

.ta_r {
  text-align: right;
}
.mt30 {
  margin-top:30px;
}
.mt50 {
  margin-top:50px;
}
.mb50 {
  margin-bottom:50px;
}
.f24px {
  font-size:24px;
}
.f13px {
  font-size:12px;
}

.works-img img {
    max-height: 500px;
    width: 70%;
    object-fit: cover;
    margin: 0 auto;
}
@media (max-width: 600px) {
.works-img img {
    max-height: auto;
    width: 90%;
    object-fit: cover;
    margin: 0 auto;
}
}

/*-- 実績タブcss 20221121追記 --*/

/*タブ切り替え全体のスタイル*/
.tabs {
  margin-top: 50px;
  padding-bottom: 40px;
  background-color: #fff;
  /*box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);*/
  width: 90%;
  max-width: 1000px;
  margin: 40px auto 0;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
}

/*タブのスタイル*/
.tab_item {
  /*width: calc(100%/3);*/
  height: 50px;
  /*border-bottom: 3px solid #5ab4bd;
  border-right: 1px solid #fff;*/
  background-color: #d9d9d9;
  line-height: 50px;
  font-size: 16px;
  color: #565656;
  display: block;
  /*float: left;*/
  text-align: center;
  font-weight: bold;
  transition: all 0.2s ease;
  border-radius: 1000px;
  margin: 10px;
  padding: 0 20px 15px;
  cursor: pointer;
}
.tab_item:hover {
  opacity: 0.75;
}
.tab_item:nth-child(3n) {
  border-right: none;
}

/*ラジオボタンを全て消す*/
input[name="tab_item"] {
  display: none;
}

/*タブ切り替えの中身のスタイル*/
.tab_content {
  display: none;
  padding: 40px 20px;
  clear: both;
  overflow: hidden;
  width: 100%;
}


/*選択されているタブのコンテンツのみを表示*/
#movie:checked ~ #movie_content,	
#line:checked ~ #line_content,
#web:checked ~ #web_content,	
#seo:checked ~ #seo_content,	
#support:checked ~ #support_content,
#pr:checked ~ #pr_content,
#sns:checked ~ #sns_content {
  display: block;
}

/*選択されているタブのスタイルを変える*/
.tabs input:checked + .tab_item {
  background-color: #3fb6c1;
  color: #fff;
}	

.c-txtsp {
  text-align: center;
}

.works_inner {
  width: 90%;
  max-width: 376px;
  height: 65px;
  margin: 60px auto 0;
  font-size: 20px;
  font-weight: bold;
}

@media (max-width: 600px) {
.tab_item {
  font-size: 14px;
}
}
@media (max-width: 360px) {
.tab_item {
  font-size: 12px;
}
}


