@charset "UTF-8";
/*
Theme Name:オリジナルテーマ
*/
.mb20 {
  margin-bottom: min(20px, 1.5625vw);
}
@media screen and (max-width: 767px) {
  .mb20 {
    margin-bottom: min(10px, 1.3037809648vw);
  }
}

.mb40 {
  margin-bottom: min(40px, 3.125vw);
}
@media screen and (max-width: 767px) {
  .mb40 {
    margin-bottom: min(20px, 2.6075619296vw);
  }
}

.mb80 {
  margin-bottom: min(80px, 6.25vw);
}
@media screen and (max-width: 767px) {
  .mb80 {
    margin-bottom: min(40px, 5.2151238592vw);
  }
}

.mb120 {
  margin-bottom: min(120px, 9.375vw);
}
@media screen and (max-width: 767px) {
  .mb120 {
    margin-bottom: min(60px, 7.8226857888vw);
  }
}

.mb160 {
  margin-bottom: min(160px, 12.5vw);
}
@media screen and (max-width: 767px) {
  .mb160 {
    margin-bottom: min(80px, 10.4302477184vw);
  }
}

.mb200 {
  margin-bottom: min(200px, 15.625vw);
}
@media screen and (max-width: 767px) {
  .mb200 {
    margin-bottom: min(100px, 13.037809648vw);
  }
}

.pb20 {
  padding-bottom: min(20px, 1.5625vw);
}
@media screen and (max-width: 767px) {
  .pb20 {
    padding-bottom: min(10px, 1.3037809648vw);
  }
}

.pb40 {
  padding-bottom: min(40px, 3.125vw);
}
@media screen and (max-width: 767px) {
  .pb40 {
    padding-bottom: min(20px, 2.6075619296vw);
  }
}

.pb80 {
  padding-bottom: min(80px, 6.25vw);
}
@media screen and (max-width: 767px) {
  .pb80 {
    padding-bottom: min(40px, 5.2151238592vw);
  }
}

.pb120 {
  padding-bottom: min(120px, 9.375vw);
}
@media screen and (max-width: 767px) {
  .pb120 {
    padding-bottom: min(60px, 7.8226857888vw);
  }
}

.pb160 {
  padding-bottom: min(160px, 12.5vw);
}
@media screen and (max-width: 767px) {
  .pb160 {
    padding-bottom: min(80px, 10.4302477184vw);
  }
}

.pb200 {
  padding-bottom: min(200px, 15.625vw);
}
@media screen and (max-width: 767px) {
  .pb200 {
    padding-bottom: min(100px, 13.037809648vw);
  }
}

.mt20 {
  margin-top: min(20px, 1.5625vw);
}
@media screen and (max-width: 767px) {
  .mt20 {
    margin-top: min(10px, 1.3037809648vw);
  }
}

.mt40 {
  margin-top: min(40px, 3.125vw);
}
@media screen and (max-width: 767px) {
  .mt40 {
    margin-top: min(20px, 2.6075619296vw);
  }
}

.mt80 {
  margin-top: min(80px, 6.25vw);
}
@media screen and (max-width: 767px) {
  .mt80 {
    margin-top: min(40px, 5.2151238592vw);
  }
}

.mt120 {
  margin-top: min(120px, 9.375vw);
}
@media screen and (max-width: 767px) {
  .mt120 {
    margin-top: min(60px, 7.8226857888vw);
  }
}

.mt160 {
  margin-top: min(160px, 12.5vw);
}
@media screen and (max-width: 767px) {
  .mt160 {
    margin-top: min(80px, 10.4302477184vw);
  }
}

.mt200 {
  margin-top: min(200px, 15.625vw);
}
@media screen and (max-width: 767px) {
  .mt200 {
    margin-top: min(100px, 13.037809648vw);
  }
}

.pt20 {
  padding-top: min(20px, 1.5625vw);
}
@media screen and (max-width: 767px) {
  .pt20 {
    padding-top: min(10px, 1.3037809648vw);
  }
}

.pt40 {
  padding-top: min(40px, 3.125vw);
}
@media screen and (max-width: 767px) {
  .pt40 {
    padding-top: min(20px, 2.6075619296vw);
  }
}

