@charset "UTF-8";
/* http://meyerweb.com/eric/tools/css/reset/
v2.0 | 20110126
License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block;
}

body {
  line-height: 1;
}

ol, ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
  content: "";
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

.animate .fadein {
  opacity: 0;
  transform-style: preserve-3d;
  transition-property: opacity;
  transition-duration: 2000ms;
  transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  transition-delay: 0ms;
}
.animate.show .fadein {
  opacity: 1;
}
.animate .slidein_left {
  opacity: 0;
  transform: translateX(-100px);
  transform-style: preserve-3d;
  transition-property: opacity, transform;
  transition-duration: 1000ms;
  transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  transition-delay: 0ms;
}
.animate .slidein_right {
  opacity: 0;
  transform: translateX(100px);
  transform-style: preserve-3d;
  transition-property: opacity, transform;
  transition-duration: 1000ms;
  transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  transition-delay: 0ms;
}
.animate.show .slidein_left, .animate.show .slidein_right {
  opacity: 1;
  transform: translateX(0);
}
.animate .slidein_top {
  opacity: 0;
  transform: translateY(-20px);
  transform-style: preserve-3d;
  transition-property: opacity, transform;
  transition-duration: 1000ms;
  transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  transition-delay: 0ms;
}
.animate .slidein_bottom {
  opacity: 0;
  transform: translateY(20px);
  transform-style: preserve-3d;
  transition-property: opacity, transform;
  transition-duration: 1000ms;
  transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  transition-delay: 0ms;
}
.animate.show .slidein_top, .animate.show .slidein_bottom {
  opacity: 1;
  transform: translateY(0);
}
.animate .zoomin {
  opacity: 0;
  transform: scale(1.5, 1.5);
  transform-style: preserve-3d;
  transition-property: opacity, transform;
  transition-duration: 500ms;
  transition-delay: 0ms;
}
.animate .zoomout {
  opacity: 0;
  transform: scale(0.5, 0.5);
  transform-style: preserve-3d;
  transition-property: opacity, transform;
  transition-duration: 500ms;
  transition-delay: 0ms;
}
.animate.show .zoomin, .animate.show .zoomout {
  opacity: 1;
  transform: scale(1, 1);
}
.animate .d1 {
  transition-delay: 100ms;
}
.animate .d2 {
  transition-delay: 200ms;
}
.animate .d3 {
  transition-delay: 300ms;
}
.animate .d4 {
  transition-delay: 400ms;
}
.animate .d5 {
  transition-delay: 500ms;
}
.animate .d6 {
  transition-delay: 600ms;
}
.animate .d7 {
  transition-delay: 700ms;
}
.animate .d8 {
  transition-delay: 800ms;
}
.animate .d9 {
  transition-delay: 900ms;
}
.animate .d10 {
  transition-delay: 1000ms;
}
.animate .d11 {
  transition-delay: 1100ms;
}
.animate .d12 {
  transition-delay: 1200ms;
}
.animate .d13 {
  transition-delay: 1300ms;
}
.animate .d14 {
  transition-delay: 1400ms;
}
.animate .d15 {
  transition-delay: 1500ms;
}
.animate .d16 {
  transition-delay: 1600ms;
}
.animate .d17 {
  transition-delay: 1700ms;
}
.animate .d18 {
  transition-delay: 1800ms;
}
.animate .d19 {
  transition-delay: 1900ms;
}
.animate .d20 {
  transition-delay: 2000ms;
}

body {
  font-family: "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  -webkit-text-size-adjust: 100%;
}
body a {
  outline: none;
  color: inherit;
  text-decoration: none;
}
body a:hover {
  text-decoration: none;
}
body img {
  vertical-align: bottom;
  border: 0;
  outline: none;
}
body sup, body sub {
  height: 0;
  line-height: 1;
  vertical-align: baseline;
  position: relative;
  font-size: 50%;
}
body sup {
  bottom: 1ex;
}
body sub {
  top: 0.5ex;
}
body input, body textarea, body select, body button {
  padding: 0;
  box-sizing: border-box;
  border: 0;
  border-radius: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
body input::-ms-expand, body textarea::-ms-expand, body select::-ms-expand, body button::-ms-expand {
  display: none;
}
body .word_break {
  word-wrap: break-word;
  word-break: break-all;
}
body * {
  outline: none;
  font-weight: 300;
}
body *:hover, body *:active, body *:focus {
  outline: none;
}
body button {
  background: none;
  cursor: pointer;
  font-family: "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}
body p small {
  font-size: 0.6em;
}
body .about-text-area p small {
  font-size: 0.8em;
}
body .keep-all {
  word-break: keep-all;
}
body .keep-all .nowrap {
  white-space: nowrap;
}

@media screen and (min-width: 768px) {
  body {
    min-width: 1200px;
    max-width: 1920px;
    margin: auto;
  }
  body main article a, body main article button {
    opacity: 1;
    transform-style: preserve-3d;
    transition-property: opacity;
    transition-duration: 300ms;
    transition-timing-function: linear;
    transition-delay: 0ms;
  }
  body main article a:hover, body main article button:hover {
    opacity: 0.6;
  }
  body main article a.bright, body main article button.bright {
    filter: brightness(1);
    transform-style: preserve-3d;
    transition-property: filter;
    transition-duration: 300ms;
    transition-timing-function: linear;
    transition-delay: 0ms;
    opacity: 1;
  }
  body main article a.bright:hover, body main article button.bright:hover {
    filter: brightness(1.2);
  }
  body main article a.noHover, body main article button.noHover {
    opacity: 1;
  }
  body main article section {
    width: 100%;
  }
  body main article section .inner {
    width: 1000px;
    margin: auto;
  }
  body main article section h2 img {
    width: 100%;
  }
  body main article .cv {
    position: relative;
    width: 100%;
    height: 440px;
    margin: auto;
    background: #001064 url("../image/cv-bg.png") no-repeat center top/1200px 370px;
    overflow: hidden;
  }
  body main article .cv img {
    width: 100%;
  }
  body main article .cv .cv-main {
    display: block;
    width: 438px;
    height: 208px;
    position: absolute;
    top: 110px;
    right: 50%;
    margin-right: 60px;
  }
  body main article .cv .cv-code {
    display: block;
    width: 336px;
    height: 109px;
    position: absolute;
    top: 110px;
    left: 50%;
    margin-left: -27px;
  }
  body main article .cv .cv-anchor {
    display: block;
    width: 340px;
    height: 106px;
    position: absolute;
    top: 220px;
    left: 50%;
    margin-left: -30px;
  }
  body main article header {
    width: 100%;
    height: 80px;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
  }
  body main article header .header-logo {
    display: block;
    width: 186px;
    height: 40px;
  }
  body main article header .header-logo img {
    width: 100%;
  }
  body main article #kv {
    position: relative;
    width: 100%;
    height: 660px;
    margin: auto;
    background: url("../image/mv-bg.jpg") no-repeat center/1920px;
    overflow: hidden;
  }
  body main article #kv img {
    width: 100%;
  }
  body main article #kv h1 {
    display: block;
    width: 588px;
    height: 342px;
    position: absolute;
    top: 135px;
    left: 0;
    right: 0;
    margin: auto;
  }
  body main article #kv .kv-text {
    display: block;
    width: 1190px;
    height: 79px;
    position: absolute;
    top: 10px;
    left: 0;
    right: 0;
    margin: auto;
  }
  body main article #kv .kv-anchor {
    display: block;
    width: 427px;
    height: 83px;
    position: absolute;
    bottom: 80px;
    left: 0;
    right: 0;
    margin: auto;
  }
  body main article #campaign {
    padding: 95px 0 100px;
    background: url("../image/bg-pattern.png") repeat center top/1920px;
  }
  body main article #campaign .campaign-detail-title {
    display: block;
    width: 239px;
    height: 28px;
    margin: 100px auto 30px;
  }
  body main article #campaign .campaign-detail {
    display: block;
    width: 1000px;
    height: 522px;
    overflow: hidden;
    border-radius: 50px;
    background-color: #fff;
    margin: 29px auto 0;
    position: relative;
    transition: height 0.2s ease-out;
  }
  body main article #campaign .campaign-detail .campaign-detail-btn {
    font-size: 18px;
    line-height: 1;
    color: #fff;
    display: block;
    width: fit-content;
    padding-right: 10px;
    position: absolute;
    top: 480px;
    left: 0;
    right: 0;
    margin: auto;
  }
  body main article #campaign .campaign-detail .campaign-detail-btn .line {
    border-bottom: 1px solid #fff;
  }
  body main article #campaign .campaign-detail .campaign-detail-btn .icon {
    display: block;
    width: 9px;
    height: 9px;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    margin: auto;
  }
  body main article #campaign .campaign-detail .campaign-detail-btn .icon::before, body main article #campaign .campaign-detail .campaign-detail-btn .icon::after {
    content: "";
    display: block;
    background-color: #fff;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
  }
  body main article #campaign .campaign-detail .campaign-detail-btn .icon::before {
    width: 100%;
    height: 1px;
  }
  body main article #campaign .campaign-detail .campaign-detail-btn .icon::after {
    width: 1px;
    height: 100%;
    transition: opacity 0.2s linear;
  }
  body main article #campaign .campaign-detail ul {
    width: 938px;
    position: absolute;
    top: 536px;
    left: 0;
    right: 0;
    margin: auto;
  }
  body main article #campaign .campaign-detail ul li {
    font-size: 15px;
    line-height: 24px;
    color: #fff;
    padding-left: 1em;
    text-indent: -1em;
  }
  body main article #campaign .campaign-detail.open {
    height: 696px;
  }
  body main article #campaign .campaign-detail.open .campaign-detail-btn .icon::after {
    opacity: 0;
  }
  body main article #campaign .campaign-step {
    display: block;
    width: 1000px;
    height: auto;
    margin: 83px auto 0;
  }
  body main article #campaign .campaign-code {
    display: block;
    width: 1000px;
    height: 195px;
    margin: 55px auto 0;
    cursor: auto;
  }
  body main article #campaign .campaign-code img {
    width: 100%;
  }
  body main article #campaign .campaign-text {
    display: block;
    width: 462px;
    height: 30px;
    margin: 17px auto 0;
  }
  body main article #campaign .campaign-text img {
    width: 100%;
  }
  body main article #campaign .campaign-anchor {
    display: block;
    width: 384px;
    height: 75px;
    margin: 55px auto 0;
  }
  body main article #campaign .campaign-anchor img {
    width: 100%;
  }
  body main article #about {
    padding: 128px 0 0;
    position: relative;
  }
  body main article #about h2 {
    display: block;
    width: 488px;
    height: 105px;
    margin: auto;
  }
  body main article #about .about-image1 {
    display: block;
    width: 353px;
    height: 385px;
    position: absolute;
    top: 255px;
    right: 50%;
    margin-right: 100px;
  }
  body main article #about .about-text-area {
    display: block;
    width: 524px;
    padding: 52px 44px;
    box-sizing: border-box;
    border-radius: 20px;
    border: 4px solid #ed6c00;
    background-color: #fffbf1;
    margin: 55px 0 0 auto;
    font-size: 18px;
    line-height: 32px;
    color: #ed6c00;
  }
  body main article #about .about-text-area span {
    color: #fff;
    background-color: #ed6c00;
    padding: 0 2px;
  }
  body main article #about #cm {
    width: 100%;
    padding: 54px 0 35px;
    border-radius: 30px;
    background-color: #f3f5fc;
    margin-top: 140px;
  }
  body main article #about #cm h3 {
    display: block;
    width: 255px;
    height: 29px;
    margin: auto;
  }
  body main article #about #cm h3 img {
    width: 100%;
  }
  body main article #about #cm button {
    display: block;
    width: 690px;
    height: fit-content;
    margin: 40px auto 0;
  }
  body main article #about #cm button .img {
    width: 690px;
    height: 404px;
    position: relative;
  }
  body main article #about #cm button .img img {
    width: 100%;
  }
  body main article #about #cm button p {
    font-size: 16px;
    line-height: 22px;
    color: #001064;
    text-align: center;
    margin-top: 10px;
  }
  body main article #anniversary {
    padding: 84px 0 50px;
    background: url("../image/anniversary-bg.png") no-repeat center bottom/405px 715px;
    position: relative;
  }
  body main article #anniversary h2 {
    display: block;
    width: 750px;
    height: 102px;
    margin: auto;
  }
  body main article #anniversary .anniversary-image {
    display: block;
    width: 1001px;
    margin: 30px auto 0;
  }
  body main article #plan {
    padding: 100px 0 0;
  }
  body main article #plan h2 {
    display: block;
    width: 255px;
    height: 133px;
    margin: auto;
  }
  body main article #plan .plan-con {
    margin-top: 45px;
    display: none;
  }
  body main article #plan .plan-con.view {
    display: block;
  }
  body main article #plan .plan-con h3 {
    font-size: 24px;
    line-height: 1;
    font-weight: 600;
    font-feature-settings: "palt";
    color: #001064;
    text-align: center;
  }
  body main article #plan .plan-con .plan-details {
    width: 1000px;
    margin: 40px auto 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    justify-content: center;
    gap: 20px;
  }
  body main article #plan .plan-con .plan-details .plan-detail-ele {
    width: 320px;
    border-radius: 28px;
    border: 4px solid;
    box-sizing: border-box;
    padding-bottom: 32px;
    background-color: #fff;
  }
  body main article #plan .plan-con .plan-details .plan-detail-ele h4 {
    display: block;
    width: 320px;
    height: 151px;
    margin-left: -4px;
    margin-top: -29px;
  }
  body main article #plan .plan-con .plan-details .plan-detail-ele .plan-detail-inner {
    width: 100%;
    height: 160px;
    overflow: hidden;
    transition: height 0.5s ease-in-out;
  }
  body main article #plan .plan-con .plan-details .plan-detail-ele .plan-detail-inner img {
    width: 100%;
  }
  body main article #plan .plan-con .plan-details .plan-detail-ele button {
    margin: 30px auto 0;
  }
  body main article #plan .plan-con .plan-details .plan-detail-ele button img {
    width: 100%;
  }
  body main article #plan .plan-con .plan-details .plan-detail-ele button.open-btn {
    width: 233px;
    height: 42px;
    display: block;
  }
  body main article #plan .plan-con .plan-details .plan-detail-ele button.close-btn {
    width: 240px;
    height: 48px;
    display: none;
  }
  body main article #plan .plan-con .plan-details .plan-detail-ele:nth-of-type(1) {
    border-color: #036eb7;
  }
  body main article #plan .plan-con .plan-details .plan-detail-ele:nth-of-type(2) {
    border-color: #e7336e;
  }
  body main article #plan .plan-con .plan-details .plan-detail-ele:nth-of-type(3) {
    border-color: #00a970;
  }
  body main article #plan .plan-con .plan-details .plan-detail-ele:nth-of-type(3) button .close-btn {
    width: 242px;
  }
  body main article #plan .plan-con .plan-details .plan-detail-ele.open .plan-detail-inner {
    height: 702px;
  }
  body main article #plan .plan-con .plan-details .plan-detail-ele.open button.open-btn {
    display: none;
  }
  body main article #plan .plan-con .plan-details .plan-detail-ele.open button.close-btn {
    display: block;
  }
  body main article #plan .ponta {
    width: 100%;
    max-width: 1460px;
    margin: -95px auto 0;
    padding-top: 192px;
    box-sizing: border-box;
    overflow: hidden;
    position: relative;
    z-index: -1;
  }
  body main article #plan .ponta .ponta-inner {
    width: 1000px;
    margin: auto;
    padding: 518px 30px 40px;
    box-sizing: border-box;
  }
  body main article #plan .ponta .ponta-inner::before {
    content: "";
    display: block;
    width: 1000px;
    height: 482px;
    border-radius: 40px;
    background-color: #edeff7;
    position: absolute;
    top: 192px;
    left: 50%;
    margin-left: -500px;
  }
  body main article #plan .ponta .ponta-inner .ponta-image {
    width: 1460px;
    position: absolute;
    top: 0;
    left: 50%;
    margin-left: -730px;
  }
  body main article #plan .ponta .ponta-inner .ponta-image img {
    width: 100%;
  }
  body main article #plan .ponta .ponta-inner .ponta-text li {
    font-size: 15px;
    line-height: 24px;
    color: #001064;
    padding-left: 1em;
    text-indent: -1em;
  }
  body main article #option {
    padding: 125px 0 100px;
  }
  body main article #option h2 {
    display: block;
    width: 505px;
    height: 158px;
    margin: auto;
  }
  body main article #option h2 img {
    width: 100%;
  }
  body main article #option .option-read {
    display: block;
    width: 553px;
    height: 119px;
    margin: 35px auto 0;
  }
  body main article #option .option-read img {
    width: 100%;
  }
  body main article #option h3 {
    display: block;
    margin: auto;
  }
  body main article #option h3 img {
    width: 100%;
  }
  body main article #option h3:nth-of-type(1) {
    width: 508px;
    height: 98px;
    margin-top: 24px;
  }
  body main article #option h3:nth-of-type(2) {
    width: 473px;
    height: 119px;
    margin-top: 52px;
  }
  body main article #option .option-set {
    width: 100%;
    padding: 20px;
    border-radius: 30px;
    box-sizing: border-box;
    background-color: #f3f5fc;
    margin: 25px auto 0;
    position: relative;
  }
  body main article #option .option-set .option-con {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 35px;
  }
  body main article #option .option-set .option-con .option-image {
    display: block;
    width: 400px;
    height: auto;
  }
  body main article #option .option-set .option-con .option-text {
    padding-bottom: 20px;
    padding-right: 23px;
  }
  body main article #option .option-set .option-con .option-text p {
    font-size: 18px;
    line-height: 26px;
    color: #001064;
  }
  body main article #option .option-set .option-con .option-text p.copy {
    font-size: 28px;
    line-height: 33px;
    font-weight: 600;
    margin-bottom: 25px;
  }
  body main article #option .option-set .option-detail {
    display: none;
    width: 100%;
    margin: 40px auto 80px;
  }
  body main article #option .option-set .option-detail img {
    width: 100%;
  }
  body main article #option .option-set button {
    width: 200px;
    height: 50px;
    position: absolute;
    bottom: 20px;
    right: 17px;
  }
  body main article #option .option-set button img {
    width: 100%;
  }
  body main article #option .option-set button.option-btn-open {
    display: block;
  }
  body main article #option .option-set button.option-btn-close {
    display: none;
  }
  body main article #option .option-set:nth-of-type(2) {
    margin-top: 18px;
  }
  body main article #option .option-set.open button.option-btn-open {
    display: none;
  }
  body main article #option .option-set.open button.option-btn-close {
    display: block;
  }
  body main article #option .option-and {
    margin-top: 68px;
  }
  body main article #option .option-and p {
    display: block;
    width: 506px;
    height: 98px;
    margin: auto;
  }
  body main article #option .option-and .option-and-image {
    display: block;
    width: 100%;
    height: auto;
    margin-top: 30px;
  }
  body main article #flow {
    padding: 88px 0 100px;
    background: url("../image/bg-pattern.png") repeat center/1920px;
  }
  body main article #flow h2 {
    display: block;
    width: 464px;
    height: 134px;
    margin: auto;
  }
  body main article #flow .flow-point {
    display: block;
    width: 1000px;
    margin-top: 46px;
  }
  body main article #flow .flow-step {
    display: block;
    width: 998px;
    margin-top: 77px;
  }
  body main article #flow .flow-arrow {
    display: block;
    width: 101px;
    margin: 31px auto 0;
  }
  body main article #flow .flow-start {
    display: block;
    width: 1000px;
    margin: 7px auto 0;
  }
  body main article #voice {
    padding: 95px 0 132px;
  }
  body main article #voice h2 {
    display: block;
    width: 340px;
    height: 141px;
    margin: auto;
  }
  body main article #voice .voices {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    justify-content: center;
    margin-top: 44px;
    position: relative;
  }
  body main article #voice .voices .voice-set {
    width: 490px;
    padding: 20px 25px;
    border-radius: 20px;
    box-sizing: border-box;
    background-color: #f3f5fc;
  }
  body main article #voice .voices .voice-set .voice-title {
    display: flex;
    justify-content: start;
    align-items: start;
    gap: 16px;
    padding-bottom: 13px;
    margin-bottom: 22px;
    position: relative;
  }
  body main article #voice .voices .voice-set .voice-title::after {
    content: "";
    display: inline-block;
    width: 100%;
    height: 4px;
    background-size: 8px 4px;
    background-image: radial-gradient(circle farthest-side, #001064, #001064 50%, transparent 50%, transparent);
    position: absolute;
    left: 0;
    bottom: 0;
  }
  body main article #voice .voices .voice-set .voice-title img {
    display: block;
    width: 79px;
    height: auto;
  }
  body main article #voice .voices .voice-set .voice-title .text {
    padding-top: 8px;
  }
  body main article #voice .voices .voice-set .voice-title .text .tag {
    display: block;
    width: 100px;
    border-radius: 11px;
    background-color: #ffe71a;
    margin-bottom: 8px;
    font-size: 16px;
    line-height: 22px;
    font-weight: 600;
    color: #001064;
    text-align: center;
  }
  body main article #voice .voices .voice-set .voice-title .text .main-text {
    font-size: 26px;
    line-height: 34px;
    font-weight: 600;
    color: #001064;
  }
  body main article #voice .voices .voice-set .sub-text {
    font-size: 17px;
    line-height: 26px;
    color: #001064;
  }
  body main article #voice .voices .cap {
    font-size: 14px;
    line-height: 1;
    color: #001064;
    text-align: right;
    position: absolute;
    bottom: 16px;
    right: 0;
  }
  body main article #achievement {
    padding: 95px 0 70px;
    background: url("../image/bg-pattern.png") repeat center/1920px;
  }
  body main article #achievement h2 {
    display: block;
    width: 263px;
    height: 90px;
    margin: auto;
  }
  body main article #achievement .achievement-list {
    width: 1000px;
    margin: 48px auto 0;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    justify-content: center;
    gap: 20px;
  }
  body main article #achievement .achievement-list .achievement-ele {
    width: 320px;
    background-color: #f3f5fc;
    border-radius: 20px;
    padding: 26px 5px 13px;
    position: relative;
  }
  body main article #achievement .achievement-list .achievement-ele .ribon {
    display: block;
    width: 50px;
    height: auto;
    position: absolute;
    top: 0;
    left: 18px;
  }
  body main article #achievement .achievement-list .achievement-ele .achievement-ele-title {
    font-size: 20px;
    line-height: 26px;
    font-weight: 600;
    color: #001064;
    margin: 0 15px 0 75px;
  }
  body main article #achievement .achievement-list .achievement-ele:nth-of-type(1) .achievement-ele-title {
    margin-top: 13px;
    margin-bottom: 13px;
  }
  body main article #achievement .achievement-list .achievement-ele .image {
    width: 100%;
    margin-top: 20px;
  }
  body main article #achievement .achievement-list .achievement-ele .achievement-ele-text {
    display: block;
    width: 270px;
    margin: 20px auto 0;
    font-size: 17px;
    line-height: 28px;
    color: #001064;
  }
  body main article #achievement .achievement-list .achievement-ele .achievement-ele-text span.line {
    font-weight: 600;
    background-image: linear-gradient(transparent 60%, #ffe71a 60%);
  }
  body main article #faq {
    padding: 100px 0;
  }
  body main article #faq h2 {
    display: block;
    width: 360px;
    height: 99px;
    margin: auto;
  }
  body main article #faq .faq-set {
    width: 100%;
    border-radius: 20px;
    padding: 21px 20px 21px 18px;
    box-sizing: border-box;
    background-color: #edeff7;
    margin-top: 48px;
  }
  body main article #faq .faq-set .ele .ele-inner {
    width: 100%;
    padding-right: 58px;
    box-sizing: border-box;
    display: flex;
    justify-content: start;
    align-items: start;
    gap: 10px;
  }
  body main article #faq .faq-set .ele .ele-inner .icon {
    display: block;
    width: 35px;
    height: auto;
  }
  body main article #faq .faq-set .ele .ele-inner p {
    font-size: 17px;
    line-height: 26px;
    color: #001064;
    margin-top: 5px;
  }
  body main article #faq .faq-set .ele.ele-q .ele-inner {
    position: relative;
  }
  body main article #faq .faq-set .ele.ele-q .ele-inner p {
    font-size: 21px;
    line-height: 35px;
    font-weight: 600;
    margin-top: 0;
  }
  body main article #faq .faq-set .ele.ele-q .ele-inner::after {
    content: "";
    display: block;
    width: 34px;
    height: 25px;
    background: url("../image/faq-btn-open.png") no-repeat center/contain;
    position: absolute;
    top: 5px;
    right: 3px;
  }
  body main article #faq .faq-set .ele.ele-a {
    margin-top: 20px;
    display: none;
  }
  body main article #faq .faq-set:nth-of-type(n+2) {
    margin-top: 16px;
  }
  body main article #faq .faq-set.open .ele.ele-q .ele-inner::after {
    width: 40px;
    background: url("../image/faq-btn-close.png") no-repeat center/contain;
    right: 0;
  }
  body main article footer {
    padding: 60px 0 188px;
  }
  body main article footer .anchor-list {
    width: 854px;
    margin: auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    justify-content: center;
    gap: 16px;
  }
  body main article footer .anchor-list li {
    width: 214px;
  }
  body main article footer .anchor-list li a {
    display: block;
    width: 100%;
    padding: 0 16px;
    box-sizing: border-box;
    position: relative;
  }
  body main article footer .anchor-list li a p {
    display: inline;
    font-size: 18px;
    line-height: 30px;
    font-weight: 600;
    color: #001064;
    border-bottom: 1px solid #001064;
  }
  body main article footer .anchor-list li a::before, body main article footer .anchor-list li a::after {
    content: "";
    display: block;
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
    position: absolute;
    top: 0;
    bottom: 0;
    margin: auto;
  }
  body main article footer .anchor-list li a::before {
    width: 9px;
    height: 16px;
    background-image: url("../image/footer-anchor-icon1.png");
    left: 0;
  }
  body main article footer .anchor-list li a::after {
    width: 7px;
    height: 14px;
    background-image: url("../image/footer-anchor-icon2.png");
    right: 0;
  }
  body main article footer .terms {
    width: 1000px;
    padding: 40px 35px 35px 30px;
    box-sizing: border-box;
    border-radius: 20px;
    background-color: #edeff7;
    margin: 50px auto 0;
  }
  body main article footer .terms p {
    font-size: 12px;
    line-height: 20px;
    font-weight: 600;
  }
  body main article footer .terms ul li {
    font-size: 12px;
    line-height: 20px;
    padding-left: 1em;
    position: relative;
  }
  body main article footer .terms ul li::before {
    content: "";
    display: block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background-color: #000;
    position: absolute;
    top: 6px;
    left: 3px;
  }
  body main article footer .terms ul li a {
    color: #ed6c00;
    border-bottom: 1px solid #ed6c00;
  }
  body main article footer .set {
    width: 1000px;
    padding-left: 16px;
    margin: 44px auto 0;
    display: flex;
    justify-content: space-between;
    align-items: end;
  }
  body main article footer .set a {
    display: block;
    width: 186px;
    height: 40px;
  }
  body main article footer .set a img {
    width: 100%;
  }
  body main article footer .set p {
    font-size: 14px;
    line-height: 1;
  }
  body main article nav {
    width: 100%;
    height: 162px;
    background: url("../image/nav-bg.png") no-repeat top/100% 162px;
    padding-top: 63px;
    box-sizing: border-box;
    display: flex;
    justify-content: center;
    gap: 40px;
    position: fixed;
    left: 0;
    bottom: -200px;
    transition: bottom 400ms ease-out;
  }
  body main article nav.in {
    bottom: 0;
  }
  body main article nav a {
    display: block;
    width: 350px;
    height: 77px;
  }
  body main article nav a img {
    width: 100%;
  }
  body main article .modal {
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 3;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.5s linear, visibility 0.5s linear;
  }
  body main article .modal.on {
    opacity: 1;
    visibility: visible;
  }
  body main article .modal .modal-bg {
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.7);
    position: absolute;
    top: 0;
    left: 0;
  }
  body main article .modal .modal-close {
    display: block;
    width: 42px;
    height: 42px;
    background: url("../image/modal-close.png") no-repeat center/100%;
    position: absolute;
    top: 50%;
    right: 50%;
    margin-top: -280px;
    margin-right: -400px;
  }
  body main article .modal .movie {
    width: 800px;
    height: 450px;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    left: 0;
    margin: auto;
    background: #000;
  }
  .pc_none {
    display: none !important;
  }
}
@media screen and (max-width: 767px) {
  html, body {
    font-size: 0.2666666667vw;
  }
  body {
    min-width: 320px;
  }
  body main article section {
    width: 100%;
    background-color: #fff;
  }
  body main article section .inner {
    width: 92vw;
    margin: auto;
  }
  body main article section h2 img {
    width: 100%;
  }
  body main article .cv {
    position: relative;
    width: 100%;
    height: 144.1333333333vw;
    background: url("../image/cv-bg_sp.png") no-repeat center/100%;
    border-radius: 10.6666666667vw;
    overflow: hidden;
    margin: -80px 0;
  }
  body main article .cv img {
    width: 100%;
  }
  body main article .cv .cv-main {
    display: block;
    width: 91.8666666667vw;
    height: auto;
    aspect-ratio: 689/316;
    position: absolute;
    top: 30.6666666667vw;
    left: 0;
    right: 0;
    margin: auto;
  }
  body main article .cv .cv-code {
    display: block;
    width: 55.7333333333vw;
    height: 32.5333333333vw;
    position: absolute;
    bottom: 37.3333333333vw;
    left: 2.6666666667vw;
  }
  body main article .cv .cv-anchor {
    display: block;
    width: 86.1333333333vw;
    height: 22.4vw;
    position: absolute;
    bottom: 12.6666666667vw;
    left: 0;
    right: 0;
    margin: auto;
  }
  body main article header {
    width: 100%;
    height: 55px;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    background-color: #fff;
  }
  body main article header .header-logo {
    display: block;
    width: 139px;
    height: 32px;
  }
  body main article header .header-logo img {
    width: 100%;
  }
  body main article #kv {
    position: relative;
    width: 100%;
    height: 288vw;
    background-color: transparent;
    overflow: hidden;
  }
  body main article #kv::before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background-image: url("../image/mv-bg_sp.jpg");
    background-repeat: no-repeat;
    background-size: auto 100%;
    transition: all 1s ease-out;
    position: fixed;
    top: 0;
    left: 0;
    z-index: -1;
  }
  body main article #kv img {
    width: 100%;
  }
  body main article #kv h1 {
    display: block;
    width: 92.4vw;
    height: 127.0666666667vw;
    position: absolute;
    top: 6.6666666667vw;
    left: 0;
    right: 0;
    margin: auto;
    transition: all ease-out 1s;
  }
  body main article #kv .kv-text {
    display: block;
    width: 78.4vw;
    height: 23.3333333333vw;
    position: absolute;
    bottom: 114.1333333333vw;
    left: 0;
    right: 0;
    margin: auto;
    z-index: 1;
    transition: all ease-out 1s;
  }
  body main article #kv .kv-anchor {
    display: block;
    width: 78.9333333333vw;
    height: 15.4666666667vw;
    position: absolute;
    bottom: 8.6666666667vw;
    left: 0;
    right: 0;
    margin: auto;
    transition: all ease-out 1s;
  }
  body main article #kv.left::before {
    background-position: left;
  }
  body main article #kv.left h1 {
    opacity: 1 !important;
  }
  body main article #kv.left .kv-text {
    opacity: 0 !important;
  }
  body main article #kv.left .kv-anchor {
    opacity: 0 !important;
  }
  body main article #kv.right::before {
    background-position: right;
  }
  body main article #kv.right h1 {
    opacity: 0 !important;
  }
  body main article #kv.right .kv-text {
    opacity: 1 !important;
  }
  body main article #kv.right .kv-anchor {
    opacity: 1 !important;
  }
  body main article #campaign {
    padding: 35px 0 55px;
    background: url("../image/bg-pattern.png") no-repeat center/cover;
  }
  body main article #campaign img {
    width: 100%;
  }
  body main article #campaign .campaign-detail-title {
    display: block;
    width: 50.5333333333vw;
    height: 5.8666666667vw;
    margin: 50px auto 20px;
  }
  body main article #campaign .campaign-detail {
    display: block;
    width: 92vw;
    height: 205.0666666667vw;
    border-radius: 10.6666666667vw;
    margin: 4.2666666667vw auto 0;
    position: relative;
    transition: all 0.2s ease-out;
  }
  body main article #campaign .campaign-detail .campaign-detail-image1 {
    width: 100%;
  }
  body main article #campaign .campaign-detail .campaign-detail-image2 {
    width: 84vw;
    height: 73.8666666667vw;
    border-radius: 6.6666666667vw;
    overflow: hidden;
    transition: height 0.2s ease-out;
    position: absolute;
    top: 122.6666666667vw;
    left: 0;
    right: 0;
    margin: auto;
  }
  body main article #campaign .campaign-detail .campaign-detail-image2 img {
    width: 100%;
  }
  body main article #campaign .campaign-detail .campaign-detail-btn {
    font-size: 3.7333333333vw;
    line-height: 1;
    color: #001064;
    display: block;
    width: fit-content;
    padding-right: 2.6666666667vw;
    position: absolute;
    top: 65.3333333333vw;
    left: 0;
    right: 0;
    margin: auto;
  }
  body main article #campaign .campaign-detail .campaign-detail-btn .line {
    border-bottom: 1px solid #001064;
  }
  body main article #campaign .campaign-detail .campaign-detail-btn .icon {
    display: block;
    width: 2.2666666667vw;
    height: 2.2666666667vw;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    margin: auto;
  }
  body main article #campaign .campaign-detail .campaign-detail-btn .icon::before, body main article #campaign .campaign-detail .campaign-detail-btn .icon::after {
    content: "";
    display: block;
    background-color: #001064;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
  }
  body main article #campaign .campaign-detail .campaign-detail-btn .icon::before {
    width: 9px;
    height: 1px;
  }
  body main article #campaign .campaign-detail .campaign-detail-btn .icon::after {
    width: 1px;
    height: 9px;
    transition: opacity 0.2s linear;
  }
  body main article #campaign .campaign-detail ul {
    width: 76vw;
    position: absolute;
    top: 80vw;
    left: 0;
    right: 0;
    margin: auto;
  }
  body main article #campaign .campaign-detail ul li {
    font-size: 2.9333333333vw;
    line-height: 4.4vw;
    color: #001064;
    padding-left: 1em;
    text-indent: -1em;
  }
  body main article #campaign .campaign-detail.open {
    height: 279.7333333333vw;
  }
  body main article #campaign .campaign-detail.open .campaign-detail-image2 {
    height: 133.3333333333vw;
  }
  body main article #campaign .campaign-detail.open .campaign-detail-btn .icon::after {
    opacity: 0;
  }
  body main article #campaign .campaign-step {
    display: block;
    width: 92vw;
    height: auto;
    margin: 9.3333333333vw auto 0;
  }
  body main article #campaign .campaign-code {
    display: block;
    width: 92vw;
    height: 26vw;
    margin: 6.1333333333vw auto 0;
  }
  body main article #campaign .campaign-code img {
    width: 100%;
  }
  body main article #campaign .campaign-text {
    display: block;
    width: 62.4vw;
    height: 4.1333333333vw;
    margin: 2.4vw auto 0;
  }
  body main article #campaign .campaign-text img {
    width: 100%;
  }
  body main article #campaign .campaign-anchor {
    display: block;
    width: 70.4vw;
    height: 13.6vw;
    margin: 10vw auto 0;
  }
  body main article #campaign .campaign-anchor img {
    width: 100%;
  }
  body main article #about {
    padding: 57px 0 0;
    background: #fff url("../image/about-bg.png") no-repeat 30px 60px/420px;
  }
  body main article #about h2 {
    display: block;
    width: 295px;
    height: 60px;
    margin: auto;
  }
  body main article #about .about-image1 {
    display: block;
    width: 47.0666666667vw;
    height: 51.3333333333vw;
    margin: 6vw auto 0;
  }
  body main article #about .about-text-area {
    display: block;
    width: 92vw;
    padding: 30px 26px;
    box-sizing: border-box;
    border-radius: 15px;
    border: 4px solid #ed6c00;
    background-color: #fffbf1;
    margin: 4vw 0 0 auto;
    position: relative;
    font-size: 14px;
    line-height: 25px;
    color: #ed6c00;
  }
  body main article #about .about-text-area span {
    color: #fff;
    background-color: #ed6c00;
    padding: 0 2px;
  }
  body main article #about #cm {
    width: 100%;
    margin-top: 16.5333333333vw;
  }
  body main article #about #cm h3 {
    display: block;
    width: 56.5333333333vw;
    height: 6.5333333333vw;
    margin: auto;
  }
  body main article #about #cm h3 img {
    width: 100%;
  }
  body main article #about #cm button {
    display: block;
    width: 100%;
    height: fit-content;
    margin-top: 50px;
  }
  body main article #about #cm button .img {
    width: 92vw;
    height: auto;
    position: relative;
  }
  body main article #about #cm button .img img {
    width: 100%;
  }
  body main article #about #cm button p {
    font-size: 14px;
    line-height: 21px;
    color: #001064;
    text-align: center;
    margin-top: 5px;
  }
  body main article #anniversary {
    padding: 72px 0 0;
    background: url("../image/anniversary-bg_sp.png") no-repeat center bottom/100% auto;
    position: relative;
  }
  body main article #anniversary img {
    width: 100%;
  }
  body main article #anniversary h2 {
    display: block;
    width: 82vw;
    height: 28vw;
    margin: auto;
  }
  body main article #anniversary .anniversary-image {
    display: block;
    width: 90.9333333333vw;
    margin: 30px auto 0;
  }
  body main article #plan {
    padding: 48px 0 0;
  }
  body main article #plan h2 {
    display: block;
    width: 181px;
    height: 82px;
    margin: auto;
  }
  body main article #plan .area-text {
    margin-top: 6vw;
    font-size: 18px;
    line-height: 1;
    font-weight: 600;
    color: #001064;
    text-align: center;
  }
  body main article #plan .area-list {
    width: 92vw;
    margin: 7.3333333333vw auto 0;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    justify-content: center;
    gap: 14px 8px;
    flex-wrap: wrap;
  }
  body main article #plan .area-list li {
    width: 100%;
    height: 45px;
  }
  body main article #plan .area-list li button {
    display: block;
    width: 100%;
    height: 100%;
    padding: 11px 0;
    border: 2px solid #001064;
    border-radius: 13px;
    box-sizing: border-box;
    font-size: 15px;
    line-height: 1;
    font-weight: 600;
    font-feature-settings: "palt";
    color: #001064;
    text-align: center;
  }
  body main article #plan .area-list li button.on {
    border-width: 4px;
    background-color: #ed6c00;
    color: #fff;
    pointer-events: none;
  }
  body main article #plan .area-link {
    display: block;
    width: 92vw;
    height: 10.6666666667vw;
    margin: 14px auto 0;
  }
  body main article #plan .area-link img {
    width: 100%;
  }
  body main article #plan .plan-con {
    margin-top: 40px;
    display: none;
    position: relative;
    z-index: 1;
  }
  body main article #plan .plan-con.view {
    display: block;
  }
  body main article #plan .plan-con h3 {
    font-size: 21px;
    line-height: 28px;
    font-weight: 600;
    font-feature-settings: "palt";
    color: #001064;
    text-align: center;
  }
  body main article #plan .plan-con .plan-details {
    width: 92vw;
    margin: 19px auto 0;
  }
  body main article #plan .plan-con .plan-details .plan-detail-ele {
    width: 100%;
    border-radius: 9.3333333333vw;
    border: 2px solid;
    box-sizing: border-box;
    padding-bottom: 32px;
    background-color: #fff;
  }
  body main article #plan .plan-con .plan-details .plan-detail-ele h4 {
    display: block;
    width: 100%;
  }
  body main article #plan .plan-con .plan-details .plan-detail-ele h4 img {
    width: 100%;
  }
  body main article #plan .plan-con .plan-details .plan-detail-ele .plan-detail-inner {
    width: 83.2vw;
    height: 42.6666666667vw;
    margin: auto;
    overflow: hidden;
    transition: height 0.5s ease-in-out;
  }
  body main article #plan .plan-con .plan-details .plan-detail-ele .plan-detail-inner img {
    width: 100%;
  }
  body main article #plan .plan-con .plan-details .plan-detail-ele button {
    margin: 30px auto 0;
    width: 61.0666666667vw;
    height: 10.6666666667vw;
  }
  body main article #plan .plan-con .plan-details .plan-detail-ele button img {
    width: 100%;
  }
  body main article #plan .plan-con .plan-details .plan-detail-ele button.open-btn {
    display: block;
  }
  body main article #plan .plan-con .plan-details .plan-detail-ele button.close-btn {
    display: none;
  }
  body main article #plan .plan-con .plan-details .plan-detail-ele:nth-of-type(n+2) {
    margin-top: 37px;
  }
  body main article #plan .plan-con .plan-details .plan-detail-ele:nth-of-type(1) {
    border-color: #036eb7;
  }
  body main article #plan .plan-con .plan-details .plan-detail-ele:nth-of-type(1) h4 {
    margin-top: -9.7333333333vw;
  }
  body main article #plan .plan-con .plan-details .plan-detail-ele:nth-of-type(2) {
    border-color: #e7336e;
  }
  body main article #plan .plan-con .plan-details .plan-detail-ele:nth-of-type(2) h4 {
    margin-top: -7.7333333333vw;
  }
  body main article #plan .plan-con .plan-details .plan-detail-ele:nth-of-type(3) {
    border-color: #00a970;
  }
  body main article #plan .plan-con .plan-details .plan-detail-ele:nth-of-type(3) h4 {
    margin-top: -9.8666666667vw;
  }
  body main article #plan .plan-con .plan-details .plan-detail-ele:nth-of-type(3) button {
    height: 10.8vw;
  }
  body main article #plan .plan-con .plan-details .plan-detail-ele.open .plan-detail-inner {
    height: 187.2vw;
  }
  body main article #plan .plan-con .plan-details .plan-detail-ele.open button.open-btn {
    display: none;
  }
  body main article #plan .plan-con .plan-details .plan-detail-ele.open button.close-btn {
    display: block;
  }
  body main article #plan .ponta {
    width: 100%;
    margin: -22vw auto 0;
    padding-top: 48.6666666667vw;
    box-sizing: border-box;
    overflow: hidden;
    position: relative;
    z-index: 0;
  }
  body main article #plan .ponta .ponta-inner {
    width: 92vw;
    margin: auto;
    padding: 89.0666666667vw 4vw 8.6666666667vw;
    box-sizing: border-box;
  }
  body main article #plan .ponta .ponta-inner::before {
    content: "";
    display: block;
    width: 92vw;
    height: 83.7333333333vw;
    border-radius: 30px;
    background-color: #edeff7;
    position: absolute;
    top: 48.5333333333vw;
    left: 50%;
    margin-left: -46vw;
  }
  body main article #plan .ponta .ponta-inner .ponta-image {
    width: 100.8vw;
    position: absolute;
    top: 0;
    left: 50%;
    margin-left: -50.4vw;
  }
  body main article #plan .ponta .ponta-inner .ponta-image img {
    width: 100%;
  }
  body main article #plan .ponta .ponta-inner .ponta-text li {
    font-size: 11px;
    line-height: 16px;
    color: #001064;
    padding-left: 1em;
    text-indent: -1em;
  }
  body main article #option {
    padding: 65px 0 132px;
  }
  body main article #option h2 {
    display: block;
    width: 318px;
    height: 93px;
    margin: auto;
  }
  body main article #option h2 img {
    width: 100%;
  }
  body main article #option .option-read {
    display: block;
    width: 91.8666666667vw;
    height: 19.8666666667vw;
    margin: 17px auto 0;
  }
  body main article #option .option-read img {
    width: 100%;
  }
  body main article #option h3 {
    display: block;
    margin: auto;
  }
  body main article #option h3 img {
    width: 100%;
  }
  body main article #option h3:nth-of-type(1) {
    width: 82.2666666667vw;
    height: 16.4vw;
    margin-top: 35px;
  }
  body main article #option h3:nth-of-type(2) {
    width: 77.6vw;
    height: 20.5333333333vw;
    margin-top: 47px;
  }
  body main article #option .option-set {
    width: 100%;
    border-radius: 30px;
    box-sizing: border-box;
    background-color: #f3f5fc;
    margin: 18px auto 0;
    padding-bottom: 98px;
    position: relative;
  }
  body main article #option .option-set .option-con .option-image {
    display: block;
    width: 100%;
    height: auto;
  }
  body main article #option .option-set .option-con .option-text {
    padding: 22px 20px 0;
  }
  body main article #option .option-set .option-con .option-text p {
    font-size: 15px;
    line-height: 24px;
    color: #001064;
  }
  body main article #option .option-set .option-con .option-text p.copy {
    font-size: 17px;
    line-height: 25px;
    font-weight: 600;
    margin-bottom: 12px;
  }
  body main article #option .option-set .option-detail {
    display: none;
    width: 81.6vw;
    margin: 30px auto 0;
  }
  body main article #option .option-set .option-detail img {
    width: 100%;
  }
  body main article #option .option-set button {
    width: 264px;
    height: 51px;
    position: absolute;
    bottom: 30px;
    right: 0;
    left: 0;
    margin: auto;
  }
  body main article #option .option-set button img {
    width: 100%;
  }
  body main article #option .option-set button.option-btn-open {
    display: block;
  }
  body main article #option .option-set button.option-btn-close {
    display: none;
  }
  body main article #option .option-set:nth-of-type(2) {
    margin-top: 18px;
  }
  body main article #option .option-set.open button.option-btn-open {
    display: none;
  }
  body main article #option .option-set.open button.option-btn-close {
    display: block;
  }
  body main article #option .option-and {
    margin-top: 45px;
  }
  body main article #option .option-and p {
    display: block;
    width: 84.2666666667vw;
    height: 16.2666666667vw;
    margin: auto;
  }
  body main article #option .option-and p img {
    width: 100%;
  }
  body main article #option .option-and .option-and-image {
    display: block;
    width: 92vw;
    height: auto;
    margin: 14px auto 0;
  }
  body main article #flow {
    padding: 130px 0 135px;
    background: url("../image/bg-pattern.png") no-repeat center/cover;
  }
  body main article #flow h2 {
    display: block;
    width: 292px;
    height: 82px;
    margin: auto;
  }
  body main article #flow .flow-point {
    display: block;
    width: 92.2666666667vw;
    margin-top: 20px;
  }
  body main article #flow .flow-step {
    display: block;
    width: 92vw;
    margin-top: 18px;
  }
  body main article #flow .flow-arrow {
    display: block;
    width: 16.9333333333vw;
    margin: 15px auto 0;
  }
  body main article #flow .flow-start {
    display: block;
    width: 93.7333333333vw;
    margin: 10px auto 0;
  }
  body main article #voice {
    padding: 130px 0 37px;
  }
  body main article #voice h2 {
    display: block;
    width: 240px;
    height: 83px;
    margin: auto;
  }
  body main article #voice .voices {
    margin-top: 30px;
    position: relative;
  }
  body main article #voice .voices .voice-set {
    width: 100%;
    padding-bottom: 25px;
    position: relative;
  }
  body main article #voice .voices .voice-set:nth-of-type(n+2) {
    margin-top: 20px;
  }
  body main article #voice .voices .voice-set .voice-title {
    padding-left: 90px;
  }
  body main article #voice .voices .voice-set .voice-title img {
    display: block;
    width: 77px;
    height: auto;
    position: absolute;
    top: 0;
    left: 0;
  }
  body main article #voice .voices .voice-set .voice-title .text {
    padding-top: 6px;
  }
  body main article #voice .voices .voice-set .voice-title .text .tag {
    display: block;
    width: 73px;
    border-radius: 8px;
    background-color: #ffe71a;
    margin-bottom: 10px;
    font-size: 12px;
    line-height: 16px;
    font-weight: 600;
    color: #001064;
    text-align: center;
  }
  body main article #voice .voices .voice-set .voice-title .text .main-text {
    font-size: 20px;
    line-height: 25px;
    font-weight: 600;
    color: #001064;
  }
  body main article #voice .voices .voice-set .sub-text {
    padding-left: 90px;
    margin-top: 15px;
    font-size: 14px;
    line-height: 20px;
    letter-spacing: 0.02em;
    color: #001064;
  }
  body main article #voice .voices .voice-set::after {
    content: "";
    display: inline-block;
    width: 100%;
    height: 3px;
    background-size: 6px 3px;
    background-image: radial-gradient(circle farthest-side, #001064, #001064 50%, transparent 50%, transparent);
    position: absolute;
    left: 0;
    bottom: 0;
  }
  body main article #voice .voices .cap {
    font-size: 11px;
    line-height: 1;
    color: #001064;
    text-align: right;
    margin-top: 13px;
  }
  body main article #achievement {
    padding: 45px 0 47px;
    background: url("../image/bg-pattern.png") no-repeat center/cover;
  }
  body main article #achievement h2 {
    display: block;
    width: 164px;
    height: 52px;
    margin: auto;
  }
  body main article #achievement .achievement-list {
    width: 92vw;
    margin: 24px auto 0;
  }
  body main article #achievement .achievement-list .achievement-ele {
    width: 100%;
    background-color: #f3f5fc;
    border-radius: 30px;
    padding: 24px 18px 22px;
    box-sizing: border-box;
    position: relative;
  }
  body main article #achievement .achievement-list .achievement-ele .ribon {
    display: block;
    width: 52px;
    height: auto;
    position: absolute;
    top: 0;
    left: 17px;
  }
  body main article #achievement .achievement-list .achievement-ele .achievement-ele-title {
    font-size: 20px;
    line-height: 25px;
    font-weight: 600;
    color: #001064;
    margin: 0 10px 0 65px;
  }
  body main article #achievement .achievement-list .achievement-ele:nth-of-type(1) .achievement-ele-title {
    margin-top: 12px;
    margin-bottom: 12px;
  }
  body main article #achievement .achievement-list .achievement-ele .image {
    width: 100%;
    margin-top: 20px;
  }
  body main article #achievement .achievement-list .achievement-ele .achievement-ele-text {
    margin: 16px auto 0;
    font-size: 15px;
    line-height: 22px;
    color: #001064;
  }
  body main article #achievement .achievement-list .achievement-ele .achievement-ele-text span.line {
    font-weight: 600;
    background-image: linear-gradient(transparent 60%, #ffe71a 60%);
  }
  body main article #achievement .achievement-list .achievement-ele:nth-of-type(n+2) {
    margin-top: 24px;
  }
  body main article #faq {
    padding: 46px 0 135px;
  }
  body main article #faq h2 {
    display: block;
    width: 225px;
    height: 56px;
    margin: auto;
  }
  body main article #faq .faq-set {
    width: 100%;
    border-radius: 16px;
    padding: 15px 10px 15px 15px;
    box-sizing: border-box;
    background-color: #edeff7;
    margin-top: 34px;
  }
  body main article #faq .faq-set .ele .ele-inner {
    width: 100%;
    box-sizing: border-box;
    display: flex;
    justify-content: start;
    align-items: start;
    gap: 8px;
  }
  body main article #faq .faq-set .ele .ele-inner .icon {
    display: block;
    width: 25px;
    height: auto;
  }
  body main article #faq .faq-set .ele .ele-inner p {
    font-size: 14px;
    line-height: 23px;
    color: #001064;
    text-align: left;
  }
  body main article #faq .faq-set .ele.ele-q .ele-inner {
    padding-right: 58px;
    position: relative;
  }
  body main article #faq .faq-set .ele.ele-q .ele-inner p {
    font-size: 15px;
    line-height: 25px;
    font-weight: 600;
  }
  body main article #faq .faq-set .ele.ele-q .ele-inner::after {
    content: "";
    display: block;
    width: 24px;
    height: 18px;
    background: url("../image/faq-btn-open.png") no-repeat center/contain;
    position: absolute;
    top: 2px;
    right: 3px;
  }
  body main article #faq .faq-set .ele.ele-a {
    margin-top: 20px;
    display: none;
  }
  body main article #faq .faq-set:nth-of-type(n+2) {
    margin-top: 16px;
  }
  body main article #faq .faq-set.open .ele.ele-q .ele-inner::after {
    width: 28px;
    height: 18px;
    background: url("../image/faq-btn-close.png") no-repeat center/contain;
    right: 0;
  }
  body main article footer {
    padding: 115px 4vw 150px;
    background-color: #fff;
  }
  body main article footer .anchor-list {
    margin: auto;
  }
  body main article footer .anchor-list li a {
    display: inline-block;
    padding: 0 14px;
    position: relative;
  }
  body main article footer .anchor-list li a p {
    display: inline;
    font-size: 16px;
    line-height: 30px;
    font-weight: 600;
    color: #001064;
    border-bottom: 1px solid #001064;
  }
  body main article footer .anchor-list li a::before, body main article footer .anchor-list li a::after {
    content: "";
    display: block;
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
    position: absolute;
    top: 0;
    bottom: 0;
    margin: auto;
  }
  body main article footer .anchor-list li a::before {
    width: 8px;
    height: 13px;
    background-image: url("../image/footer-anchor-icon1.png");
    left: 0;
  }
  body main article footer .anchor-list li a::after {
    width: 6px;
    height: 11px;
    background-image: url("../image/footer-anchor-icon2.png");
    right: 0;
  }
  body main article footer .terms {
    width: 100%;
    padding: 25px 15px 15px 15px;
    box-sizing: border-box;
    border-radius: 16px;
    background-color: #edeff7;
    margin: 23px auto 0;
  }
  body main article footer .terms p {
    font-size: 12px;
    line-height: 20px;
    font-weight: 600;
  }
  body main article footer .terms ul li {
    font-size: 12px;
    line-height: 20px;
    padding-left: 1em;
    position: relative;
  }
  body main article footer .terms ul li::before {
    content: "";
    display: block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: #000;
    position: absolute;
    top: 5px;
    left: 3px;
  }
  body main article footer .terms ul li a {
    color: #ed6c00;
    border-bottom: 1px solid #ed6c00;
  }
  body main article footer .set {
    width: 100%;
    margin: 21px auto 0;
  }
  body main article footer .set a {
    display: block;
    width: 187px;
    height: 40px;
    margin: auto;
  }
  body main article footer .set a img {
    width: 100%;
  }
  body main article footer .set p {
    font-size: 12px;
    line-height: 16px;
    text-align: center;
    margin-top: 15px;
  }
  body main article nav {
    width: 100%;
    height: 121px;
    background: url("../image/nav-bg_sp.png") no-repeat top/100% 121px;
    padding-top: 36px;
    box-sizing: border-box;
    display: flex;
    justify-content: center;
    gap: 12px;
    z-index: 5;
    position: fixed;
    left: 0;
    bottom: -130px;
    transition: bottom 400ms ease-out;
  }
  body main article nav.in {
    bottom: 0;
  }
  body main article nav a {
    display: block;
    width: 44.9333333333vw;
    height: 15.0666666667vw;
  }
  body main article nav a img {
    width: 100%;
  }
  body main article .modal {
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 3;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.5s linear, visibility 0.5s linear;
  }
  body main article .modal.on {
    opacity: 1;
    visibility: visible;
  }
  body main article .modal .modal-bg {
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.7);
    position: absolute;
    top: 0;
    left: 0;
  }
  body main article .modal .modal-close {
    display: block;
    width: 5.6vw;
    height: 5.6vw;
    background: url("../image/modal-close.png") no-repeat center/100%;
    position: absolute;
    top: 50%;
    right: 4vw;
    margin-top: -37.7333333333vw;
  }
  body main article .modal .movie {
    width: 100%;
    height: 56.2666666667vw;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    left: 0;
    margin: auto;
    background: #000;
  }
  .sp_none {
    display: none !important;
  }
}