@charset "UTF-8";
/* Scss Document */
/* Scss Document */
.announce {
  display: none !important;
}

@media only screen and (max-width: 640px) {
  .header {
    height: calc(142 / 640 * 100vw);
  }
}
@media only screen and (max-width: 640px) {
  .header .header_container {
    margin-top: calc(60 / 640 * 100vw);
  }
}

@media only screen and (max-width: 640px) {
  .header_nav .header_menu-sp {
    margin-top: calc(10 / 640 * 100vw);
  }
}

.kv .content {
  background: url("../image/middle/kv01.jpg") no-repeat center center;
  background-size: cover;
  width: 100%;
}
@media only screen and (max-width: 640px) {
  .kv .content {
    margin-top: calc(142 / 640 * 100vw);
  }
}

.kv__title {
  color: #fff;
  text-align: center;
  font-size: 3.2rem;
  font-weight: 900;
  line-height: normal;
  padding: 7.5rem 0 8.7rem;
}
@media only screen and (max-width: 640px) {
  .kv__title {
    font-size: calc(38 / 640 * 100vw);
    padding: calc(100 / 640 * 100vw) 0 calc(100 / 640 * 100vw);
  }
}

.inner ol {
  padding-top: 1.2rem;
}
.inner ol li {
  font-size: 1.2rem;
  font-weight: 400;
  line-height: normal;
}

.middle .content {
  margin-top: 10rem;
}
@media only screen and (max-width: 640px) {
  .middle .content {
    margin-top: calc(80 / 640 * 100vw);
  }
}

.l-m10 {
  margin-top: 1rem;
}
@media only screen and (max-width: 640px) {
  .l-m10 {
    margin-top: calc(10 / 640 * 100vw);
  }
}

.l-m15 {
  margin-top: 1.5rem;
}
@media only screen and (max-width: 640px) {
  .l-m15 {
    margin-top: calc(15 / 640 * 100vw);
  }
}

.l-m20 {
  margin-top: 2rem;
}
@media only screen and (max-width: 640px) {
  .l-m20 {
    margin-top: calc(20 / 640 * 100vw);
  }
}

.l-m30 {
  margin-top: 3rem;
}
@media only screen and (max-width: 640px) {
  .l-m30 {
    margin-top: calc(30 / 640 * 100vw);
  }
}

.l-m50 {
  margin-top: 5rem;
}
@media only screen and (max-width: 640px) {
  .l-m50 {
    margin-top: calc(50 / 640 * 100vw);
  }
}

._red {
  color: #f00;
}

._blue {
  color: #015CAC;
}

._yellow {
  color: #f80;
}

.c-ttl {
  color: #015CAC;
  font-size: 3.2rem;
  font-weight: 700;
  line-height: normal;
  padding-bottom: 2.1rem;
  border-bottom: 3px solid rgba(1, 92, 172, 0.3);
}
@media only screen and (max-width: 640px) {
  .c-ttl {
    font-size: calc(38 / 640 * 100vw);
    padding-bottom: calc(20 / 640 * 100vw);
  }
}

.c-sttl {
  color: #015CAC;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: normal;
}
@media only screen and (max-width: 640px) {
  .c-sttl {
    font-size: calc(34 / 640 * 100vw);
  }
}

.c-img-l {
  width: 100%;
}

