@charset "utf-8";
/* Settings
   ========================================================================== */
* {
    margin: 0;
    padding: 0;
}
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,font,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,section,article,aside,hgroup,header,footer,nav,dialog,figure,menu,video,audio,mark,time,canvas,details {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    background: transparent;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}
html{
    font-size: 50px;
}
@font-face {
    font-family: "Noto Sans JP";
    src: url("../font/NotoSansJP-VariableFont_wght.ttf") format("truetype")
}
body{
    font-size: calc((.16rem * 100 / 50) * 0.9);
    font-family: "Noto Sans JP","游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", Myriad Pro, Myriad, Arial, sans-serif;
    font-weight: 400;
    font-style: normal;
    font-optical-sizing: auto;
    color: #000;
    line-height: 1;
    overflow-x: scroll;
    text-size-adjust: 100%;
    word-wrap: break-word;
    word-break: break-all;
    overflow: hidden;
    background: #bf0000 url(../img/bg_main.jpg) no-repeat top center / cover;
}
img {
	max-width: 100%;
	margin: auto;
    vertical-align: bottom;
}
a {
    color: #000;
    text-decoration: none;
	display: inline-block;
    transition: all .2s;
}
a:hover{
    opacity: .6;
}
a img{
    text-decoration: none;
}
section,article,aside,hgroup,header,footer,nav,dialog,figure,figcaption {
	display: block;
}
input,select {
    vertical-align: middle;
}
ul,
li,
dl,
dt,
dd,
form {
    margin: 0px;
    padding: 0px;
    border: 0px;
    list-style: none;
}
li::marker {
    margin: 0;
    padding: 0;
}
blockquote,
q {
    quotes: none;
}
blockquote:before,
blockquote:after,
q:before,
q:after {
    content: '';
    content: none;
}
ins {
    /* remember to highlight inserts somehow! */
    text-decoration: none;
}
del {
    text-decoration: line-through;
}
table {
    /* markup tables with 'cellspacing="0"' */
    border-collapse: collapse;
    border-spacing: 0;
}
button{
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    vertical-align: middle;
    border: 0;
    background: transparent;
    border-radius: 0;
    text-align: inherit;
}
button:hover {
    cursor: pointer;
}
h1,h2,h3,h4,h5,h6{
    font-weight: normal;
}
/* Style parts
   ========================================================================== */
