@charset "utf-8";
/* CSS Document */

html {
  font-size: 62.5%;
  font-feature-settings: "palt";
  scroll-behavior: smooth;
}
body {
  font-family: 'Noto Sans JP', sans-serif;
  color: #000;
  font-size: 16px;
  font-feature-settings: "palt";
  letter-spacing: 0.05em;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
img {
  max-width: 100%;
  height: auto;
}
a {
  text-decoration: none;
  transition: .3s;
}
a:hover {
  opacity: .8;
}
.SP {
  display: none;
}
.wrapp {
  max-width: 1200px;
  margin: 0 auto;
}
.inner {
  width: 800px;
}
p {
  line-height: 1.8em;
}
/*header*/
header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 40px 0;
  max-width: 1200px;
  margin: 0 auto;
}
header .logo img {
  display: block;
  width: 450px;
}
header a {
  font-weight: bold;
  padding: 15px 0;
}
header div.PC a:first-of-type {
  color: #000;
  margin-right: 40px;
}
header div.PC a:last-of-type {
  color: #fff;
  background-color: #000;
  border-radius: 50px;
  padding: 15px 30px;
}
/*fv*/
.sec_fv {
  margin-top: 50px;
}
.fv_logo {
  display: block;
  width: 200px;
  margin: 0 auto 50px auto;
}
h1 {
  text-align: center;
  font-size: 32px;
  font-weight: bold;
  margin-bottom: 20px;
}
h1 + p {
  text-align: center;
}
h1.page_main {
  font-weight: bold;
  font-size: 20px;
  margin-bottom: 15px;
  display: flex;
  gap: 15px;
  align-items: center;
  text-align: left;
}
.sd_cont {
  margin: 60px auto;
}
.scroll_down {
  display: block;
  text-align: center;
  position: relative;
}
.scroll_down p {
  letter-spacing: .1vw;
}
.scroll_down a {
  display: inline-block;
  line-height: 18px;
  font-size: 12px;
  font-weight: normal;
  color: #000;
  letter-spacing: 2px;
  text-decoration: none;
}
.scroll_down .mouse {
  position: relative;
  display: block;
  width: 30px;
  height: 50px;
  margin: 0 auto 10px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  border: 2px solid #000;
  border-radius: 23px;
}
.scroll_down .mouse > * {
  position: absolute;
  display: block;
  top: 29%;
  left: 47%;
  width: 10px;
  height: 10px;
  margin: -4px 0 0 -4px;
  background: #000;
  border-radius: 50%;
  animation: ani-mouse 3s linear infinite;
}

