@charset "UTF-8";

h1,
h2,
h3,
h4,
h5,
ol,
p,
ul {
    margin-block: 0
}

a,
button {
    color: inherit
}

body,
figure {
    margin: 0
}

a,
img,
picture {
    display: inline-block
}

button,
summary {
    cursor: pointer
}

.content,
.fv-img-bottom,
.sr-only {
    overflow: hidden
}

.voice-item .more,
.voice-parent span,
footer p {
    grid-column: 1/3
}

:root {
    --font-size-10: .625em;
    --font-size-11: .6875em;
    --font-size-12: .75em;
    --font-size-13: .8125em;
    --font-size-14: .875em;
    --font-size-15: .9375em;
    --font-size-16: 1em;
    --font-size-17: 1.0625em;
    --font-size-18: 1.125em;
    --font-size-20: 1.25em;
    --font-size-22: 1.375em;
    --font-size-23: 1.4375em;
    --font-size-24: 1.5em;
    --font-size-26: 1.625em;
    --font-size-28: 1.75em;
    --font-size-30: 1.875em;
    --font-size-32: 2em;
    --font-size-36: 2.25em;
    --font-size-40: 2.5em;
    --padding-base-horizontal: min(30px, 8vw)
}

*,
:after,
:before {
    box-sizing: border-box
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: var(--header-height)
}

body {
    background: url(../img/bg-1.png) left top/16px #fff;
    color: #272727;
    font-family: Noto Sans JP, sans-serif;
    font-optical-sizing: auto;
    font-weight: 500;
    font-style: normal;
    font-feature-settings: "palt"
}

ol,
ul {
    padding-inline-start: 0
}

.no-list-style {
    list-style: none
}

.no-list-style li {
    display: flex;
    flex-direction: column
}

.no-list-style li:before {
    content: "​";
    font-size: 0
}

h1,
h2,
h3,
h4,
h5 {
    color: var(--color-black)
}

a {
    text-decoration: none
}

a:focus-visible,
button:focus-visible {
    outline: #000 solid 2px;
    outline-offset: 4px
}

button {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    padding: 0;
    border: none;
    background: 0 0;
    font: inherit
}

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

.faq-heading img,
.fv-bg img,
img.fit {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    z-index: -1;
    position: absolute;
}

.fv-bg-red-rounded picture img,
svg {
    display: block;
    width: 100%;
    height: auto
}

em,
strong {
    font-weight: inherit;
    font-style: normal
}

small {
    font-size: 1em
}

summary {
    display: block
}

summary::-webkit-details-marker {
    display: none
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    clip-path: inset(50%);
    border: 0
}

.font-september {
    font-family: september-n, sans-serif;
    font-style: normal;
    font-weight: 500
}

.text-vertical {
    writing-mode: vertical-lr
}

.text-default {
    margin-right: -.07em;
    font-size: 16px;
    line-height: 1.625;
    letter-spacing: .07em;
    margin-bottom: 30px;
}

.bottom-none {
    margin-bottom: 0 !important;
}

.top-none {
    margin-top: 0 !important;
}

.text-indent {
    text-indent: -1rem;
    padding-left: 1rem;
}

.fv-bg-red-img-1,
.fv-bg-red-rounded,
.fv-bg-red-text-1,
.fv-img-bottom,
.fv-inner,
.rate-figure .wrap,
.rate>p,
.things-heading,
.things-list,
.things-list li,
.things-logo {
    margin-right: auto;
    margin-left: auto
}