.alc {
    text-align: center !important;
}
.all {
    text-align: left !important;
}
.alr {
    text-align: right !important;
}
.floatL {
    float: left;
}
.floatR {
    float: right;
}
.clr {
    zoom: 1;
}
.clr:after {
    content: ' ';
    display: block;
    clear: both;
    height: 0;
}
.clearboth {
    clear: both !important;
}
.pc {
    display: block;
}
.sp {
    display: none;
}
.fs-12{
    font-size: calc((.12rem * 100 / 50) * 1);
}
.fs-13{
    font-size: calc((.13rem * 100 / 50) * 0.9);
}
.fs-14{
    font-size: calc((.14rem * 100 / 50) * 0.9);
}
.fs-15{
    font-size: calc((.15rem * 100 / 50) * 0.9);
}
.fs-16{
    font-size: calc((.16rem * 100 / 50) * 0.9);
}
.fs-18{
    font-size: calc((.18rem * 100 / 50) * 0.9);
}
.fs-20{
    font-size: calc((.2rem * 100 / 50) * 0.9);
}
.fs-22{
    font-size: calc((.22rem * 100 / 50) * 0.9);
}
.fs-24{
    font-size: calc((.24rem * 100 / 50) * 0.8);
}
.fs-26{
    font-size: calc((.26rem * 100 / 50) * 0.8);
}
.fs-28{
    font-size: calc((.28rem * 100 / 50) * 0.7);
}
.fs-30{
    font-size: calc((.3rem * 100 / 50) * 0.7);
}
.fs-32{
    font-size: calc((.32rem * 100 / 50) * 0.7);
}
.fs-34{
    font-size: calc((.34rem * 100 / 50) * 0.7);
}
.fs-36{
    font-size: calc((.36rem * 100 / 50) * 0.6);
}
.fs-38{
    font-size: calc((.38rem * 100 / 50) * 0.6);
}
.fs-40{
    font-size: calc((.4rem * 100 / 50) * 0.6);
}
.fs-42{
    font-size: calc((.42rem * 100 / 50) * 0.6);
}
.fs-44{
    font-size: calc((.44rem * 100 / 50) * 0.6);
}
.fs-46{
    font-size: calc((.46rem * 100 / 50) * 0.6);
}
.fs-48{
    font-size: calc((.48rem * 100 / 50) * 0.6);
}
.fs-60{
    font-size: calc((.60rem * 100 / 50) * 0.6);
}
.fs-70{
    font-size: calc((.70rem * 100 / 50) * 0.6);
}
.fs-75{
    font-size: calc((.75rem * 100 / 50) * 0.6);
}
.fs-80{
    font-size: calc((.80rem * 100 / 50) * 0.6);
}
.fs-85{
    font-size: calc((.85rem * 100 / 50) * 0.6);
}
.lh-14{
    line-height: 1.4;
}
.lh-16{
    line-height: 1.6;
}
.lh-18{
    line-height: 1.8;
}
.lh-2{
    line-height: 2;
}
/* Main
========================================================================== */
.l-wrap{
    width: min(100%, 800px);
    height: 100vh;
    margin: auto;
    overflow-y: scroll;
}
.c-inner{
    padding: 0 .5rem;
    margin: auto;
}
.c-ttl{
    display: flex;
    align-items: center;
}
.c-ttl img{
    width: 2rem;
}
.c-ttl::before, .c-ttl::after{
    content: "";
    height: 2px;
    flex-grow: 1;
    background: linear-gradient(90deg,#661a1a 0%,#b22222 50%,#661a1a 100%);
}
.c-ttl::before{
    margin-right: .2rem;
}
.c-ttl::after{
    margin-left: .2rem;
}
main{
    background: -webkit-image-set(
    url("../img/mv_bg.webp") type("image/webp"),
    url("../img/mv_bg.png") type("image/png")
    );
    background: image-set(
        url("../img/mv_bg.webp") type("image/webp"),
        url("../img/mv_bg.png") type("image/png")
    );
    background-repeat: no-repeat;
    background-size: 100% auto;
    background-position: top center;
}
.sec02{
    padding-bottom: 1rem;
}
.sec02 .c-inner{
    display: grid;
    gap: .8rem;
}
.sec02 .part{
    margin-top: .8rem;
    display: grid;
    place-items: center;
    gap: .2rem;
}
.sec02 .part picture{
    width: 80%;
    margin: auto;
}
.sec02 .part02 h2{
    position: relative;
    bottom: -.2rem;
    text-align: center;
}
.sec02 .part02 .module{
    background: #fff;
    border-radius: .3rem;
    padding: .5rem .2rem .2rem;
    display: grid;
}
.sec02 .part02 .module dl{
    display: grid;
    gap: .1rem;
    padding: .3rem 0;
}
.sec02 .part02 .module dl:not(:last-child){
    border-bottom: 2px solid;
    border-image: linear-gradient(90deg,#661a1a 0%,#b22222 50%,#661a1a 100%);
    border-image-slice: 1;
}
.sec02 .part02 .module dl:nth-child(1) dt{
    width: 2rem;
}
.sec02 .part02 .module dl:nth-child(2) dt{
    width: 1rem;
}
.sec02 .part02 .module dl:nth-child(3) dt{
    width: 2.5rem
}
.sec02 .part02 .module dl:nth-child(4) dt{
    width: 2rem;
}
.sec02 .part03{
    display: grid;
    gap: .6rem;
}
.sec02 .part03 .module{
    display: grid;
    grid-template-columns: repeat(2,1fr);
    gap: .4rem .2rem;
}
.sec02 .part03 .module > div{
    background: #fff;
    border-radius: .3rem;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    position: relative;
}
.sec02 .part03 .module .unit{
    width: 1rem;
    position: absolute;
    top: -.2rem;
    left: -.2rem;
}
.sec02 .part03 .module picture{
    margin: auto;
}
.sec02 .part03 .module h3{
    background: #ab0829;
    padding: .2rem .1rem .25rem;
    color: #fff;
    font-weight: 600;
    text-align: center;
    border-radius: 0 0 .3rem .3rem;
}
.sec03{
    padding: 1rem 0;
    position: relative;
    background: url(../img/course_bg.png);
    border-radius: 2000px 2000px 0 0 / 300px 300px 0 0;
}
.sec03::after{
    content: '';
    background: -webkit-image-set(
    url("../img/course_deco.webp") type("image/webp"),
    url("../img/course_deco.png") type("image/png")
    );
    background: image-set(
        url("../img/course_deco.webp") type("image/webp"),
        url("../img/course_deco.png") type("image/png")
    );
    background-repeat: no-repeat;
    background-size: 100% auto;
    background-position: top center;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
}
.sec03 .c-inner{
    display: grid;
    gap: .5rem;
    position: relative;
    z-index: 1;
}
.sec03 h2{
    text-align: center;
}
.sec03 .part{
    display: grid;
    gap: .1rem;
}
.sec03 .part02 li{
    text-indent: -1em;
    padding-left: 1em;
    color: #fff;
    font-weight: 600;
}
.sec04{
    background: url(../img/taisho_bg.png);
    padding: 1rem 0;
}
.sec04 .c-inner{
    display: grid;
    gap: .5rem;
}
.sec04 .part{
    display: grid;
    gap: .3rem;
}
.sec04 .part a{
    width: 100%;
    height: 1.2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .1rem;
    color: #fff;
    background-image: url(../img/taisho_arw.png);
    background-repeat: no-repeat;
    background-position: right .3rem center;
    background-size: .4rem auto;
    padding: 0 40px;
    border-radius: 70px;
    font-weight: 600;
    -webkit-box-shadow: 0 0 8px 2px rgba(0, 0, 0, .1);
    box-shadow: 0 0 8px 2px rgba(0, 0, 0, .1);
}
.sec04 .part a img{
    width: .4rem;
    margin: 0;
}
.sec04 .part a:nth-child(1){
    background-color: #ee614a;
}
.sec04 .part a:nth-child(2){
    background-color: #bf7415;
}
.sec04 .part a:nth-child(3){
    background-color: #885e27;
}
.sec05{
    padding: .6rem 0 1rem;
    background: -webkit-image-set(
    url("../img/step_bg.webp") type("image/webp"),
    url("../img/step_bg.png") type("image/png")
    );
    background: image-set(
        url("../img/step_bg.webp") type("image/webp"),
        url("../img/step_bg.png") type("image/png")
    );
    background-repeat: no-repeat;
    background-size: cover;
    background-position: top center;
}
.sec05 .c-inner{
    display: grid;
    gap: .4rem;
}
.sec05 h2{
    width: 6rem;
    margin: auto;
}
.sec05 .part{
    display: grid;
    gap: .8rem;
}
.sec05 .part .module{
    background: #fff;
    border-radius: .2rem;
    color: #009c4b;
    display: flex;
    align-items: center;
    -webkit-box-shadow: 0 0 8px 2px rgba(0, 0, 0, .2);
    box-shadow: 0 1px 0 1px rgba(0, 0, 0, .2);
    position: relative;
}
.sec05 .part .module:not(:last-child)::after{
    content: '';
    display: block;
    width: .6rem;
    height: .3rem;
    background: #009c4b;
    clip-path: polygon(0 0, 100% 0%, 50% 100%);
    position: absolute;
    bottom: -.6rem;
    left: 0;
    right: 0;
    margin: auto;
}
.sec05 .part .module p{
    font-weight: 600;
    border-radius: .2rem 0 0 .2rem;
    background: #009c4b;
    color: #fff;
    height: 100%;
    display: grid;
    place-items: center;
    padding: .3rem;
}
.sec05 .part .module h3{
    font-weight: 600;
    border-radius: 0 .2rem .2rem 0;
    padding: .3rem;
}
.sec05 .part02{
    background: #fcf9f0;
    border-radius: .3rem;
    padding: .5rem;
    display: grid;
    gap: .4rem;
}
.sec05 .part02 h3{
    color: #009c4b;
    font-weight: 600;
}
.sec05 .part02 .module li{
    text-indent: -1em;
    padding-left: 1em;
}
.sec05 .part02 .module li span{
    font-weight: 600;
    color: #009c4b;
}

.example-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .2rem;
}

@media only screen and (max-width: 800px) {
    .example-grid {
        grid-template-columns: 1fr;
    }
}

.sec05 .part02 .module02{
    display: grid;
    gap: .1rem;
}
.sec05 .part02 h4{
    color: #009c4b;
    font-weight: 600;
}
.sec05 .part02 picture{
    width: min(100%, 5.3rem);
    margin: auto;
}
.sec06{
    background: #fff;
    padding: 1rem 0;
}
.sec06 .c-inner{
    display: grid;
    gap: .6rem;
    align-items: center;
}
.sec06 h2{
    font-weight: 600;
    text-align: center;
}
.sec06 .part{
    border: 3px solid #d6d6d6;
    padding: .5rem .3rem;
}
.sec06 .part .module{
    height: 100%;
    overflow-y: scroll;
    display: grid;
    gap: .4rem;
}
.sec06 .part .module h3{
    font-weight: 600;
    padding-bottom: .2rem;
    border-bottom: 2px solid #000;
    margin-bottom: .2rem;
}
.sec07{
    background: #fff;
}
.sec07 .bg{
    padding: 1rem 0;
    background: url(../img/course_bg.png);
    border-radius: 2000px 2000px 0 0 / 300px 300px 0 0;
}
.sec07 .c-inner{
    display: grid;
    gap: .4rem;
}
.sec07 h2{
    width: 130px;
    margin: 0 auto;
}
.sec08{
    padding: 1rem 0;
    background: url(../img/taisho_bg.png);
}
.sec08 .c-inner{
    display: grid;
    gap: .4rem;
}
.sec08 h2{
    color: #009c4b;
    font-weight: 600;
    text-align: center;
    text-shadow:
    3px  3px 0px #ffffff,
    -3px  3px 0px #ffffff,
    3px -3px 0px #ffffff,
    -3px -3px 0px #ffffff,
    3px  0px 0px #ffffff,
    0px  3px 0px #ffffff,
    -3px  0px 0px #ffffff,
    0px -3px 0px #ffffff;
}
.sec08 .part{
    display: grid;
    gap: .4rem;
}
.sec08 .part dt{
    background: #009c4b;
    padding: .3rem .8rem .3rem .2rem;
    color: #fff;
    font-weight: 600;
    position: relative;
    cursor: pointer;
}
.sec08 .part dt::before {
    content: "";
    width: .6rem;
    height: .6rem;
    background-color: white;
    border-radius: 50%;
    position: absolute;
    top: 0;
    bottom: 0;
    right: .2rem;
    margin: auto;
}
.sec08 .part dt::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    right: 15px;
    margin: auto;
    width: .4rem;
    height: .4rem;
    background:
    linear-gradient(#449d44, #449d44) center/100% 2px no-repeat,
    linear-gradient(#449d44, #449d44) center/2px 100% no-repeat;
    transform: rotate(-90deg);
    transition: transform .3s;
}
.sec08 .part dt.is-active::after{
    transform:rotate(0deg);
    background:
    linear-gradient(#449d44, #449d44) center/100% 2px no-repeat;
}
.sec08 .part dd{
    display: none;
    background: #fff;
    padding: .3rem .2rem;
}
.sec09{
    padding: 1rem 0;
    background: #f7f5f5;
}
.sec09 .c-inner{
    display: grid;
    gap: .6rem;
}
.sec09 h2{
    font-weight: 600;
    text-align: center;
}
.sec09 .part{
    display: grid;
    gap: .1rem;
}
.sec09 h3{
    font-weight: 600;
}
.sec09 ul{
    padding: .4rem;
    background: #fff;
}
.sec09 li{
    text-indent: -1em;
    padding-left: 1em;
}
/* Footer
   ========================================================================== */
footer{
    display: grid;
    align-items: center;
    gap: .5rem;
    background: #bf0000;
    padding: 1rem 0;
}
footer .logo{
    width: 90px;
    margin: auto;
}
footer .link{
    display: flex;
    justify-content: center;
    gap: .1rem;
    color: #fff;
}
footer .link li:first-child::before{
    content: '|';
}
footer .link li::after{
    content: '|';
}
footer .link li a{
    color: #fff;
    padding: 0 .2rem;
}
footer .contact{
    color: #fff;
    text-align: center;
}
@media only screen and (max-width: 800px) {
    body{
        background: #bf0000;
    }
    /* Style parts
   ========================================================================== */
    .pc {
        display: none;
    }
    .sp {
        display: block;
    }
    /* Main
    ========================================================================== */
    .l-wrap{
        width: 100%;
    }
    .sec06 .part{
        aspect-ratio: 1;
    }
    /* Footer
   ========================================================================== */

}