:root {
  --pattern_font_family: "Noto Sans JP", sans-serif;
  --pattern_sub_font_family: ;
  --pattern_font_size: 1.6em;
  --pattern_title_font_weight: bold;
  --pattern_title_font_family: var(--pattern_font_family);
}
@media (max-width: 480px) {
  :root {
    --pattern_font_size: vw(30);
  }
}

@media (min-width: 480px) {
  #header .header__conteiner {
    padding: 0;
    padding-left: 30px;
  }
  #header .header__conteiner .header__nav ul li.contact a {
    width: 100px;
    height: auto;
    aspect-ratio: 1/1;
    background-color: var(--sub-color01);
    border-radius: 0;
    padding: 0 22px;
    text-align: center;
  }
}

/*============================
#visual
============================*/
.visual {
  width: 100%;
  aspect-ratio: 1600/841;
  max-height: 800px;
  position: relative;
  z-index: 1;
}
@media (max-width: 480px) {
  .visual {
    aspect-ratio: 780/900;
    max-height: none;
  }
}
.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;
}
.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: var(--base-color);
  color: #fff;
  font-size: 4.6rem;
  width: -moz-fit-content;
  width: fit-content;
  padding: 0 30px;
  margin-bottom: 13px;
}
@media (max-width: 480px) {
  .visual .visual_title .main > p {
    font-size: 8.7820512821vw;
    padding: 0 4.4871794872vw;
    margin-bottom: 2.4358974359vw;
  }
}
.visual .visual_title .sub {
  font-size: 2.4rem;
  color: #333333;
  padding: 0.5em 30px;
}
@media (max-width: 480px) {
  .visual .visual_title .sub {
    font-size: 3.6794871795vw;
    padding: 0.5em 4.4871794872vw;
  }
}
.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;
}

.block-title01 {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: 1fr;
  margin-bottom: 80px;
}
@media (max-width: 480px) {
  .block-title01 {
    margin-bottom: 9.6153846154vw;
    overflow-x: clip;
  }
}
.block-title01 .en {
  font-family: "Roboto", serif;
  font-size: 12.4rem;
  line-height: 0.8;
  color: var(--main-font-color);
  opacity: 0.07;
  padding-left: 2rem;
}
@media (max-width: 480px) {
  .block-title01 .en {
    font-size: 19.358974359vw;
  }
}
.block-title01 .main {
  font-size: 3.5rem;
  letter-spacing: 0.2em;
  line-height: 1.2;
  font-weight: bold;
  color: var(--main-font-color);
  align-self: end;
  padding-left: 20px;
  border-left: 5px solid var(--sub-color01);
  z-index: 2;
}
@media (max-width: 480px) {
  .block-title01 .main {
    font-size: 5.7692307692vw;
    padding-left: 2.8205128205vw;
    border-width: 0.7692307692vw;
  }
}
.block-title01 .en,
.block-title01 .main {
  grid-column: 1/2;
  grid-row: 1/2;
}

.block-msg02 {
  font-size: 1.8rem;
}
.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-split01 {
  display: flex;
  gap: 70px;
}
@media (max-width: 480px) {
  .block-split01 {
    gap: 5.1282051282vw;
    flex-direction: column-reverse;
  }
}
.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: 480px;
  aspect-ratio: 480/390;
  max-width: 100%;
}
.block-split01 .block-split01__img img {
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.block-split01 .block-split01__txt {
  flex: 1;
}
.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-weight: var(--pattern_title_font_weight);
  font-family: var(--pattern_title_font_family);
  letter-spacing: 0.1em;
}
@media (max-width: 480px) {
  .block-split01 .block-split01__txt .ttl {
    font-size: 5.1282051282vw;
    padding-top: 0;
    padding-bottom: 3.2051282051vw;
    margin-bottom: 3.2051282051vw;
  }
}
.block-split01 .block-split01__txt .ttl::before {
  content: "";
  width: 620px;
  height: 1px;
  background-color: var(--base-color);
  position: absolute;
  bottom: 0;
  left: 0;
  transform: translateX(-70px);
}
@media (max-width: 480px) {
  .block-split01 .block-split01__txt .ttl::before {
    width: 100%;
    transform: translateX(0);
  }
}
.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 {
  flex-direction: row-reverse;
}
@media (max-width: 480px) {
  .block-split01.reverse {
    flex-direction: column-reverse;
  }
}
.block-split01.reverse .block-split01__txt .ttl::before {
  transform: translateX(0px);
}