.text-gradient {
    padding-bottom: 1px;
    background-image: linear-gradient(to top, #f4d8cd 0, #f4d8cd 10px, transparent 10px, transparent 100%);
    mix-blend-mode: multiply
}

.course-item,
.course-target,
.rate,
.reason-img,
.reason-img img,
.reason-item,
.roadmap-item>figure,
.strength,
.things,
.things-list li,
main {
    position: relative
}

.cv .arrow,
.cv a:after,
.cv a:before,
.faq-heading h2,
.fv-bg,
.fv-bg-red-rounded picture,
.fv-logo,
.strength:before {
    position: absolute
}

.footer-btoom {
    padding-bottom: 150px;
}


.fv-logo {
    z-index: 1;
    top: 18px;
    left: 18px;
    width: 102px;
    height: 30px
}

.fv-bg {
    top: 330rem;
    right: 0;
    left: 0;
    width: 100%;
    aspect-ratio: 375/893
}

.fv-inner {
    position: relative;
    z-index: 1;
    max-width: 1600px;
    padding-bottom: 115px
}

.fv-bg-red-rounded,
.things-list li {
    max-width: 400px;
    font-weight: 700
}

.fv-pict,
.roadmap-heading-img {
    display: block;
    text-align: center;
}

.fv-pict img {
    width: 186px
}

.sp_none {
    display: none;
}

.fv-heading {
    font-size: 20px;
    text-align: center;
    margin-top: 30px;
}

.fv-heading em {
    display: inline-block;
    background-image: linear-gradient(to top, transparent 0, transparent .1em, #fcee21 .1em, #fcee21 .4em, transparent .4em, transparent 100%);
    color: #e5002d;
    font-size: 1.5em
}

.fv-lead-text {
    margin-top: 20px;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.35;
    text-align: center
}

.fv-bg-gray-rounded {
    position: relative;
    display: inline-block;
    margin-bottom: 24px;
    padding: 10px 50px;
    border-radius: 100em;
    background-color: #717069;
    color: #fff;
    line-height: 1.51;
    font-weight: 700;
    text-align: center
}

.fv-bg-gray-rounded>span,
.fv-bg-red-rounded>p {
    position: relative;
    z-index: 1
}

.fv-bg-gray-rounded:before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 5px;
    left: 2px;
    width: 100%;
    height: 100%;
    border-radius: 100em;
    border: 1px solid #717069;
    background-color: #fff
}

.fv-bg-red-rounded {
    position: relative;
    width: 89.33%;
    margin-top: 70px;
    padding: 61px 0 127px;
    border-radius: 50vw;
    color: #fff;
    font-size: 24px;
    text-align: center
}

.fv-bg-red-rounded:after,
.fv-bg-red-rounded:before {
    content: "";
    position: absolute;
    z-index: -1;
    width: calc(100% - 15px);
    border-radius: 100em
}

.fv-bg-red-rounded:before {
    top: 3px;
    left: 13px;
    height: calc(100% + 6px);
    border: 3px solid #e5002d;
    background-color: #fbe9e2;
}

.fv-bg-red-rounded:after {
    top: 0;
    left: 0;
    height: 100%;
    background-color: #e5002d;
}

.fv-bg-red-text-1 {
    display: block;
    text-align: left;
    white-space: nowrap
}

.cv,
.rate-figure,
.rate-img,
.reason-heading,
.reason-item .heading-wrap,
.reason-lead,
.things-list li {
    text-align: center
}

.fv-bg-red-text-2 {
    display: block;
    margin-top: 20px;
    font-size: 24px;
    line-height: 1.45
}

.fv-bg-red-text-3 {
    display: block;
    margin-top: 28px;
    color: #ff0;
    font-size: 40px
}

.fv-bg-red-text-3 strong {
    text-decoration: underline;
    text-decoration-thickness: 4px;
    text-underline-offset: 8px
}

.fv-bg-red-text-3 .smaller {
    font-size: .7em
}

.fv-bg-red-text-4 {
    display: block;
    margin-top: 24px;
    letter-spacing: .038em
}

.fv-bg-red-img-1 {
    top: -40px;
    right: 0;
    left: 0;
    width: 77px
}

.fv-bg-red-img-2 {
    top: 178px;
    left: 22px;
    width: 80px
}

.fv-bg-red-img-3 {
    top: 240px;
    right: 26px;
    width: 88px
}

.fv-bg-red-img-4 {
    bottom: -9px;
    left: -6px;
    width: 98px
}

.fv-bg-red-img-5 {
    bottom: -18px;
    right: -5px;
    width: 108px
}

.case-item h3,
.course-item-heading,
.fv-img-bottom,
.rate-img,
.voice:before {
    right: 0;
    position: absolute
}

.fv-img-bottom {
    bottom: -30px;
    left: 0;
    width: 158px;
    height: 158px;
    border-radius: 50%
}

/*   ヘッダー  */
.pc_none {
    display: none;
}

.sp_none {
    display: block;
}

.sp2_none {
    display: block;
}

.header_content {
    padding: 10px 15px;
    width: 100%;
    background-color: #fff;
}

.header-flex {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 480px;
}

.top-btn img {
    width: 285px;
}

.top_logo {
    width: 145px !important;
}

/**/

.things {
    padding: 103px 5.33vw 125px;
    background: url(../img/bg-things-sm@3x.png) right bottom 17px/128px auto no-repeat #fbe9e2
}

.things-logo {
    width: 101px;
    margin-bottom: 7px
}

.things-heading {
    max-width: 320px
}

.things-list {
    display: grid;
    gap: 36px;
    max-width: 900px;
    margin-top: 42px
}

.things-list li {
    width: 100%;
    min-height: 171px;
    font-size: 15px;
    line-height: 1.4;
    letter-spacing: .05em
}

.things-list li:after,
.things-list li:before {
    content: "";
    position: absolute;
    width: calc(100% - 7px);
    height: 100%;
    border-radius: 50vw
}

.things-list li:before {
    top: 5px;
    left: 6px;
    background-color: #e5002d
}

.things-list li:after {
    top: 0;
    left: 0;
    border: 1px solid #e5002d;
    background-color: #fff
}

.things-list li>div {
    position: relative;
    z-index: 1;
    height: 100%
}

.things-list li>div :before {
    content: "check!!";
    position: absolute;
    top: -25px;
    left: 3px;
    width: 65px;
    height: 68px;
    /*background: url(../img/icon-check.svg) center/100% auto no-repeat;*/
    font-size: 0
}

.things-list li p+p {
    line-height: 1.6
}

.things-list li strong {
    display: inline-block;
    color: #e5002d;
    font-size: 1.33em;
    line-height: 1.35;
    letter-spacing: .05em
}

.things-list li:first-of-type>div {
    padding-top: 42px
}

.things-list li:first-of-type strong {
    margin-bottom: 12px
}

.things-list li:nth-of-type(2)>div,
.things-list li:nth-of-type(4)>div {
    padding-top: 30px
}

.things-list li:nth-of-type(2) strong,
.things-list li:nth-of-type(4) strong {
    margin-bottom: 10px
}

.rate-figure figcaption,
.things-list li:nth-of-type(3) strong,
.things-list li:nth-of-type(6) strong,
.voice-item h3+p {
    margin-bottom: 20px
}

.things-list li:nth-of-type(3)>div {
    padding-top: 47px
}

.things-list li:nth-of-type(5)>div {
    padding-top: 26px
}

.things-list li:nth-of-type(5) strong {
    margin-bottom: 8px
}

.cv-2,
.things-list li:nth-of-type(6)>div {
    padding-top: 40px
}

.rate {
    padding-top: 65px;
    padding-bottom: 143px
}

.rate>p {
    width: 89.33%;
    font-weight: 500;
    line-height: 1.625;
    letter-spacing: .07em
}

/*250125追加*/

.font-size-25 {
    font-size: 16px;
    line-height: 1.625;
    letter-spacing: .07em;
}

/*ここまで*/


.rate-figure figcaption,
.reason-heading {
    font-size: 28px;
    line-height: 1.5;
    letter-spacing: -.02em
}

.rate>p+p,
.reason-item p+p {
    margin-top: 26px
}

.rate-figure {
    max-width: 420px;
    margin: 38px auto 41px;
    padding-top: 50px;
    padding-bottom: 100px;
    border-radius: 100vw;
    background-color: #e5002d;
    color: #fff
}

.rate-figure figcaption em {
    display: inline-block;
    padding-bottom: 10px;
    background-image: linear-gradient(to top, #ff0 0, #ff0 4px, transparent 4px, transparent 100%)
}

.rate-figure .wrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    width: min(692px, 53.2%);
    margin-top: -6px
}

.rate-figure small {
    font-size: 12px
}

.rate-figure .wrap p:first-of-type {
    flex: 1 0 auto
}

.rate-figure .wrap p:nth-of-type(2) {
    flex: 0 0 auto;
    letter-spacing: .05em
}

.rate-img {
    bottom: 0;
    left: 0;
    height: 71px
}

.rate-img img {
    width: auto;
    height: 100%
}

.reason {
    margin-bottom: 60px;
    padding-top: 20px
}

.reason>p {
    padding-right: 5.33vw;
    padding-left: 5.33vw
}

.case>p+p,
.reason p+p,
.voice-item+.voice-item {
    margin-top: 30px
}

.course-2 h2,
.cv a em,
.reason-heading,
.reason-lead strong,
.voice-parent .red {
    color: #e5002d
}

.reason-heading span {
    padding-bottom: 3px;
    background-image: linear-gradient(to top, #ff0 0, #ff0 8px, transparent 8px, transparent 100%)
}

.reason-img {
    display: block;
    max-width: 600px;
    margin: 43px auto 40px;
    padding-left: 5.33vw;
    padding-bottom: 16vw;
    overflow-x: clip
}

.case-item,
.case>p,
.course-item-message,
.course-item-message .details p,
.match .heading-img,
.reason-item,
.roadmap-item-head,
.voice-item {
    margin-right: auto;
    margin-left: auto
}

.reason-img:before {
    content: "";
    position: absolute;
    bottom: 0;
    left: min(56vw, 336px);
    display: block;
    width: min(72vw, 432px);
    aspect-ratio: 270/217;
    border-radius: 3px;
    background-color: #e5002d
}

.reason-img img {
    z-index: 1;
    width: min(72vw, 432px);
    border-radius: 200px 3px 3px 200px
}

.reason-item-wrap+.reason-item-wrap {
    margin-top: 48px
}

.reason-item {
    z-index: 1;
    width: 89.33vw;
    max-width: 1082px;
    padding-bottom: 42px;
    padding-right: 5vw;
    padding-left: 5vw;
    border-radius: 5px;
    border: 1px solid #e5002d;
    background: url(../img/bg-reason.svg) left top/100% auto no-repeat #fff
}

.course-1 .course-item p,
.reason-figure * {
    max-width: initial
}

.course-item-wrap img,
.reason-item.item-2 .figure-2 img,
.reason-item.item-4 .reason-figure img,
.roadmap-item {
    border-radius: 5px
}

.reason-item .heading-wrap h3 {
    display: inline-block;
    padding: 8px 21px;
    border-radius: 0 0 35px 35px;
    background-color: #e5002d;
    color: #fff;
    font-size: 13px
}

.match p.bold,
.reason-lead strong {
    font-size: 22px;
    line-height: 1.4;
    letter-spacing: .05em;
    font-weight: 700
}

.reason-item .heading-wrap h3 span {
    font-size: 20px
}

.reason-lead {
    margin-top: 24px;
}

.reason-lead>p,
.roadmap-lead>p {
    display: inline-block;
    text-align: left
}

.reason-lead:before,
.roadmap-lead:before {
    content: "";
    display: block;
    height: 41px;
    margin-bottom: 10px;
    background: url(../img/img-reason-2@3x.png) center top/auto 100% no-repeat
}

.match h2,
.roadmap h2 {
    font-size: 28px;
    letter-spacing: -.02em;
    text-align: center;
    color: #e5002d
}

.reason-item p {
    margin-right: -.07em
}

.reason-figure * {
    display: block;
    width: 100%
}

.reason-item.item-1 .figure-1 {
    margin-bottom: 24px
}

.reason-item.item-1 .figure-2 {
    margin-bottom: 25px
}

.reason-item.item-2 .figure-1 {
    margin-top: 34px;
    margin-bottom: 36px;
    text-align: center
}

.reason-item.item-2 .figure-2 {
    margin-bottom: 32px
}

.reason-item.item-3 .figure-1 {
    margin-top: 37px;
    margin-bottom: 25px
}

.reason-item.item-3 .figure-2 {
    margin-top: 28px;
    margin-bottom: 27px
}

.reason-item.item-4 .reason-figure {
    margin-top: 30px;
    margin-bottom: 35px
}

.reason-item.item-5 .reason-figure {
    margin-top: 32px;
    margin-bottom: 4px
}

.match {
    margin-top: 76px
}

.match .bg {
    fill: #fbe9e2
}

.match-container {
    margin-top: -1px;
    margin-bottom: -1px;
    padding: 77px 5.33vw 83px;
    background-color: #fbe9e2
}

.match h2 {
    margin-bottom: 33px;
    line-height: 1.36
}

.match .heading-img {
    display: block;
    width: 218px;
    height: auto;
    margin-bottom: 27px
}

.match .heading-img img {
    width: 100%;
    height: auto
}

.course-1 .course-item+.course-item,
.match p+p {
    margin-top: 36px
}

.match p.bold {
    margin-top: 30px;
    margin-bottom: 52px;
    text-align: center
}

.match .bold span {
    display: block;
    margin-top: 17px;
    margin-bottom: 24px;
    color: #e5002d;
    line-height: 1.5
}

.match .bold em {
    background-image: linear-gradient(to top, #ff0 0, #ff0 11px, transparent 11px, transparent 100%)
}

.roadmap {
    padding: 60px 5.33vw 80px
}

.roadmap-heading-img img {
    width: 100px;
}

.roadmap-title-flex {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 50px;
}

.roadmap h2 {
    margin-top: 23px;
    margin-bottom: 30px;
    line-height: 1.35
}

.roadmap h3,
.roadmap-item>p+p {
    margin-top: 34px;
}

.roadmap h3 {
    text-align: center
}

.roadmap h3 img {
    width: 150px
}

.roadmap-item {
    margin-top: 82px;
    padding-bottom: 45px;
    border: 1px solid #e5002d;
    background-color: #fff;
}

.roadmap-item+h3 {
    margin-top: 50px;
}

.roadmap-item>p {
    margin-right: 5vw;
    margin-left: 5vw;
    font-weight: bold;
}

.roadmap-item>figure {
    margin-bottom: 46px;
    text-align: right
}

.roadmap-item>figure img {
    position: relative;
    width: 294px;
    border-radius: 150px 0 0 150px
}

.roadmap-item>figure:before {
    content: "";
    position: absolute;
    top: 13px;
    right: 0;
    width: 294px;
    height: 100%;
    border-radius: 150px 0 0 150px;
    background-color: #e5002d
}

.roadmap-item-head {
    width: 85.33vw;
    margin-top: -64px;
    padding: 14px 30px 18px;
    border-radius: 5px;
    background-color: #e5002d;
    color: #fff;
    font-weight: 700;
    text-align: center
}

.roadmap-item-head p {
    font-size: 22px;
    letter-spacing: .05em
}

.roadmap-item-head ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 9px;
    margin-top: 10px
}

.roadmap-item-head li {
    display: inline-block;
    min-width: 116px;
    padding: 3px 14px 4px;
    border-radius: 100em;
    background-color: #fff;
    color: #e5002d;
    font-size: 12px;
    letter-spacing: .05em
}

.roadmap-item-head-wrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px 6px;
    margin-right: 1.86vw;
    margin-left: 1.86vw
}

.item-4 .roadmap-item-head-wrap {
    margin-top: -67px
}

.roadmap-item-head-wrap .roadmap-item-head {
    flex: 0 0 calc(50% - 3px);
    margin-top: 0;
    margin-right: 0;
    margin-left: 0;
    padding-right: 20px;
    padding-left: 20px
}

.roadmap-lead {
    margin: 28px 5vw 26px;
    text-align: center
}

.roadmap-lead strong {
    display: inline-block;
    margin-left: -.05em;
    color: #e5002d;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: .05em
}

.course-1 .bg,
.cv a ,
.strength .bg {
    fill: #e5002d;
}
.triangle{
    fill: #e5002d;
}

.course-1 .course-container {
    margin-top: -1px;
    margin-bottom: -1px;
    background-color: #e5002d;
    color: #fff
}

.course .course-container {
    padding: 70px 5.33vw 85px
}

.course-2 .course-container {
    padding-top: 80px
}

/*.course-1 h3,
:where(.course, .important) h2 {
    margin-bottom: 45px;
    font-size: 24px;
    letter-spacing: -.02em;
    line-height: 1.36;
    text-align: center
}

.course-1 h3,
:where(.course, .important) h2 span {
    font-size: 28px;
    letter-spacing: -.02em
}

.course-1 h3 {
    margin-top: 44px;
    padding-top: 130px;
    background: url(.img/img-course-1-3@2x.png) center top/88px auto no-repeat
}
*/
.course-target {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    margin-bottom: 32px
}

.course-target:after,
.course-target:before {
    content: "";
    background: center top/100% auto no-repeat
}

.course-target:before {
    flex: 0 0 56px;
    height: 60px;
    margin-top: 23px;
    background-image: url(.img/img-course-4.svg)
}

.course-target:after {
    flex: 0 0 59px;
    height: 40px;
    margin-top: 54px;
    background-image: url(.img/img-course-5.svg)
}

.course-target picture {
    flex: 0 1 476px
}

.course p,
.course-1 .course-item-box {
    max-width: 900px;
    margin-right: auto;
    margin-left: auto;
    color: #000;
}

.course p+p {
    margin-top: 33px
}

.course-item {
    margin-right: -1.33vw;
    margin-left: -1.33vw;
    padding: 84px 6.67vw 57px;
    border: 1px solid #e5002d;
    border-radius: 8px;
    background-color: #fff;
    color: #272727
}

.course-item-heading,
.course-item-heading h3 span {
    background-color: #e5002d
}

.course-item:first-of-type {
    margin-top: 120px
}

.course-item+.course-item {
    margin-top: 110px
}

.course-item.item-4 {
    padding-bottom: 14px
}

.course-item-heading {
    top: -62px;
    left: 0;
    margin-right: auto;
    margin-left: auto;
    width: 327px;
    height: 105px;
    border-radius: 150px;
    color: #fff;
    overflow: hidden
}

.course-item-heading h3 {
    position: absolute;
    top: 22px;
    left: 26px;
    font-size: 19px;
    line-height: 1.47;
    letter-spacing: .05em
}

.case-item h3,
.voice:before {
    left: 0
}

.course-item-heading picture {
    display: block;
    width: 131px;
    margin-left: auto
}

.course-item-figure {
    margin-top: 30px;
    margin-bottom: 30px;
    text-align: center
}

.course-item-figure img {
    display: block;
    max-width: 294px
}

.course-item h4+figure,
.course-item-figure img+img,
.voice-item .text-default+.text-default {
    margin-top: 25px
}

.course-item.item-2 {
    padding-bottom: 22px
}

.course-item.item-2 h3 {
    top: 8px
}

.course-item.item-2 .figure-2 img {
    width: 203px;
    margin-right: auto;
    margin-left: auto
}

.course-item.item-3 img+img {
    margin-top: 32px
}

.course-item hr {
    height: 5px;
    margin: 45px 0 36px;
    border: none;
    background: url(.img/img-course-6.svg) left center/auto 100% no-repeat
}

.case-item,
.course-item-message {
    border-radius: 8px;
    position: relative
}

.course-item h4 {
    color: #e5002d;
    font-size: 22px;
    line-height: 1.5;
    letter-spacing: .05em
}

.course-1 .course-item {
    padding: 42px min(4.63vw, 50px) 35px min(4vw, 43px);
    background: url(.img/bg-1.png) left top/16px #fff
}

.course-1 .course-item h4 {
    display: flex;
    align-items: center;
    flex-direction: column;
    gap: 15px;
    margin-bottom: 24px
}

.course-1 .course-item h4::before {
    content: '';
    width: 95px;
    height: 81px;
    background: center/100% auto no-repeat
}

.course-1 .course-item:nth-of-type(2) h4::before {
    background-image: url(.img/img-course-1-4-1@2x.png)
}

.course-1 .course-item:nth-of-type(3) h4::before {
    background-image: url(.img/img-course-1-4-2@2x.png)
}

.course-1 .course-item:nth-of-type(4) h4::before {
    background-image: url(.img/img-course-1-4-3@2x.png)
}

.course-item-wrap {
    display: grid;
    gap: 40px
}

.course-item-wrap p {
    margin-left: -.1em;
    letter-spacing: .1em
}

.course-1 .course-item figure {
    display: grid;
    gap: 12px
}

.course-1 .figure-1 {
    gap: 0 20px;
    margin-top: 20px
}

.course-1 .course-item figcaption {
    font-size: 16px;
    font-weight: 700;
    line-height: 1.44;
    letter-spacing: .05em
}

.course-1 .course-item figure+p {
    margin-top: 70px;
    margin-bottom: 20px;
    color: #e5002d;
    font-size: 22px;
    letter-spacing: -.02em
}

.course-item-message {
    margin-top: 42px;
    max-width: 400px;
    padding: 30px 20px;
    border: 3px solid #d3384b;
    background-color: #fffef1
}

.course-item-message::before {
    content: '';
    position: absolute;
    inset: 7px;
    border-radius: 5px;
    border: 1px solid #d3384b
}

.course-item-message .lead {
    padding-top: 100px;
    background: url(.img/img-course-1-9@2x.png) center top/51px auto no-repeat;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.33;
    letter-spacing: .05em
}

.case-heading,
.voice .voice-student {
    font-size: 28px;
    letter-spacing: -.02em;
    color: #e5002d;
    text-align: center
}

.course-item-message .details {
    margin-top: 18px;
    margin-right: 0;
    padding-bottom: .8lh;
    background: url(.img/line-dot.png) center top/252px auto;
    line-height: 2.21
}

.cv .arrow,
.event-list,
.faq-heading,
.faq-item,
.important,
.strength-container *,
.voice-item-img {
    margin-right: auto;
    margin-left: auto
}

.course-item-message .details p {
    width: 91.3%;
    line-height: inherit
}

.course-item-message .details p+p,
.faq-item p+p,
.important p+p {
    margin-top: 1lh
}

.course-1 .course-item-message .parent {
    width: 91.3%;
    margin-right: auto;
    margin-left: auto;
    font-size: 15px;
    line-height: 1.33;
    letter-spacing: .08em;
    text-align: right
}

.case {
    padding: 44px 4vw 45px
}

.case>p {
    width: 89.33vw;
    max-width: 900px
}

.case-heading {
    margin-bottom: 32px;
    line-height: 1.36
}

.case-heading-img {
    display: block;
    margin-bottom: 17px
}

.case-heading-img img {
    width: 56px
}

.case-item {
    max-width: 1082px;
    margin-top: 60px;
    padding: 55px 6.66vw 0;
    border: 1px solid #e5002d;
    background-color: #fff
}

.faq-heading,
.voice-item {
    position: relative;
    max-width: 1080px
}

.case-item h3 {
    top: -17px;
    font-size: 22px;
    letter-spacing: .05em;
    text-align: center
}

.case-item h3 span {
    display: inline-block;
    padding: 1px 21px 6px;
    border-radius: 100em;
    background-color: #e5002d;
    color: #fff
}

.case-item h4 {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 16px;
    font-size: 18px;
    letter-spacing: .058em
}

.case-item h4:before {
    content: "";
    width: 56px;
    height: 56px;
    background: url(.img/img-case-2.svg) center top/100% auto no-repeat
}

.case-item h4:nth-of-type(2) {
    margin-top: 53px
}

.case-item h4:nth-of-type(2):before {
    background-image: url(.img/img-case-3.svg)
}

.case-item h4 span {
    flex: 0 0 60px;
    padding-left: 8px
}

.case-item-figure {
    margin-top: 20px;
    margin-bottom: 26px;
    text-align: center
}

.voice {
    position: relative;
    padding: 170px 5.33vw 89px;
    background-color: #fbe9e2
}

.voice:before {
    content: "";
    top: 56px;
    height: 108px;
    background: url(.img/img-voice-2-1-sm.png) center top/auto 100% no-repeat
}

.voice .voice-student {
    margin-bottom: 27px;
    line-height: 1.36
}

.voice-item {
    padding: 28px 4.53vw 36px;
    border-radius: 8px;
    border: 3px solid #e5002d;
    background: url(.img/bg-voice.png) right 7px bottom 20px/151px auto no-repeat #fff
}

.voice-item.parent {
    padding-top: 38px;
    border-color: #717069
}

.voice-item.parent h3 {
    color: #717069
}

.voice-item .more[inert] {
    opacity: 0;
    height: 0;
    overflow: hidden
}

.voice-item .more .inner {
    padding-top: 25px
}

.voice-item-img {
    display: block;
    width: 108px;
    margin-bottom: 17px
}

.voice-parent,
footer {
    display: grid;
    text-align: center
}

.faq-heading,
.faq-item {
    width: 89.33vw
}

.voice-item h3 {
    color: #e5002d;
    font-size: 22px;
    letter-spacing: .05em
}

.cv a,
.voice-link-wrap span {
    color: #fff;
    position: relative
}

.voice-item h3+p {
    margin-top: 6px;
    font-size: 13px;
    letter-spacing: .07em
}

.voice-link-wrap {
    margin-top: 24px;
    text-align: center
}

.voice-link-wrap button {
    position: relative;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: .05em;
    transition: opacity .3s
}

.voice-link-wrap button:before {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    width: 100%;
    height: 100%;
    border-radius: 100em;
    border: 1px solid #717069;
    background-color: #fff;
    transition: border-color .3s
}

.cv a:before,
.cv a>span,
.voice-link-wrap span {
    transition: background-color .3s
}

.voice-link-wrap button:focus-visible span {
    background-color: #e5002d;
}

.voice-link-wrap button:focus-visible:before {
    border-color: #e5002d;
}

.voice-link-wrap span {
    z-index: 1;
    display: inline-block;
    padding: 2px 39px 5px;
    background-color: #717069;
    border-radius: 100em
}

.voice-parent {
    align-content: start;
    justify-items: center;
    gap: 15px 13px;
    margin-top: 88px;
    margin-bottom: 32px
}

.voice-parent:after,
.voice-parent:before {
    content: "";
    grid-row: 1/2;
    width: 55px;
    height: 100px;
    background-repeat: no-repeat
}

.voice-parent:before {
    justify-self: end;
    background-image: url(.img/img-voice-4.svg);
    background-position: right bottom;
    background-size: 55px auto
}

.voice-parent:after {
    justify-self: start;
    background-image: url(.img/img-voice-5.svg);
    background-position: right bottom;
    background-size: 51px auto
}

.voice-parent .black {
    position: relative;
    padding-bottom: 5px;
    font-size: 19px;
    letter-spacing: -.02em
}

.strength-heading,
.voice-parent .red {
    font-size: 28px;
    letter-spacing: -.02em
}

.voice-parent .black:after,
.voice-parent .black:before {
    content: "";
    position: absolute;
    bottom: -5px;
    width: 2px;
    height: 20px;
    border-radius: 2px;
    background-color: currentColor
}

.voice-parent .black:before {
    left: -16px;
    rotate: -41deg
}

.voice-parent .black:after {
    right: -16px;
    rotate: 41deg
}

.cv-1 {
    padding-top: 85px
}

.cv p {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 28px;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: .07em
}

.cv a,
.cv a em,
.cv-3 a,
.cv-3 a em,
.event h2 {
    letter-spacing: .05em
}

.event-list a,
.event-list p,
.event-list time,
footer,
footer p {
    letter-spacing: .07em
}

.cv p:after,
.cv p:before {
    content: "";
    width: 2px;
    height: 28px;
    border-radius: 2px;
    background-color: currentColor
}

.cv p:before {
    left: -16px;
    rotate: -45deg
}

.cv p:after {
    right: -16px;
    rotate: 45deg
}

.cv p span {
    padding-bottom: 4px
}

.cv a {
    margin-top: 40px;
    font-size: 30px
}

.cv a:before {
    content: "";
    top: 10px;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 100em;
    border: 2px solid #e5002d;
    background-color: #fbe9e2
}

/*
.cv a:after {
    content: "";
    top: -25px;
    left: 20px;
    width: 105px;
    height: 100px;
    background: url(../img/img-cv@2x.webp) center top/100% auto no-repeat;
}
*/
.cv a>span {
    position: relative;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 27px 32px 56px;
    border-radius: 100em;
    border: 1px solid #e5002d;
    background-color: #e5002d;
}

.cv a em {
    display: inline-block;
    padding: 0 8px;
    border-radius: 50em;
    background-color: #ff0;
    font-size: 21px;
    font-weight: 700
}

.cv .arrow {
    bottom: 19px;
    right: 0;
    left: 0;
    width: 30px;
    height: 30px
}

.cv a:focus-visible {
    color: #e5002d
}

.cv a:focus-visible span {
    background-color: #fff
}

.cv a:focus-visible:before {
    background-color: #e5002d
}

.cv a:focus-visible .triangle {
    fill: #fff
}

.faq {
    padding-top: 100px;
    padding-bottom: 80px;
}

.faq-heading {
    margin-bottom: 30px;
    aspect-ratio: 335/139;
    border-radius: 500px;
    overflow: hidden
}

.faq-heading h2 {
    z-index: 1;
    top: 35px;
    left: 25px;
    display: flex;
    align-items: flex-end;
    gap: 5px;
    color: #fff;
    font-size: 39px
}

.faq-heading span {
    font-size: 24px
}

.faq-heading picture {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0
}

.faq-item {
    max-width: 980px;
    padding-right: 12px;
    padding-left: 14px;
    border-radius: 5px;
    border: 1px solid #e5002d;
    background-color: #fff
}

.faq-item+.faq-item {
    margin-top: 18px
}

.faq-question {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    padding-top: 12px;
    padding-bottom: 15px
}

.faq-question:before {
    content: "Q";
    color: #e5002d;
    font-size: 30px;
    font-weight: 700;
    line-height: 1
}

.faq-question:after {
    content: "open";
    flex: 0 0 33px;
    align-self: center;
    height: 25px;
    margin-left: auto;
    padding-left: 8px;
    /*background: url(.img/icon-plus.svg) right center/auto 100% no-repeat;*/
    font-size: 0
}

.event-list a:after,
.strength:before {
    content: "";
    left: 0
}

.faq-item[open] .faq-question:after {
    /*background-image: url(.img/icon-minus.svg)*/
}

.faq-answer .inner {
    padding-top: 16px;
    padding-bottom: 20px;
    border-top: 1px solid #fbe9e2
}

.strength:before {
    top: 93px;
    right: 0;
    width: 100%;
    aspect-ratio: 375/642;
    background: url(.img/bg-strength-sm.svg) center top/100% auto no-repeat
}

.event-list .icon,
.event-list a:after {
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0
}

.strength-container {
    margin-top: -1px;
    margin-bottom: -1px;
    padding: 106px 5.33vw 64px;
    background-color: #e5002d;
    color: #fff
}

.strength-container * {
    position: relative;
    z-index: 1;
    max-width: 900px
}

.strength-heading {
    margin-bottom: 52px;
    line-height: 1.36;
    text-align: center
}

.strength-pict {
    display: block;
    margin-bottom: 70px;
    text-align: center
}

.strength p+p {
    margin-top: 41px
}

.strength-figure {
    margin-top: 37px;
    padding: 28px 19px 30px;
    border-radius: 6px;
    border: 1px solid currentColor
}

.strength-figure p+p {
    margin-top: 19px
}

.strength-figure .smaller {
    font-size: 15px;
    line-height: 1.53;
    letter-spacing: .07em
}

.event {
    padding-top: 122px;
    padding-bottom: 73px
}

.event h2 {
    position: relative;
    margin-bottom: -19px;
    font-size: 20px;
    text-align: center
}

.event h2 span {
    display: inline-block;
    padding: 3px 17px 4px;
    border-radius: 30px;
    background-color: #272727;
    color: #fff
}

.event-list {
    width: 91.73vw;
    max-width: 1080px;
    padding: 30px 25px 31px;
    border-radius: 8px;
    border: 1px solid #272727;
    background-color: #fff
}

.event-list li {
    position: relative;
    padding-top: 20px;
    padding-bottom: 17px;
    padding-right: 46px
}

.event-list li+li {
    border-top: 1px solid #e6e6e6
}

.event-list time {
    display: block;
    font-size: 16px
}

.event-list a {
    margin-top: 10px;
    margin-bottom: 14px;
    color: #e5002d;
    font-size: 18px;
    font-weight: 700
}

.event-list p,
footer {
    font-size: 14px
}

.event-list a:focus-visible {
    color: #272727;
    text-decoration: underline
}

.event-list a:focus-visible~.icon {
    color: #272727
}

.event-list p {
    color: #666;
    line-height: 1.64
}

.event-list .icon {
    width: 25px;
    height: 25px;
    margin-top: auto;
    margin-bottom: auto;
    color: #e5002d
}

.event-list .icon .triangle {
    fill: #fff
}

footer {
    align-content: center;
    justify-content: center;
    gap: 34px 1em;
    padding-bottom: 105px
}

footer a {
    grid-row: 1/2;
    padding-top: 1em;
    padding-bottom: 1em
}

footer p {
    font-size: 12px;
    text-transform: uppercase
}

.cv-3 {
    position: fixed;
    z-index: 2;
    bottom: 12px;
    right: 0;
    left: 0;
    opacity: 0;
    transition: opacity .3s
}

.cv-3.show {
    opacity: 1
}

.cv-3 a {
    margin-top: 0;
    font-size: 18px
}

.cv-3 a:before {
    top: 4px;
    left: 3px;
    border-width: 1px
}

.cv-3 a>span {
    flex-direction: row;
    justify-content: center;
    width: 298px;
    padding: 12px
}

.cv-3 a em {
    padding-right: 5px;
    padding-left: 5px;
    font-size: 16px
}

.cv-3 .arrow {
    right: 17px;
    left: auto;
    width: 16px;
    height: 16px
}

.important {
    max-width: 900px;
    padding: 0 5.33vw 80px;
    box-sizing: content-box
}

.important h2 {
    color: #e5002d
}

/* 追加 */


/*　目標とカリキュラム　*/

.roadmap_table-01 {
    width: 100%;
    border-spacing: 0;
    border-collapse: collapse;
}

.roadmap_table-01 th {
    background-color: #595757;
    vertical-align: middle;
    color: #fff;
    font-weight: bold;
    font-size: 20px;
    white-space: nowrap;
    width: 140px;
}

.roadmap_table-01 th,
.roadmap_table-01 td {
    border-top: 1px solid #000000;
    border-bottom: 1px solid #000000;
    border-right: 1px solid #000;
    padding: 10px;
}


.roadmap_table-01 td:nth-child(2) span {
    font-size: 14px !important;
    font-weight: normal !important;
    color: #000000;
}

.roadmap_table-01 td:nth-child(1) {
    font-size: 24px;
    font-weight: bold;
    vertical-align: middle;
    text-align: center;
    white-space: nowrap;
    letter-spacing: 3px;
}

.roadmap_table_backcolor_gr td:nth-child(1) {
    color: #8dc642;
    background-color: #f0f2d4;
}

.roadmap_table_backcolor_gr-02 td:nth-child(1) {
    background-color: #8dc642;
}

.roadmap_table_backcolor_gr td:nth-child(2) {
    color: #8dc642;
}

.roadmap_table_backcolor_or td:nth-child(1) {
    color: #F39800 !important;
    background-color: #FEECD2 !important;
}

.roadmap_table_backcolor_or-02 td:nth-child(1) {
    background-color: #F39800 !important;
}

.roadmap_table_backcolor_or td:nth-child(2) {
    color: #F39800 !important;
}

.roadmap_table_backcolor_pk td:nth-child(1) {
    color: #ec6d80 !important;
    background-color: #fbe2e6 !important;
}

.roadmap_table_backcolor_pk-02 td:nth-child(1) {
    background-color: #ec6d80 !important;
}

.roadmap_table_backcolor_pk td:nth-child(2) {
    color: #ec6d80 !important;
}

.roadmap_table_backcolor_bl td:nth-child(1) {
    color: #01b3ef;
    background-color: #ddf1fc;
}

.roadmap_table_backcolor_bl-02 td:nth-child(1) {
    background-color: #01b3ef;
}

.roadmap_table_backcolor_bl td:nth-child(2) {
    color: #01b3ef;
}

.roadmap_table_backcolor_pp td:nth-child(1) {
    color: #564ca2;
    background-color: #e0dded;
}

.roadmap_table_backcolor_pp-02 td:nth-child(1) {
    background-color: #564ca2;
}

.roadmap_table_backcolor_pp td:nth-child(2) {
    color: #564ca2;
}

.roadmap_table {
    margin-bottom: 30px;
    grid-column: span 2 !important;
    margin-top: 50px;
    margin-right: 90px;
    position: relative;
    overflow: auto;
}


.scroll-hint-icon-wrap {
    position: sticky;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    max-height: 100%;
    pointer-events: none;
}

.scroll-hint-icon {
    position: absolute;
    top: calc(50% - 25px);
    left: calc(50% - 60px);
    box-sizing: border-box;
    width: 120px;
    height: auto;
    border-radius: 5px;
    transition: opacity .3s;
    opacity: 0;
    background: rgba(0, 0, 0, .7);
    text-align: center;
    padding: 20px 10px 10px 10px;
}

.roadmap__box1--note {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 325px;
}

.roadmap__box1--note {
    text-align: center;
    background: #ff0000;
    padding: 29px 0;
}

@media screen and (max-width: 767px) {
    .roadmap_table-01 {
        min-width: 770px;
    }
}

/*　会費　*/


.roadmap_table-02 {
    border-spacing: 0;
    border-collapse: collapse;
    grid-column: span 2 !important;
    margin-right: 90px;
}

.roadmap_table-02 th {
    background-color: #595757;
    vertical-align: middle;
    color: #ffffff;
    font-size: 22px;
    font-weight: bold;
    width: 140px;
}



.roadmap_table-02 td:nth-child(1) {
    text-align: center;
    font-weight: bold;
    color: #fff;
    background-color: #ec6d80;

}

.roadmap_table-02 th,
.roadmap_table-02 td {
    padding: 20px;
    border: 1px solid #000000;
}

.roadmap_table-02 td {
    font-size: 18px;
    text-align: center;
}

.roadmap_table-02 td:nth-child(3) {
    font-weight: bold;
    padding: 20px 50px;
    font-size: 24px;
}

.roadmap_table-02_bl td:nth-child(1) {
    background-color: #01b3ef;
}

.roadmap_table-02_pp td:nth-child(1) {
    background-color: #564ca2;
}

/*　こめじるし */

.textprice {
    line-height: 2;
    text-align: left;
    margin-top: 30px;
    margin-bottom: 0;
    font-size: 14px;
}

/* エリア */

.course-1 h3,
:where(.course, .important) h2 {
    font-size: 24px;
    letter-spacing: -.02em;
    text-align: center;
}

.course-1 h3,
:where(.course, .important) h2 span {
    font-size: 46px;
    letter-spacing: -.02em;
}

.top-sec05__content {
    max-width: 935px;
    margin: 0 auto;
    padding: 0 10px;
}

.tab-index {
    display: -moz-flex;
    display: flex;
    -moz-justify-content: center;
    justify-content: center;
    flex-flow: row nowrap;
}

.tab-list.active {
    display: block;
}

.tab-list.active {
    display: flex;
    flex-flow: row wrap;
    justify-content: flex-start;
    align-items: flex-start;
}

.tab-index li {
    cursor: pointer;
    padding: 4px 13px;
    border-radius: 10px 10px 0 0;
    background: #a7adce;
    text-align: center;
    color: #fff;
    margin-right: 3px;
    font-size: 1.4rem;
    font-weight: bold;
    list-style: none;
}

.tab-list {
    display: none;
    font-size: 2.2rem;
    background: #fff;
    padding: 30px 30px 0;
    border-radius: 15px;
}

.tab-index li.active {
    background: #2e318e;
}

#secondGradeFreeLabel {
    color: #fff;
    background-color: #e4ae9f;
}

