@charset "UTF-8";
@import url(https://fonts.googleapis.com/css2?family=Zen+Old+Mincho:wght@400;500;600;700;900&display=swap);
@import url(https://fonts.googleapis.com/css2?family=Hina+Mincho&display=swap);

html {
    overflow-y: scroll;
    overflow-x: hidden;
    font-size: 10px;
    -ms-text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%
}

blockquote,
body,
code,
dd,
div,
dl,
dt,
fieldset,
form,
h1,
h2,
h3,
h4,
h5,
h6,
input,
legend,
li,
ol,
p,
pre,
td,
textarea,
th,
ul {
    margin: 0;
    padding: 0
}

* {
    -webkit-box-sizing: border-box;
    box-sizing: border-box
}

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

fieldset,
img {
    border: 0
}

img {
    vertical-align: middle;
    max-width: 100%;
    height: auto
}

address,
caption,
cite,
code,
dfn,
var {
    font-style: normal;
    font-weight: 400
}

li {
    list-style: none
}

caption,
th {
    text-align: left
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-size: 100%;
    font-weight: 400
}

q:after,
q:before {
    content: ""
}

abbr,
acronym {
    border: 0;
    font-variant: normal
}

sup {
    vertical-align: text-top
}

sub {
    vertical-align: text-bottom
}

button,
input,
select,
textarea {
    font-family: inherit;
    font-size: inherit;
    font-weight: inherit;
    outline: 0;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none
}

input,
select,
textarea {
    *font-size: 100%
}

legend {
    color: #000
}

del,
ins {
    text-decoration: none
}

main {
    display: block
}

section {
    position: relative
}

.mb0 {
    margin-bottom: 0 !important
}

body {
    color: #3b546b;
    font-family: "Zen Old Mincho", serif;
    font-size: 100%;
    -webkit-font-smoothing: antialiased;
    line-height: 1.4;
    overflow-x: hidden;
    max-width: 520px;
    margin: 0 auto
}

a {
    text-decoration: none;
    -webkit-backface-visibility: hidden;
    -webkit-transition: .3s;
    transition: .3s
}

a:hover {
    opacity: .7
}

@media all and (-ms-high-contrast:none),
(-ms-high-contrast:active) {
    a {
        display: inline-block
    }
}

.clearfix {
    *zoom: 1
}

.clearfix:before {
    content: "";
    display: table
}

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

@media screen and (max-width:834px) {
    body {
        max-width: 520px
    }

    a {
        -webkit-tap-highlight-color: transparent
    }

    .pc {
        display: none !important
    }
}

@media screen and (max-width:1024px) {
    .pc-tb {
        display: none !important
    }
}

@media screen and (max-width:990px) {
    .pc-lg {
        display: none !important
    }
}

@media screen and (max-width:640px) {
    .pc-sm {
        display: none !important
    }
}

@media screen and (max-width:400px) {
    .pc-xs {
        display: none !important
    }
}

@media screen and (min-width:835px) {
    a[href^=tel] {
        pointer-events: none
    }

    .sp {
        display: none !important
    }

    .u-fn-hover {
        -webkit-transition: .2s;
        transition: .2s
    }

    .u-fn-hover:hover {
        opacity: .7
    }
}

@media screen and (min-width:1025px) {
    .sp-tb {
        display: none !important
    }
}

@media screen and (min-width:991px) {
    .sp-lg {
        display: none !important
    }
}

@media screen and (min-width:641px) {
    .sp-sm {
        display: none !important
    }
}

.u-fn-hover {
    display: inline-block
}

.u-pull--left {
    margin-left: calc((100vw - 100%)/ 2 * -1)
}

.u-pull--right {
    margin-right: calc((100vw - 100%)/ 2 * -1)
}

.c-fc--white {
    color: #fff !important
}

.c-fc--black {
    color: #000 !important
}

.c-al--c {
    text-align: center !important
}

.c-al--r {
    text-align: right !important
}

.c-al--l {
    text-align: left !important
}

.c-txt__basic {
    font-size: 1.6rem;
    line-height: 2.0714285714;
    letter-spacing: 1px
}

.c-ttl__01 {
    display: block;
    line-height: 1.4;
    margin-bottom: 42px
}

.c-ttl__01 span {
    display: block;
    position: relative
}

.c-ttl__01 .c-ft--en {
    font-size: 1.4rem;
    letter-spacing: 1px;
    padding: 0 0 6px;
    margin-bottom: 5px
}

.c-ttl__01 .c-ft--en:after {
    content: "";
    height: 1px;
    width: 53px;
    background: #3b546b;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    margin: 0 auto
}

.c-ttl__01 .c-ft--jp {
    font-size: 3.1rem;
    font-weight: 700;
    letter-spacing: 2px
}

@media screen and (min-width:521px){
    .c-ttl__01 .c-ft--jp {
    font-size: 4rem
    }
}

.c-ttl__01--white .c-ft--en:after {
    background: #fff;
    right: auto
}

.c-ttl__01--center {
    text-align: center;
    margin-bottom: 32px
}

.c-ttl__01--center .c-ft--jp {
    font-size: 2.7rem;
    letter-spacing: 0;
    line-height: 1.56
}

@media screen and (min-width:521px){
    .c-ttl__01--center .c-ft--jp {
    font-size: 3.5rem
    }
}

.c-btn__01 {
    width: 100%;
    max-width: 360px;
    height: 71px;
    margin: 0 auto;
    background: #99875f;
    display: -ms-flexbox;
    display: -webkit-box;
    display: flex;
    -ms-flex-pack: center;
    -webkit-box-pack: center;
    justify-content: center;
    -ms-flex-align: center;
    -webkit-box-align: center;
    align-items: center;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    text-align: center;
    color: #fff;
    font-size: 2.2rem;
    line-height: 1.2;
    font-weight: 600;
    position: relative;
    border: none;
    outline: 0;
    cursor: pointer;
    -webkit-backface-visibility: hidden;
    -webkit-transition: .3s;
    transition: .3s
}

.c-btn__01:after {
    content: "";
    width: 11px;
    height: 11px;
    background: url(../img/arrow-right.png) no-repeat;
    background-size: 100%;
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
    right: 20px
}

@media (any-hover:hover) {
    .c-btn__01:hover {
        opacity: .7
    }
}

.inner {
    display: block;
    width: 100%;
    padding: 0 28px;
    margin: 0 auto
}

@media screen and (max-width:400px) {
    .inner {
        padding: 0 25px
    }
}

.wpcf7-text,
.wpcf7-textarea {
    display: block;
    width: 100%;
    height: 52px;
    background: #fff;
    border: 1px solid #b2b2b2;
    padding: 0 20px;
    border-radius: 4px;
    color: #3b546b;
    font-size: 1.4rem
}

.wpcf7-text:focus,
.wpcf7-textarea:focus {
    border-color: #66afe9;
    outline: 0;
    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6);
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6)
}