.pt80 {
  padding-top: min(80px, 6.25vw);
}
@media screen and (max-width: 767px) {
  .pt80 {
    padding-top: min(40px, 5.2151238592vw);
  }
}

.pt120 {
  padding-top: min(120px, 9.375vw);
}
@media screen and (max-width: 767px) {
  .pt120 {
    padding-top: min(60px, 7.8226857888vw);
  }
}

.pt160 {
  padding-top: min(160px, 12.5vw);
}
@media screen and (max-width: 767px) {
  .pt160 {
    padding-top: min(80px, 10.4302477184vw);
  }
}

.pt200 {
  padding-top: min(200px, 15.625vw);
}
@media screen and (max-width: 767px) {
  .pt200 {
    padding-top: min(100px, 13.037809648vw);
  }
}

.fs-h2 {
  font-size: clamp(64px, min(128px, 10vw), 128px);
  line-height: 1.2;
}
@media screen and (max-width: 767px) {
  .fs-h2 {
    font-size: clamp(56px, min(64px, 8.3441981747vw), 64px);
  }
}

.fs-h2-s {
  font-size: clamp(48px, min(64px, 5vw), 64px);
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .fs-h2-s {
    font-size: clamp(40px, min(48px, 6.258148631vw), 48px);
  }
}

.fs-h3-l {
  font-size: clamp(32px, min(64px, 5vw), 64px);
}
.fs-h3 {
  font-size: clamp(24px, min(32px, 2.5vw), 32px);
}
.fs-h3-s {
  font-size: clamp(20px, min(24px, 1.875vw), 24px);
}
@media screen and (max-width: 767px) {
  .fs-h3-s {
    font-size: clamp(20x, min(24px, 3.1290743155vw), 24px);
  }
}

.fs-l {
  font-size: clamp(16px, min(20px, 1.5625vw), 20px);
}
@media screen and (max-width: 767px) {
  .fs-l {
    font-size: clamp(14px, min(20px, 2.6075619296vw), 20px);
  }
}

.fs-m {
  font-size: clamp(14px, min(16px, 1.25vw), 16px);
}
@media screen and (max-width: 767px) {
  .fs-m {
    font-size: clamp(12px, min(16px, 2.0860495437vw), 16px);
  }
}

.fs-s {
  font-size: clamp(12px, min(14px, 1.09375vw), 14px);
}
@media screen and (max-width: 767px) {
  .fs-s {
    font-size: clamp(10px, min(14px, 1.8252933507vw), 14px);
  }
}

* {
  margin: 0;
  padding: 0;
  font-family: "Noto Sans JP";
  font-feature-settings: "palt";
  overflow-wrap: anywhere; /* 収まらない場合に折り返す */
  word-break: normal; /* 単語の分割はデフォルトに依存 */
  line-break: strict; /* 禁則処理を厳格に適用 */
}

header .pc-menu {
  position: fixed;
  transition: 0.8s;
  display: flex;
  align-items: center;
  position: fixed;
  top: 0;
  z-index: 999;
  width: 100%;
}
@media screen and (max-width: 767px) {
  header .pc-menu {
    display: none;
  }
}
header .pc-menu a {
  margin-left: 24px;
}
header .pc-menu a img {
  margin-top: 8px;
}
header .pc-menu #nav {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  width: 100%;
  font-weight: bold;
  margin: 0;
}
header .pc-menu #nav .nav-item {
  display: table-cell;
  list-style-type: none;
  font-size: 20px;
  text-align: center;
}
header .pc-menu #nav .nav-item a {
  font-weight: 100;
  display: block;
  margin-left: 2em;
  color: #fff;
  padding: 10px 0;
  text-decoration: none;
  transition: 0.2s;
  text-shadow: 2px 2px 1px rgba(0, 0, 0, 0.2);
}
header .pc-menu #nav .nav-item a:hover {
  color: #868686;
}
@media screen and (max-width: 767px) {
  header .top-logo {
    display: block;
  }
}
header .top-logo img {
  width: 120px;
  height: auto;
}
header .openbtn1 {
  display: none;
}
@media screen and (max-width: 767px) {
  header .openbtn1 {
    display: block;
  }
}

