@charset "UTF-8";

/* ==========================================================================
    Common Style
============================================================================= */
#document {
  position: relative;
}

html {
  font-size: 62.5%;
}

body {
  color: #555;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 1.6rem;
}

body.no-scroll {
  z-index: 1;
}

a:not([class]) {
  color: #004f78;
}

@media screen and (max-width: 767.98px) {
  #document {
    overflow: hidden;
  }
}


/* ---  animation  --- */
.trigger.in {
  opacity: 0;
}

.trigger.in.is-active {
  -webkit-animation-name: fade-in;
  animation-name: fade-in;
  -webkit-animation-duration: 1.5s;
  animation-duration: 1.5s;
  -webkit-animation-iteration-count: 1;
  animation-iteration-count: 1;
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
}

.trigger.up {
  opacity: 0;
}

.trigger.up.is-active {
  -webkit-animation-name: slid-in-up;
  animation-name: slid-in-up;
  -webkit-animation-duration: 1.5s;
  animation-duration: 1.5s;
  -webkit-animation-iteration-count: 1;
  animation-iteration-count: 1;
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
}

.trigger.img-in {
  opacity: 0;
}

.trigger.img-in.is-active {
  -webkit-animation-name: img-fade-in;
  animation-name: img-fade-in;
  -webkit-animation-duration: 1.5s;
  animation-duration: 1.5s;
  -webkit-animation-iteration-count: 1;
  animation-iteration-count: 1;
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
}

