@import url("https://fonts.googleapis.com/css2?family=Hina+Mincho&family=Noto+Serif+JP:wght@200..900&display=swap");
:root {
  --pattern_font_family: "Noto Serif JP", serif;
  --pattern_sub_font_family: "Hina Mincho", serif;
  --pattern_font_size: 1.6em;
  --pattern_title_font_weight: 400;
  --pattern_title_font_family: var(--pattern_sub_font_family);
}
@media (max-width: 480px) {
  :root {
    --pattern_font_size: vw(30);
  }
}

@media (min-width: 480px) {
  #header .header__conteiner .header__nav ul li.contact a {
    background-color: var(--sub-color01);
  }
  #header .header__conteiner .header__logo {
    position: absolute;
    left: 20px;
    top: 20px;
    height: 130px;
    z-index: 10;
  }
  #header .header__conteiner .header__nav {
    margin-left: auto;
  }
}

#contents {
  overflow-x: clip;
}

/*============================
#visual
============================*/
.visual {
  width: 100%;
  height: auto;
  aspect-ratio: 2/1;
  max-height: 1000px;
  position: relative;
  z-index: 1;
}
@media (max-width: 480px) {
  .visual {
    aspect-ratio: 780/900;
    max-height: none;
  }
}
.visual::before {
  content: "";
  width: auto;
  height: 100%;
  aspect-ratio: 1182/1600;
  position: absolute;
  top: 0;
  left: 0;
  background: url(../img/patternB-visual-mask01.png) no-repeat center center/contain;
  z-index: 1;
}
@media (max-width: 480px) {
  .visual::before {
    left: -35.8974358974vw;
  }
}
.visual .visual_in {
  height: 100%;
  display: flex;
  align-items: center;
}
@media (max-width: 480px) {
  .visual .visual_in {
    align-items: start;
    padding-top: 8.3333333333vw;
  }
}
.visual .visual_title {
  letter-spacing: 0.2em;
  font-weight: 500;
  position: relative;
  z-index: 10;
}
.visual .visual_title .main {
  margin-bottom: 35px;
}
@media (max-width: 480px) {
  .visual .visual_title .main {
    margin-bottom: 5.1282051282vw;
  }
}
.visual .visual_title .main > p {
  background-color: #fff;
  padding: 0 10px;
  font-size: 4.2rem;
  line-height: 1.3;
  width: -moz-fit-content;
  width: fit-content;
  margin-bottom: 25px;
}
@media (max-width: 480px) {
  .visual .visual_title .main > p {
    font-size: 6.2564102564vw;
    margin-bottom: 3.2051282051vw;
  }
}
.visual .visual_title .sub {
  display: none;
}
.visual .visual_image {
  width: 100%;
  height: 100%;
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
}
.visual .visual_image img {
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: top;
     object-position: top;
}

.block-title01 {
  text-align: center;
  margin-bottom: 80px;
}
@media (max-width: 480px) {
  .block-title01 {
    margin-bottom: 9.6153846154vw;
    overflow-x: clip;
    margin-inline: -3.8461538462vw;
  }
}
.block-title01 .en {
  display: block;
  font-family: var(--pattern_sub_font_family);
  font-size: 12.4rem;
  font-weight: 100;
  letter-spacing: 0.12em;
  line-height: 0.8;
  color: transparent;
  -webkit-text-stroke: 1px var(--main-font-color);
  margin-bottom: 24px;
  text-transform: uppercase;
  opacity: 0.25;
}
@media (max-width: 480px) {
  .block-title01 .en {
    font-size: 15.8974358974vw;
    margin-bottom: 3.0769230769vw;
  }
}
.block-title01 .main {
  display: block;
  font-size: 2.5rem;
  letter-spacing: 0.2em;
  line-height: 1.2;
  font-weight: 500;
  color: var(--main-font-color);
  z-index: 2;
}
@media (max-width: 480px) {
  .block-title01 .main {
    font-size: 5.1282051282vw;
  }
}

.block-msg02 {
  font-size: 1.8rem;
  text-align: center;
}
.block-msg02:not(:last-child) {
  margin-bottom: 75px;
}
@media (max-width: 480px) {
  .block-msg02:not(:last-child) {
    margin-bottom: 9.6153846154vw;
  }
}
@media (max-width: 480px) {
  .block-msg02 {
    font-size: 3.8461538462vw;
  }
}