main {
  font-feature-settings: "palt";
  overflow-wrap: anywhere; /* 収まらない場合に折り返す */
  word-break: normal; /* 単語の分割はデフォルトに依存 */
  line-break: strict; /* 禁則処理を厳格に適用 */
  position: relative;
  overflow: hidden;
  font-weight: bold;
}

footer {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  flex-direction: column;
  background-color: #000;
  padding-top: min(40px, 3.125vw);
  padding-bottom: min(40px, 3.125vw);
}
footer .footer-box {
  text-align: center;
}
footer .footer-box img {
  width: 160px;
  height: auto;
  object-fit: cover;
  margin-bottom: min(20px, 1.5625vw);
}
@media screen and (max-width: 767px) {
  footer .footer-box img {
    width: 80px;
  }
}
footer p {
  color: #fff;
  text-align: center;
  font-weight: normal;
}

h2 + p {
  font-size: clamp(20px, min(24px, 1.875vw), 24px);
  font-weight: bold;
}

#contact {
  background-color: #007cc9;
  padding: min(120px, 9.375vw) 0;
  max-width: 100vw !important;
  margin: 0 auto !important;
}
#contact .contact-wrap {
  width: 100%;
  max-width: min(1280px, 100vw);
  padding-left: min(100px, 7.8125vw);
  padding-right: min(100px, 7.8125vw);
  margin: 0 auto;
  text-align: center;
}
#contact .contact-wrap .title-box {
  display: flex;
  flex-direction: column;
  align-items: center;
}
#contact .contact-wrap .title-box h2 {
  color: #fff;
}
#contact .contact-wrap .title-box p {
  color: #fff;
  margin-bottom: min(40px, 3.125vw);
  font-weight: normal;
}
#contact .contact-wrap .detail {
  color: #fff;
  margin-bottom: min(80px, 6.25vw);
  font-weight: normal;
}
#contact .contact-wrap a.btn {
  color: #fff;
  border: solid #fff 4px;
  background-color: transparent;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 auto;
}
#contact .contact-wrap a.btn:hover {
  color: #007cc9;
}
#contact .contact-wrap a.btn-flat::before {
  background: #fff;
}

.content-wrap {
  width: 100%;
  max-width: min(1280px, 100vw);
  padding-left: min(100px, 7.8125vw);
  padding-right: min(100px, 7.8125vw);
  margin: 0 auto;
}
@media screen and (max-width: 767px) {
  .content-wrap {
    max-width: min(1280px, 100vw);
  }
}

.pc {
  display: block;
}
@media screen and (max-width: 767px) {
  .pc {
    display: none;
  }
}

.sp {
  display: none;
}
@media screen and (max-width: 767px) {
  .sp {
    display: block;
  }
}

a.btn {
  width: clamp(200px, min(288px, 22.5vw), 288px);
  height: clamp(48px, min(64px, 5vw), 64px);
  text-align: center;
  text-decoration: none;
  font-size: clamp(16px, min(20px, 1.5625vw), 20px);
  display: flex;
  justify-content: center;
  align-items: center;
  line-height: 1.5;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  text-align: center;
  vertical-align: middle;
  text-decoration: none;
  letter-spacing: 0.1em;
  color: #212529;
  border-radius: 8px;
}
a.btn:hover {
  color: #fff;
}

a.btn-flat {
  overflow: hidden;
  border: solid #000000 4px;
  color: #000;
  border-radius: 0;
  background: transparent;
  position: relative;
}
a.btn-flat::before {
  position: absolute;
  top: 0;
  left: 0px;
  width: 150%;
  height: 500%;
  content: "";
  -webkit-transition: all 0.5s ease-in-out;
  transition: all 0.5s ease-in-out;
  -webkit-transform: translateX(-90%) translateY(-50%) rotate(135deg);
  transform: translateX(-90%) translateY(-50%) rotate(135deg);
  background: #000;
}
a.btn-flat:hover::before {
  -webkit-transform: translateX(-10%) translateY(-70%) rotate(135deg);
  transform: translateX(-10%) translateY(-70%) rotate(135deg);
}
a.btn-flat span {
  position: relative;
  z-index: 1;
}

.pc-menu-scroll {
  background-color: #000;
}