.c-img-50 {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
@media only screen and (max-width: 640px) {
  .c-img-50 {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: calc(20 / 640 * 100vw);
  }
}
.c-img-50 img {
  width: 48.2456140351%;
}
@media only screen and (max-width: 640px) {
  .c-img-50 img {
    width: 100%;
  }
}

.c-media {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
@media only screen and (max-width: 640px) {
  .c-media {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: calc(20 / 640 * 100vw);
  }
}

.c-media__thumb {
  width: 48.2456140351%;
}
@media only screen and (max-width: 640px) {
  .c-media__thumb {
    width: 100%;
  }
}

.c-media__body {
  width: 48.2456140351%;
}
@media only screen and (max-width: 640px) {
  .c-media__body {
    width: 100%;
  }
}

.c-media__ttl {
  color: #015CAC;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: normal;
}
@media only screen and (max-width: 640px) {
  .c-media__ttl {
    font-size: calc(34 / 640 * 100vw);
  }
}

.c-media__desc01 {
  font-size: 1.4rem;
}
@media only screen and (max-width: 640px) {
  .c-media__desc01 {
    font-size: calc(20 / 640 * 100vw);
  }
}

.c-media__desc02 {
  font-size: 1.4rem;
  padding-left: 1.6rem;
  position: relative;
}
@media only screen and (max-width: 640px) {
  .c-media__desc02 {
    font-size: calc(20 / 640 * 100vw);
    padding-left: calc(18 / 640 * 100vw);
  }
}
.c-media__desc02::before {
  content: "※";
  position: absolute;
  font-size: 1.4rem;
  left: 0;
  top: 0;
}
@media only screen and (max-width: 640px) {
  .c-media__desc02::before {
    font-size: calc(20 / 640 * 100vw);
  }
}

.c-sub-ttl__main {
  background: #f3f1e5;
  font-size: 1.6rem;
  font-weight: 400;
  padding: 6px 0 7px;
}

.c-article {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
@media only screen and (max-width: 640px) {
  .c-article {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: calc(20 / 640 * 100vw);
  }
}

.c-card {
  width: 30.701754386%;
}
@media only screen and (max-width: 640px) {
  .c-card {
    width: 100%;
  }
}

.c-card__ttl {
  font-size: 2rem;
  font-weight: 700;
}
@media only screen and (max-width: 640px) {
  .c-card__ttl {
    font-size: calc(30 / 640 * 100vw);
  }
}

.c-table01 table {
  width: 100%;
}
.c-table01 table tr {
  border: 1px solid #ccc;
  background: #fff;
}
.c-table01 table th {
  font-weight: 400;
  line-height: 3.05;
  text-align: left;
  padding-left: 1.4rem;
  border: 1px solid #ccc;
  background: #f3f1e5;
}
@media only screen and (max-width: 640px) {
  .c-table01 table th {
    line-height: 2.5;
    padding-left: calc(20 / 640 * 100vw);
  }
}
.c-table01 table td {
  line-height: 3.05;
  padding-left: 1.7rem;
  border-left: 1px solid #ccc;
}
@media only screen and (max-width: 640px) {
  .c-table01 table td {
    line-height: 2.5;
    padding-left: calc(20 / 640 * 100vw);
  }
}

.c-table02 {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
@media only screen and (max-width: 640px) {
  .c-table02 {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
.c-table02 table {
  width: 50%;
}
@media only screen and (max-width: 640px) {
  .c-table02 table {
    width: 100%;
  }
}
.c-table02 table tr {
  border: 1px solid #ccc;
  background: #fff;
}
.c-table02 table th {
  font-weight: 400;
  line-height: 3.05;
  width: 38.9473684211%;
  text-align: left;
  padding-left: 1.4rem;
  border: 1px solid #ccc;
  background: #f3f1e5;
}
@media only screen and (max-width: 640px) {
  .c-table02 table th {
    display: block;
    width: 100%;
    line-height: 2.5;
    padding-left: calc(20 / 640 * 100vw);
  }
}
.c-table02 table td {
  line-height: 3.05;
  padding-left: 1.9rem;
}
@media only screen and (max-width: 640px) {
  .c-table02 table td {
    display: block;
    line-height: 2.5;
    padding-left: calc(20 / 640 * 100vw);
  }
}

.c-table03 {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
@media only screen and (max-width: 640px) {
  .c-table03 {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
.c-table03 table {
  width: 33.3333333333%;
}
@media only screen and (max-width: 640px) {
  .c-table03 table {
    width: 100%;
  }
}
.c-table03 table tr {
  border: 1px solid #ccc;
  background: #fff;
}
.c-table03 table th {
  font-weight: 400;
  line-height: 3.05;
  width: 58.4210526316%;
  text-align: left;
  padding-left: 1.4rem;
  border: 1px solid #ccc;
  background: #f3f1e5;
}
@media only screen and (max-width: 640px) {
  .c-table03 table th {
    line-height: 2.5;
  }
}
.c-table03 table td {
  line-height: 3.05;
  padding-left: 1.9rem;
}
@media only screen and (max-width: 640px) {
  .c-table03 table td {
    line-height: 2.5;
  }
}

.c-table04 table {
  width: 100%;
}
.c-table04 table tr {
  background: #f3f1e5;
}
.c-table04 table th {
  background: #070707;
  color: #fff;
  font-weight: 400;
  line-height: 3.05;
  vertical-align: middle;
  text-align: left;
  padding-left: 1.4rem;
  width: 22.1929824561%;
  position: relative;
}
@media only screen and (max-width: 640px) {
  .c-table04 table th {
    display: block;
    width: 100%;
    text-align: center;
    padding-left: 0;
  }
}
.c-table04 table th::after {
  content: "";
  position: absolute;
  background: url("../image/middle/icon-arrow01.png") no-repeat center center;
  background-size: contain;
  height: 100%;
  aspect-ratio: 61/77;
  top: 0;
  right: -23%;
}
@media only screen and (max-width: 640px) {
  .c-table04 table th::after {
    display: none;
  }
}
.c-table04 table td {
  padding: 1.2rem 0;
  padding-left: 6.5rem;
}
@media only screen and (max-width: 640px) {
  .c-table04 table td {
    display: block;
    padding: calc(20 / 640 * 100vw);
  }
}

.c-table04-blue table th {
  background: #015CAC;
  position: relative;
}
.c-table04-blue table th::after {
  content: "";
  position: absolute;
  background: url("../image/middle/icon-arrow02.png") no-repeat center center;
  background-size: contain;
  height: 100%;
  aspect-ratio: 4/5;
  top: 0;
  right: -15%;
}
@media only screen and (max-width: 640px) {
  .c-table04-blue table th::after {
    display: none;
  }
}

.arrow01 {
  padding-left: 1.9rem;
  position: relative;
}
@media only screen and (max-width: 640px) {
  .arrow01 {
    padding-left: calc(20 / 640 * 100vw);
  }
}
.arrow01::before {
  content: "";
  position: absolute;
  background: url("../image/middle/icon-arrow03.png") no-repeat center center;
  background-size: contain;
  width: 9px;
  height: 9px;
  top: 50%;
  left: 0;
  -webkit-transform: translateY(-35%);
          transform: translateY(-35%);
}
@media only screen and (max-width: 640px) {
  .arrow01::before {
    -webkit-transform: translateY(0);
            transform: translateY(0);
    top: 20%;
  }
}

.arrow02 {
  padding-left: 1.9rem;
  position: relative;
  display: inline-block;
}
@media only screen and (max-width: 640px) {
  .arrow02 {
    padding-left: calc(20 / 640 * 100vw);
  }
}
.arrow02::before {
  content: "";
  position: absolute;
  background: url("../image/middle/icon-arrow04.png") no-repeat center center;
  background-size: contain;
  width: 14px;
  height: 8px;
  top: 50%;
  left: 0;
  -webkit-transform: translateY(-35%);
          transform: translateY(-35%);
}
@media only screen and (max-width: 640px) {
  .arrow02::before {
    -webkit-transform: translateY(0);
            transform: translateY(0);
    top: 20%;
  }
}

.txt-xs {
  font-size: 1.2rem;
}
@media only screen and (max-width: 640px) {
  .txt-xs {
    font-size: calc(16 / 640 * 100vw);
  }
}

.txt-s {
  font-size: 1.4rem;
}
@media only screen and (max-width: 640px) {
  .txt-s {
    font-size: calc(20 / 640 * 100vw);
  }
}

.txt-l {
  font-size: 2rem;
}
@media only screen and (max-width: 640px) {
  .txt-l {
    font-size: calc(30 / 640 * 100vw);
  }
}

.txt-xl {
  font-size: 2.4rem;
}
@media only screen and (max-width: 640px) {
  .txt-xl {
    font-size: calc(34 / 640 * 100vw);
  }
}

.txt-xxl {
  font-size: 3.2rem;
}
@media only screen and (max-width: 640px) {
  .txt-xxl {
    font-size: calc(38 / 640 * 100vw);
  }
}

.l-image .content {
  padding-top: 5rem;
}
@media only screen and (max-width: 640px) {
  .l-image .content {
    padding-top: calc(50 / 640 * 100vw);
  }
}

.c-button {
  background-color: #ed1a7c;
  color: #fff !important;
  font-weight: bold;
  line-height: 1.6;
  padding: 15px 100px 15px 85px;
  border-radius: 8px;
  display: inline-block;
  position: relative;
}
.c-button::after {
  content: "";
  position: absolute;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  width: 14px;
  height: 14px;
  top: 50%;
  right: 28px;
  -webkit-transform: rotate(45deg) translateY(-50%);
          transform: rotate(45deg) translateY(-50%);
}

.c-button--black {
  background-color: #000;
}

.c-button--red {
  background-color: #e8171e;
}

.c-button--blue {
  background-color: #004e93;
}

.button__contact {
  gap: 2rem;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media only screen and (max-width: 640px) {
  .button__contact {
    gap: calc(20 / 640 * 100vw);
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
.button__contact .c-button--blue {
  height: auto;
}
@media only screen and (max-width: 640px) {
  .button__contact .c-button--blue {
    width: calc(300 / 640 * 100vw);
    padding: calc(15 / 640 * 100vw) 0 calc(15 / 640 * 100vw) 0;
  }
}

.cta {
  position: fixed;
  right: 0;
  bottom: 10%;
  z-index: 10;
  width: 22.3rem;
}
@media only screen and (max-width: 640px) {
  .cta {
    bottom: 10%;
    right: calc(20 / 640 * 100vw);
    width: calc(152 / 640 * 100vw);
  }
}

.cta__link {
  margin-top: 4.7rem;
}
@media only screen and (max-width: 640px) {
  .cta__link {
    width: calc(152 / 640 * 100vw);
  }
}
.contact__txt {
  margin-bottom: 2rem;
}
@media only screen and (max-width: 640px) {
  .contact__txt {
    font-size: calc(21 / 640 * 100vw);
  }
}

.contact__form-th span {
  vertical-align: top !important;
}

.contact__form-table {
  position: relative;
}
.contact__form-table input {
  height: 2.8rem;
}
.contact__form-table select {
  height: 2.8rem;
}
.contact__form-table .contact__form-th {
  vertical-align: top;
}
.contact__form-table textarea {
  margin-top: 1rem;
}
@media only screen and (max-width: 640px) {
  .contact__form-table th {
    display: block;
    font-size: calc(20 / 640 * 100vw);
  }
}
.contact__form-table td {
  position: relative;
  padding-top: 2rem;
  padding-bottom: 2rem;
}
@media only screen and (max-width: 640px) {
  .contact__form-table td {
    display: block;
    font-size: calc(20 / 640 * 100vw);
  }
}
@media only screen and (max-width: 640px) and (max-width: 640px) {
  .contact__form-table td {
    padding-top: calc(10 / 640 * 100vw);
    padding-bottom: calc(10 / 640 * 100vw);
  }
}
@media only screen and (max-width: 640px) {
  .contact__form-table input[type=text] {
    width: 35%;
  }
}
@media only screen and (max-width: 640px) {
  .contact__form-table input[type=email],
  .contact__form-table select,
  .contact__form-table textarea {
    width: 98% !important; /* 既存の固定幅を強制的に上書き */
    max-width: 98%;
    -webkit-box-sizing: border-box;
            box-sizing: border-box; /* paddingを含めた幅を100%にする */
  }
}
@media only screen and (max-width: 640px) {
  .contact__form-table textarea {
    width: 97% !important;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
  }
}

.contact__form-th-pink {
  background: #feefea !important;
}

@media only screen and (max-width: 640px) {
  .sd.clearfix .form-area {
    margin-top: calc(200 / 640 * 100vw);
  }
}
.sd.clearfix .form-area table {
  margin: 0 auto;
}
.sd.clearfix .form-area th {
  font-size: 2rem;
}
@media only screen and (max-width: 640px) {
  .sd.clearfix .form-area th {
    display: block;
    font-size: calc(24 / 640 * 100vw);
  }
}
.sd.clearfix td {
  font-size: 2rem;
  padding: 2rem 0 2rem 2rem;
}
@media only screen and (max-width: 640px) {
  .sd.clearfix td {
    display: block;
    font-size: calc(24 / 640 * 100vw);
  }
}

.button {
  border-bottom: none;
}
@media only screen and (max-width: 640px) {
  .button .c-button__thanks {
    width: calc(350 / 640 * 100vw);
    padding-left: calc(50 / 640 * 100vw);
  }
}