.wpcf7-text::-webkit-input-placeholder,
.wpcf7-textarea::-webkit-input-placeholder {
    color: #8799a0
}

.wpcf7-text:-moz-placeholder,
.wpcf7-textarea:-moz-placeholder {
    color: #8799a0
}

.wpcf7-text::-moz-placeholder,
.wpcf7-textarea::-moz-placeholder {
    color: #8799a0
}

.wpcf7-text:-ms-input-placeholder,
.wpcf7-textarea:-ms-input-placeholder {
    color: #8799a0
}

input::-webkit-inner-spin-button,
input::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0
}

input[type=number] {
    -moz-appearance: textfield
}

textarea.wpcf7-textarea {
    height: 250px;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    resize: none
}

@media screen and (max-width:834px) {
    textarea.wpcf7-textarea {
        height: 222px
    }
}

#header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 3;
    max-width: 780px;
    margin: 0 auto;
    padding: 22px;
    -webkit-backface-visibility: hidden;
    -webkit-transition: .3s;
    transition: .3s
}

@media screen and (min-width:521px) {
    #header {
        width: 520px;
    }
}

@media screen and (max-width:520px) {
    #header {
        width: 100%;
    }
}



#header:after,
#header:before {
    content: "";
    position: absolute;
    opacity: 0;
    visibility: hidden;
    -webkit-backface-visibility: hidden;
    -webkit-transition: .3s;
    transition: .3s
}

#header:before {
    top: 0;
    left: 0;
    right: 0;
    background: #fff;
    bottom: 0;
    z-index: 1
}

#header:after {
    top: -8px;
    left: 0;
    right: 0;
    height: 100vh;
    background: rgba(0, 0, 0, .7)
}

#header .header-logo {
    display: block;
    width: 192px;
    position: relative;
    z-index: 2
}

@media screen and (max-width:370px) {
    #header .header-logo {
        width: 180px
    }
}

#header .header-logo img {
    -webkit-backface-visibility: hidden;
    -webkit-transition: .3s;
    transition: .3s
}

#header .header-logo .logo-02 {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    opacity: 0;
    visibility: hidden
}

#header .header-btn {
    display: block;
    background: #99875f;
    line-height: 1.2;
    font-size: 1.4rem;
    font-weight: 600;
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
    right: 60px;
    color: #fff;
    padding: 8px 10px;
    z-index: 3;
    opacity: 0;
    visibility: hidden
}

@media screen and (min-width: 521px) {
    #header .header-btn {
        font-size: 1.6rem;
    }
}