.block-txt01 {
  text-align: center;
}
.block-txt01 .ttl {
  font-size: 3rem;
  letter-spacing: 0.2em;
  font-weight: 500;
  margin-bottom: 45px;
}
@media (max-width: 480px) {
  .block-txt01 .ttl {
    font-size: 5.1282051282vw;
    margin-bottom: 6.4102564103vw;
  }
}
.block-txt01 .msg {
  font-size: 1.8rem;
  line-height: 2;
  font-family: var(--pattern_sub_font_family);
}
@media (max-width: 480px) {
  .block-txt01 .msg {
    font-size: 3.8461538462vw;
    line-height: 1.8;
  }
}
.block-txt01 .msg p:not(:last-child) {
  margin-bottom: 1.5em;
}
.block-txt01:not(:last-child) {
  margin-bottom: 100px;
}
@media (max-width: 480px) {
  .block-txt01:not(:last-child) {
    margin-bottom: 12.8205128205vw;
  }
}

.block-split01 {
  position: relative;
  min-height: 353px;
}
@media (max-width: 480px) {
  .block-split01 {
    display: flex;
    flex-direction: column-reverse;
    gap: 5.7692307692vw;
    min-height: auto;
  }
}
.block-split01:not(:last-child) {
  margin-bottom: 80px;
}
@media (max-width: 480px) {
  .block-split01:not(:last-child) {
    margin-bottom: 10.2564102564vw;
  }
}
.block-split01 .block-split01__img {
  width: 691px;
  aspect-ratio: 691/353;
  position: absolute;
  top: 0;
  left: calc(50% - 110px);
  transform: translateX(-100%);
}
@media (max-width: 480px) {
  .block-split01 .block-split01__img {
    width: 100%;
    position: static;
    transform: none;
  }
}
.block-split01 .block-split01__img img {
  -o-object-fit: cover;
     object-fit: cover;
  height: 100%;
  border-radius: 20px;
}
@media (max-width: 480px) {
  .block-split01 .block-split01__img img {
    border-radius: 2.5641025641vw;
  }
}
.block-split01 .block-split01__txt {
  width: 620px;
  margin-left: auto;
}
@media (max-width: 480px) {
  .block-split01 .block-split01__txt {
    width: 100%;
  }
}
.block-split01 .block-split01__txt .ttl {
  font-size: 3rem;
  line-height: 1.3;
  padding-top: 10px;
  padding-bottom: 25px;
  margin-bottom: 20px;
  position: relative;
  font-family: var(--pattern_sub_font_family);
  font-weight: 400;
}
@media (max-width: 480px) {
  .block-split01 .block-split01__txt .ttl {
    font-size: 4.4871794872vw;
    padding-bottom: 3.2051282051vw;
    margin-bottom: 3.2051282051vw;
    text-align: center;
  }
}
.block-split01 .block-split01__txt .ttl::before {
  content: "";
  width: 59px;
  height: 2px;
  background-color: var(--sub-color01);
  position: absolute;
  bottom: 0;
  left: 0;
}
@media (max-width: 480px) {
  .block-split01 .block-split01__txt .ttl::before {
    width: 13.4615384615vw;
    height: 0.2564102564vw;
    left: 50%;
    transform: translateX(-50%);
  }
}
.block-split01 .block-split01__txt .msg {
  font-size: 1.8rem;
  line-height: 1.8;
}
@media (max-width: 480px) {
  .block-split01 .block-split01__txt .msg {
    font-size: 3.8461538462vw;
  }
}
.block-split01.reverse .block-split01__img {
  left: auto;
  right: calc(50% - 110px);
  transform: translateX(100%);
}
@media (max-width: 480px) {
  .block-split01.reverse .block-split01__img {
    transform: none;
  }
}
.block-split01.reverse .block-split01__txt {
  margin-left: 0;
}
.top_contents:has(.block-card01) {
  background-color: var(--base-background-color);
}