.tab-list>p {
    text-align: center;
    margin-bottom: 20px;
    color: #000;
}

.tab-list li {
    width: 100%;
    margin-bottom: 15px;
}


.tab-list li.tab-list-w50 {
    width: 45%;
    margin-right: 5%;
    text-align: center;
}

.tab-list li.tab-list-w50 .detail {
    width: 100%;
}

.title {
    position: relative;
    cursor: pointer;
    padding: 20px;
    transition: all 0.5s ease;
    display: flex;
    align-items: center;
    background-color: #019ac6;
    color: #fff;
    font-size: 2.4rem !important;
    margin-bottom: 0 !important;
}

.title::before {
    border-bottom: 2px solid #ffffff;
    border-right: 2px solid #ffffff;
    visibility: visible;
}

.title::before,
.title::after {
    position: absolute;
    top: 50%;
    right: 25px;
    transform: translate(0, -50%) rotate(45deg);
    content: "";
    width: 10px;
    height: 10px;
}

.title .faq_btn {
    width: 50px;
}

.title.close::before {
    visibility: hidden;
}

.title.close::after {
    visibility: visible;
}

.title::after {
    border-top: 2px solid #ffffff;
    border-left: 2px solid #ffffff;
    visibility: hidden;
}

.box {
    display: none;
    padding: 10px 0 20px;
}