@media screen and (max-width:400px) {
    #header {
        padding: 22px 15px
    }

    #header .header-btn {
        right: 50px
    }
}

#header .header-nav {
    position: absolute;
    top: -8px;
    right: -400px;
    height: 100vh;
    background: #fff;
    z-index: 3;
    width: 100%;
    max-width: 300px;
    padding: 30px 20px;
    -webkit-backface-visibility: hidden;
    -webkit-transition: .3s;
    transition: .3s;
    opacity: 0;
    visibility: hidden
}

#header .header-nav__logo {
    display: block;
    width: 192px;
    margin-bottom: 30px
}

#header .header-nav__menu {
    margin-bottom: 30px
}

#header .header-nav__menu-item {
    margin-bottom: 20px
}

#header .header-nav__menu-item:last-child {
    margin-bottom: 0
}

#header .header-nav__menu-item a {
    color: #3b546b;
    font-weight: 700
}

#header .header-nav__menu-item a span {
    display: block
}

#header .header-nav__menu-item a .c-ft--jp {
    font-size: 1.4rem
}

#header .header-nav__menu-item a .c-ft--en {
    font-size: 1rem
}

#header .header-nav__btn {
    max-width: 192px;
    height: 41px;
    margin-left: 0;
    font-size: 1.4rem
}

#header .header-nav__btn:after {
    width: 5px;
    height: 6px
}

#header .header-nav.active {
    right: -9px;
    opacity: 1;
    visibility: visible
}

#header .js-mobile {
    width: 25px;
    height: 25px;
    position: absolute;
    right: 24px;
    top: 50%;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
    cursor: pointer;
    z-index: 12;
    display: -ms-flexbox;
    display: -webkit-box;
    display: flex;
    -ms-flex-pack: center;
    -webkit-box-pack: center;
    justify-content: center;
    -ms-flex-align: center;
    -webkit-box-align: center;
    align-items: center;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap
}

#header .js-mobile span {
    display: block;
    width: 100%;
    height: 2px;
    background: #fff;
    border-radius: 3px;
    position: relative
}

#header .js-mobile span:after,
#header .js-mobile span:before {
    position: absolute;
    left: 0;
    width: 100%;
    height: 100%;
    background: #fff;
    content: "";
    -webkit-transition: -webkit-transform .3s;
    transition: transform .3s, -webkit-transform .3s;
    border-radius: 3px
}

#header .js-mobile span:before {
    -webkit-transform: translateY(-250%);
    -ms-transform: translateY(-250%);
    transform: translateY(-250%);
    top: -4px
}

#header .js-mobile span:after {
    -webkit-transform: translateY(250%);
    -ms-transform: translateY(250%);
    transform: translateY(250%);
    bottom: -4px
}

#header .js-mobile--close span {
    background-color: transparent !important
}

#header .js-mobile--close span:after,
#header .js-mobile--close span:before {
    width: 100%;
    background: #3b546b
}

#header .js-mobile--close span:before {
    -webkit-transform: translateY(0) rotate(45deg);
    -ms-transform: translateY(0) rotate(45deg);
    transform: translateY(0) rotate(45deg);
    top: 2px
}

#header .js-mobile--close span:after {
    -webkit-transform: translateY(0) rotate(-45deg);
    -ms-transform: translateY(0) rotate(-45deg);
    transform: translateY(0) rotate(-45deg);
    bottom: -2px
}

#header.header-white:before {
    opacity: 1;
    visibility: visible
}

#header.header-white .header-logo .logo-01 {
    opacity: 0;
    visibility: hidden
}

#header.header-white .header-btn,
#header.header-white .header-logo .logo-02 {
    opacity: 1;
    visibility: visible
}

#header.header-white .js-mobile span,
#header.header-white .js-mobile span:after,
#header.header-white .js-mobile span:before {
    background: #3b546b
}

#header.active .header-btn {
    opacity: 1;
    visibility: visible
}

#header.active .js-mobile span,
#header.active .js-mobile span:after,
#header.active .js-mobile span:before {
    background: #3b546b
}

#header.hidden:before {
    opacity: 0;
    visibility: visible
}

#header.hidden:after {
    opacity: 1;
    visibility: visible
}

#header.hidden .header-logo {
    opacity: 0
}

.js-locked {
    overflow: hidden;
    -ms-touch-action: none;
    touch-action: none
}

.js-locked body {
    -webkit-overflow-scrolling: auto
}

#footer {
    background: #84969f;
    padding: 27px 0 0
}

#footer .inner {
    padding: 0 10px
}

#footer .footer-logo {
    display: block;
    width: 218px;
    margin: 0 auto 30px
}