@-webkit-keyframes fade-in {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

@keyframes fade-in {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

@-webkit-keyframes slid-in-up {
  0% {
    -webkit-transform: translate3d(0, 20%, 0);
    transform: translate3d(0, 20%, 0);
    visibility: visible;
    opacity: 0;
  }

  100% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

@keyframes slid-in-up {
  0% {
    -webkit-transform: translate3d(0, 20%, 0);
    transform: translate3d(0, 20%, 0);
    visibility: visible;
    opacity: 0;
  }

  100% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

@-webkit-keyframes img-fade-in {
  0% {
    opacity: 0;
    -webkit-filter: blur(15px);
    filter: blur(15px);
    -webkit-transform: scale(1.1);
    transform: scale(1.1);
  }

  100% {
    opacity: 1;
    -webkit-filter: blur(0px);
    filter: blur(0px);
    -webkit-transform: scale(1);
    transform: scale(1);
  }
}

@keyframes img-fade-in {
  0% {
    opacity: 0;
    -webkit-filter: blur(15px);
    filter: blur(15px);
    -webkit-transform: scale(1.1);
    transform: scale(1.1);
  }

  100% {
    opacity: 1;
    -webkit-filter: blur(0px);
    filter: blur(0px);
    -webkit-transform: scale(1);
    transform: scale(1);
  }
}


/* ---  header  --- */
.l-header {
  padding-top: 30px;
  position: absolute;
  z-index: 50;
  left: 50%;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
}

.l-header .logo {
  display: block;
  max-width: 110px;
  margin-inline: auto;
}

.l-header .logo img {
  width: 110px;
}

.l-nav {
  position: fixed;
  top: 20px;
  right: 20px;
  max-width: 40px;
  z-index: 100;
}

.l-nav .sns-menu {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 10px;
  position: relative;
  z-index: 100;
}

.l-nav .sns-menu-btn {
  background-color: #fff;
  -webkit-box-shadow: 0 4px 10px rgba(0, 79, 120, 0.1);
  box-shadow: 0 4px 10px rgba(0, 79, 120, 0.1);
  border-radius: 50%;
  color: #004f78;
  font-size: 1.4rem;
  width: 40px;
  height: 40px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}

.l-nav .sns-menu-btn.navy {
  background-color: #004f78;
  color: #fff;
  font-size: 1.2rem;
}

.l-nav .nav-trigger {
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  cursor: pointer;
  color: #004f78;
  font-size: 1.4rem;
  font-size: 1.8rem;
  letter-spacing: 0.3em;
  -webkit-transform: rotate(90deg);
  transform: rotate(90deg);
  position: relative;
  z-index: 100;
}

.l-nav .nav-trigger.is-open .trigger-btn {
  padding: 18px 12px;
}

.l-nav .nav-trigger.is-open .trigger-btn span:first-of-type {
  -webkit-transform: rotate(45deg) translate(1px, 1px);
  transform: rotate(45deg) translate(1px, 1px);
}

.l-nav .nav-trigger.is-open .trigger-btn span:nth-of-type(2) {
  display: none;
}

.l-nav .nav-trigger.is-open .trigger-btn span:nth-of-type(3) {
  -webkit-transform: rotate(-45deg) translate(1px, 0px);
  transform: rotate(-45deg) translate(1px, 0px);
  margin-top: 1px;
}

.l-nav .nav-trigger .trigger-btn {
  border: solid 1px rgba(0, 79, 120, 0.2);
  border-radius: 50%;
  padding: 14px 12px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-transform: rotate(90deg);
  transform: rotate(90deg);
}

.l-nav .nav-trigger .trigger-btn span {
  background-color: #004f78;
  width: 16px;
  height: 1px;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}

.l-nav .nav-trigger .trigger-btn span+span {
  margin-top: 5px;
}

.l-nav .nav-trigger .trigger-btn span:nth-of-type(2) {
  margin-left: auto;
  width: 8px;
}

.l-nav .nav-wrap {
  background: url("../images/nav-bg.webp") no-repeat center/cover;
  display: none;
  height: 100vh;
  width: 100vw;
  position: fixed;
  top: 0;
  left: 0;
  opacity: 0;
}

.l-nav .nav-wrap.is-open {
  display: block;
  -webkit-animation: fade-in 1s 1 forwards;
  animation: fade-in 1s 1 forwards;
}

.l-nav .nav-wrap .nav-menu {
  position: absolute;
  right: 16.6vw;
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  gap: 15px;
}

.l-nav .nav-wrap .nav-menu li {
  padding-left: 35px;
  position: relative;
}

.l-nav .nav-wrap .nav-menu li::before,
.l-nav .nav-wrap .nav-menu li::after {
  content: "";
  display: block;
  height: 1px;
  position: absolute;
  left: 0;
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
}

.l-nav .nav-wrap .nav-menu li::before {
  background-color: rgba(0, 79, 120, 0.2);
  width: 20px;
}

.l-nav .nav-wrap .nav-menu li::after {
  background-color: #004f78;
  width: 10px;
}

.l-nav .nav-wrap .nav-menu a {
  color: #004f78;
  font-size: 2.4rem;
  font-family: "Shippori Mincho", serif;
}

.l-nav .nav-wrap .nav-logo {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
  -ms-flex-align: end;
  align-items: flex-end;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  gap: 10px 30px;
  position: absolute;
  left: 3.472vw;
  bottom: 3.472vw;
}

.l-nav .nav-wrap .nav-logo img {
  max-width: 190px;
  width: 42.035%;
}

.l-nav .nav-wrap .nav-logo b {
  color: #004f78;
  font-family: "Shippori Mincho", serif;
  font-size: 1.4rem;
  font-weight: normal;
  line-height: 1.8;
}

@media screen and (min-width: 768px) {
  .l-nav .nav-trigger {
    margin-top: calc(11.805vw + 1em);
  }

  .l-nav .nav-trigger .trigger-btn {
    margin-left: 15px;
  }
}

@media screen and (max-width: 767.98px) {
  .l-nav {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
    -ms-flex-direction: column-reverse;
    flex-direction: column-reverse;
    gap: 7px;
  }

  .l-nav .nav-menu {
    margin-inline: 20px;
  }
}


/* ---  side  --- */
.site-name {
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  color: #004f78;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 10px;
  font-size: 1rem;
  letter-spacing: 3px;
  -webkit-transform: rotate(90deg);
  transform: rotate(90deg);
  -webkit-transform-origin: left bottom;
  transform-origin: left bottom;
  position: absolute;
  z-index: 1;
  top: 21.59vw;
  left: 2.083vw;
}

.site-name::before,
.site-name::after {
  background: url("../images/ico-symbol.svg") no-repeat center/100% auto;
  content: "";
  display: inline-block;
  width: 26px;
  height: 6px;
}

@media screen and (max-width: 767.98px) {
  .site-name {
    display: none;
  }
}


/* ---  footer  --- */
.l-footer {
  background: #fff url("../images/footer-bg.webp") no-repeat right bottom/50vw auto;
  color: #004f78;
  padding: min(13.888vw, 200px) 0 min(6.944vw, 100px);
}

.l-footer .footer-nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  gap: 3.472vw;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  font-size: 1.4rem;
  font-family: "Cinzel", serif;
  margin-bottom: 10.416vw;
}

.l-footer .footer-nav .nav-link {
  color: #004f78;
  letter-spacing: 2.8px;
}

.l-footer .footer-logo {
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  gap: 20px;
}

.l-footer .footer-logo b {
  font-family: "Shippori Mincho", serif;
  font-weight: normal;
  line-height: 1.575;
}

.l-footer .footer-sns {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  gap: 20px;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  margin-top: 40px;
}

.l-footer .footer-sns .sns-link {
  border-radius: 50%;
  border: solid 1px #e6edf1;
  color: #004f78;
  display: -ms-grid;
  display: grid;
  place-content: center;
  width: 50px;
  height: 50px;
}

.l-footer .footer-sns .sns-link .fa-brands {
  font-size: 1.8rem;
}

.l-footer .footer-address {
  color: #004f78;
  font-size: 1.4rem;
  line-height: 1.8;
  margin-top: 40px;
  text-align: center;
}

.l-footer .footer-map iframe {
  border-radius: 3.472vw;
  margin-top: 50px;
  height: 300px;
  width: 100%;
}

.l-footer .copyright {
  color: #aaa;
  font-size: 1.2rem;
  font-family: "Cinzel", serif;
  letter-spacing: 2.4px;
  margin-top: min(10.416vw, 150px);
  text-align: center;
}

.page-top {
  bottom: 40px;
  right: 2.77vw;
  z-index: 100;
  height: 4.16vw;
  max-height: 60px;
  padding: 20px;
  cursor: pointer;
}

.l-main {
  color: #004f78;
  font-family: "Shippori Mincho", serif;
}

.l-container {
  max-width: 1100px;
  margin: 0 auto;
}

.l-inner {
  max-width: 800px;
  margin-inline: auto;
}

.l-white-wrap {
  background-color: #fff;
  border-radius: 0 6.944vw 6.944vw 0;
  padding-top: 10.069vw;
  padding-bottom: 15.625vw;
  margin-right: 2.083vw;
}

@media screen and (max-width: 1099.98px) {
  .l-container {
    padding-inline: 20px;
  }
}

@media screen and (max-width: 799.98px) {
  .l-inner {
    padding-inline: 20px;
  }
}

@media screen and (max-width: 768.98px) {
  .l-white-wrap {
    padding-top: 100px;
    padding-bottom: 100px;
    margin-right: 20px;
  }
}


/* ---  column  --- */
.l-column,
.row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: wrap;
  -ms-flex: wrap;
  flex: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
}

.l-column.col-2>*,
.row.col-2>* {
  width: calc(50% - 5px);
}

.l-column.col-3>*,
.row.col-3>* {
  width: calc(33.333% - 16.666px);
}

.l-column.col-4>*,
.row.col-4>* {
  width: calc(25% - 11.25px);
}

.l-column.col-5>*,
.row.col-5>* {
  width: calc(20% - 12px);
}

@media screen and (min-width: 768px) {
  .row.col-2>* {
    width: calc(50% - 15px);
  }

  .row.col-3>* {
    width: calc(33.333% - 15px);
  }

  .row.col-4>* {
    width: calc(25% - 15px);
  }
}

@media screen and (max-width: 767.98px) {

  .l-column .figure,
  .row .figure {
    text-align: center;
    margin-bottom: 20px;
  }

  .l-column.col-2,
  .row.col-2,
  .l-column.col-3,
  .row.col-3 {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-flow: column;
    flex-flow: column;
  }

  .l-column.col-2>*,
  .row.col-2>*,
  .l-column.col-3>*,
  .row.col-3>* {
    width: auto;
  }

  .l-column.col-4>*,
  .row.col-4>* {
    width: calc(50% - 10px);
  }

  .l-column.col-5>*,
  .row.col-5>* {
    width: calc(33.333% - 16.666px);
  }
}


/* ---  heading  --- */
.sec-hdg h2,
.sec-hdg .ttl {
  font-size: 3.2rem;
}

.sec-hdg .en {
  display: block;
  font-size: 1.2rem;
  letter-spacing: 2.4px;
  margin-bottom: 20px;
  padding-left: 45px;
  position: relative;
}

.sec-hdg .en::before,
.sec-hdg .en::after {
  content: "";
  position: absolute;
  height: 1px;
  left: 0;
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
}

.sec-hdg .en::before {
  background-color: #004f78;
  width: 10px;
}

.sec-hdg .en::after {
  background-color: rgba(0, 79, 120, 0.2);
  width: 30px;
}

@media screen and (max-width: 767.98px) {

  .sec-hdg h2,
  .sec-hdg .ttl {
    font-size: 2.8rem;
    line-height: 1.4;
  }
}

.sec-hdg002 {
  border-bottom: solid 1px rgba(0, 79, 120, 0.2);
  display: inline-block;
  font-size: 2.8rem;
  margin-bottom: 45px;
  padding-bottom: 15px;
}

.sec-hdg002 .sub {
  font-size: 2.2rem;
  display: inline-block;
}

@media screen and (max-width: 767.98px) {
  .sec-hdg002 {
    display: block;
  }

  .sec-hdg002 .sub {
    font-size: 1.8rem;
    display: block;
    text-align: right;
    padding-top: 10px;
  }
}

.sec-hdg003 {
  background: linear-gradient(90deg, rgb(243, 246, 248, 1), rgb(00, 00, 00, 00));
  font-size: 2rem;
  padding: 20px;
}


/* ---  parallax  --- */
.parallax-wrap {
  background: -webkit-gradient(linear, left top, left bottom, from(#e6edf1), color-stop(18%, rgba(230, 237, 241, 0)));
  background: -webkit-linear-gradient(top, #e6edf1 0%, rgba(230, 237, 241, 0) 18%);
  background: linear-gradient(180deg, #e6edf1 0%, rgba(230, 237, 241, 0) 18%);
}

.parallax-content {
  min-height: 600px;
}

.parallax-content::before {
  content: "";
  height: 100%;
  width: 100%;
  background-image: url("../images/parallax-bg.webp?v2");
  background-position: center top;
  background-repeat: no-repeat;
  background-size: cover;
  position: fixed;
  top: 0;
  z-index: -1;
  opacity: 0;
}

.parallax-content.is-active::before {
  -webkit-animation: bg-img-in 2.5s forwards;
  animation: bg-img-in 2.5s forwards;
}

@media screen and (max-width: 767.98px) {
  .parallax-content {
    /* min-height: 250px; */
    min-height: 370px;
    -ms-touch-action: manipulation;
    touch-action: manipulation;
    position: relative;
  }

  .parallax-content::before {
    background-image: url("../images/parallax-bg-sp.webp?v3");
    height: 100vw;
    position: absolute;
  }
}

@-webkit-keyframes bg-img-in {
  0% {
    opacity: 0;
    -webkit-filter: blur(15px);
    filter: blur(15px);
  }

  100% {
    opacity: 1;
    -webkit-filter: blur(0px);
    filter: blur(0px);
  }
}

@keyframes bg-img-in {
  0% {
    opacity: 0;
    -webkit-filter: blur(15px);
    filter: blur(15px);
  }

  100% {
    opacity: 1;
    -webkit-filter: blur(0px);
    filter: blur(0px);
  }
}


/* ---  contact  --- */
.contact {
  background-color: #fff;
  padding-top: 11.111vw;
}

.contact .sec-hdg {
  margin-bottom: 114px;
}

.contact .lead {
  font-size: 2rem;
  line-height: 2;
  margin-bottom: 50px;
  text-align: center;
}

.contact-lead {
  padding-bottom: 100px;
}

.contact-form {
  font-size: 1.4rem;
  padding-bottom: 13.888vw;
}


/* ---  text  --- */
.txt {
  /* font-family: "Noto Sans JP", sans-serif; */
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  font-weight: 400;
  font-size: 1.4rem;
  line-height: 2;
}

.txt+.txt {
  margin-top: 30px;
}

.en,
.date {
  font-family: "Cinzel", serif;
}

.lead {
  font-size: 2rem;
  line-height: 2;
}

.note {
  /* font-family: 'Noto Sans JP', sans-serif; */
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  /* font-size: 1.2rem; */
  font-size: 1.3rem;
  line-height: 1.5;
}

.note::before {
  content: "※";
  margin-right: 5px;
}


/* ---  text link  --- */
.link {
  color: #004f78;
  display: inline-block;
  text-decoration: underline;
  -webkit-transition: all 0.5s;
  transition: all 0.5s;
}

.link:hover {
  text-decoration: none;
}


/* ---  color  --- */
.c-black {
  color: #333 !important;
}


/* ---  box  --- */
.c-column {
  border-radius: 4.583vw;
  background-color: #f3f6f8;
  font-size: 1.6rem;
  line-height: 2;
  padding: 30px 3.33vw 48px;
}

.c-column+.c-column {
  margin-top: 50px;
}

.c-column .ttl {
  font-size: 1.8rem;
  margin-bottom: 24px;
  text-align: center;
}

.c-column:last-of-type {
  margin-bottom: 70px;
}

@media screen and (max-width: 767.98px) {
  .c-column {
    padding-inline: 30px;
  }

  .c-column .ttl {
    margin-bottom: 15px;
  }

  .c-column:last-of-type {
    margin-bottom: 40px;
  }
}


/* ---  button  --- */
.btn {
  border: solid 1px #004f78;
  border-radius: 75px;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -ms-flex-direction: row;
  flex-direction: row;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  gap: 15px;
  margin-inline: auto;
  padding: 18px min(2.083vw, 30px);
  max-width: 300px;
}

.btn::after {
  background: url("../images/ico-arrow.svg") no-repeat 0 0/100% auto;
  content: "";
  display: inline-block;
  width: 15px;
  height: 3px;
  transition: all .5s;
}

.btn .btn-txt {
  color: #004f78;
  /* font-family: 'Noto Sans JP', sans-serif; */
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  font-size: 1.4rem;
  font-weight: 400;
}

.btn:hover::after {
  transform: translateX(5px);
}


/* ---  list  --- */
.disc>li {
  color: #333;
  letter-spacing: 2.4px;
  line-height: 1.75;
  padding-left: 18px;
  position: relative;
}

.disc>li+li {
  margin-top: 15px;
}

.disc>li::before {
  border-radius: 50%;
  background: -webkit-gradient(linear, left top, right top, from(#004f78), to(#006aa1));
  background: -webkit-linear-gradient(left, #004f78 0%, #006aa1 100%);
  background: linear-gradient(90deg, #004f78 0%, #006aa1 100%);
  content: "";
  display: block;
  position: absolute;
  left: 0;
  top: 10px;
  width: 6px;
  height: 6px;
}

.disc>li .disc>li:first-child {
  margin-top: 15px;
}

.disc>li .disc>li::before {
  background-color: transparent;
  border: 1px solid #004f78;
}

.order {
  counter-reset: item;
}

.order>li+li {
  margin-top: 50px;
}

.order>li .sec-hdg003 {
  font-size: 1.8rem;
  margin-bottom: 20px;
}

.order>li .sec-hdg003::before {
  border-radius: 4px;
  counter-increment: item;
  content: counter(item) '.';
  display: inline-block;
  font-size: 2.4rem;
  margin-right: 1em;
}


/* ---  table  --- */
.tbl {
  line-height: 1.4375;
  margin-bottom: 10px;
  margin-inline: auto;
  max-width: 680px;
  width: 100%;
}

.tbl th {
  font-size: 1.6rem;
  font-weight: 900;
}

.tbl th,
.tbl td {
  padding: 25px 0;
}

.tbl thead tr {
  border-bottom: solid 1px rgba(0, 79, 120, 0.5);
}

.tbl thead th {
  position: relative;
}

.tbl thead th:first-of-type::before {
  display: none;
}

.tbl thead th::before {
  background-color: rgba(0, 79, 120, 0.5);
  content: "";
  position: absolute;
  left: 0;
  width: 1px;
  height: 23px;
}

.tbl thead th.main {
  width: 180px;
}

.tbl thead th.other {
  width: 400px;
}

.tbl tbody tr {
  border-bottom: solid 1px rgba(0, 79, 120, 0.2);
}

.tbl tbody th {
  text-align: left;
  width: 220px;
}

.tbl tbody td {
  text-align: center;
}

.tbl-caption {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: end;
  -ms-flex-pack: end;
  justify-content: flex-end;
  gap: 20px;
  margin-inline: auto;
  max-width: 680px;
}

@media screen and (max-width: 767.98px) {
  .tbl-wrap {
    overflow-x: scroll;
  }

  .tbl th,
  .tbl td {
    white-space: nowrap;
  }

  .tbl thead th {
    padding-inline: 30px;
  }
}


/* ---  dl  --- */
.definition {
  margin: 55px auto 0;
  padding-bottom: 15px;
  max-width: 680px;
}

.definition .ttl {
  font-weight: bold;
  margin-bottom: 40px;
  text-align: center;
}

.definition dl {
  border-bottom: solid 1px rgba(0, 79, 120, 0.5);
}

.definition dl>div {
  border-top: solid 1px rgba(0, 79, 120, 0.5);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  padding: 22px 0 33px;
}

.definition dl>div dt {
  -ms-flex-preferred-size: 146px;
  flex-basis: 146px;
  font-weight: bold;
  text-align: center;
}

.definition dl>div dd {
  -ms-flex-preferred-size: calc(100% - 146px);
  flex-basis: calc(100% - 146px);
}

@media screen and (max-width: 767.98px) {
  .definition .ttl {
    margin-bottom: 20px;
  }

  .definition dl>div dt,
  .definition dl>div dd {
    -ms-flex-preferred-size: 100%;
    flex-basis: 100%;
  }

  .definition dl>div dt {
    margin-bottom: 15px;
    text-align: left;
  }
}


/* ---  form  --- */
.contact-form-table {
  border-top: solid 1px rgba(0, 79, 120, 0.2);
  width: 100%;
}

.contact-form-table tr {
  border-bottom: solid 1px rgba(0, 79, 120, 0.2);
}

.contact-form-table th {
  /* font-family: 'Noto Sans JP', sans-serif; */
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  text-align: left;
  vertical-align: top;
}

.contact-form-table td {
  line-height: 1.5;
}

.contact-form .input-text {
  border: solid 1px #eee;
  border-radius: 3px;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  font-size: 16px;
  padding: 9px 15px;
  width: 100%;
}

.contact-form .input-text::placeholder {
  color: #AAAAAA;
}

.contact-form .checkbox-wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  /* font-family: 'Noto Sans JP', sans-serif; */
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  margin-top: 20px;
  -webkit-transition: all 0.5s;
  transition: all 0.5s;
}

.contact-form .input-check {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: #eee;
  border-radius: 3px;
  height: 20px;
  width: 20px;
  margin-inline: 10px;
}

.contact-form .input-check::before {
  color: #aaa;
  font-family: "Font Awesome 6 Free";
  content: '\f00c';
  font-weight: 900;
  font-size: 1.2rem;
  display: -ms-grid;
  display: grid;
  place-content: center;
  height: 100%;
}

.contact-form .input-check:checked::before {
  color: #004f78;
}

.contact-form .input-check:checked+label {
  font-weight: bold;
}

.contact-form .input-check:focus-visible {
  outline-offset: 2px;
}

.contact-form .radio-wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  font-family: 'Noto Sans JP', sans-serif;
  flex-wrap: wrap;
  gap: 30px;
}

.contact-form .input-radio {
  border: 0;
  clip: rect(0, 0, 0, 0);
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  height: 1px;
  width: 1px;
}

.contact-form .input-radio:checked+.radio-label::after {
  opacity: 1;
}

.contact-form .radio-label {
  cursor: pointer;
  display: inline-block;
  padding: 5px 0 5px 30px;
  position: relative;
}

.contact-form .radio-label::before {
  background-color: #eee;
  content: '';
  display: block;
  width: 20px;
  height: 20px;
  position: absolute;
  left: 5px;
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  border-radius: 50%;
  margin-right: 10px;
}

.contact-form .radio-label::after {
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: #004f78;
  position: absolute;
  top: 50%;
  left: 10px;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  opacity: 0;
}

.contact-form .calendar-wrap {
  position: relative;
  max-width: 500px;
}

.contact-form .calendar-wrap::after {
  content: '\f073';
  color: #004f78;
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  position: absolute;
  top: 9px;
  right: 15px;
}

input[type="date"]::-webkit-calendar-picker-indicator,
input[type="datetime-local"]::-webkit-calendar-picker-indicator {
  appearance: none;
  background: transparent;
  z-index: 1;
}

input[type="datetime-local"]::placeholder {
  color: transparent;
}

input[type="datetime-local"]::-moz-focus-inner {
  border: 0;
}

.contact-form .select-wrap {
  position: relative;
}

.contact-form .select-wrap::after {
  content: '\f0dc';
  color: #004f78;
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  position: absolute;
  top: 8px;
  right: 15px;
}

.contact-form .select-box {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border: solid 1px #eee;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  border-radius: 3px;
  color: #004f78;
  font-size: 1.4rem;
  padding: 9px 15px;
  min-height: 40px;
  width: 100%;
}

.contact-form .label-wrap {
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  letter-spacing: 1px;
}

.contact-form .label-required {
  background-color: #f3f6f8;
  border-radius: 3px;
  font-size: 1.2rem;
  font-weight: bold;
  padding: 5px 8px;
}

.contact-form .btn {
  margin-top: 50px;
  width: 215px;
}

@-moz-document url-prefix() {
  .contact-form .calendar-wrap::after {
    display: none;
  }
}

@media screen and (min-width: 768px) {

  .contact-form-table th,
  .contact-form-table td {
    padding-top: 30px;
    padding-bottom: 30px;
  }

  .contact-form-table th {
    width: 280px;
    padding-right: 35px;
  }

  .contact-form .label-wrap {
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
  }
}

@media screen and (max-width: 767.98px) {
  .contact .sec-hdg {
    margin-bottom: 50px;
  }

  .contact-form-table th,
  .contact-form-table td {
    display: block;
  }

  .contact-form-table th {
    padding: 30px 0 10px;
  }

  .contact-form-table td {
    padding-bottom: 30px;
  }
}


/* --- box --- */
.box {
  background-color: #fff;
  padding-bottom: 13.888vw;
}

.box-wrap {
  background: -webkit-gradient(linear, left top, left bottom, color-stop(50%, #f3f6f8), to(rgba(243, 246, 248, 0)));
  background: -webkit-linear-gradient(top, #f3f6f8 50%, rgba(243, 246, 248, 0) 100%);
  background: linear-gradient(180deg, #f3f6f8 50%, rgba(243, 246, 248, 0) 100%);
  border-radius: 6.944vw 6.944vw 0 0;
  padding: 7.638vw 0 4.166vw;
}

.box-wrap .sec-hdg2 {
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  font-size: 2.8rem;
  gap: 15px;
  margin-bottom: 60px;
  text-align: center;
  -webkit-transform: translateY(calc(-7.638vw + -0.5em));
  transform: translateY(calc(-7.638vw + -0.5em));
  margin-bottom: -0.5em;
}

.box-wrap .sec-hdg2 .en {
  font-size: 1.2rem;
  letter-spacing: 2.4px;
}

@media screen and (max-width: 767.98px) {
  .box {
    padding-top: 60px;
    padding-bottom: 0;
  }
}


/* ---  ajust  --- */
.bg-white {
  background-color: #fff !important;
}

.ta-c {
  text-align: center !important;
}

.ta-r {
  text-align: right !important;
}

.ta-l {
  text-align: left !important;
}

.d-ib {
  display: inline-block;
}

.fs-12 {
  font-size: 1.2rem !important;
}

.fs-14 {
  font-size: 1.2rem !important;
}

.fs-16 {
  font-size: 1.4rem !important;
}

.fs-20 {
  font-size: 1.4rem !important;
}

.fs-22 {
  font-size: 1.8rem !important;
}

.fs-24 {
  font-size: 1.8rem !important;
}

.fs-26 {
  font-size: 2rem !important;
}

.fs-28 {
  font-size: 2rem !important;
}

.fs-30 {
  font-size: 2.2rem !important;
}

.fs-40 {
  font-size: 3.2rem !important;
}

.fw-bold {
  font-weight: bold !important;
}

.fw-normal {
  font-weight: normal !important;
}

@media screen and (min-width: 768px) {
  .fs-12 {
    font-size: 1.2rem !important;
  }

  .fs-14 {
    font-size: 1.4rem !important;
  }

  .fs-16 {
    font-size: 1.6rem !important;
  }

  .fs-18 {
    font-size: 1.8rem !important;
  }

  .fs-20 {
    font-size: 2rem !important;
  }

  .fs-24 {
    font-size: 2.4rem !important;
  }

  .fs-26 {
    font-size: 2.6rem !important;
  }

  .fs-28 {
    font-size: 2.8rem !important;
  }

  .fs-30 {
    font-size: 3rem !important;
  }

  .fs-40 {
    font-size: 4rem !important;
  }
}

@media screen and (min-width: 768px) {
  .fl-l {
    float: left !important;
    margin-right: 40px;
    margin-bottom: 40px;
  }

  .fl-r {
    float: right !important;
    margin-left: 40px;
    margin-bottom: 40px;
  }

  .clearfix:after {
    content: "";
    display: block;
    clear: both;
  }

  .clear {
    clear: both;
  }
}

@media screen and (min-width: 768px) {
  .pc-none {
    display: none !important;
  }
}

@media screen and (max-width: 767.98px) {
  .sp-none {
    display: none !important;
  }
}

.mt-0 {
  margin-top: 0px !important;
}

.mr-0 {
  margin-right: 0px !important;
}

.mb-0 {
  margin-bottom: 0px !important;
}

.ml-0 {
  margin-left: 0px !important;
}

.pt-0 {
  padding-top: 0px !important;
}

.pr-0 {
  padding-right: 0px !important;
}

.pb-0 {
  padding-bottom: 0px !important;
}

.pl-0 {
  padding-left: 0px !important;
}

.mt-5 {
  margin-top: 5px !important;
}

.mr-5 {
  margin-right: 5px !important;
}

.mb-5 {
  margin-bottom: 5px !important;
}

.ml-5 {
  margin-left: 5px !important;
}

.pt-5 {
  padding-top: 5px !important;
}

.pr-5 {
  padding-right: 5px !important;
}

.pb-5 {
  padding-bottom: 5px !important;
}

.pl-5 {
  padding-left: 5px !important;
}

.mt-10 {
  margin-top: 10px !important;
}

.mr-10 {
  margin-right: 10px !important;
}

.mb-10 {
  margin-bottom: 10px !important;
}

.ml-10 {
  margin-left: 10px !important;
}

.pt-10 {
  padding-top: 10px !important;
}

.pr-10 {
  padding-right: 10px !important;
}

.pb-10 {
  padding-bottom: 10px !important;
}

.pl-10 {
  padding-left: 10px !important;
}

.mt-15 {
  margin-top: 15px !important;
}

.mr-15 {
  margin-right: 15px !important;
}

.mb-15 {
  margin-bottom: 15px !important;
}

.ml-15 {
  margin-left: 15px !important;
}

.pt-15 {
  padding-top: 15px !important;
}

.pr-15 {
  padding-right: 15px !important;
}

.pb-15 {
  padding-bottom: 15px !important;
}

.pl-15 {
  padding-left: 15px !important;
}

.mt-20 {
  margin-top: 20px !important;
}

.mr-20 {
  margin-right: 20px !important;
}

.mb-20 {
  margin-bottom: 20px !important;
}

.ml-20 {
  margin-left: 20px !important;
}

.pt-20 {
  padding-top: 20px !important;
}

.pr-20 {
  padding-right: 20px !important;
}

.pb-20 {
  padding-bottom: 20px !important;
}

.pl-20 {
  padding-left: 20px !important;
}

.mt-25 {
  margin-top: 25px !important;
}

.mr-25 {
  margin-right: 25px !important;
}

.mb-25 {
  margin-bottom: 25px !important;
}

.ml-25 {
  margin-left: 25px !important;
}

.pt-25 {
  padding-top: 25px !important;
}

.pr-25 {
  padding-right: 25px !important;
}

.pb-25 {
  padding-bottom: 25px !important;
}

.pl-25 {
  padding-left: 25px !important;
}

.mt-30 {
  margin-top: 30px !important;
}

.mr-30 {
  margin-right: 30px !important;
}

.mb-30 {
  margin-bottom: 30px !important;
}

.ml-30 {
  margin-left: 30px !important;
}

.pt-30 {
  padding-top: 30px !important;
}

.pr-30 {
  padding-right: 30px !important;
}

.pb-30 {
  padding-bottom: 30px !important;
}

.pl-30 {
  padding-left: 30px !important;
}

.mt-35 {
  margin-top: 35px !important;
}

.mr-35 {
  margin-right: 35px !important;
}

.mb-35 {
  margin-bottom: 35px !important;
}

.ml-35 {
  margin-left: 35px !important;
}

.pt-35 {
  padding-top: 35px !important;
}

.pr-35 {
  padding-right: 35px !important;
}

.pb-35 {
  padding-bottom: 35px !important;
}

.pl-35 {
  padding-left: 35px !important;
}

.mt-40 {
  margin-top: 40px !important;
}

.mr-40 {
  margin-right: 40px !important;
}

.mb-40 {
  margin-bottom: 40px !important;
}

.ml-40 {
  margin-left: 40px !important;
}

.pt-40 {
  padding-top: 40px !important;
}

.pr-40 {
  padding-right: 40px !important;
}

.pb-40 {
  padding-bottom: 40px !important;
}

.pl-40 {
  padding-left: 40px !important;
}

.mt-45 {
  margin-top: 45px !important;
}

.mr-45 {
  margin-right: 45px !important;
}

.mb-45 {
  margin-bottom: 45px !important;
}

.ml-45 {
  margin-left: 45px !important;
}

.pt-45 {
  padding-top: 45px !important;
}

.pr-45 {
  padding-right: 45px !important;
}

.pb-45 {
  padding-bottom: 45px !important;
}

.pl-45 {
  padding-left: 45px !important;
}

.mt-50 {
  margin-top: 50px !important;
}

.mr-50 {
  margin-right: 50px !important;
}

.mb-50 {
  margin-bottom: 50px !important;
}

.ml-50 {
  margin-left: 50px !important;
}

.pt-50 {
  padding-top: 50px !important;
}

.pr-50 {
  padding-right: 50px !important;
}

.pb-50 {
  padding-bottom: 50px !important;
}

.pl-50 {
  padding-left: 50px !important;
}

.mt-55 {
  margin-top: 55px !important;
}

.mr-55 {
  margin-right: 55px !important;
}

.mb-55 {
  margin-bottom: 55px !important;
}

.ml-55 {
  margin-left: 55px !important;
}

.pt-55 {
  padding-top: 55px !important;
}

.pr-55 {
  padding-right: 55px !important;
}

.pb-55 {
  padding-bottom: 55px !important;
}

.pl-55 {
  padding-left: 55px !important;
}

.mt-60 {
  margin-top: 60px !important;
}

.mr-60 {
  margin-right: 60px !important;
}

.mb-60 {
  margin-bottom: 60px !important;
}

.ml-60 {
  margin-left: 60px !important;
}

.pt-60 {
  padding-top: 60px !important;
}

.pr-60 {
  padding-right: 60px !important;
}

.pb-60 {
  padding-bottom: 60px !important;
}

.pl-60 {
  padding-left: 60px !important;
}

.mt-65 {
  margin-top: 65px !important;
}

.mr-65 {
  margin-right: 65px !important;
}

.mb-65 {
  margin-bottom: 65px !important;
}

.ml-65 {
  margin-left: 65px !important;
}

.pt-65 {
  padding-top: 65px !important;
}

.pr-65 {
  padding-right: 65px !important;
}

.pb-65 {
  padding-bottom: 65px !important;
}

.pl-65 {
  padding-left: 65px !important;
}

.mt-70 {
  margin-top: 70px !important;
}

.mr-70 {
  margin-right: 70px !important;
}

.mb-70 {
  margin-bottom: 70px !important;
}

.ml-70 {
  margin-left: 70px !important;
}

.pt-70 {
  padding-top: 70px !important;
}

.pr-70 {
  padding-right: 70px !important;
}

.pb-70 {
  padding-bottom: 70px !important;
}

.pl-70 {
  padding-left: 70px !important;
}

.mt-75 {
  margin-top: 75px !important;
}

.mr-75 {
  margin-right: 75px !important;
}

.mb-75 {
  margin-bottom: 75px !important;
}

.ml-75 {
  margin-left: 75px !important;
}

.pt-75 {
  padding-top: 75px !important;
}

.pr-75 {
  padding-right: 75px !important;
}

.pb-75 {
  padding-bottom: 75px !important;
}

.pl-75 {
  padding-left: 75px !important;
}

.mt-80 {
  margin-top: 80px !important;
}

.mr-80 {
  margin-right: 80px !important;
}

.mb-80 {
  margin-bottom: 80px !important;
}

.ml-80 {
  margin-left: 80px !important;
}

.pt-80 {
  padding-top: 80px !important;
}

.pr-80 {
  padding-right: 80px !important;
}

.pb-80 {
  padding-bottom: 80px !important;
}

.pl-80 {
  padding-left: 80px !important;
}

.mt-85 {
  margin-top: 85px !important;
}

.mr-85 {
  margin-right: 85px !important;
}

.mb-85 {
  margin-bottom: 85px !important;
}

.ml-85 {
  margin-left: 85px !important;
}

.pt-85 {
  padding-top: 85px !important;
}

.pr-85 {
  padding-right: 85px !important;
}

.pb-85 {
  padding-bottom: 85px !important;
}

.pl-85 {
  padding-left: 85px !important;
}

.mt-90 {
  margin-top: 90px !important;
}

.mr-90 {
  margin-right: 90px !important;
}

.mb-90 {
  margin-bottom: 90px !important;
}

.ml-90 {
  margin-left: 90px !important;
}

.pt-90 {
  padding-top: 90px !important;
}

.pr-90 {
  padding-right: 90px !important;
}

.pb-90 {
  padding-bottom: 90px !important;
}

.pl-90 {
  padding-left: 90px !important;
}

.mt-95 {
  margin-top: 95px !important;
}

.mr-95 {
  margin-right: 95px !important;
}

.mb-95 {
  margin-bottom: 95px !important;
}

.ml-95 {
  margin-left: 95px !important;
}

.pt-95 {
  padding-top: 95px !important;
}

.pr-95 {
  padding-right: 95px !important;
}

.pb-95 {
  padding-bottom: 95px !important;
}

.pl-95 {
  padding-left: 95px !important;
}

.mt-100 {
  margin-top: 100px !important;
}

.mr-100 {
  margin-right: 100px !important;
}

.mb-100 {
  margin-bottom: 100px !important;
}

.ml-100 {
  margin-left: 100px !important;
}

.pt-100 {
  padding-top: 100px !important;
}

.pr-100 {
  padding-right: 100px !important;
}

.pb-100 {
  padding-bottom: 100px !important;
}

.pl-100 {
  padding-left: 100px !important;
}