.tab-list li .class {
    margin-top: 20px;
}

.tab-list li .class h3 {
    font-weight: normal;
    text-align: left;
    margin-bottom: 10px;
    color: #000;
    font-size: 2.4rem;
}

img {
    vertical-align: top;
    max-width: 100%;
}

.tab-list li:nth-child(3n) {
    margin-right: 0;
}

.tab-list {
    padding: 20px 30px 30px;
}

/* 申込み */

ol,
ul {
    list-style: none;
}

.top-sec05_backcolor {
    background-color: #fff;
    padding: 0 0 50px 0;
    border-radius: 15px;
}

.top-sec05--title2 {
    font-size: 32px;
    font-size: 2rem;
    line-height: 50px;
    line-height: 1.5625em;
    letter-spacing: 0.1em;
    font-weight: normal;
    text-align: center;
    height: 146px;
    display: -moz-flex;
    display: flex;
    -moz-align-items: center;
    align-items: center;
    -moz-justify-content: center;
    justify-content: center;
    text-align: center;
    /*background: url("../img/top/calande_title.png") center center no-repeat;*/
    margin-top: 80px;
    color: #000;
}

.list-flow--item {
    text-align: center;
}

.list-flow--item--title {
    text-align: center;
    background: #ff0000;
    font-size: 2.4rem !important;
    line-height: 54px;
    letter-spacing: 0.32em !important;
    color: #fff;
    margin-bottom: 30px;
}