#footer .breadcrumb {
    display: -ms-flexbox;
    display: -webkit-box;
    /* display: flex; */
    -ms-flex-pack: center;
    -webkit-box-pack: center;
    justify-content: center;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    color: #fff;
    font-size: 1.2rem;
    margin-bottom: 10px;
    letter-spacing: 1px
}

#footer .breadcrumb a {
    /* display: block; */
    color: #fff;
    position: relative;
    text-decoration: underline;
    padding: 0 19px 0 0;
    margin: 0 6px 0 0
}

#footer .breadcrumb a:after {
    content: "＞";
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
    right: 0
}

#footer .copyright {
    background: #2d2d2e;
    color: #fff;
    text-align: center;
    font-size: 1.2rem;
    padding: 20px 15px 30px;
    letter-spacing: 1px
}


.sec-mv {
    background: url(../img/mv.png) center no-repeat;
    background-size: cover;
    display: -ms-flexbox;
    display: -webkit-box;
    display: flex;
    -ms-flex-align: end;
    -webkit-box-align: end;
    align-items: flex-end;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -ms-flex-line-pack: end;
    align-content: flex-end;
    color: #fff;
    min-height: 608px;
    padding: 32px 0
}

.mv-heading {
    margin-bottom: 65px
}

.mv-heading span {
    display: block
}

.mv-heading .c-ft--jp {
    font-size: 3.519rem;
    line-height: 1.4705882353;
    font-weight: 700;
    letter-spacing: 2px;
    margin-bottom: 7px
}

.mv-heading .c-ft--en {
    font-size: 1.4rem;
    letter-spacing: 1px
}


@media screen and (min-width:521px) {
    .sec-mv {
        min-height: 728px;
    }

    .mv-heading .c-ft--jp {
        font-size: 4rem;
    }

    .mv-heading .c-ft--en {
        font-size: 1.8rem;
    }

    .c-btn__01 {
        min-width: 100%;
    }
}

.sec-about {
    color: #fff;
    padding: 70px 0 228px;
    background: url(../img/bg-05.png);
    z-index: 1
}

@media screen and (min-width:521px) {
    .sec-about {
    padding: 80px 0 320px;
}
}

.sec-about .about-img {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0
}

.sec-about .inner {
    position: relative;
    z-index: 2
}

.about-ttl {
    display: block;
    font-size: 3.1rem;
    line-height: 1.5483870968;
    font-weight: 700;
    letter-spacing: .5px;
    margin-bottom: 70px
}

.about-list {
    counter-reset: about
}

.about-list__item {
    margin-bottom: 70px;
    position: relative
}

.about-list__item:last-child {
    margin-bottom: 0
}

.about-list__item:before {
    counter-increment: about;
    content: counter(about, decimal-leading-zero);
    font-size: 9.422rem;
    line-height: 1;
    position: absolute;
    top: -41px;
    left: -20px;
    z-index: -1;
    color: rgba(255, 255, 255, .35)
}

@media screen and (max-width:400px) {
    #header .js-mobile {
        right: 15px
    }

    .about-list__item:before {
        left: -10px
    }
}

.about-list__ttl {
    display: block;
    font-size: 2.1rem;
    font-weight: 700;
    margin-bottom: 10px;
    letter-spacing: 0
}

.sec-skill {
    padding: 67px 0;
    background: url(../img/bg-01.png) no-repeat;
    background-size: cover;
    color: #fff
}

.sec-skill:after,
.sec-skill:before {
    content: "";
    width: 395px;
    height: 395px;
    position: absolute
}

.sec-skill:before {
    background: url(../img/bf.png) no-repeat;
    background-size: 100%;
    top: -128px;
    right: -39px
}

.sec-skill:after {
    background: url(../img/af.png) 0 100% no-repeat;
    background-size: 100%;
    bottom: -152px;
    left: -23px
}

.sec-skill .inner {
    position: relative;
    z-index: 1
}

.skill-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    font-size: 2.8rem;
    letter-spacing: 4px;
    font-weight: 700;
    position: relative;
    margin-bottom: 38px
}

.skill-list:after {
    content: "";
    width: 20px;
    height: 20px;
    background: url(../img/close-02.png) no-repeat;
    background-size: 100%;
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
    left: 0;
    right: 0;
    margin: 0 auto
}

.skill-list__item {
    display: -ms-flexbox;
    display: -webkit-box;
    display: flex;
    -ms-flex-pack: center;
    -webkit-box-pack: center;
    justify-content: center;
    -ms-flex-align: center;
    -webkit-box-align: center;
    align-items: center;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    text-align: center;
    background: url(../img/skills-bg-item.png) no-repeat;
    background-size: 100% 100%;
    padding: 10px;
    min-height: 98px
}

.skill-note p {
    margin-bottom: 32px
}

