
* {margin:0;padding:0;list-style:none;font-family: "kozuka-gothic-pro", sans-serif;}
.KozMin { font-family: "kozuka-mincho-pro", serif;}
.KozGth { font-family: "kozuka-gothic-pro", sans-serif;}
.KakGth { font-family: "fot-udkakugoc80-pro", sans-serif;}
.Drmin { font-family: "ab-doramin", sans-serif;}
header {
    background: #192f41;
    width: 100%;
    height: 50px;
    display: flex;
    color: #fff;
    justify-content: space-between;
    align-items: center;}
header h1 {
    font-family: "fot-udkakugoc80-pro", sans-serif;
    font-size: 30px;
    margin: 0;
    line-height: 1;
    margin: 0 0 0 14px;}
header .logo { margin: 0 14px 0 0;}
header .logo a {
    display: block;
    margin: 0;
    font-size: 0;}
header .logo a img { width: 100%;}
main { overflow: hidden;}
.mv {
    width: 100%;
    height: 650px;
    overflow: hidden;
    position: relative;
    background: #cedbec;
    background: url(../img/mv.jpg);
    background-size: cover;
    background-repeat: no-repeat;}
.mv .logo {
    position: absolute;
    bottom: 20px;
    width: 94%;
    margin: 0 auto;
    left: 0;
    right: 0;}
.mv .logo img { width: 100%;}
.mv p {
    font-family: "kozuka-mincho-pro", serif;
    position: absolute;
    top: 35%;
    left: 60%;
    transform: translate(-50%, -50%);
    width: max-content;}
.mv p span {
    display: block;
    font-weight: bold;
    line-height: 1.5;
    font-family: "kozuka-mincho-pro", serif;}
.mv p span:first-child {
    font-size: min(5vw,60px);
    text-shadow: 0 0 14px white, 0 0 14px white, 0 0 14px white, 0 0 14px white, 0 0 14px white;}
.mv p span:last-child {
    font-size: min(4.5vw,50px);
    color: #fff;
    text-shadow: 0 0 14px black, 0 0 14px black, 0 0 14px black, 0 0 14px black, 0 0 14px black;}
.mv ul {
    display: flex;
    list-style: none;
    gap: 20px;
    width: 90%;
    max-width: 780px;
    margin: 0 auto;
    position: absolute;
    top: 78%;
    left: 50%;
    transform: translate(-50%, -50%);}
.mv ul li img { width: 100%;}
.cta {
    background: #e4e6eb;
    display: flex;
    text-align: center;
    align-items: center;
    justify-content: center;
    padding: 28px 0;}
.cta a {
    display: block;
    font-size: 0;}
.cta a img { width: 100%;}
.cta .tel a img:first-child,
.cta .line a img:first-child { display: block;}
.cta .tel a img:last-child,
.cta .line a img:last-child { display: none;}

.nayami {
    background: #e4e6eb;
    padding: 0 0 50px;}
.nayami h2 {
    margin: 0px auto 50px;
    display: block;
    position: relative;
    background-image: radial-gradient(circle, rgba(0, 24, 86, 1), rgba(1, 61, 164, 1) 90%);
    width: calc(100% - 28px);
    text-align: center;
    color: #fff;
    padding: 14px;
    font-size: 38px;}