.list-flow--item--title span {
    position: relative;
    display: inline-block;
    min-width: 350px;
}

.list-flow--item--title span:before {
    position: absolute;
    bottom: 5px;
    right: 100%;
    font-size: 9rem;
    font-weight: bold;
    color: #aeaeae;
    font-family: "Inter", sans-serif;
}

.list-flow--item:nth-child(1) .list-flow--item--title span:before {
    content: "";
    background-image: url(../img/top/flow_num1.png);
    width: 21px;
    height: 67px;
    right: 88%;
    background-size: contain;
    background-repeat: no-repeat;
}

.list-flow--item:nth-child(2) .list-flow--item--title span:before {
    content: "";
    background-image: url(../img/top/flow_num2.png);
    width: 46px;
    right: 88%;
    height: 67px;
    background-size: contain;
    background-repeat: no-repeat;
}

.list-flow--item:nth-child(3) .list-flow--item--title span:before {
    right: 88%;
    content: "";
    background-image: url(../img/top/flow_num3.png);
    width: 46px;
    height: 67px;
    background-size: contain;
    background-repeat: no-repeat;
}

.list-flow--item--txt1 {
    font-size: 24px;
    font-size: 1.4rem;
    line-height: 37px;
    line-height: 1.5416666667em;
    letter-spacing: 0em;
    font-weight: normal;
    margin-bottom: 20px;
    color: #000;
}

.list-flow--item--txt2 {
    font-size: 1.4rem;
    font-weight: bold;
    color: #ff0000;
    margin-bottom: 20px;
}

.list-flow--list {
    max-width: 710px;
    margin: 0 auto;
    background: #fff;
    border: 1px solid #949494;
    list-style-type: decimal;
    padding: 10px 0 10px 30px;
    box-shadow: 3.5px 3.5px 3.5px 0px rgba(73, 52, 4, 0.3);
}

.list-flow--list li {
    list-style-type: decimal;
    font-size: 1rem;
    font-weight: bold;
    text-align: left;
    color: #000;
}

.mt-20 {
    margin-top: 20px;
}

.list-flow--item--note:before {
    content: "※";
    position: absolute;
    top: 0;
    left: 0;
}

.list-flow--item--note {
    max-width: 710px !important;
    margin: 10px auto 80px;
    font-size: 0.8rem;
    padding-left: 15px;
    position: relative;
    font-weight: normal;
    text-align: left;
    color: #000;
}

.list-flow--item--txt3 {
    font-size: 1.4rem;
    line-height: 32px;
    line-height: 1.6em;
    letter-spacing: 0em;
    color: #000;
    font-weight: normal;
}

@media screen and (max-width: 767px) {
    .tab-index li {
        font-size: 1.4rem;
        padding: 10px 5px;
        margin-right: 1px;
    }
}

@media (max-width: 480px) {
    .tab-index li {
        font-size: 1.2rem;
    }
}

@media screen and (max-width: 767px) {
    .tab-list li.tab-list-w50 {
        width: 100%;
        margin-right: 0%;
        text-align: center;
    }
}

/*終わり*/
@media (max-width:959.9px) {
    html {
        scroll-padding-top: 0
    }
}

@media (max-width:767.9px) {
    .hide-sm {
        display: none
    }

    .cv-3 a:after {
        content: none
    }
}

@media (min-width:600px) and (max-width:959.9px) {
    .reason-item.item-1 .figure-1 img {
        width: 327px;
        margin-right: auto;
        margin-left: auto
    }

    .reason-item.item-1 .figure-2 img {
        width: 100%;
        max-width: 587px;
        margin-right: auto;
        margin-left: auto
    }

    .reason-item.item-2 .figure-2 img,
    .reason-item.item-4 .reason-figure img {
        width: 400px;
        margin-right: auto;
        margin-left: auto
    }

    .reason-item.item-3 .figure-1 img,
    .reason-item.item-3 .figure-2 img {
        width: 460px;
        margin-right: auto;
        margin-left: auto
    }
}

@media (min-width:600px) {
    .reason-item.item-5 .reason-figure img {
        width: 68.8vw;
        max-width: 693px;
        margin-right: auto;
        margin-left: auto
    }

    .strength:before {
        aspect-ratio: initial;
        height: 642px
    }

    .course-item-message {
        max-width: initial;
        padding: 35px 54px 50px;
        border-width: 4px
    }

    .course-item-message::before {
        inset: 16px;
        border-width: 2px
    }

    .course-item-message .lead {
        padding-top: 145px;
        background-size: 85px auto;
        font-size: 24px;
        line-height: 1.42;
        text-align: center
    }

    .course-item-message .details {
        background-image: url(.img/line-dot-lg.png);
        background-size: 782px auto;
        line-height: 38px
    }

    .course-1 .course-item-message .parent,
    .course-item-message .details p {
        max-width: 775px
    }

    .course-1 .course-item-message .parent {
        font-size: 17px
    }
}