.block-card01 {
  display: flex;
  justify-content: center;
  gap: 56px;
}
@media (max-width: 480px) {
  .block-card01 {
    flex-direction: column;
    gap: 9.2307692308vw;
  }
}
.block-card01 .block-card01__item {
  width: calc(33.333% - 37.3333333333px);
  padding: 39px 21px 21px;
  background-color: #fff;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 30px;
  position: relative;
  z-index: 1;
  border-radius: 15px;
}
@media (max-width: 480px) {
  .block-card01 .block-card01__item {
    width: 100%;
    padding: 9.6153846154vw 5.3846153846vw 5.3846153846vw;
    gap: 3.8461538462vw;
    border-radius: 1.9230769231vw;
  }
}
.block-card01 .block-card01__item .ttl {
  font-size: 2.8rem;
  line-height: 1.4;
  align-self: center;
  font-weight: var(--pattern_title_font_weight);
  font-family: var(--pattern_title_font_family);
  letter-spacing: 0.1em;
  color: var(--main-font-color);
  margin-bottom: 0;
}
@media (max-width: 480px) {
  .block-card01 .block-card01__item .ttl {
    font-size: 5.1282051282vw;
  }
}
.block-card01 .block-card01__item .msg {
  color: var(--base-font-color);
}
.block-card01 .block-card01__item .img {
  aspect-ratio: 300/204;
}
.block-card01 .block-card01__item .img img {
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.block-card01.num {
  counter-reset: number 0;
}
.block-card01.num .block-card01__item::before {
  counter-increment: number 1;
  content: counter(number, decimal-leading-zero) "";
  position: absolute;
  top: 0px;
  left: 21px;
  font-size: 12.4rem;
  line-height: 1;
  font-family: var(--pattern_sub_font_family);
  color: var(--sub-color01);
  z-index: -1;
  opacity: 0.1;
}
@media (max-width: 480px) {
  .block-card01.num .block-card01__item::before {
    font-size: 32.9487179487vw;
    top: -4.1025641026vw;
  }
}

.block-step01 {
  display: flex;
  justify-content: center;
  gap: 111px;
}
@media (max-width: 480px) {
  .block-step01 {
    flex-direction: column;
    gap: 16.6666666667vw;
  }
}
.block-step01 .block-step01__item {
  width: calc(33.333% - 74px);
  padding: 22px 44px;
  height: auto;
  aspect-ratio: 1/1;
  background-color: #fff;
  color: #333;
  border: 1px solid var(--base-color);
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  grid-row: span 2;
  gap: 19px;
  position: relative;
  z-index: 1;
}
@media (max-width: 480px) {
  .block-step01 .block-step01__item {
    padding: 5.641025641vw;
    gap: 3.2051282051vw;
    width: 63.5897435897vw;
    margin: 0 auto;
  }
}
.block-step01 .block-step01__item:not(:last-child)::after {
  content: "";
  background-color: var(--sub-color01);
  width: 31.5px;
  height: auto;
  aspect-ratio: 1/1;
  clip-path: polygon(0 0, 0% 100%, 100% 50%);
  position: absolute;
  top: 50%;
  right: -70px;
  transform: translateY(-50%);
}
@media (max-width: 480px) {
  .block-step01 .block-step01__item:not(:last-child)::after {
    width: 4.0384615385vw;
    clip-path: polygon(0 0, 50% 100%, 100% 0);
    top: 110%;
    right: 50%;
    transform: translateX(50%);
  }
}
.block-step01 .block-step01__item .ttl {
  line-height: 1.2;
  text-align: center;
  align-self: center;
  font-weight: var(--pattern_title_font_weight);
  font-family: var(--pattern_title_font_family);
  letter-spacing: 0.1em;
  margin-bottom: 0;
}
@media (max-width: 480px) {
  .block-step01 .block-step01__item .ttl {
    font-size: 5.1282051282vw;
  }
}
.block-step01 .block-step01__item .msg {
  text-align: center;
  color: var(--base-font-color);
}

.top_contents:has(.block-bgblock01) {
  padding: 0;
  padding-bottom: 55px;
  position: relative;
  z-index: 1;
  overflow: hidden;
  color: #fff;
}
@media (max-width: 480px) {
  .top_contents:has(.block-bgblock01) {
    padding-bottom: 36.5384615385vw;
    padding-top: 15.3846153846vw;
  }
}
.top_contents:has(.block-bgblock01) .block-title01 .main {
  color: #fff;
}
.top_contents:has(.block-bgblock01) .block-title01 .en {
  -webkit-text-stroke: 1px #fff;
}

.block-bgblock01 {
  text-align: center;
}
.block-bgblock01 .block-bgblock01__item {
  margin-bottom: 50px;
}
@media (max-width: 480px) {
  .block-bgblock01 .block-bgblock01__item {
    margin-bottom: 12.8205128205vw;
  }
}
.block-bgblock01 .block-bgblock01__item .ttl {
  font-size: 3rem;
  letter-spacing: 0.2em;
  font-weight: 500;
  margin-bottom: 45px;
}
@media (max-width: 480px) {
  .block-bgblock01 .block-bgblock01__item .ttl {
    font-size: 5.1282051282vw;
    margin-bottom: 6.4102564103vw;
  }
}
.block-bgblock01 .block-bgblock01__item .msg {
  font-size: 1.8rem;
  line-height: 2;
  font-family: var(--pattern_sub_font_family);
}
@media (max-width: 480px) {
  .block-bgblock01 .block-bgblock01__item .msg {
    font-size: 3.8461538462vw;
    line-height: 1.8;
  }
}
.block-bgblock01 .block-bgblock01__item .msg p:not(:last-child) {
  margin-bottom: 1.5em;
}
.block-bgblock01 .block-bgblock01__item .bgimg {
  width: 100vw;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
}
.block-bgblock01 .block-bgblock01__item .bgimg img {
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.block-bgblock01 .block-bgblock01__item .bgimg::before {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background-color: var(--base-color);
  opacity: 0.8;
}

.top_contents:has(.block-bgblock02) {
  background-color: var(--base-color);
  color: #fff;
}
.top_contents:has(.block-bgblock02) .block-title01 .main {
  color: #fff;
}
.top_contents:has(.block-bgblock02) .block-title01 .en {
  -webkit-text-stroke: 1px #fff;
}

.block-bgblock02 {
  text-align: center;
}
.block-bgblock02 .block-bgblock02__item {
  color: #fff;
}
.block-bgblock02 .block-bgblock02__item:not(:last-child) {
  margin-bottom: 50px;
}
@media (max-width: 480px) {
  .block-bgblock02 .block-bgblock02__item:not(:last-child) {
    margin-bottom: 12.8205128205vw;
  }
}
.block-bgblock02 .block-bgblock02__item .ttl {
  font-size: 3rem;
  letter-spacing: 0.2em;
  font-weight: 500;
  margin-bottom: 45px;
}
@media (max-width: 480px) {
  .block-bgblock02 .block-bgblock02__item .ttl {
    font-size: 5.1282051282vw;
    margin-bottom: 6.4102564103vw;
  }
}
.block-bgblock02 .block-bgblock02__item .msg {
  font-size: 1.8rem;
  line-height: 2;
  font-family: var(--pattern_sub_font_family);
}
@media (max-width: 480px) {
  .block-bgblock02 .block-bgblock02__item .msg {
    font-size: 3.8461538462vw;
    line-height: 1.8;
  }
}
.block-bgblock02 .block-bgblock02__item .msg p:not(:last-child) {
  margin-bottom: 1.5em;
}

.block-table02 table {
  width: 100%;
  border-collapse: collapse;
  background: #fff;
}
@media (max-width: 480px) {
  .block-table02 table {
    font-size: 3.8461538462vw;
    margin-bottom: 9.6153846154vw;
  }
}
.block-table02 th,
.block-table02 td {
  border: 1px solid #d3d7db;
  padding: 27px 35px;
}
@media (max-width: 480px) {
  .block-table02 th,
  .block-table02 td {
    padding: 3.5897435897vw 3.0769230769vw;
  }
}
.block-table02 th {
  background: var(--base-background-color);
  color: var(--main-font-color);
  font-weight: bold;
  width: 280px;
  text-align: center;
  vertical-align: middle;
}
@media (max-width: 480px) {
  .block-table02 th {
    width: 23.0769230769vw;
    font-size: 3.5897435897vw;
  }
}
.block-table02 td {
  color: var(--base-font-color);
}
@media (max-width: 480px) {
  .block-table02 td {
    font-size: 3.5897435897vw;
  }
}

#contents01, #MailForm {
  background-color: var(--base-background-color);
}

#contents03 {
  background-color: #302e21;
}
#contents03 .block-title01 .en {
  -webkit-text-stroke: 1px #fff;
}
#contents03 .block-title01 .main {
  color: #fff;
}/*# sourceMappingURL=template.css.map */