.skill-note p:last-child {
    margin-bottom: 0
}

.sec-curriculum {
    padding: 57px 0 63px;
    background: url(../img/bg-06.png);
    z-index: 1
}

.curriculum-list__item {
    background: #e0e0e0;
    padding: 25px 25px 34px 25px
}

.curriculum-list__ttl {
    display: block;
    font-size: 2.5rem;
    font-weight: 700;
    margin-bottom: 14px
}

.curriculum-list__img {
    margin-bottom: 19px
}

.curriculum-list__img img {
    width: 100%
}

.curriculum-list dl {
    margin-bottom: 18px
}

.curriculum-list dl:last-child {
    margin-bottom: 0
}

.curriculum-list dl dt {
    display: inline-block;
    color: #fff;
    line-height: 1.3;
    font-size: 1.5rem;
    background: #3b546b;
    padding: 3px 18px;
    margin-bottom: 7px
}

.curriculum-list dl dd {
    font-size: 1.6rem;
    font-weight: 600
}

.curriculum-note {
    margin: -10px 0 -10px 6px;
    position: relative;
    z-index: 1
}

.sec-course {
    padding: 32px 0 30px;
    background: url(../img/bg-02.png) no-repeat;
    background-size: cover;
    color: #fff;
    text-align: center
}

.sec-course .c-ttl__01 {
    margin-bottom: 33px
}

.sec-course .c-ttl__01 .c-ft--jp {
    font-size: 2.6rem;
    letter-spacing: 3px
}

.course-wrapper {
    background: rgba(255, 255, 255, .25);
    padding: 40px 0
}

.course-note {
    font-size: 1.6rem;
    line-height: 2.3333333333;
    letter-spacing: 1px;
    padding: 0 20px;
}

.sec-dates {
    padding: 57px 0 60px;
    background: url(../img/bg-07.png);
    background-size: cover;
    color: #fff
}

.sec-dates .c-ttl__01 {
    margin-bottom: 25px
}

.dates-note {
    margin-bottom: 28px
}

.show-dates{
	margin-bottom:40px
}

.show-dates__item {
    border: 1px solid #fff;
    margin-bottom: 35px
}

.show-dates__item:last-child {
    margin-bottom: 0
}

.show-dates__ttl {
    display: block;
    text-align: center;
    color: #3b546b;
    font-size: 1.4rem;
    font-weight: 700;
    background: #fff;
    padding: 5px
}

.show-dates dl {
    display: -ms-flexbox;
    display: -webkit-box;
    display: flex;
    -ms-flex-align: start;
    -webkit-box-align: start;
    align-items: flex-start;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    border-bottom: 1px dashed #fff;
    padding: 17px 21px
}

.show-dates dl:last-child {
    border-bottom: none
}

/* .show-dates dl dt {
    font-size: 1.4rem;
    font-weight: 700;
    text-align: center;
    line-height: 1.2;
    width: 98px;
    background: #fff;
    border: 1px solid #fff;
    color: #3b546b;
    padding: 5px
} */

.show-dates dl dt {
    position: relative;
    overflow: hidden;
    font-size: 1.4rem;
    font-weight: 700;
    text-align: center;
    line-height: 1.2;
    width: 98px;
    background: #fff;
    border: 1px solid #fff;
    color: #3b546b;
    padding: 5px;
}

/* 光のエフェクト */
.show-dates dl dt::before {
    content: "";
    position: absolute;
    top: 0;
    left: -120%;
    width: 120%;
    height: 100%;
    background: linear-gradient(
        120deg,
        transparent 0%,
        rgba(255, 255, 255, 0.6) 50%,
        transparent 100%
    );
    animation: shine 2.5s infinite;
}

@keyframes shine {
    0% {
        left: -120%;
    }
    40% {
        left: 120%;
    }
    100% {
        left: 120%;
    }
}

.show-dates dl dt.other {
    background: 0 0;
    color: #fff
}

.show-dates dl dd {
    font-size: 1.6rem;
    width: calc(100% - 98px);
    padding: 0 0 0 12%;
    letter-spacing: 1px
}

.sec-plan {
    background: #000;
    color: #fff;
    padding: 63px 0 56px;
    overflow: hidden
}

.sec-plan .inner {
    position: relative;
    z-index: 1;
    display: -ms-flexbox;
    display: -webkit-box;
    display: flex;
    -ms-flex-pack: end;
    -webkit-box-pack: end;
    justify-content: flex-end;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap
}

.plan-img {
    position: absolute;
    top: -32px;
    left: -105px;
    right: -52px
}

.plan-img img {
    width: 100%
}

.plan-name {
    width: 100%;
    max-width: 189px;
    font-size: 1.2rem;
    line-height: 1.75;
    letter-spacing: .5px;
    margin-bottom: 59px
}