@media (min-width:768px) {

    .sub-button {
        position: absolute;
        top: 0;
        right: 0;
        display: grid;
        gap: 3px;
        transform: translateY(46%);
        position: fixed;
        z-index: 5;
    }

    .sub-button img {
        width: 100px;
    }

    .rate>p,
    .text-default {
        font-size: 17px
    }

    .course-item,
    .cv a,
    .match p,
    .reason,
    .roadmap-title-flex,
    .text-default,
    .roadmap h2+p,
    .roadmap-item,
    .roadmap-item-head,
    .voice-logo,
    .voice:before {
        margin-right: auto;
        margin-left: auto
    }


    .text-default,
    .voice-item h3+p,
    footer p {
        letter-spacing: .07em
    }

    .hide-md {
        display: none
    }

    .text-default {
        line-height: 1.94
    }

    .fv-bg {
        aspect-ratio: unset;
        text-align: center;
        overflow-x: clip
    }

    .fv-bg img {
        position: absolute;
        left: 50%;
        translate: -50% 0;
        width: min(1952px, 122vw);
        max-width: initial;
        height: auto;
        -o-object-fit: unset;
        object-fit: unset;
        z-index: -1;
    }

    .fv-inner {
        padding-bottom: min(136px, 12.36vw)
    }

    .fv-pict {
        margin-top: 54px !important;
    }

    .fv-pict img {
        width: 100%;
    }

    .fv-bg-gray-rounded {
        margin-bottom: 20px;
        padding-right: 51px;
        padding-left: 51px
    }

    .fv-bg-gray-rounded>span {
        display: inline-block;
        text-align: left
    }

    .fv-bg-gray-rounded:before {
        top: 6px;
        left: 6px
    }

    .fv-bg-red-rounded {
        width: 94%;
        max-width: 1096px;
        margin-top: 83px;
        padding-top: 122px;
        padding-bottom: 121px
    }

    .fv-bg-red-rounded:before {
        top: 10px;
        left: 16px
    }

    .fv-bg-red-text-1 {
        writing-mode: horizontal-tb;
        letter-spacing: .038em;
        text-align: center
    }

    .rate-figure .wrap p,
    .reason-heading {
        text-align: left
    }

    .fv-bg-red-text-2 {
        margin-top: 6px
    }

    .fv-bg-red-text-3 {
        margin-top: 20px
    }

    .fv-bg-red-text-4 {
        margin-top: 28px
    }

    .fv-bg-red-img-1 {
        width: min(110px, 10vw)
    }

    .fv-bg-red-img-2 {
        top: -19px;
        left: 83px;
        width: min(115px, 10.5vw)
    }

    .fv-bg-red-img-3 {
        top: 11px;
        right: 66px;
        width: min(126px, 11.5vw)
    }

    .fv-bg-red-img-4 {
        bottom: 50px;
        left: 20px;
        width: min(140px, 12.8vw)
    }

    .fv-bg-red-img-5 {
        right: 4px;
        bottom: 20px;
        width: min(155px, 14.1vw)
    }

    .fv-img-bottom {
        bottom: max(-53px, -4.8vw);
        width: min(226px, 20.6vw);
        height: min(226px, 20.6vw)
    }

    .things {
        padding: 110px 2.6vw 88px;
        background-image: url(../img/bg-things-lg@2x.png);
        background-position: right bottom 40px;
        background-size: min(391px, 39.1vw) auto
    }

    .things-logo {
        width: 145px
    }

    .things-heading {
        max-width: 536px
    }

    .things-list {
        grid-template-columns: 1fr 1fr;
        gap: 75px 0;
        margin-top: 56px
    }

    .things-list li {
        max-width: initial;
        min-height: initial;
        aspect-ratio: 450/206;
        padding-left: 8.88%
    }

    .match p,
    .rate>p,
    .roadmap-title-flex,
    .text-default,
    .roadmap h2+p {
        max-width: 900px;
    }

    .things-list li:after,
    .things-list li:before {
        width: 87.11%
    }

    .things-list li:before {
        top: 12px;
        left: calc(8.88%+10px)
    }

    .things-list li:after {
        left: 8.88%
    }

    .things-list li:nth-of-type(2n) {
        padding-left: 7.55%
    }

    .things-list li:nth-of-type(2n):before {
        left: calc(7.55%+10px)
    }

    .things-list li:nth-of-type(2n):after {
        left: 7.55%
    }

    .things-list li>div {
        width: 95.6%
    }

    .things-list li>div :before {
        top: max(-36px, -4vw);
        left: -3px;
        width: min(92px, 10.2vw);
        height: min(97px, 10.7vw)
    }

    .things-list li strong {
        font-size: clamp(20px, -9px+3.79vw, 25px)
    }

    .things-list li:first-of-type>div {
        padding-top: 10.88%
    }

    .things-list li:first-of-type strong {
        margin-bottom: 17px
    }

    .things-list li:nth-of-type(2)>div,
    .things-list li:nth-of-type(4)>div {
        padding-top: 6.66%
    }

    .things-list li:nth-of-type(2) strong {
        margin-bottom: 16px
    }

    .things-list li:nth-of-type(3)>div {
        padding-top: 11.77%
    }

    .things-list li:nth-of-type(4) strong {
        margin-bottom: 19px
    }

    .things-list li:nth-of-type(5)>div {
        padding-top: 6.22%
    }

    .things-list li:nth-of-type(5) strong {
        margin-bottom: 10px
    }

    .things-list li:nth-of-type(6)>div {
        padding-top: 12.44%
    }

    .things-list li:nth-of-type(6) strong {
        margin-bottom: 12px
    }

    .rate {
        padding-top: 87px;
        padding-bottom: 207px
    }

    .rate>p+p,
    .reason-item p+p {
        margin-top: 31px
    }

    .riyu-margin {
        margin-left: 0 !important;
    }

    .rate-figure {
        max-width: 1300px;
        margin-top: 67px;
        margin-bottom: 63px;
        padding-top: 60px;
        padding-bottom: 66px
    }

    .rate-figure figcaption {
        margin-bottom: 6px;
        font-size: 40px;
        letter-spacing: -.02em
    }

    .rate-figure small,
    footer p {
        font-size: 14px
    }

    .rate-figure figcaption em {
        padding-bottom: 0
    }

    .rate-figure img {
        width: min(699px, 53.77vw)
    }

    .rate-figure .wrap {
        justify-content: space-between
    }

    .rate-figure .wrap p:first-of-type {
        margin-top: 2px
    }

    .rate-figure .wrap p:first-of-type small {
        font-size: 13px;
        letter-spacing: 0
    }

    .rate-img {
        height: 102px
    }

    .rate p.bottom {
        max-width: 840px
    }

    .reason {
        display: grid;
        grid-template-columns: 1fr auto 42.25%;
        gap: 0 4.375%;
        max-width: 1600px;
        padding-top: 64px
    }

    .reason :where(h2, p) {
        grid-column: 2/3;
        width: 100%;
        max-width: 594px
    }

    .reason>p {
        padding-right: 0;
        padding-left: 0
    }

    .reason p+p {
        margin-top: 21px
    }

    .reason-heading {
        grid-column: 2/4;
        grid-row: 1/2;
        margin-bottom: 48px;
        font-size: 46px;
        line-height: 1.37;
        letter-spacing: -.02em
    }

    .reason-heading span {
        padding-bottom: 0;
        background-image: linear-gradient(to top, #ff0 0, #ff0 16px, transparent 16px, transparent 100%)
    }


    .reason-img {
        grid-column: 3/4;
        grid-row: span 3;
        align-self: self-start;
        margin-top: 0;
        margin-bottom: 0;
        padding-left: 0;
        padding-bottom: min(116px, 7.25vw)
    }

    .reason-img:before {
        left: min(370px, 23.125vw);
        width: min(520px, 48.14vw);
        border-radius: 6px
    }

    .reason-img img {
        width: min(520px, 48.14vw);
        border-radius: 210px 6px 6px 210px
    }

    .reason-item-wrap {
        overflow-x: clip;
        position: relative
    }

    .reason-item-wrap:after,
    .reason-item-wrap:before {
        content: "";
        position: absolute;
        left: 50%;
        translate: -50% 0;
        width: 1838px;
        height: 418px;
        background-position: center;
        background-size: 100% auto;
        background-repeat: no-repeat
    }

    .reason-item-wrap.wrap-1:before {
        top: -63px;
        background-image: url(../img/bg-3-1.svg)
    }

    .reason-item-wrap.wrap-1:after {
        bottom: -6px;
        background-image: url(../img/bg-3-2.svg)
    }

    .reason-item-wrap.wrap-2:before {
        top: 236px;
        background-image: url(../img/bg-3-1.svg)
    }

    .reason-item-wrap.wrap-3:before {
        top: -60px;
        background-image: url(../img/bg-3-2.svg)
    }

    .reason-item-wrap.wrap-3:after {
        bottom: -4px;
        background-image: url(../img/bg-3-1.svg)
    }

    .reason-item-wrap.wrap-4:after {
        top: 229px;
        background-image: url(../img/bg-3-2.svg)
    }

    .reason-item-wrap.wrap-5:before {
        top: 178px;
        background-image: url(../img/bg-3-1.svg)
    }

    .reason-item-wrap+.reason-item-wrap {
        margin-top: 68px
    }

    .reason-item {
        padding-right: min(90px, 8.33vw);
        padding-left: min(90px, 8.33vw);
        padding-bottom: 65px
    }

    .reason-item .heading-wrap h3 {
        padding: 12px 51px;
        border-radius: 0 0 50px 50px;
        font-size: 18px;
        letter-spacing: .05em
    }

    .reason-item .heading-wrap h3 span {
        font-size: 28px;
        letter-spacing: .05em;
        font-feature-settings: normal
    }

    .reason-lead:before,
    .roadmap-lead:before {
        height: 59px
    }

    .reason-lead strong,
    .roadmap-lead strong {
        font-size: 32px;
        letter-spacing: .05em
    }

    .case-heading,
    .match h2,
    .roadmap h2,
    .voice .voice-student,
    .voice-parent .red {
        font-size: 46px;
        letter-spacing: -.02em
    }

    .match p.bold,
    .roadmap-item-head p {
        font-size: 30px;
        letter-spacing: .05em
    }

    .match-container {
        padding-top: 45px;
        padding-bottom: 90px
    }

    .match h2 {
        margin-bottom: 45px
    }

    .match .heading-img {
        width: 312px
    }

    .match p+p {
        margin-top: 34px
    }

    .match p.bold {
        margin-top: 66px;
        line-height: 1.5
    }

    .match .bold span {
        margin-top: 0;
        margin-bottom: 0
    }

    .match .bold em {
        background-image: linear-gradient(to top, #ff0 0, #ff0 14px, transparent 14px, transparent 100%)
    }

    .roadmap {
        padding-top: 20px
    }



    .roadmap h2 {
        margin-bottom: 41px;
        line-height: 1.37
    }

    .roadmap h3 {
        padding-left: 4%;
        position: sticky;
        z-index: 2;
    }

    .roadmap h3 img {
        width: 190px
    }

    .roadmap-item>figure img,
    .roadmap-item>figure:before {
        width: min(412px, 38.14vw);
        border-radius: 210px 0 0 210px
    }

    .roadmap-item {
        position: relative;
        display: grid;
        grid-template-columns: 1fr min(38.14vw, 412px);
        gap: 0 5.55%;
        align-items: start;
        max-width: 1080px;
        margin-top: 89px;
        padding-top: 100px;
        padding-bottom: 69px;
    }

    .roadmap-item-head,
    .roadmap-item-head-wrap {
        position: absolute;
        right: 0;
        left: 0;
        padding-top: 14px;
        padding-bottom: 26px;
        border-radius: 100em;
    }



    .roadmap-item>p {
        grid-column: 1/2;
        margin-right: 0;
        margin-left: 0;
        padding-left: 5vw;
    }

    .roadmap-item>p+p {
        margin-top: 26px;
    }

    .roadmap-item>p:not([class]) {
        padding-left: min(90px, 7.4vw)
    }

    .roadmap-item>figure {
        grid-column: 2/3;
        grid-row: 2/6;
    }

    .roadmap-item>figure:before {
        top: 18px
    }

    .roadmap-item-head {
        top: -70px;
        max-width: 707px;
        margin-top: 0
    }

    .roadmap-item-head ul {
        gap: 16px;
        margin-top: 10px;
    }

    .roadmap-item-head li {
        min-width: 167px;
        font-size: 18px;
        letter-spacing: .05em;
    }

    .course-item-figure img+img,
    .course-item.item-3 img+img,
    .item-4 .roadmap-item-head-wrap {
        margin-top: 0;
    }

    .roadmap-item-head-wrap {
        top: -82px;
        gap: 0;
        max-width: 855px;
        margin: 0 auto;
    }

    .roadmap-item-head-wrap .roadmap-item-head {
        position: static;
        flex-basis: 303px;
        margin-right: -13px;
        margin-left: -13px;
    }

    .roadmap-item-head-wrap .roadmap-item-head:nth-of-type(3) {
        margin-top: -13px;
    }

    .roadmap-lead {
        grid-column: span 2 !important
    }

    .course-container {
        padding-top: 35px;
        padding-bottom: 86px
    }

    .important {
        padding-top: 80px
    }

    /*
    .course-1 h3,
    :where(.course, .important) h2 {
        margin-bottom: 57px;
        font-size: 32px;
        line-height: 1.3;
        letter-spacing: -.02em
    }

    .course-1 h3,
    :where(.course, .important) h2 span {
        font-size: 46px;
        letter-spacing: -.02em
    }

    .course-1 h3 {
        display: flex;
        align-items: flex-end;
        justify-content: center;
        padding-top: 0
    }

    .course-1 h3::before {
        content: '';
        width: 74px;
        height: 193px;
        margin-right: 20px;
        background: url(.img/img-course-1-1@2x.png) center bottom/100% auto no-repeat
    }

    .course-1 h3::after {
        content: '';
        width: 74px;
        height: 229px;
        margin-left: 20px;
        background: url(.img/img-course-1-2@2x.png) center bottom/100% auto no-repeat
    }
*/
    .course-target {
        max-width: 1080px;
        margin-right: auto;
        margin-left: auto;
        margin-bottom: 64px
    }

    .course-target:before {
        flex-basis: 100px;
        height: 107px;
        margin-right: 40px
    }

    .course-target:after {
        flex-basis: 105px;
        height: 72px;
        margin-left: 23px
    }

    .course-item {
        max-width: 1080px;
        padding: 167px min(90px, 8.33vw) 67px;
        background: url(.img/bg-1.png) left top/16px #fff
    }

    .course-item:first-of-type {
        margin-top: 158px
    }

    .course-item+.course-item {
        margin-top: 141px
    }

    .course-item.item-4 {
        padding-bottom: 69px;
        padding-right: min(50px, 4.63vw);
        padding-left: min(50px, 4.63vw)
    }

    .course-item-heading {
        top: -90px;
        width: min(980px, 90.7%);
        height: 209px
    }

    .course-item-heading h3 {
        top: 53px;
        left: 45px;
        font-size: 32px;
        line-height: 1.31;
        letter-spacing: .05em
    }

    .course-item-heading picture {
        width: 282px;
        height: 100%
    }

    .course-item-heading picture img {
        width: 100%;
        height: 100%;
        -o-object-fit: cover;
        object-fit: cover
    }

    .course-item-figure img {
        max-width: 100%
    }

    .course-item.item-2 {
        padding-bottom: 75px
    }

    .course-item.item-2 h3 {
        top: 53px
    }

    .course-item.item-4 h3 {
        top: 76px
    }

    .course-item h4 {
        margin-bottom: 24px;
        font-size: 28px;
        letter-spacing: .05em
    }

    .case-item h4,
    .voice-item h3 {
        font-size: 30px;
        letter-spacing: .058em
    }

    .case>p+p,
    .course-item p+p {
        margin-top: 24px
    }

    .course-item .flex {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 5.33%
    }

    .course-item.item-1 .flex {
        margin-bottom: 37px
    }

    .course-item.item-1 .flex figure {
        flex: 0 0 44.66%;
        margin-top: 0;
        margin-bottom: 0
    }

    .course-item.item-2 figure.flex {
        margin-bottom: 51px
    }

    .course-item.item-2 .figure-2 {
        flex: 0 0 45.11%;
        margin-top: 5px;
        margin-bottom: 0
    }

    .course-item.item-2 .figure-2 img {
        width: 265px;
        max-width: 100%;
        margin-left: 0
    }

    .course-sub-item {
        margin-top: 32px;
        padding: 37px min(40px, 3.7vw) 26px;
        border-radius: 8px;
        background-color: #fbe9e2
    }

    .course-sub-item:nth-of-type(3) {
        margin-top: 50px
    }

    .course-item.item-2 figure.flex img,
    .course-item.item-3 figure.flex img {
        width: 47%
    }

    .course-item.item-4 .figure-1 {
        margin-top: 50px;
        text-align: center
    }

    .course-1 .course-item h4 {
        flex-direction: row
    }

    .course-1 .course-item figure {
        text-align: center
    }

    .course-1 .course-item figcaption {
        grid-column: span 2;
        font-size: 18px;
        text-align: center
    }

    .course-1 .course-item figure+p {
        margin-top: 40px;
        font-size: 26px
    }

    .course-item-wrap {
        display: flex;
        align-items: flex-start;
        gap: 60px
    }

    .course-item-wrap picture {
        flex: 0 0 400px
    }

    .case {
        padding-top: 67px;
        padding-bottom: 98px
    }

    .case-heading {
        margin-bottom: 44px;
        line-height: 1.3
    }

    .case-heading-img {
        margin-bottom: 15px
    }

    .case-heading-img img {
        width: 80px
    }

    .case-item {
        margin-top: 82px;
        padding: 47px min(90px, 8.33vw) 40px
    }

    .case-item h4 {
        justify-content: flex-start;
        margin-left: -7px;
        margin-bottom: 26px
    }

    .case-item h4:before {
        width: 80px;
        height: 80px
    }

    .case-item h4:nth-of-type(2) {
        margin-top: 40px
    }

    .case-item h4 span {
        flex-basis: auto;
        padding-left: 15px
    }

    .case-item-figure {
        margin-top: 24px;
        margin-bottom: 20px
    }

    .voice {
        padding-top: 170px;
        padding-bottom: 145px
    }

    .voice:before {
        top: 127px;
        width: 577px;
        height: 251px;
        background-image: url(.img/img-voice-2-1-lg.png)
    }

    .voice .voice-student {
        margin-bottom: 40px;
        line-height: 1.3
    }

    .voice-item {
        display: grid;
        gap: 0 27px;
        padding: 40px min(85px, 7.87vw) 45px;
        border-width: 5px;
        background-position: right 11px bottom 11px;
        background-size: 216px auto
    }

    .voice-item+.voice-item {
        margin-top: 41px
    }

    .voice-item :where(h3, p) {
        grid-column: 2/3
    }

    .voice-item.parent :where(h3, p, div) {
        grid-column: 1/2
    }

    .voice-item .text-default+.text-default {
        margin-top: 32px
    }

    .voice-item-img {
        grid-column: 1/2;
        grid-row: span 5;
        width: 155px;
        margin-top: 5px;
        margin-bottom: 0
    }

    .voice-item h3+p {
        font-size: 15px
    }

    .cv a,
    .cv a em,
    .event h2 {
        letter-spacing: .05em
    }

    .voice-link-wrap {
        grid-column: 1/3
    }

    .voice-parent {
        gap: 25px 41px;
        max-width: 530px;
        margin: 124px auto 20px
    }

    .voice-parent:after,
    .voice-parent:before {
        grid-row: 1/4;
        width: 79px;
        height: 144px
    }

    .voice-parent:before {
        grid-column: 1/2;
        background-size: 79px auto
    }

    .voice-parent:after {
        grid-column: 3/4;
        background-size: 73px auto
    }

    .voice-parent span {
        grid-column: 2/3
    }

    .voice-parent .black {
        grid-row: 2/3
    }

    .voice-parent .red {
        grid-row: 3/4;
        padding-bottom: 13px
    }

    .voice-logo {
        display: block;
        width: 145px;
        height: 42px;
        margin-bottom: 14px
    }

    .cv-1 {
        padding-top: 100px
    }

    .cv p {
        gap: 25px
    }

    .cv p span {
        padding-bottom: 8px
    }

    .cv a {
        width: 90%;
        max-width: 800px;
        margin-top: 23px;
        font-size: 34px;
    }

    .cv a:before {
        left: 48px;
        width: 88%;
    }

    /*
    .cv a:after {
        width: 115px;
        height: 104px
    }
*/
    .cv a>span {
        flex-direction: row;
        justify-content: center;
        width: 88%;
        padding: 46px 50px 43px;
    }

    .cv a em {
        padding: 3px 11px 5px;
        font-size: 29px;
        line-height: 1;
    }

    .cv .arrow {
        top: 0;
        bottom: 0;
        right: 78px;
        left: auto;
        margin: auto 0;
        width: 44px;
        height: 44px;
    }

    .faq {
        padding-top: 141px;
        padding-bottom: 130px;
    }

    .faq-heading {
        aspect-ratio: initial;
        height: 400px;
        margin-bottom: 70px;
    }

    .faq-heading h2 {
        top: 149px;
        left: 104px;
        gap: 8px;
        font-size: 65px;
    }

    .faq-heading span {
        font-size: 40px
    }

    .faq-item {
        padding-right: 28px;
        padding-left: 32px
    }

    .faq-item+.faq-item {
        margin-top: 35px
    }

    .faq-question {
        gap: 25px;
        padding-top: 23px;
        padding-bottom: 27px
    }

    .faq-answer .inner {
        padding: 32px 10px 45px 48px
    }

    .strength p+p {
        margin-top: 36px
    }

    .strength-figure {
        margin-top: 56px;
        padding: 29px 40px 27px
    }

    .strength-figure p {
        line-height: 1.53
    }

    .strength-figure p+p {
        margin-top: 22px
    }

    .strength-figure .smaller {
        line-height: 1.86
    }

    .cv-2 {
        padding-top: 36px
    }

    .event {
        padding-top: 215px;
        padding-bottom: 193px
    }

    .event h2 {
        font-size: 22px
    }

    .event h2 span {
        padding-right: 22px;
        padding-left: 22px
    }

    .event-list {
        padding: 22px min(4.53vw, 49px)
    }

    .event-list li {
        display: grid;
        grid-template-columns: 25.44% 1fr;
        padding: 26px 65px 39px 11px
    }

    .event-list time {
        grid-column: 1/2;
        grid-row: span 4;
        align-self: center
    }

    .event-list a {
        grid-column: 2/3;
        margin-top: 0;
        font-size: 20px
    }

    .event-list .icon {
        right: 16px;
        width: 30px;
        height: 30px
    }

    footer {
        row-gap: 23px;
        padding-bottom: 200px
    }

    .cv-3 {
        bottom: 18px
    }

    .cv-3 a {
        max-width: 700px
    }

    .cv-3 a:before {
        top: 6px;
        left: 40px;
        border-width: 2px
    }

    .cv-3 a:after {
        width: 114px !important;
        height: 110px !important
    }

    .cv-3 a>span {
        padding-top: 13px;
        padding-bottom: 16px
    }
}

@media (min-width:960px) {
    :root {
        --padding-base-horizontal: min(72px, 5.1vw)
    }

    .hide-lg {
        display: none
    }

    .fv-bg-red-text-2,
    .fv-heading {
        font-size: 28px
    }

    .fv-lead-text {
        margin-top: 50px;
        font-size: 23px
    }

    .fv-bg-gray-rounded>span {
        font-size: 20px
    }

    .fv-bg-red-text-1 {
        font-size: 40px
    }

    .fv-bg-red-text-3 {
        font-size: 58px;
        letter-spacing: .01em
    }

    .fv-bg-red-text-3 strong {
        text-decoration-thickness: 6px;
        text-underline-offset: 16px
    }

    .fv-bg-red-text-4 {
        font-size: 45px;
        letter-spacing: .006em
    }

    .reason-heading {
        grid-column: 2/3;
        margin-top: 19px
    }

    .reason-img {
        grid-row: span 4
    }

    .reason-lead {
        display: flex;
        gap: 16px;
        margin-top: 35px;
        margin-bottom: 34px
    }

    .reason-lead:before,
    .roadmap-lead:before {
        flex: 0 0 62px;
        margin-bottom: 0
    }

    .reason-item.item-1 .figure-2 {
        margin-top: 19px;
        margin-bottom: 32px
    }

    .reason-item.item-2 .figure-1 {
        margin-top: 23px;
        margin-bottom: 45px
    }

    .reason-item.item-5 .reason-figure {
        margin-top: 40px
    }

    .reason-item .column {
        display: flex;
        justify-content: space-between
    }

    .reason-item .column .reason-figure {
        flex: 0 0 auto;
        margin-top: 0;
        margin-bottom: 0
    }

    .reason-item.item-1 .column {
        gap: 5.6%;
        margin-bottom: 20px;
        padding-right: .8%
    }

    .reason-item.item-1 .column .reason-figure {
        flex-basis: 36.65%
    }

    .reason-item.item-1 .figure-2 img {
        width: 54.3vw;
        max-width: 587px;
        margin-right: auto;
        margin-left: auto
    }

    .reason-item.item-2 .figure-1 img {
        width: 68.8vw;
        max-width: 743px;
        margin-right: auto;
        margin-left: auto
    }

    .reason-item.item-2 .column {
        flex-direction: row-reverse;
        gap: 7.1%
    }

    .reason-item.item-2 .column .reason-figure {
        flex-basis: 44.44%;
        margin-top: 10px
    }

    .reason-item.item-3 {
        padding-bottom: 31px
    }

    .reason-item.item-3 .column {
        gap: 4.87%;
        margin-bottom: 29px;
        padding-right: 2%
    }

    .reason-item.item-3 .column .reason-figure {
        flex-basis: 52.15%
    }

    .reason-item.item-3 .column .figure-1 {
        margin-top: 7px
    }

    .reason-item.item-3 .column.column-2 {
        flex-direction: row-reverse;
        margin-top: 35px
    }

    .reason-item.item-3 .column .figure-2 {
        margin-top: 8px
    }

    .reason-item.item-4 {
        padding-bottom: 94px
    }

    .reason-item.item-4 .column {
        flex-direction: row-reverse;
        gap: 5%;
        margin-top: 40px;
        padding-right: 1%
    }

    .reason-item.item-4 .column .reason-figure {
        flex-basis: 44.9%;
        margin-top: 9px
    }

    .roadmap-item {
        padding-left: min(90px, 7.4vw);
        margin-top: -32px;
    }


    .roadmap-item>p,
    .roadmap-item>p:not([class]) {
        padding-left: 8px;
    }

    .roadmap-item-head-wrap {
        flex-wrap: nowrap;
    }

    .roadmap-item-head-wrap .roadmap-item-head:nth-of-type(3) {
        margin-top: 0;
    }

    .roadmap-lead {
        display: flex;
        align-items: center;
        gap: 16px;
        margin: 0 0 34px;
        padding-right: min(90px, 7.4vw)
    }

    .course-item.item-2 figure.flex,
    .course-item.item-3 figure.flex {
        padding-right: min(30px, 2.78vw);
        padding-left: min(30px, 2.78vw)
    }

    .course-item.item-2 .figure-2 {
        padding-left: 4.44%;
    }

    .cv a:after {
        top: -31px;
        left: -13px;
        width: 164px;
        height: 149px
    }

    .strength:before {
        top: 8.87vw;
        height: 440px;
        background-image: url(.img/bg-strength-lg.svg);
        background-size: auto 100%
    }

    .strength-container {
        padding-top: 0;
        padding-bottom: 121px;
    }

    .strength-heading {
        margin-top: min(142px, 15.78vw);
        margin-bottom: 0;
        font-size: 46px;
        line-height: 1.3;
        letter-spacing: -.02em;
        text-align: left;
        white-space: nowrap
    }

    .strength-pict {
        margin-bottom: 0
    }

    .strength-heading-wrap {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 7.77%;
        max-width: 900px;
        margin-right: auto;
        margin-left: auto;
        margin-bottom: 46px;
        padding-right: min(24px, 2.6vw)
    }
}

@media (any-hover:hover) {

    .cv a:hover:before,
    .voice-link-wrap button:hover span {
        background-color: #e5002d
    }

    .voice-link-wrap button:hover:before {
        border-color: #e5002d
    }

    .cv a:hover {
        color: #e5002d
    }

    .cv a:hover span {
        background-color: #fff
    }

    .cv a:hover .triangle {
        fill: #fff
    }

    .event-list a:hover {
        color: #272727;
        text-decoration: underline
    }

    .event-list a:hover~.icon {
        color: #272727
    }
}

@media (max-width: 768px) {
    .reason {
        display: block;
        padding-top: 30px;
    }

    .roadmap-item>p {
        padding-right: 5vw;
    }

    .roadmap h3 {
        margin-bottom: 20px;
    }

    .roadmap-lead strong {
        font-size: 22px;
        margin: 0 20px;
    }

    .rate-figure figcaption,
    .reason-heading {
        font-size: 28px;
        line-height: 1.5;
        text-align: center;
        letter-spacing: -.02em;
    }

    .hide-md {
        display: block;
    }

    .list-flow--item--txt3 {
        margin-bottom: 20px;
    }
}

@media (max-width: 768px) {

    .fv-pict {
        margin-top: 67px !important;
    }

    .cv-padding {
        padding: 27px 50px 56px !important;
    }

    .fv-pict,
    .roadmap-heading-img {
        margin-top: 0;
    }

    .top_logo {
        margin-left: 10px;
    }

    .top_logo img {
        width: 130px;
    }

    .pc_none {
        display: block;
    }

    .sp2_none {
        display: none;
    }

    .fv-pict {
        max-width: 800px;
    }

    .fv-pict img {
        width: 100%;
    }

    .course-1 h3,
    :where(.course, .important) h2 span {
        font-size: 37px;
    }

    .course .course-container {
        padding: 70px 0 85px;
    }

    .top-sec05__content {
        padding: 0;
    }

    .top-sec05_backcolor {
        border-radius: 0;
    }

    .tab-list {
        border-radius: 0;
    }

    /*          ヘッダー                */
    /* メニューのスタイル */
    .menu {
        position: fixed;
        top: 0;
        right: -100%;
        /* 初期状態では画面の外に隠れている */
        width: 300px;
        height: 100%;
        background-color: #e5002d;
        color: #333;
        transition: right 0.3s ease;
        /* スライドインのアニメーション */
        padding: 20px;
        box-sizing: border-box;
        z-index: 10;
    }

    /* メニューが開いているとき */
    .menu.open {
        right: 0;
        overflow: scroll;
    }

    /* ボタンのスタイル */
    .hamburger {
        position: fixed;
        top: 11px;
        right: 20px;
        width: 35px;
        cursor: pointer;
        z-index: 20;
    }

    .hamburger span {
        display: block;
        height: 3px;
        width: 100%;
        background-color: #666;
        margin: 5px 0;
        transition: 0.4s;
    }

    .hamburger::before {
        content: "MENU";
        display: block;
        font-size: 12px;
        margin-bottom: -3px;
        color: #666;
    }

    .hamburger.active::before {
        opacity: 0;
    }

    .hamburger.active span {
        background-color: #fff;
    }

    /* バツ印に変化するスタイル */
    .hamburger.active span:nth-child(1) {
        transform: rotate(45deg) translate(5px, 5px);
    }

    .hamburger.active span:nth-child(2) {
        opacity: 0;
    }

    .hamburger.active span:nth-child(3) {
        transform: rotate(-45deg) translate(6px, -6px);
    }

    /* メニューリストのスタイル */
    .menu ul {
        list-style-type: none;
        padding: 0;
        margin-top: 30px;
    }

    .menu li {
        padding: 20px 0;
        border-bottom: 1px solid #fff;
        font-size: 1.4rem;
    }

    .menu li a {
        color: #fff;
        text-decoration: none;
        display: block;
    }

    /*          ここまで              */


}

    /* 夏期講習追加 */

    .pc-none{
        display: none;
    }
    .pc-none-2{
        display: none;
    }
    .sp-none{
        display: block;
    }
    .summer-bottom{
        margin-bottom: 10px;
    }

    .summer{
        background-color: #fff;
        padding: 130px 0;
    }
    .summer-strong{
        display: inline-block;
        color: #e5002d;
        font-size: 3.5rem;
        line-height: 1.35;
        letter-spacing: .038em;
        margin-bottom: 10px;
    }
    .summer-sub_strong{
        font-size: 2.5rem;
        color: #232323;
        letter-spacing: .038em;
    }
    .summer-section01{
        margin-bottom: 60px;
    }
    .summer-flex{
    display: flex;
    justify-content: flex-end;
    position: relative;
    }
    
    .summer-text{
        position: absolute;
        left: 10%;
        top: 10%;
        text-shadow: -1px -2px 7px #fff, -1px -2px 7px #fff, -1px -2px 7px #fff, -1px -2px 7px #fff;;
    }
    .summer-text02{
        position: absolute;
        left: 11%;
        top: 10%;
    }
    
    .summer-border{
        border-top: 1px solid #232323;
        margin: 20px 0;
        padding: 20px 0;
    }
    
    .summer-photo img{
        width: 1000px;
    }
    .summer-photo02 img{
        width: 1000px;
    }
    
    .summer02-flex{
        display: flex;
        justify-content: center;
        background-color: #009F90;
        padding: 20px 0;
        gap: 45px;
        align-items: center;
        margin-bottom: 20px;
    }
    
    .summer-section02{
        margin-bottom: 60px;
    }
    
    .summer-section03{
        margin-bottom: 60px;
    }
    
    .summer02-02-flex{
        display: flex;
        justify-content: center;
        padding: 15px 0;
        gap: 45px;
        width: 90%;
        margin: 20px auto 0;
    }
    
    .case01-01-text{
        color: #6BD2CB;
        font-size: 3.5rem;
    }
    
    .case01-02-text{
        color: #fff;
        font-size: 2.5rem;
    }
    
    .summer-section02-subtext{
        text-align: center;
        font-size: 2rem;
        width: 90%;
    margin: 0 auto;
    }
    
    .summer02-02-flex img{
        width: 500px;
    }
    .summer-text-box01{
        background-color:#E2EEEE ;
        padding: 20px;
        width: 400px;
    }
    .text-right{
        text-align: right;
    }
    .summer-komezirushi{
        font-size: 14px;
        font-weight: normal;
        color: #000000;
    }
    
    .summer-text-box02{
        background-color:#F7E5DF ;
        padding: 20px;
        width: 400px;
        height: 250px;
    }
    .summer03-flex{
        display: flex;
        justify-content: center;
        background-color: #FF617D;
        padding: 20px 0;
        gap: 45px;
        margin-bottom: 20px;
        align-items: center;
    }
    
    .case02-01-text{
        color: #FFC8CE;
        font-size: 3.5rem;
    }
    
    .case02-02-text{
        color: #fff;
        font-size: 2.5rem;
    }
    
    .summer-section04{
        font-weight: bold;
    }
    .summer-strong02{
        font-weight: bold;
        font-size: 3rem;
        background: linear-gradient(transparent 80%, #fafa00 80%, #FFFF00 100%);
    }
    
    .summer-text02-bottom{
        margin-bottom: 15px;
    }
    
    .summer-text-strong{
        margin-top: 15px;
        font-size: 3rem;
        background-color:#F60000 ;
        color: #fff;
        letter-spacing: .038em;
        padding: 5px 30px;
        display: inline-block;
    }
    .summer-section04-subtext{
        margin: 25px 0;
        font-size: 2rem;
        font-weight: 500;
    }
    .summer-small{
        font-size: 2rem;
    }


    @media (max-width: 1220px) {

        .summer {
            padding: 80px 0;
        }

        .summer-flex{
            flex-direction: column-reverse;
        }
        .summer-text{
            position: static;
            padding-left: 12rem;
            margin-top:20px;
            width: 100%;
        }
        .summer-photo{
            text-align: end;
        }
        .summer-photo02 {
            text-align: end;
        }
        .summer-photo img {
            width: 80%;
        }
        .summer-photo02 img{
            width: 80%;
        }
        .summer-text02 {
            position: static;
            text-align: center;
            margin: 0 auto;
            width: 90%;
        }
    }

    @media (max-width: 768px) {
        .pc-none{
            display: block;
        }
        .sp-none{
            display: none;
        }
        .summer {
            padding: 60px 0;
        }
        .summer-text{
            padding-left: 7rem;
        }
        .summer-photo img {
            width: 90%;
        }
        .summer-section01{
            margin-bottom: 50px;
        }

        .summer-section04-subtext {
            font-size: 1.8rem;
            line-height: 1.8;
        }
        .summer-strong02 {
            font-size: 2.3rem;
        }
        .summer-text-strong {
            font-size: 2.5rem;
        }

        .summer-sub_strong {
            font-size: 2.3rem;
        }
        .case01-02-text {
            font-size: 2.3rem;
        }
        .case02-02-text {
            font-size: 2.3rem;
        }
        .summer-section02-subtext {
            font-size: 1.6rem;
        }
        .summer02-02-flex {
            flex-direction: column;
            align-items: center;
        }
        .summer-photo img{
                width: 90%;
            }
            .summer-photo02 img{
                width: 100%;
            }
            .summer-text-box01 {
                width: 100%;
            }
            .summer-text-box02 {
                width: 100%;
                height: auto;
            }
            .summer02-flex{
                position: relative;
                text-align: center;
                padding: 10px 0;
            }
            .summer03-flex{
                position: relative;
                text-align: center;
                padding: 10px 0;
            }
            .case01-01-text {
                position: absolute;
                top: -5rem;
                left: 6%;
                font-size: 3.4rem;
            }
            .case02-01-text {
                position: absolute;
                top: -5rem;
                left: 6%;
                font-size: 3.4rem;
            }
            .summer-bottom{
                margin-bottom: 10px;
            }
            .summer-small{
                font-size: 1.8rem;
            }
    }

    @media (max-width: 600px) {
        .summer-text{
                padding-left: 4.5rem;
            }
        .summer-section02{
            margin-bottom: 80px;
        }
        .summer-text-strong {
            transform: skewX(166deg);
            line-height: 1.4;
            width: 90%;
        }
        .summer-text-strong .naname{
            display: block;
            transform: skewX(-166deg);
        }
        .summer-text-strong .strong{
                font-size: 3rem;
                font-weight: bold;
        }
        .pc-none-2{
            display: block;
        }
    }

    
    @media (max-width: 500px) {
        .pc-none-2{
            display: block;
        }
    }

    @media (min-width: 1700px) {
        .summer-photo{
            text-align: end;
        }
        .summer-photo img{
            width: 80%;
        }
        .summer-text{
            left: 20%;
        }
        .summer-photo02{
            text-align: end;
        }
        .summer-photo02 img{
            width: 80%;
        }
        .summer-text02{
            left: 20%;
        }
    }