@keyframes ani-mouse {
  0% {
    opacity: 0;
    top: 70%;
  }
  40% {
    opacity: 0;
    top: 30%;
  }
  70% {
    opacity: 1;
    top: 30%;
  }
  100% {
    opacity: 1;
    top: 70%;
  }
}
.sd_cont .bar {
  display: block;
  width: 1px;
  height: 20px;
  background-color: #000;
  margin: 0 auto;
}
.sd_cont .bar.bar_bottom {
  height: 40px;
  margin-top: -11px;
}
/*conditions*/
.conditions_cont {
  padding: 60px;
  border: solid 2px #000;
  border-radius: 30px;
}
.conditions_cont h2 {
  text-align: center;
  font-size: 20px;
  font-weight: bold;
}
.conditions_cont p {
  width: fit-content;
  margin: 40px auto;
  font-weight: 500;
}
.conditions_cont p a {
  border-bottom: solid 1px #000;
  color: #000;
}
.conditions_cont p + a {
  color: #000;
  font-size: 14px;
  border-bottom: solid 1px #000;
}
.conditions_cont div {
  width: fit-content;
  margin: 0 auto;
}
.for_list {
  display: block;
  text-align: center;
  color: #fff;
  background-color: #000;
  border-radius: 300px;
  border-radius: 10px;
  width: 300px;
  margin: 80px auto 100px auto;
  font-weight: bold;
  padding: 15px;
}
.sec_conditions .link_top_cf7 {
  border-bottom: solid 1px #000;
  color: #000;
}
/*footer*/
footer {
  background-color: #000;
  padding: 80px 50px;
  color: #fff;
  text-align: center;
}
footer a img {
  display: block;
  width: 450px;
  margin: 0 auto;
}
footer ul {
  display: flex;
  gap: 20px;
  justify-content: center;
  margin: 50px auto 30px auto;
  border-bottom: solid 1px #fff;
  padding-bottom: 20px;
}
footer ul a {
  color: #fff;
  font-weight: bold;
}
small {
  font-size: 13px;
}
/*---
page
---*/
/*single*/
/*main*/
.bread {
  display: flex;
  gap: 3px 10px;
  align-items: center;
  flex-wrap: wrap;
}
.bread a {
  color: #000;
  font-size: 14px;
  border-bottom: solid 1px #000;
  display: block;
  width: fit-content;
  line-height: 1.3em;
}
.bread li {
  display: flex;
  align-items: center;
  gap: 10px;
}
.bread li::after {
  content: '›';
  font-size: 25px;
  display: block;
  margin-bottom: 5px;
}
.bread li:last-of-type::after {
  content: '';
}
.sec_detail {
  margin-top: 30px;
}
.detail_cont_main {
  margin-bottom: 30px;
}
.detail_cont_main p {
  font-weight: bold;
  font-size: 20px;
  margin-bottom: 15px;
  display: flex;
  gap: 15px;
  align-items: center;
}
.detail_cont_main p span {
  background-color: #000;
  color: #fff;
  font-size: 16px;
  font-weight: bold;
  padding: 0 20px;
  border-radius: 10px;
  display: block;
}
.detail_cont_main p + img,
.detail_cont_main h1 + img {
  border-radius: 20px;
  display: block;
  max-height: 400px;
  height: auto;
  width: 100%;
  object-fit: cover;
  object-position: center;
}
.sml_tit {
  color: #9c8300;
  font-size: 15px;
  font-weight: bold;
  display: block;
  margin-bottom: 20px;
  line-height: 1.5em;
}
.detail_cont {
  margin-bottom: 50px;
}
.detail_cont_about h2 {
  font-size: 30px;
  font-weight: bold;
  line-height: 1.5em;
  margin-bottom: 20px;
}
.star {
  display: block;
  margin-bottom: 20px;
}
.detail_cont_child h3 {
  font-weight: bold;
  font-size: 20px;
  margin-bottom: 10px;
  line-height: 1.5em;
}
.gallery_list {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  margin-top: 30px;
}
.gallery_list li {
  width: calc(95%/3);
}
.gallery_list li img {
  border-radius: 10px;
}
.main_flex {
  margin-bottom: 150px;
  display: flex;
  gap: 50px;
  margin-top: 30px;
}
.main_cont {
  max-width: 70%;
}
/*side*/
.side_cont {
  width: 315px;
}
.side_tit {
  font-size: 20px;
  font-weight: bold;
  border-bottom: solid 2px #000;
  padding-bottom: 15px;
}
.sec_side_comp {
  margin-bottom: 50px;
}
.profile {
  display: flex;
  align-items: center;
  gap: 20px;
}
.profile p {
  font-weight: bold;
}
.profile img {
  width: 60px;
  height: 60px;
  object-fit: cover;
  border-radius: 50%;
}
.profile_box {
  padding: 20px 0;
  border-bottom: dashed 1px #ccc;
}
.profile_box:last-of-type {
  border-bottom: none;
}
.profile_box:last-of-type span {
  line-height: 2em;
}
.profile_detail.profile_business span {
  line-height: 2em;
}
.profile_detail a {
  color: #000;
  margin-bottom: 25px;
  display: block;
}
.profile_detail a.detail_btn {
  display: block;
  padding: 15px;
  border-radius: 10px;
  font-weight: bold;
  text-align: center;
  background-color: #000;
  color: #fff;
  font-size: 15px;
}
.profile_detail span {
  display: block;
  margin-bottom: 25px;
  font-size: 15px;
  line-height: 1.5em;
}
.profile_detail span:last-of-type {
  margin-bottom: 0;
}
.sec_side_connect li {
  margin: 40px 0;
}
.sec_side_connect li a {
  color: #000;
}
.sec_side_connect li img {
  width: 100%;
  height: 160px;
  object-fit: cover;
  border-radius: 10px;
  display: block;
  margin-bottom: 15px;
}
.sec_side_connect li p {
  font-weight: bold;
  font-size: 15px;
}
/*pages*/
.pages_section {
  margin-top: 30px;
  margin-bottom: 150px;
}
.pages_section h2 {
  text-align: center;
  font-size: 32px;
  font-weight: bold;
  margin-bottom: 80px;
}
.company_list li {
  border-bottom: solid 1px #cfcfcf;
  padding: 20px 30px;
}
.company_list li a {
  display: flex;
  gap: 30px;
  color: #000;
  align-items: center;
}
.company_list li a img {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  object-fit: cover;
}
.company_list li a h3 {
  font-weight: bold;
  margin-bottom: 10px;
  line-height: 1.5em;
}
.company_list li a p {
  font-size: 15px;
}
/*conditions*/
.about_txt {
  width: fit-content;
  margin: 0 auto;
}
.sec_conditions .inner {
  max-width: 800px;
  width: fit-content;
  margin: 50px auto;
}
.sec_conditions li span {
  font-weight: bold;
  display: block;
  margin-bottom: 15px;
}
.sec_conditions li span,
.sec_conditions li p {
  font-size: 15px;
}
.sec_conditions .inner ul {
  margin-bottom: 50px;
}
input[name='pp_checkbox'] {
  display: none;
}
.pp_checkbox {
  box-sizing: border-box;
  cursor: pointer;
  display: inline-block;
  padding: 5px 30px;
  position: relative;
  width: auto;
}
.pp_checkbox::before {
  background: #fff;
  border: 1px solid #231815;
  content: '';
  display: block;
  height: 16px;
  left: 5px;
  margin-top: -8px;
  position: absolute;
  top: 50%;
  width: 16px;
  border-radius: 3px;
}
.pp_checkbox::after {
  border-right: 3px solid #000;
  border-bottom: 3px solid #000;
  content: '';
  display: block;
  height: 9px;
  left: 10px;
  margin-top: -7px;
  opacity: 0;
  position: absolute;
  top: 50%;
  transform: rotate(45deg);
  width: 5px;
}
.pp_checkbox.checked::after {
  opacity: 1;
}
form table {
  width: 800px;
  margin: 50px auto;
}
form table th {
  width: 22%;
  padding: 15px;
  font-weight: bold;
  vertical-align: middle;
}
form table .txtarea th {
  vertical-align: top;
  padding-top: 30px;
}
form table td {
  width: 78%;
  padding: 15px;
}
form table input,
form table select,
form table textarea {
  padding: 15px;
  border-radius: 5px;
  border: solid 1px #000;
  width: 95%;
  font-family: inherit;
  background-color: #fff;
}
form table select {
  width: 100%;
}
form .select_wrap {
  position: relative;
}