.plan-name__ttl {
    display: block;
    line-height: 1.2;
    font-weight: 700;
    text-align: right;
    margin-bottom: 15px
}

.plan-name__ttl span {
    display: block
}

.plan-name__ttl .c-ft--jp {
    font-size: 3.2rem;
    letter-spacing: 2px;
    margin-bottom: 5px
}

.plan-name__ttl .c-ft--jp small {
    display: block;
    font-size: 1.4rem;
    letter-spacing: .5px
}

.plan-name__ttl .c-ft--en {
    font-size: 1.4rem;
    letter-spacing: 1px
}

.plan-note__ttl {
    display: block;
    font-weight: 700;
    font-size: 2.9rem;
    line-height: 1.9310344828;
    text-align: right;
    letter-spacing: 0;
    margin-bottom: 20px
}

.plan-note__ttl span {
    background-image: -webkit-gradient(linear, left top, right top, color-stop(50%, #fff), color-stop(0, transparent));
    background-image: linear-gradient(90deg, #fff 50%, transparent 0);
    background-size: 200% 1px;
    background-repeat: no-repeat;
    background-position: 0 53px;
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
    padding: 7px 4px
}

.sec-tuition {
    padding: 59px 0 64px;
    background: url(../img/bg-09.png);
    color: #fff;
    text-align: center;
    margin-bottom: -1px
}

.sec-tuition .c-ttl__01 {
    margin-bottom: 28px
}

.sec-tuition .c-ttl__01 .c-ft--jp {
    line-height: 1.1;
    letter-spacing: 3px
}

.tuition-note {
    margin-bottom: 22px
}

.tuition-show {
    border: 1px solid #fff;
    font-weight: 700
}

.tuition-show dl dt {
    background: #fff;
    color: #3b546b
}

.tuition-show dl dd {
    padding: 12px
}

.sec-eligibility {
    padding: 61px 0;
    background: url(../img/bg-04.png) no-repeat;
    background-size: cover;
    color: #fff
}

.sec-eligibility .c-ttl__01 {
    margin-bottom: 33px
}

.sec-eligibility .c-ttl__01 .c-ft--en {
    margin-bottom: 2px
}

.eligibility-note {
    margin-bottom: 33px
}

.eligibility-note li {
    position: relative;
    padding: 0 0 0 20px;
    margin-bottom: 27px;
    line-height: 25px;
}


.eligibility-note li:before {
    content: "";
    width: 15px;
    height: 1px;
    background: #fff;
    position: absolute;
    top: 13px;
    left: 0
}

.sec-flow {
    /* padding: 28px 0 62px */
    padding: 50px 0 62px
}

.sec-flow .c-ttl__01 {
    margin-bottom: 23px
}

.sec-flow .c-ttl__01 .c-ft--en {
    letter-spacing: 1.5px;
    margin-bottom: 2px
}

.sec-flow .c-ttl__01 .c-ft--en:after {
    width: 66px
}

.sec-flow .c-ttl__01 .c-ft--jp {
    font-size: 2.6rem;
    letter-spacing: 2.5px
}

.flow-note {
    margin-bottom: 40px
}

.flow-steps {
    counter-reset: steps
}

.flow-steps li {
    position: relative;
    border: 1px solid #3b546b;
    font-size: 1.6rem;
    font-weight: 700;
    letter-spacing: 1px;
    text-align: center;
    padding: 11px;
    margin-bottom: 47px
}

.flow-steps li:before {
    counter-increment: steps;
    content: counter(steps);
    display: -ms-flexbox;
    display: -webkit-box;
    display: flex;
    -ms-flex-pack: center;
    -webkit-box-pack: center;
    justify-content: center;
    -ms-flex-align: center;
    -webkit-box-align: center;
    align-items: center;
    text-align: center;
    line-height: 1;
    background: #3b546b;
    color: #fff;
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 43px
}

.flow-steps li:after {
    content: "";
    width: 13px;
    height: 12px;
    background: url(../img/arrow-dow.png) no-repeat;
    background-size: 100%;
    position: absolute;
    top: calc(100% + 20px);
    left: 0;
    right: 0;
    margin: 0 auto
}

.flow-steps li:last-child {
    margin-bottom: 0
}

.flow-steps li:last-child:after {
    display: none
}

.sec-question {
    padding: 59px 0;
    background: url(../img/bg-08.png)
}

.sec-question .c-ttl__01 {
    color: #fff;
    margin-bottom: 35px
}

.sec-question .c-ttl__01 .c-ft--en {
    letter-spacing: 1.5px;
    margin-bottom: 0
}

.sec-question .c-ttl__01 .c-ft--en:after {
    background: #fff
}

.sec-question .c-ttl__01 .c-ft--jp {
    letter-spacing: 3px
}

.question-list {
    background: #fff;
    padding: 27px 28px 13px
}

.question-list dl {
    border-bottom: 1px solid #3b546b;
    padding: 0 0 30px;
    margin-bottom: 27px
}

.question-list dl:last-child {
    border-bottom: none;
    margin-bottom: 0
}

.question-list dl dt {
    font-size: 1.6rem;
    line-height: 2.0714285714;
    position: relative;
    font-weight: 700;
    letter-spacing: 1px;
    padding: 0 0 0 20px;
    margin-bottom: 5px
}

.question-list dl dt:before {
    content: "Q";
    font-size: 1.8rem;
    position: absolute;
    top: 0;
    left: 0
}

.question-list dl dd {
    font-size: 1.5rem;
    line-height: 1.8333333333;
    letter-spacing: .5px
}

.question-list__all {
    height: 270px;
    overflow: hidden;
    margin-bottom: 37px;
    position: relative
}

.question-list__all:after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: #fff;
    background: -webkit-gradient(linear, left top, left bottom, color-stop(50%, rgba(255, 255, 255, 0)), to(#fff));
    background: linear-gradient(180deg, rgba(255, 255, 255, 0) 50%, #fff 100%)
}

.question-list__all.active {
    height: auto
}

.question-list__all.active:after {
    display: none
}

.question-sub {
    position: relative;
    cursor: pointer
}

.question-sub.active .question-sub__close {
    width: 33px;
    opacity: 1;
    visibility: visible
}

.question-sub.active .question-sub__open {
    opacity: 0;
    visibility: hidden
}

.question-sub__open {
    display: block;
    width: 66px;
    margin: 0 auto;
    -webkit-backface-visibility: hidden;
    -webkit-transition: .3s;
    transition: .3s
}

.question-sub__close {
    width: 33px;
    position: absolute;
    top: -10px;
    left: 0;
    right: 0;
    margin: 0 auto;
    opacity: 0;
    visibility: visible;
    -webkit-backface-visibility: hidden;
    -webkit-transition: .3s;
    transition: .3s
}

.sec-form {
    background: #3b546b;
    color: #fff;
    padding: 58px 0 62px
}

.sec-form .c-ttl__01 {
    margin-bottom: 30px
}

.sec-form .c-ttl__01 .c-ft--en {
    letter-spacing: 1.5px;
    margin-bottom: 0
}

.sec-form .c-ttl__01 .c-ft--en:after {
    background: #fff
}

.sec-form .c-ttl__01 .c-ft--jp {
    letter-spacing: 2.5px
}

.form-block {
    font-size: 1.8rem
}

.form-block dl {
    margin-bottom: 29px
}

.form-block dl dt {
    margin-bottom: 6px
}

.form-block .item__required {
    display: inline-block;
    color: #fff;
    font-size: 1rem;
    background: #a3393a;
    padding: 1px 9px;
    margin: 0 0 0 7px
}

.form-block__age {
    max-width: 123px;
    position: relative
}

.form-block__age-ttl {
    position: absolute;
    top: 34px;
    right: -24px;
    font-size: 1.4rem
}

.form-block .c-btn__01 {
    height: 51px;
    border-radius: 4px
}

.form-block .c-btn__01:after {
    display: none
}

.wpcf7-checkbox {
    display: block;
    padding: 16px 0 22px
}

.wpcf7-checkbox .wpcf7-list-item {
    display: -ms-flexbox;
    display: -webkit-box;
    display: flex;
    -ms-flex-pack: center;
    -webkit-box-pack: center;
    justify-content: center;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    position: relative
}

.wpcf7-checkbox .wpcf7-list-item label {
    display: block;
    position: relative;
    cursor: pointer
}

.wpcf7-checkbox .wpcf7-list-item label input {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    opacity: 0
}

.wpcf7-checkbox .wpcf7-list-item label input:checked+span:after {
    opacity: 1
}

.wpcf7-checkbox .wpcf7-list-item label span {
    display: block;
    position: relative;
    padding: 0 0 0 30px;
    letter-spacing: 1px
}

.wpcf7-checkbox .wpcf7-list-item label span:before {
    content: "";
    border: 1px solid #fff;
    width: 20px;
    height: 20px;
    position: absolute;
    top: -2px;
    left: 0
}

.wpcf7-checkbox .wpcf7-list-item label span:after {
    content: "";
    position: absolute;
    top: 2px;
    left: 4px;
    width: 14px;
    height: 7px;
    border-style: solid;
    border-color: #fff;
    border-width: 0 0 3px 3px;
    -webkit-transform: rotate(-45deg) scale(1);
    -ms-transform: rotate(-45deg) scale(1);
    transform: rotate(-45deg) scale(1);
    opacity: 0
}

.wpcf7-checkbox .wpcf7-list-item label span a {
    color: #fff;
    text-decoration: underline;
    display: inline-block;
    position: relative;
    z-index: 1
}

.wpcf7-checkbox .wpcf7-list-item .wpcf7-not-valid-tip {
    width: 100%;
    text-align: center
}

.wpcf7-not-valid-tip {
    padding: 5px 0 0;
    font-size: 1rem;
    color: #d23c3c
}

.wpcf7-acceptance .wpcf7-list-item {
    display: -ms-flexbox;
    display: -webkit-box;
    display: flex;
    -ms-flex-pack: center;
    -webkit-box-pack: center;
    justify-content: center;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    position: relative
}

.wpcf7-acceptance .wpcf7-list-item label {
    display: block;
    position: relative;
    cursor: pointer
}

.wpcf7-acceptance .wpcf7-list-item label input {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    opacity: 0
}

.wpcf7-acceptance .wpcf7-list-item label input:checked+.wpcf7-list-item-label:after {
    opacity: 1
}

.wpcf7-acceptance .wpcf7-list-item label .wpcf7-list-item-label {
    display: block;
    position: relative;
    padding: 0 0 0 30px;
    letter-spacing: 1px;
    font-size: 1.4rem
}

.wpcf7-acceptance .wpcf7-list-item label .wpcf7-list-item-label:before {
    content: "";
    border: 1px solid #fff;
    width: 20px;
    height: 20px;
    position: absolute;
    left: 0
}

.wpcf7-acceptance .wpcf7-list-item label .wpcf7-list-item-label:after {
    content: "";
    position: absolute;
    top: 2px;
    left: 4px;
    width: 14px;
    height: 7px;
    border-style: solid;
    border-color: #fff;
    border-width: 0 0 3px 3px;
    -webkit-transform: rotate(-45deg) scale(1);
    -ms-transform: rotate(-45deg) scale(1);
    transform: rotate(-45deg) scale(1);
    opacity: 0
}

.wpcf7-acceptance .wpcf7-list-item label .wpcf7-list-item-label a {
    color: #fff;
    text-decoration: underline;
    display: inline-block;
    position: relative;
    z-index: 1
}

.wpcf7-acceptance .wpcf7-list-item .wpcf7-not-valid-tip {
    width: 100%;
    text-align: center
}

.wpcf7-not-valid-tip {
    padding: 5px 0 0;
    font-size: 1rem;
    color: #d23c3c
}

@media screen and (min-width:521px) {
    p {
        font-size: 1.8rem;
    }

    .about-ttl {
        font-size: 4.1rem;
    }

    .about-list__ttl {
        font-size: 3rem;
    }

    .c-ttl__01 .c-ft--en {
        font-size: 2rem;
    }

    #item-02 .c-ttl__01 .c-ft--jp {
        font-size: 4.0rem;
    }

    #item-03 .c-ttl__01--center .c-ft--jp {
        font-size: 3.4rem;
    }

    #item-03 .curriculum-list__ttl {
        font-size: 3rem;
    }

    .sec-course .c-ttl__01 .c-ft--jp {
        font-size: 3.4rem;
    }

    #item-04 .c-ttl__01 .c-ft--jp {
        font-size: 4.0rem;
    }

    #item-04 .show-dates__ttl {
        font-size: 2rem;
    }

    .sec-plan .plan-name__ttl .c-ft--jp {
        font-size: 4rem;
    }

    .plan-name__ttl .c-ft--jp small {
        font-size: 1.8rem;
    }

    .plan-name__ttl .c-ft--en {
        font-size: 1.8rem;
    }

    .plan-note__ttl {
        font-size: 3.4rem;
    }

    #item-05 .c-ttl__01--center .c-ft--jp {
        font-size: 4rem;
    }

    #item-06 .c-ttl__01--center .c-ft--jp {
        font-size: 4rem;
    }

    #item-07 .c-ttl__01 .c-ft--jp {
        font-size: 4rem;
    }

    #item-08 .c-ttl__01--center .c-ft--jp {
        font-size: 3.5rem;
    }

    .question-list dl dt {
        font-size: 1.8rem;
    }

    .question-list dl dd {
        font-size: 1.8rem;
    }

    .flow-steps li {
        font-size: 1.8rem;
    }

    .eligibility-note li {
        font-size: 1.8rem;
    }

    .tuition-show {
        font-size: 1.8rem;
    }

    .show-dates dl dt,
    .show-dates dl dd {
        font-size: 1.8rem;
    }

    .curriculum-list dl dt,
    .curriculum-list dl dd {
        font-size: 1.8rem;
    }

}