.block-card01 {
  display: flex;
  justify-content: center;
  gap: 36px;
}
@media (max-width: 480px) {
  .block-card01 {
    flex-direction: column;
    gap: 9.2307692308vw;
  }
}
.block-card01 .block-card01__item {
  width: calc(33.333% - 24px);
  padding: 42px 20px 20px;
  background-color: #fff;
  box-shadow: 0 0 5px rgba(51, 51, 51, 0.2);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 30px;
  position: relative;
  z-index: 1;
}
@media (max-width: 480px) {
  .block-card01 .block-card01__item {
    width: 100%;
    padding: 9.6153846154vw 5.7692307692vw 5.7692307692vw;
    gap: 3.8461538462vw;
  }
}
.block-card01 .block-card01__item .ttl {
  color: #333;
  font-size: 2.8rem;
  line-height: 1.4;
  text-align: center;
  align-self: center;
  font-weight: var(--pattern_title_font_weight);
  font-family: var(--pattern_title_font_family);
  letter-spacing: 0.1em;
}
@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: -16px;
  right: 0;
  font-size: 12.4rem;
  line-height: 1;
  font-family: "Roboto", serif;
  font-weight: bold;
  color: var(--base-color);
  opacity: 0.1;
  z-index: -1;
}
@media (max-width: 480px) {
  .block-card01.num .block-card01__item::before {
    font-size: 32.9487179487vw;
    top: -4.1025641026vw;
  }
}

.top_contents:has(.block-step01) {
  position: relative;
  z-index: 1;
}
.top_contents:has(.block-step01)::before {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background-color: var(--base-color);
  z-index: -1;
  opacity: 0.1;
}

.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;
  height: auto;
  aspect-ratio: 1/1;
  background-color: #fff;
  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(--base-color);
  width: 31.5px;
  height: auto;
  aspect-ratio: 1/1;
  -webkit-clip-path: polygon(0 0, 0% 100%, 100% 50%);
          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;
    -webkit-clip-path: polygon(0 0, 50% 100%, 100% 0);
            clip-path: polygon(0 0, 50% 100%, 100% 0);
    top: 110%;
    right: 50%;
    transform: translateX(50%);
  }
}
.top_contents:has(.block-bgblock01) .block-step01 .block-step01__item:not(:last-child)::after {
  background-color: var(--sub-color01);
}

.block-step01 .block-step01__item .ttl {
  color: #333;
  font-size: 2.8rem;
  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;
}
@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 {
  opacity: 0.4;
}

.block-bgblock01 .block-bgblock01__item {
  width: 50%;
  background-color: #fff;
  padding: 30px;
  color: var(--base-font-color);
}
@media (max-width: 480px) {
  .block-bgblock01 .block-bgblock01__item {
    width: 100%;
    padding: 5.1282051282vw 2.5641025641vw;
  }
}
.block-bgblock01 .block-bgblock01__item:not(:last-child) {
  margin-bottom: 50px;
}
@media (max-width: 480px) {
  .block-bgblock01 .block-bgblock01__item:not(:last-child) {
    margin-bottom: 12.8205128205vw;
  }
}
.block-bgblock01 .block-bgblock01__item .ttl {
  font-size: 2.6rem;
  font-weight: var(--pattern_title_font_weight);
  font-family: var(--pattern_title_font_family);
  letter-spacing: 0.1em;
  padding-bottom: 23px;
  margin-bottom: 30px;
  position: relative;
}
@media (max-width: 480px) {
  .block-bgblock01 .block-bgblock01__item .ttl {
    font-size: 5.1282051282vw;
    padding-bottom: 3.2051282051vw;
    margin-bottom: 2.5641025641vw;
  }
}
.block-bgblock01 .block-bgblock01__item .ttl::before {
  content: "";
  width: calc(100% + 25px);
  height: 1px;
  background-color: var(--base-color);
  position: absolute;
  bottom: 0;
  left: -25px;
}
@media (max-width: 480px) {
  .block-bgblock01 .block-bgblock01__item .ttl::before {
    width: calc(100% + 2.5641025641vw);
    left: -2.5641025641vw;
  }
}
.block-bgblock01 .block-bgblock01__item .msg {
  font-size: 1.8rem;
}
@media (max-width: 480px) {
  .block-bgblock01 .block-bgblock01__item .msg {
    font-size: 3.8461538462vw;
  }
}
.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 {
  opacity: 0.2;
  mix-blend-mode: multiply;
}

.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;
  padding-bottom: 25px;
  margin-bottom: 30px;
  border-bottom: 1px solid #fff;
}
@media (max-width: 480px) {
  .block-bgblock02 .block-bgblock02__item .ttl {
    font-size: 5.1282051282vw;
    padding-bottom: 5.7692307692vw;
    margin-bottom: 6.4102564103vw;
  }
}
.block-bgblock02 .block-bgblock02__item .msg {
  font-size: 1.8rem;
  line-height: 1.8;
}
@media (max-width: 480px) {
  .block-bgblock02 .block-bgblock02__item .msg {
    font-size: 3.8461538462vw;
  }
}

.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;
  }
}/*# sourceMappingURL=template.css.map */