.nayami ul.check {
    background: #fff;
    width: 94%;
    max-width: 1100px;
    margin: 0 auto;
    position: relative;
    font-weight: bold;
    font-size: 22px;
    display: flex;
    flex-wrap: wrap;
    padding: 14px 0;
    filter: drop-shadow(0px 0px 7px #b61512);}
.nayami ul.check:before {
    content: "";
    width: 20px;
    height: 20px;
    position: absolute;
    top: 100%;
    left: 50%;
    background: #fff;
    transform: translate(-50%, -10px) rotate(45deg);}
.nayami ul.check li {
    width: calc((100% / 2) - 80px);
    padding: 14px 0 14px 80px;
    position: relative;}
.nayami ul.check li:before {
    content: "";
    background: url(../img/check.png);
    aspect-ratio: 21 / 17;
    width: 42px;
    display: block;
    position: absolute;
    left: 30px;}
.nayami .txt {
    width: 90%;
    max-width: max-content;
    margin: 50px auto 0;}
.nayami .txt img { width: 100%;}

.double {
    display: block;
    position: relative;
    text-align: center;
    color: #fff;
    padding: 14px;
    width: max-content;
    font-family: "fot-udkakugoc80-pro", sans-serif;
    font-style: italic;
    margin: 0 auto;
    font-size: 38px;}
.double div {
    width: max-content;
    margin: 0 auto;
    position: relative;
    line-height: 1.2;}
.double span:first-child:before,
.double span:first-child:after,
.double span:last-child:before,
.double span:last-child:after {
    content: "";
    width: 100%;
    height: 2px;
    display: block;
    background: #fff;
    position: absolute;
    top: 50%;
    right: calc(100% + 14px);
    transform: skew(-50deg, 0deg);
    max-width: 200px;}
.double span:last-child:before,
.double span:last-child:after { left: calc(100% + 14px);}
.double span:first-child:before.
.double span:last-child:before {
    width: calc(100% + 21px);
    top: 40%;}
.double span:first-child:before { right: calc(100% + 28px);}
.double span:last-child:before { left: calc(100% + 28px);}
.double span:first-child:after,
.double span:last-child:after { top: calc(50% + 7px);}
.form {
    background: #173586;
    padding: 0px 0 70px;}
.form form {
    width: 660px;
    background: #fff;
    margin: 0 auto;}
.form .item { padding: 50px;}
.form .item div {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    font-family: "fot-udkakugoc80-pro", sans-serif;
    margin-bottom: 21px;}
.form .item div label {
    font-weight: bold;
    font-size: 20px;
    width: 180px;}
.form .item div input {
    width: calc(100% - 200px);
    height: 40px;
    border: 0;
    background: #e4e6eb;}
.form .item div .error-msg {
    display: none;
    color: #e60000;
    font-size: 13px;
    font-weight: bold;
    line-height: 1.5;
    margin: 6px 0 0 180px;
    width: calc(100% - 180px);}
.form .item div .error-msg.show { display: block;}
.form .item div input.error {
    border: 2px solid #e60000;
    background: #fff4f4;}
.form .submit {
    padding: 0 0 50px;
    width: 90%;
    max-width: 361px;
    margin: 0 auto;}
.form input[type="submit"] {
    background: #f98038;
    border: 0;
    font-size: 30px;
    color: #fff;
    font-family: "fot-udkakugoc80-pro", sans-serif;
    padding: 10px 50px;
    margin: 0 auto;
    width: max-content;
    display: block;
    cursor: pointer;}

.reason,
.voice { padding: 50px 0;}
.reason .double,
.voice .double,
.plot .double,
.flow .double,
.faq .double,
.outline .double { color: #02237b;}
.reason .double span:first-child:before,
.reason .double span:first-child:after,
.reason .double span:last-child:before,
.reason .double span:last-child:after,
.voice .double span:first-child:before,
.voice .double span:first-child:after,
.voice .double span:last-child:before,
.voice .double span:last-child:after,
.plot .double span:first-child:before,
.plot .double span:first-child:after,
.plot .double span:last-child:before,
.plot .double span:last-child:after,
.flow .double span:first-child:before,
.flow .double span:first-child:after,
.flow .double span:last-child:before,
.flow .double span:last-child:after,
.faq .double span:first-child:before,
.faq .double span:first-child:after,
.faq .double span:last-child:before,
.faq .double span:last-child:after,
.outline .double span:first-child:before,
.outline .double span:first-child:after,
.outline .double span:last-child:before,
.outline .double span:last-child:after { background: #02237b;}
.reason ul {
    display: flex;
    width: 90%;
    margin: 30px auto 0;
    max-width: 1000px;
    justify-content: space-between;}
.reason ul li img { width: 100%;}
.voice-swiper {
    padding: 20px 0;
    width: 90%;
    max-width: 1000px;}
.voice-swiper img {
    width: 100%;
    display: block;
    border-radius: 8px;}
.swiper-horizontal>.swiper-pagination-bullets,
.swiper-pagination-bullets.swiper-pagination-horizontal { bottom: var(--swiper-pagination-bottom, -8px) !important;}
.reason ul li img:first-child { display: block;}
.reason ul li img:last-child { display: none;}

.plot {
    padding: 70px 0 50px;
    background: #fff9e3;}
.plot p {
    font-size: 30px;
    font-weight: bold;
    text-align: center;
    background: #fff;
    padding: 30px 0;}
.plot p span { background:linear-gradient(transparent 60%, #f9e938 60%);}
.plot .figure {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 30px;
    padding: 50px 0;}
.flow { padding: 50px 0;}
.flow .img {
    margin: 30px auto 0;
    display: block;
    width: 100%;
    max-width: max-content;
    position: relative;}
.flow .img img { width: 100%;}
.flow .bot {
    position: absolute;
    bottom: 2dvw;
    left: 1.75vw;
    width: 28.787%;
    max-width: 268px;
    aspect-ratio: 268 / 65;}
.flow .bot img { width: 100%;}
.flow .pc { display: block;}
.flow .flowsp { display: none;}
.flow .flowsp { width: 90%;}
.flow .flowsp img { width: 100%;}

.faq dl {
    counter-reset: faq-number;
    width: 90%;
    max-width: 950px;
    margin: 0 auto;
    padding: 30px 0;}
.faq dt {
    counter-increment: faq-number;
    display: flex;
    align-items: center;
    background: #dcdde1;
    margin-top: 6px;
    cursor: pointer;
    border-radius: 10px 0 0 0;}
.faq .q {
    background: #1f3c88;
    color: #fff;
    font-weight: bold;
    font-style: italic;
    font-family: "ab-doramin", sans-serif;
    width: 70px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    background-image: repeating-linear-gradient(135deg, #02237b, #02237b 2px, transparent 2px, transparent 4px);
    border-radius: 10px 0 0 0;}
.faq .q::before { content: "Q" counter(faq-number);}
.faq dt p {
    flex: 1;
    padding: 0 16px;
    font-weight: bold;
    color: #1f3c88;}
.faq .toggle {
    width: 40px;
    text-align: center;
    font-size: 20px;}
.faq dd {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    margin: 0 0 10px 0;
    background: #eee;
    position: relative;
    transition: max-height .5s ease, opacity .3s ease;}
.faq dd.open {
    max-height: 500px;
    opacity: 1;
    display: flex;}
.faq .a {
    background: #ffd48f;
    color: #fff;
    font-size: 34px;
    font-style: italic;
    font-weight: bold;
    font-family: "ab-doramin", sans-serif;
    width: 70px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-image: repeating-linear-gradient(135deg, #ea940c, #ea940c 2px, transparent 2px, transparent 4px);
    border-radius: 0 0 0 10px;}
.faq .answer {
    padding: 16px;
    flex: 1;}

@media screen and (max-width: 768px) {
header { height: 30px;}
header h1 { font-size: 3.5vw;}
header .logo { width: 30vw;}
header .logo a img { width: 100%;}
.mv {
    background-position: 30%;
    height: 100dvw;}
.mv .logo {
    bottom: 10px;
    width: 100%;}
.mv p {
    top: 40%;
    left: 70%;}
.mv p span:first-child {
    font-size: 6vw;
    margin: 0 0 5%;}
.mv p span:last-child { font-size: 5.5vw;}
.mv ul {
    width: 80%;
    width: 94%;
    gap: 10px;
    top: 80%;}
.mv ul li {
    width: calc((100% / 2) - 10px);
    line-height: 0;}
.nayami h2 { font-size: 6vw;}
.cta .tel a img:last-child,
.cta .line a img:last-child { display: block;}
.cta .tel a img:first-child,
.cta .line a img:first-child { display: none;}
.nayami ul.check li {
    width: 80%;
    padding: 2vw 0 0px 14vw;
    line-height: 1.5;
    font-size: 5vw;}
.nayami ul.check li:before {
    left: 5vw;
    background-repeat: no-repeat;
    background-size: contain;
    width: 6vw;
    top: 3.5vw;}
.double { font-size: 26px;}
.plot { padding: 50px 0 0px;}
.plot p { font-size: 4vw;}
.plot .figure { display: block;}
.plot .figure .left {
    width: 80%;
    margin: 0 auto;}
.plot .figure img { width: 100%;}
.reason ul { display: block;}
.reason ul li img:last-child { display: block;}
.reason ul li img:first-child { display: none;}
.form form { width: 100%;}
.form .item div {
    display: block;
    margin-bottom: 10px;}
.form .item div label {
    width: 100%;
    display: block;}
.form .item div input { width: 100%;}
.form .item div .error-msg {
    margin-left: 0;
    width: 100%;}
.form input[type="submit"] { font-size: 20px;}
.outline dl {
    width: calc(90% - 60px);
    padding: 30px;}
.outline dl dt {
    padding-top: 14px;
    width: 100%;
    border-bottom: none;
    font-size: 90%;}
.outline dl dd {
    padding-top: 0px;
    width: 100%;}
.cta {
    padding: 4vw 10px;
    gap: 5px;}
.flow .flowsp {
    display: block;
    margin: 0 auto;}
.flow .pc { display: none;}
.flow .bot { display: none;}
}
.bot,.bot_ {
    cursor: pointer;}

.outline {}
.outline dl {
    border: solid 2px #02237b;
    width: calc(90% - 100px);
    max-width: 600px;
    margin: 0 auto;
    display: flex;
    padding: 50px;
    flex-wrap: wrap;}
.outline dl dt {
    padding-top: 14px;
    width: 33%;
    border-bottom: solid 1px #02237b;}
.outline dl dd {
    padding-top: 14px;
    width: calc(100% - 33%);
    border-bottom: solid 1px #02237b;}
footer {}
footer .logo {
    width: 48px;
    margin: 50px auto 15px;
    display: block;}
footer .logo a {
    display: block;}
footer .logo a img {
    width: 100%;}
copyright {
    font-size: 14px;
    text-align: center;
    display: block;}
.mv.thanks p {
    top: 50%;
    left: 50%;
    width: max-content;
    text-align: center;}
.mv.thanks p span:first-child {
        font-size: 5vw;}
.mv.thanks p span:last-child {
        font-size: 4.5vw;
    }
.nayami ul.check.thanks {
    max-width: max-content;
    display: block;}
.nayami ul.check.thanks li {
    width: calc((100%) - 80px);
    padding: 14px 21px 14px 80px;
    position: relative;}