form .select_wrap::after {
  content: "";
  position: absolute;
  top: 34px;
  right: 30px;
  width: 7px;
  height: 7px;
  border-right: 2px solid #333;
  border-bottom: 2px solid #333;
  transform: rotate(45deg);
}
form select {
  -webkit-appearance: none;
  appearance: none;
}
.about_txt span,
form table th span {
  color: #9c8300;
}
.pp_txt {
  text-align: center;
}
.pp_txt a {
  color: #000;
  border-bottom: solid 1px #000;
}
.pp_check {
  text-align: center;
  margin: 30px auto;
}
.submit {
  display: block;
  background-color: #000;
  color: #fff;
  font-family: inherit;
  font-weight: bold;
  font-size: 16px;
  padding: 15px;
  border-radius: 10px;
  width: 300px;
  margin: 0 auto;
  text-align: center;
  border: none;
  cursor: pointer;
  transition: .3s;
}
.submit:hover {
  opacity: .8;
}
.submit.no_check {
  background-color: #cfcfcf;
  pointer-events: none;
}
/*thanks*/
.sec_thanks .about_txt {
  text-align: center;
}
.sec_thanks .about_txt + p {
  text-align: center;
  margin: 50px auto;
}
.sec_thanks .about_txt + p span {
  display: block;
  font-weight: bold;
}
.sec_thanks a {
  background-color: #000;
  color: #fff;
  display: block;
  border-radius: 10px;
  width: 300px;
  padding: 15px;
  text-align: center;
  font-weight: bold;
  margin: 0 auto;
}
/*responsive*/
@media screen and (max-width:1260px) {
  header {
    max-width: 95%;
  }
  .wrapp {
    max-width: 95%;
  }
  header a.logo {
    max-width: 35%;
    min-width: 250px;
    padding: 0;
  }
  .main_cont .inner {
    width: 100%;
  }
}
@media screen and (max-width:1000px) {
  .main_flex {
    display: block;
  }
  .side_cont {
    width: 100%;
  }
  .main_cont {
    max-width: 100%;
  }
}
@media screen and (max-width:950px) {
  header {
    padding: 20px 0;
  }
  header div.PC {
    display: none;
  }
  header .SP {
    display: block;
  }
  header .SP .inner a {
    display: block;
    font-size: 15px;
    color: #000;
    padding: 20px;
    margin-bottom: 20px;
    text-align: center;
  }
  header .SP .inner {
    width: fit-content;
  }
  header .SP .inner a:last-of-type {
    background-color: #000;
    color: #fff;
    border-radius: 50px;
    padding: 20px;
  }
  /*============
nav
=============*/
  nav {
    display: block;
    position: fixed;
    top: 0;
    left: -300px;
    bottom: 0;
    width: 280px;
    background: #ffffff;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    transition: all .5s;
    z-index: 3;
    opacity: 0;
  }
  .open nav {
    left: 0;
    opacity: 1;
  }
  nav .inner {
    padding: 18px;
  }
  nav .inner ul {
    list-style: none;
    margin: 0;
    padding: 0;
  }
  nav .inner ul li {
    position: relative;
    margin: 0;
    border-bottom: 1px solid #333;
  }
  nav .inner ul li a {
    display: block;
    color: #333;
    font-size: 14px;
    padding: 1em;
    text-decoration: none;
    transition-duration: 0.2s;
  }
  nav .inner ul li a:hover {
    background: #e4e4e4;
  }
  /*============
.toggle_btn
=============*/
  .toggle_btn {
    display: block;
    position: fixed;
    top: 20px;
    right: 20px;
    width: 20px;
    height: 30px;
    transition: all .5s;
    cursor: pointer;
    z-index: 3;
  }
  .toggle_btn span {
    display: block;
    position: absolute;
    left: 0;
    width: 20px;
    height: 2px;
    background-color: #333;
    border-radius: 4px;
    transition: all .5s;
  }
  .toggle_btn span:nth-child(1) {
    top: 4px;
  }
  .toggle_btn span:nth-child(2) {
    top: 14px;
  }
  .toggle_btn span:nth-child(3) {
    bottom: 4px;
  }
  .open .toggle_btn span {
    background-color: #fff;
  }
  .open .toggle_btn span:nth-child(1) {
    -webkit-transform: translateY(10px) rotate(-315deg);
    transform: translateY(10px) rotate(-315deg);
  }
  .open .toggle_btn span:nth-child(2) {
    opacity: 0;
  }
  .open .toggle_btn span:nth-child(3) {
    -webkit-transform: translateY(-10px) rotate(315deg);
    transform: translateY(-10px) rotate(315deg);
  }
  /*============
#mask
=============*/
  #mask {
    display: none;
    transition: all .5s;
  }
  .open #mask {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #000;
    opacity: .8;
    z-index: 2;
    cursor: pointer;
  }
}
@media screen and (max-width:850px) {
  form table {
    width: 95%;
    margin: 9.091vw auto;
  }
  form table th {
    line-height: 1.5em;
  }
  .gallery_list {
    justify-content: center;
    gap: 10px;
  }
  .gallery_list li {
    width: calc(90%/3);
  }
  .detail_cont_main p {
    display: block;
  }
  .detail_cont_main p span {
    width: fit-content;
    font-size: 14px;
    margin-bottom: 10px;
  }
}
@media screen and (max-width:700px) {
  footer ul {
    flex-wrap: wrap;
  }
  .pages_section h2 {
    line-height: 1.5em;
  }
}
@media screen and (max-width:550px) {
  .main_flex {
    margin-top: 0;
  }
  .sec_detail {
    margin-top: 15px;
  }
  .profile_detail span {
    margin-bottom: 3.545vw;
  }
  .profile_detail a {
    margin-bottom: 3.545vw;
  }
  .detail_cont_child h3 {
    font-size: 18px;
  }
  .bread a {
    border-bottom: none;
    font-size: 10px;
  }
  .bread li::after {
    font-size: 14px;
    margin-bottom: 3px;
  }
  .detail_cont_main p .SP {
    display: block;
  }
  .detail_cont_main p {
    font-size: 18px;
  }
  .detail_cont_main p + img,
  .detail_cont_main h1 + img {
    max-height: 250px;
  }
  .sec_side_connect li p {
    font-size: 14px;
  }
  .gallery_list li {
    width: calc(90%/2);
  }
  .sml_tit {
    font-size: 14px;
  }
  .sml_tit .SP {
    display: block;
  }
  .detail_cont_about h2 {
    font-size: 5.455vw;
    margin-bottom: 3.636vw;
  }
  p {
    line-height: 1.5em;
  }
  .company_list li a p {
    font-size: 14px;
  }
  .company_list li {
    padding: 20px 0;
  }
  .company_list li a {
    gap: 20px;
    align-items: flex-start;
  }
  .company_list li a img {
    width: 50px;
    height: 50px;
  }
  form table th,
  form table td {
    display: block;
    width: 100%;
    padding: 15px 0;
  }
  form table input,
  form table textarea {
    width: 92%;
  }
  form table th {
    text-align: left;
    padding-bottom: 0;
    width: fit-content;
  }
  .pages_section {
    margin-bottom: 27.273vw;
  }
  .sec_conditions .inner {
    margin: 9.091vw auto;
  }
  .sec_conditions .inner ul {
    margin-bottom: 9.091vw;
  }
  .pages_section h2 {
    font-size: 25px;
    margin-bottom: 14.545vw;
  }
  .pages_section h2 .SP {
    display: block;
  }
  .wrapp {
    max-width: 90%;
  }
  body {
    font-size: 14px;
  }
  h1 {
    margin-bottom: 3.636vw;
    line-height: 1.5em;
  }
  h1 .SP {
    display: block;
  }
  .conditions_cont h2 {
    font-size: 18px;
  }
  .fv_logo {
    max-width: 50%;
  }
  .scroll_down .mouse {
    width: 20px;
    height: 40px;
  }
  .sd_cont {
    margin: 40px auto;
  }
  .scroll_down .mouse > * {
    width: 8px;
    height: 8px;
  }
  .conditions_cont {
    padding: 30px 25px;
  }
  .conditions_cont p {
    margin: 7.273vw auto;
  }
  .for_list {
    display: block;
    text-align: center;
    color: #fff;
    background-color: #000;
    max-width: 80%;
    margin: 14.545vw auto 18.182vw auto;
    font-weight: bold;
  }
  footer {
    padding: 50px 20px;
  }
}
@media screen and (max-width:410px) {
  form table input,
  form table textarea {
    width: 90%;
  }
}
/*animation*/
.fuwa_out {
  display: none;
}
.up {
  transition: 0.8s ease-in-out;
  transform: translateY(30px);
  opacity: 0;
}
.up.on {
  transform: translateY(0);
  opacity: 1.0;
}
/*wordpress*/
.wpcf7-not-valid-tip {
  font-size: 14px !important;
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
  border: none;
}
.wpcf7 form .wpcf7-response-output {
  background-color: #dc3232;
  color: #fff;
  font-weight: bold;
  display: block;
  margin: 0 auto !important;
  width: 80%;
  padding: 10px;
  text-align: center;
}

/*page nav*/
.pagination {
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: center;
  margin-top: 40px;
}
.page-numbers {
  display: block;
  background-color: #000;
  color: #fff;
  padding: 10px;
  text-align: center;
  width: fit-content;
  font-weight: bold;
  border: solid 1px #000;
  font-size: 14px;
  border-radius: 5px;
}
.page-numbers.current {
  background-color: #fff;
  color: #000;
}
/*検索form*/
.company_search {
  width: fit-content;
  margin: 0 0 0 auto;
  display: flex;
  gap: 5px;
}
#company-q {
  border: solid 1px #000;
  padding: 10px;
  border-radius: 5px;
  font-family: inherit;
  font-size: inherit;
  width: 220px;
}
.company_search button {
  display: block;
  border: solid 1px #000;
  background-color: #000;
  color: #fff;
  font-family: inherit;
  font-size: inherit;
  border-radius: 5px;
  padding: 10px;
}
.wpcf7-not-valid-tip {
  text-align: center;
}