html {
    scroll-padding-top: 200px;
}
body {
    color: #353535;
    font-family: "Noto Sans JP", sans-serif !important;
}
.clearfix::after {
    content: "";
    display: block;
    clear: both;
}
p {
    margin-bottom: 0;
}
ol, ul {
    padding-left: 0;
    margin-bottom: 0;
}
.sp {
    display: none;
}
/* ヘッダー */
header {
    min-width: 1160px;
}
/* メインビジュアル */
#mv {
    height: 520px;
    position: relative;
    min-width: 1160px;
    width: 100%;
    margin-bottom: 0;
    padding-top: 0;
    background: none;
}
#mv .pc {
    position: absolute;
    bottom: 0;
    left: calc((100% - 1100px) / 2)
}
#mv .sp {
    display: none;
}
#mv h1 {
    width: 100%;
    height: 520px;
    margin: 0 auto;
    background-image: url("../img/trainer/mv-catch_pc.png"), url("../img/trainer/mv_pc.jpg");
    background-position: center bottom, center top;
    background-repeat: no-repeat, repeat-x;
    background-size: auto, auto;
    text-align: center;
    line-height: 1.1;
    padding-top: 25px;
}
#mv h1 span.l {
    font-size: 135px;
    color: #fff;
    font-weight: bold;
    font-style: italic;
    font-family: fot-chiaro-std, sans-serif;
    letter-spacing: -0.05em;
    margin-left: -30px;
}
#mv h1 span.m {
    display: block;
    font-weight: bold;
    font-size: 100px;
    color: #fff;
    line-height: 1.05;
    font-family: fot-chiaro-std, sans-serif;
    font-style: italic;
    letter-spacing: -0.1em;
    margin-left: -30px;
}
#mv h1 span.s {
    width: 765px;
    display: flex;
    justify-content: space-between;
    font-size: 27px;
    font-family: vdl-penletter, sans-serif;
    font-weight: bold;
    position: absolute;
    top: 385px;
    left: calc((100% - 765px) / 2);
    line-height: 1.25;
    z-index: 1;
    color: #353535;
}
#mv h1 span.s span {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    width: 220px;
}
#mv h1 span.s span.p2 {
    background-image: url("../img/trainer/bg-mv-catch.png");
    background-repeat: no-repeat;
    background-position: bottom 30px center;
    background-size: 85% auto;
}
#mv h1 span.s span span {
    display: inline-block;
}
#mv h1 span.s span span:first-child {
    width: 60px;
    line-height: 1;
}
#mv h1 span.s span.p1 span:first-child {
    width: 80px;
    font-size: 30px;
    line-height: 1;
}
#mv h1 span.s span.p3 span:first-child {
    font-size: 29px;
    width: 65px;
    margin-right: -8px;
}
#mv h1 span.s span span:first-child + span {
    width: 145px;
    line-height: 1;
    padding-bottom: 8px;
}
#mv h1 span.s span.p2 span:first-child + span span:first-child {
    font-size: 62px;
    width: auto;
    letter-spacing: -0.08em;
    margin-left: -5px;
}
/* Firefox */
@-moz-document url-prefix() {
    #mv h1 span.s span.p2 span:first-child + span span:first-child {
        font-size: 58px;
        letter-spacing: -0.11em;
        padding-top: 2px;
    }
}
/* Safari */
_::-webkit-full-page-media, _:future, :root #mv h1 span.s span.p2 span:first-child + span span:first-child {
    font-size: 58px;
    letter-spacing: -0.11em;
    padding-top: 2px;
}
#mv h1 span.s span.p2 span:first-child + span span:first-child + span {
    display: block;
    margin-top: -8px;
    font-size: 29px;
}
#mv h1 span.s span.p2 span:first-child + span span:first-child span:first-child {
    font-size: 52px;
    display: inline;
    margin: 0 -5px;
}
#mv h1 span.s span.p2 span:first-child + span span:first-child span:last-child {
    font-size: 29px;
    display: inline;
}
#mv h1 span.s span.p1 span:first-child + span {
    font-size: 70px;
    width: 120px;
}
#mv h1 span.s span.p3 span:first-child + span {
    font-size: 57px;
    letter-spacing: -0.03em;
}
/* コンテンツ */
a[href^="tel:"] {
    pointer-events: none;
}
main {
    min-width: 1160px;
    width: 100%;
}
.work_block {
    min-width: 1100px;
    width: 100%;
    text-align: center;
    margin: 0 auto -30px;
    background-image: url(../img/trainer/bg-work_pc.jpg);
    background-repeat: no-repeat;
    background-position: center top;
    background-size: 100% auto;
    padding: 70px 0 0;
}
.work_block h2 {
    font-size: 58px;
    font-weight: 800;
    font-style: italic;
    margin-bottom: 20px;
    transform: scale(0.86);
    transform-origin: top;
}
.work_block h2 span:first-child, .work_block h2 span:nth-child(3), .work_block h2 span:nth-child(6) {
    font-size: 74px;
}
.work_block h2 span:nth-child(5), .work_block h2 span:last-child {
    font-size: 92px;
    font-weight: 300;
}
.work_block h2 span:nth-child(5) {
    margin-left: -52px;
    margin-right: -5px;
}
.work_block h2 span:last-child {
    margin-right: -52px;
    margin-left: -12px;
}
.work_block .in {
    max-width: 1200px;
    width: 100%;
    margin: 0 auto;
    transform: scale(0.87);
    transform-origin: top;
}
.work_block p {
    font-size: 25px;
}
.work_block .flex-box {
    max-width: 1120px;
    width: 100%;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    margin: 60px auto 30px;
}
.work_block .flex-box .box {
    width: 183px;
    margin: 0 10px 20px;
}
.work_block .flex-box .box .icon {
    height: 183px;
    background: #4ed3b0;
    border-radius: 10px;
    padding: 15px;
    margin-bottom: 10px;
}
.work_block .flex-box .box img {
    width: 85%;
}
.work_block .flex-box .box p {
    font-size: 21px;
}
.work_block .flex-box + p {
    margin-bottom: 60px;
}
a.bnr {
    transition: 0.3s;
}
a.bnr:hover {
    opacity: 0.7;
}
.merit_block {
    width: 100%;
    height: 1610px;
    text-align: center;
    margin: 0 auto 90px;
    background-color: #f0f0f0;
}
.merit_block h2 {
    font-size: 55px;
    font-weight: bold;
    font-style: italic;
    background-color: #ffb807;
    color: #fff;
    line-height: 1;
    padding: 0 30px 10px;
    margin-bottom: 100px;
}
.merit_block h2 span.bx {
    display: inline-block;
    vertical-align: middle;
}
.merit_block h2 span.bx:first-child {
    transform: scale(0.9);
    transform-origin: right;
}
.merit_block h2 span.bx:last-child {
    transform: scale(0.8);
    transform-origin: left;
}
.merit_block h2 span.bx span:first-child {
    font-size: 116px;
    letter-spacing: -0.08em;
    margin-left: -10px;
}
.merit_block h2 span.bx span:last-child {
    font-size: 79px;
    display: inline-block;
    vertical-align: top;
    padding-top: 20px;
}
.merit_block h2 span.bx span:last-child span {
    letter-spacing: -0.18em;
    margin-left: -3px;
    padding-top: 0;
}
.merit_block .in {
    max-width: 1100px;
    width: 100%;
    margin: 0 auto;
    transform: scale(0.85);
    transform-origin: top;
}
.merit_block .flex-box {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}
.merit_block .flex-box .box {
    width: 530px;
    padding: 70px 30px 40px;
    position: relative;
    background-image: url("../img/trainer/bg-merit.jpg");
    background-repeat: repeat;
    background-size: auto;
    margin-bottom: 90px;
}
.merit_block .flex-box .box .num {
    background-color: #ffb807;
    color: #fff;
    font-size: 105px;
    display: inline-block;
    width: 96px;
    height: 96px;
    border-radius: 50%;
    line-height: 90px;
    position: absolute;
    top: -48px;
    left: calc(50% - 48px);
    font-family: "Covered By Your Grace", serif;
    font-weight: 500;
    font-style: normal;
    transform: rotate(15deg);
    -moz-transform: rotate(15deg);
    -webkit-transform: rotate(15deg);
}
.merit_block .flex-box .box:nth-child(2) .num, .merit_block .flex-box .box:nth-child(3) .num {
    transform: rotate(28deg);
    -moz-transform: rotate(28deg);
    -webkit-transform: rotate(28deg);
}
.merit_block .flex-box .box .num span {
    display: inline-block;
    margin-left: 0;
}
.merit_block .flex-box .box h3 {
    font-size: 33px;
    font-weight: bold;
    line-height: 1.35;
    margin-bottom: 25px;
}
.merit_block .flex-box .box:first-child h3 {
    margin-bottom: 52px;
}
.merit_block .flex-box .box h3 span {
    display: inline-block;
}
.merit_block .flex-box .box h3 span.s {
    display: block;
    font-size: 27px;
}
.merit_block .flex-box .box img {
    width: 100%;
    margin-bottom: 25px;
}
.merit_block .flex-box .box:first-child img {
    margin-bottom: 34px;
}
.merit_block p {
    font-size: 20px;
    text-align: left;
}
.flow_block {
    padding: 0;
    margin: 0 auto -250px;
}
.flow_block h2 {
    font-size: 61px;
    color: #0068b7;
    font-style: italic;
    margin-bottom: 80px;
}
.flow_block h2 span:first-child {
    display: inline-block;
    font-size: 78px;
    color: #fff;
    background-color: #0068b7;
    padding: 10px 45px 22px 32px;
    clip-path: polygon(5% 0%, 100% 0%, 95% 100%, 0% 100%);
    margin-right: -10px;
}
.flow_block h2 span:first-child span {
    background: none;
    font-size: 78px;
    padding: 0;
    clip-path: none;
    margin-right: 0;
}
.flow_block h2 span:last-child {
    font-size: 80px;
}
.flow_block .box .num span {
    background: #0068b7;
}
.flow_block .box .text h3 {
    font-size: 32px;
}
.flow_block .box .text p {
    width: 480px;
}
.flow_block .box:nth-child(2) .text {
    padding-top: 0;
}
.flow_block .box:last-child .text {
    padding-top: 55px;
}
.flow_block .box:nth-child(2) {
    background-image: url(../img/trainer/img-flow-01.jpg), url(../img/trainer/bg-flow-01.png);
}
.flow_block .box:nth-child(4) {
    background-image: url(../img/trainer/img-flow-03.jpg), url(../img/trainer/bg-flow-03.png);
}
.flow_block .box:last-child {
    background-image: url(../img/trainer/img-flow-04.jpg), url(../img/trainer/bg-flow-01.png);
}
.wow_block {
    width: 100%;
    height: 1735px;
    margin: 0 auto;
    text-align: center;
    background-image: url(../img/trainer/bg-wow-01_pc.gif);
    background-repeat: no-repeat;
    background-position: center top;
    background-size: cover;
    padding: 90px 30px 0;
}
.wow_block h2 {
    font-size: 76px;
    font-weight: bold;
    font-style: italic;
    margin-bottom: 30px;
    transform: scale(0.93);
    transform-origin: top;
}
.wow_block h2 span:last-child {
    display: block;
    font-size: 51px;
}
.wow_block h2 span.bx {
    display: inline-block;
    margin: 0 0 3px 25px;
}
.wow_block h2 span.bx span {
    display: inline-block;
    font-size: 78px;
    background-color: #0068b7;
    color: #fff;
    padding: 10px 28px 15px 13px;
    clip-path: polygon(22% 0%, 100% 0%, 78% 100%, 0% 100%);
    margin: 0 -10px;
}
.wow_block h2 span.bx span:nth-child(2) {
    background-color: #f19149;
}
.wow_block h2 span.bx span:nth-child(3) {
    background-color: #57ba51;
}
.wow_block h2 span.bx span:last-child {
    background-color: #f85c62;
}
.wow_block .in {
    max-width: 1100px;
    width: 100%;
    margin: 0 auto;
    transform: scale(0.85);
    transform-origin: top;
}
.wow_block p {
    font-size: 25px;
    line-height: 1.4;
    margin-bottom: 60px;
}
.wow_block .flex-box {
    width: 100%;
    height: 515px;
    display: flex;
    justify-content: space-around;
    background-image: url("../img/trainer/bg-wow-02_pc.png");
    background-repeat: no-repeat;
    background-position: center top;
    background-size: contain;
    margin: 0 auto 70px;
}
.wow_block .flex-box dl {
    width: 25%;
}
.wow_block .flex-box dt {
    font-family: vdl-penletter, sans-serif;
    font-weight: bold;
    font-size: 32px;
    line-height: 1;
    margin-bottom: 315px;
}
.wow_block .flex-box dl:first-child dt {
    padding-right: 18px;
}
.wow_block .flex-box dl:nth-child(2) dt {
    padding-right: 25px;
}
.wow_block .flex-box dl:nth-child(3) dt {
    padding-left: 10px;
}
.wow_block .flex-box dd {
    font-size: 25px;
    font-weight: bold;
    line-height: 1.25;
}
.wow_block .flex-box dl:first-child dd {
    padding-left: 38px;
    padding-top: 5px;
}
.wow_block .flex-box dl:nth-child(2) dd {
    padding-left: 12px;
    padding-top: 3px;
}
.wow_block .flex-box dl:last-child dd {
    padding-right: 12px;
}
.wow_block .flex-box:last-child {
    height: auto;
    flex-wrap: wrap;
    background: none;
    background-color: #f8f6eb;
    padding: 50px 40px;
    margin-bottom: 0;
}
.wow_block .flex-box:last-child .box {
    display: flex;
    flex-direction: row-reverse;
    justify-content: start;
    width: 100%;
    margin-bottom: 40px;
}
.wow_block .flex-box:last-child .box:last-child {
    margin-bottom: 0;
}
.wow_block .flex-box:last-child .box img {
    width: 300px;
    margin-right: 30px;
}
.wow_block .flex-box:last-child .box .text {
    text-align: left;
}
.wow_block .flex-box:last-child .box h3 {
    display: inline-block;
    font-size: 35px;
    font-weight: bold;
    padding-bottom: 5px;
    margin-bottom: 10px;
    background: linear-gradient(transparent 60%, #fff799 60%);
}
.wow_block .flex-box:last-child .box ul li {
    list-style: none;
    font-size: 25px;
    line-height: 1.2;
    padding-left: 25px;
    margin-bottom: 8px;
    position: relative;
}
.wow_block .flex-box:last-child .box ul li::before {
    position: absolute;
    content: '';
    top: 9px;
    left: 3px;
    border-style: solid;
    border-width: 7px 0 7px 13px;
    border-color: transparent transparent transparent #282828;
}
.teacher_block {
    min-width: 1160px;
    width: 100%;
    margin: 0 auto 90px;
    background-image: url("../img/trainer/bg-voice_pc.jpg");
    background-repeat: no-repeat;
    background-size: cover;
    padding: 70px 0 140px;
}
.teacher_block .in {
    width: 100%;
    margin: 0 auto;
}
.teacher_block h2 {
    font-weight: bold;
    font-size: 60px;
    text-align: center;
    color: #fff;
    margin-bottom: 30px;
    line-height: 1.3;
    letter-spacing: 0.05em;
    -moz-text-shadow: 0px 0px 5px rgba(85, 78, 81, 0.4);
    -webkit-text-shadow: 0px 0px 5px rgba(85, 78, 81, 0.4);
    -ms-text-shadow: 0px 0px 5px rgba(85, 78, 81, 0.4);
    text-shadow: 0px 0px 5px rgba(85, 78, 81, 0.4);
    transform: scale(0.93);
    transform-origin: top;
}
.teacher_block h2 span {
    display: inline-block;
    font-size: 83px;
    font-style: italic;
    padding-left: 10px;
}
.swiper-area {
    position: relative;
}
.swiper-slide {
    height: auto;
}
.swiper-slide .box {
    background: #fff;
    height: 100%;
    padding: 30px 25px 0 30px;
    text-align: center;
    transform: scale(0.93);
    transform-origin: top;
}
.swiper-slide .box h3 {
    float: right;
    width: calc(100% - 210px);
    text-align: left;
    font-size: 29px;
    font-weight: bold;
    margin-bottom: 15px;
}
.swiper-slide .box h3 span {
    display: block;
    font-size: 21px;
    font-weight: 400;
    margin-bottom: 3px;
}
.swiper-slide .box img {
    width: 185px;
    float: left;
    margin-bottom: 15px;
}
.swiper-slide .box p {
    float: right;
    width: calc(100% - 210px);
    font-size: 21px;
    text-align: left;
    line-height: 1.3;
    margin-bottom: 45px;
}
.swiper-button-prev {
    width: 63px;
    top: 45%;
    left: 31.7%;
    transform: scale(0.93);
    transform-origin: top;
    outline: none;
}
.swiper-button-next {
    width: 63px;
    top: 45%;
    right: 31.7%;
    transform: scale(0.93);
    transform-origin: top;
    outline: none;
}
.swiper-button-prev:after {
    font-size: 0;
    content: "";
    width: 63px;
    height: 63px;
    background-image: url(../img/trainer/btn-prev.png);
    background-repeat: no-repeat;
    background-size: contain;
}
.swiper-button-next:after {
    font-size: 0;
    content: "";
    width: 63px;
    height: 63px;
    background-image: url(../img/trainer/btn-next.png);
    background-repeat: no-repeat;
    background-size: contain;
}
.swiper-pagination-bullet {
    width: 18px;
    height: 18px;
    background: #fff;
    opacity: 1;
}
.swiper-pagination-bullet-active {
    background: #6f6f6f;
}
.swiper-pagination-bullets.swiper-pagination-horizontal {
    bottom: -55px;
}
.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
    margin: 0 17px;
    transform: scale(0.93);
    transform-origin: top;
}
.rr_block {
    width: 100%;
    padding: 0 30px;
    margin: 0 auto -200px;
    text-align: center;
    transform: scale(0.92);
    transform-origin: top;
}
.rr_block h2 {
    font-size: 62px;
    font-weight: bold;
    font-style: italic;
    letter-spacing: 0.03em;
    margin-bottom: 60px;
}
.rr_block h2 span:first-child {
    display: inline-block;
    line-height: 1.08;
    margin-top: -40px;
}
.rr_block h2 span:first-child span {
    font-size: 30px;
    padding-right: 30px;
}
.rr_block h2 span + span {
    font-size: 79px;
}
.rr_block .in {
    max-width: 1100px;
    width: 100%;
    margin: 0 auto;
}
.rr_block .in .box {
    margin-bottom: 100px;
}
.rr_block .in .box h3 {
    position: relative;
    margin-bottom: 30px;
}
.rr_block .in .box h3 span {
    font-size: 49px;
    font-weight: bold;
    font-style: italic;
    display: inline-block;
    color: #fff;
    background-color: #4ed3b0;
    padding: 5px 35px 10px 28px;
    clip-path: polygon(5% 0%, 100% 0%, 95% 100%, 0% 100%);
    letter-spacing: 0.05em;
}
.rr_block .in .box h3::before {
    content: "";
    width: 100%;
    height: 3px;
    position: absolute;
    top: 50%;
    left: 0;
    background-color: #4ed3b0;
}
.rr_block .in .box .flex-box {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    max-width: 1020px;
    width: 100%;
    margin: 0 auto 30px;
}
.rr_block .in .box .flex-box img {
    width: 415px;
    height: auto;
}
.rr_block .in .box .flex-box img.sp {
    display: none;
}
.rr_block .in .box .flex-box .detail {
    width: 570px;
}
.rr_block .in .box .flex-box .detail p {
    color: #4ed3b0;
    font-size: 30px;
    font-weight: bold;
    text-align: left;
    line-height: 1.25;
    margin-bottom: 12px;
}
.rr_block .in .box .flex-box .detail ul.sub {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    flex-wrap: wrap;
    padding: 0;
    margin-bottom: 2px;
}
.rr_block .in .box .flex-box .detail ul.sub li {
    width: auto;
    list-style: none;
    font-size: 26px;
    line-height: 1;
    padding: 8px 15px 10px;
    margin-right: 16px;
    margin-bottom: 12px;
    background: #ecfaf6;
    background: #d3f4eb;
}
.rr_block .in .box .flex-box .detail ul.sub li:nth-child(3), .rr_block .in .box .flex-box .detail ul.sub li:last-child {
    margin-right: 0;
}
.rr_block .in .box .flex-box .detail ul.sub li span {
    display: inline-block;
    font-size: 15px;
    margin: 0 -10px 0 -2px;
}
.rr_block .in .box .flex-box .detail ul.fes {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
    padding: 0;
    margin-bottom: 7px;
}
.rr_block .in .box .flex-box .detail ul.fes li {
    list-style: none;
    width: 48%;
    font-size: 26px;
    font-weight: bold;
    text-align: left;
    padding-left: 30px;
    padding-bottom: 5px;
    margin-bottom: 3px;
    position: relative;
}
.rr_block .in .box .flex-box .detail ul.fes li .svg {
    width: 26px;
    height: 30px;
    position: absolute;
    top: 4px;
    left: -3px;
    filter: invert(64%) sepia(47%) saturate(1729%) hue-rotate(339deg) brightness(103%) contrast(101%);
    margin-bottom: 0;
}
.rr_block .in .box .flex-box .detail ul.fes li::before {
    content: "";
    width: 26px;
    height: 30px;
    background-image: url(../img/trainer/img-check-box.png);
    background-repeat: no-repeat;
    background-size: cover;
    position: absolute;
    top: 4px;
    left: -3px;
}
.rr_block .in .box .flex-box .detail ul.fes li::after {
    content: "";
    width: 100%;
    height: 3px;
    position: absolute;
    left: 0;
    bottom: 0;
    background-size: auto auto;
    background-color: rgba(255, 255, 255, 1);
    background-image: repeating-linear-gradient(135deg, transparent, transparent 3px, rgba(78, 211, 176, 1) 3px, rgba(78, 211, 176, 1) 6px);
}
.rr_block .in .box .flex-box + p {
    max-width: 1020px;
    width: 100%;
    margin: 0 auto;
    text-align: left;
    font-size: 25px;
    line-height: 1.4;
    margin-bottom: 50px;
}
.rr_block table, .area_block table {
    border-collapse: collapse;
    max-width: 1020px;
    width: 100%;
    font-size: 25px;
    text-align: left;
    line-height: 1.4;
    margin: 0 auto 40px;
}
.rr_block table th, .area_block table th {
    border: 1px solid #252525;
    background-color: #ebebeb;
    text-align: center;
    width: 165px;
    font-weight: 500;
}
.area_block table th {
    width: 260px;
    font-weight: 600;
}
.rr_block table td, .area_block table td {
    border: 1px solid #252525;
    padding: 12px 20px;
}
.rr_block .in .box#ex {
    margin-bottom: 0;
}
.rr_block .in .box#ex h3 {
    margin-bottom: 60px;
}
.rr_block .in .box#ex h3 span {
    padding: 5px 25px 10px 28px;
    clip-path: polygon(3% 0%, 100% 0%, 97% 100%, 0% 100%);
}
.rr_block .in .box#ex h3 span span {
    padding: 0 10px 0 0;
}
.rr_block .in .box#ex .ex {
    display: flex;
    align-items: flex-start;
    max-width: 1020px;
    width: 100%;
    margin: 0 auto 80px;
}
.rr_block .in .box#ex .ex:last-child {
    margin-bottom: 40px;
}
.rr_block .in .box#ex .ex img {
    width: 300px;
    margin-right: 30px;
}
.rr_block .in .box#ex .ex h4 {
    font-size: 30px;
    font-weight: bold;
    text-align: left;
    border-bottom: 3px solid #838383;
    padding-bottom: 5px;
    margin-bottom: 15px;
    margin-top: -5px;
}
.rr_block .in .box#ex .ex h4 span {
    font-style: italic;
    padding-right: 30px;
    letter-spacing: 0.05em;
}
.rr_block .in .box#ex .ex p {
    font-size: 25px;
    text-align: left;
    line-height: 1.4;
    margin-bottom: 22px;
}
.rr_block .in .box#ex .ex table {
    border: 1px solid;
    margin-bottom: 0;
}
/* Firefox */
@-moz-document url-prefix() {
    .rr_block .in .box#ex .ex table {
        border: none;
        box-shadow: 0 0 0 1.5px #353535;
    }
}
.rr_block .in .box#ex .ex table tbody {
    display: flex;
}
.rr_block .in .box#ex .ex table tr {
    display: flex;
}
.rr_block .in .box#ex .ex table tr th, .rr_block .in .box#ex .ex table tr td {
    width: auto;
    border: none;
    border-right: 1px solid;
    display: flex;
    align-items: center;
    justify-content: center;
}
.rr_block .in .box#ex .ex table tr:first-child td {
    width: 225px;
    text-align: center;
    font-weight: bold;
    letter-spacing: 0.05em;
}
.rr_block .in .box#ex .ex table tr:last-child td {
    border: none;
    text-align: center;
    font-size: 36px;
    font-weight: 900;
    padding: 3px 0 8px 35px;
}
.rr_block .in .box#ex .ex table tr:last-child td span {
    font-size: 25px;
    padding-top: 10px;
    padding-left: 3px;
}
.rr_block .in .box#ex .ex table tr th {
    background-color: #c9fcee;
    font-size: 25px;
    padding: 0 20px;
}
.rr_block .in .box#ex + p {
    font-size: 25px;
    font-weight: bold;
}
.area_block {
    width: 100%;
    margin: 0 auto 65px;
    text-align: center;
}
.msg_block {
    width: 100%;
    margin: 0 auto -80px;
    text-align: center;
}
.area_block .in {
    transform: scale(0.92);
    transform-origin: top;
}
.area_block h2, .msg_block h2 {
    font-size: 51px;
    font-weight: bold;
    font-style: italic;
    color: #fff;
    background-color: #ffb807;
    line-height: 1;
    padding: 30px 0 35px;
    letter-spacing: 0.03em;
    margin-bottom: 60px;
}
.msg_block .in {
    max-width: 1160px;
    width: 100%;
    padding: 0 30px;
    margin: 0 auto;
    text-align: left;
    transform: scale(0.855);
    transform-origin: top;
}
.msg_block h3 {
    font-size: 37px;
    font-weight: bold;
    position: relative;
    padding-bottom: 12px;
    margin-bottom: 30px;
}
.msg_block h3::before {
    content: "";
    width: 100%;
    height: 2px;
    background-color: #363636;
    position: absolute;
    left: 0;
    bottom: 0;
}
.msg_block .box {
    display: flex;
    margin-bottom: 50px;
}
.msg_block .box:last-child {
    flex-direction: row-reverse;
}
.msg_block .box p {
    font-size: 25px;
}
.msg_block .box img {
    width: 410px;
    margin-left: 30px;
}
.msg_block .box:last-child img {
    margin-left: 0;
    margin-right: 40px;
}
.contact_block {
    max-width: 895px;
    width: 100%;
    padding-top: 25px;
    margin: 0 auto 90px;
    position: relative;
    text-align: center;
    background-image: url(../img/trainer/img-contact-01.png), url(../img/trainer/img-contact-02.png);
    background-position: left 10px bottom 107px, right 0 bottom 107px;
    background-repeat: no-repeat, no-repeat;
    background-size: 130px auto, 164px auto;
}
.contact_block h2 {
    display: inline-block;
    font-size: 43px;
    letter-spacing: 0.03em;
    font-weight: bold;
    margin-bottom: 20px;
    background-image: url(../img/trainer/bg-contact-h2.png);
    background-repeat: repeat-x;
    background-size: 10px 3px;
    background-position: bottom left;
    padding-bottom: 10px;
}
.contact_block h2 span {
    font-size: 52px;
    padding: 0 5px;
    letter-spacing: 0.05em;
}
.contact_block h2 + p {
    font-size: 20px;
    font-weight: bold;
    line-height: 1.4;
    margin-bottom: 25px;
}
.contact_block h2 + p + p {
    display: inline-block;
    font-size: 28px;
    font-weight: bold;
    position: relative;
    width: 560px;
    text-align: center;
    line-height: 1;
}
.contact_block a[href^="tel:"] {
    display: block;
    text-decoration: none;
    line-height: 1;
}
.contact_block a[href^="tel:"] img.svg {
    width: 91px;
    filter: invert(11%) sepia(2%) saturate(10%) hue-rotate(335deg) brightness(99%) contrast(88%);
    display: inline-block;
    vertical-align: baseline;
    margin-right: 10px;
}
.contact_block a[href^="tel:"] span {
    display: inline-block;
    font-family: futura-pt-condensed, sans-serif;
    font-size: 88px;
    font-weight: 500;
    color: #282828;
    letter-spacing: -0.04em;
    transform: scale(1.5, 1);
    transform-origin: left;
}
.contact_block a[href^="tel:"] + p {
    font-size: 28px;
    font-weight: bold;
    width: 560px;
    text-align: center;
    line-height: 1;
    margin-bottom: 25px;
}
.contact_block img {
    position: absolute;
    top: 121px;
    right: 22px;
    z-index: 1;
    width: 247px;
}
/* Safari */
_::-webkit-full-page-media, _:future, :root .contact_block img {
    top: 119px;
}
.contact_block .btn {
    background: #ff4497;
    width: 100%;
    border-radius: 10px;
    margin: 0;
    box-shadow: 0px 3px 0px 0px #5e5e5e;
    padding: 0;
    transition: 0.3s;
}
.contact_block .btn a {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-weight: bold;
    font-size: 44px;
    text-decoration: none;
    line-height: 105px;
    height: 105px;
    padding: 0 10% 0 0;
    text-align: left;
    position: relative;
}
.contact_block .btn:hover {
    opacity: 0.7;
}
.contact_block .btn a::after {
    position: absolute;
    right: 15%;
    margin: auto;
    content: "";
    vertical-align: middle;
    width: 24px;
    height: 24px;
    border-top: 8px solid #fff;
    border-right: 8px solid #fff;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
}
.contact_block .btn a span {
    display: inline-block;
    font-size: 24px;
    line-height: 1.1;
    text-align: center;
    margin-right: 25px;
    background-color: #fff;
    color: #ff4497;
    border-radius: 50%;
    padding: 5px 35px 10px;
    vertical-align: text-bottom;
}
.contact_block .btn a span span {
    font-size: 31px;
    margin-right: 0;
    padding: 0 2px;
    vertical-align: text-top;
}
/* フッター */
footer {
    min-width: 1160px;
    width: 100%;
    background-color: #194eb9;
    height: auto;
    margin-bottom: -20px;
}
footer .in {
    max-width: 1000px;
    margin: 0 auto;
    font-size: 0;
    padding: 50px 0 50px;
}
footer .in .box {
    display: inline-block;
    width: 50%;
    margin-right: 2%;
    text-align: center;
    vertical-align: top;
}
footer .in .box:nth-child(2) {
    width: 48%;
    margin-right: 0;
}
footer .in .box a {
    color: #fff;
    text-decoration: none;
}
footer .in .box .lg {
    width: 425px;
    background: #fff;
    border-radius: 10px;
    padding: 25px 50px;
    display: inline-block;
    margin-bottom: 15px;
}
footer .in .box .lg img {
    width: 100%;
}
footer .in p, footer .in .box p, footer .in .box h5 {
    font-size: 19px;
    color: #fff;
    font-weight: normal;
}
footer .in .box:first-child p {
    line-height: 1.3;
}
footer .in .box p span {
    display: inline-block;
}
footer .in .box h5 {
    margin-top: 20px;
    margin-bottom: 5px;
}
footer .in .box h5:first-child {
    margin-top: 0;
}
footer .in p.sp {
    display: none;
}
/* レスポンシブ */
@media screen and (max-width: 1800px) {
    .teacher_block {
        padding: 70px 0 130px;
    }
    .swiper-slide .box h3 {
        float: none;
        width: 100%;
        text-align: center;
        margin-bottom: 20px;
    }
    .swiper-slide .box img {
        float: none;
        margin-bottom: 20px;
    }
    .swiper-slide .box p {
        float: none;
        width: 100%;
    }
    .swiper-pagination-bullets.swiper-pagination-horizontal {
        bottom: -45px;
    }
}
@media screen and (max-width: 1500px) {
    .swiper-button-prev {
        left: 31%;
    }
    .swiper-button-next {
        right: 31%;
    }
}
@media screen and (min-width: 821px) {
    .gtco-nav .up-nav .tel {
        margin-right: 25px;
    }
    .gtco-nav .up-nav .tel span {
        text-decoration: none;
    }
    .gtco-nav .up-nav .register {
        margin-right: 0;
    }
    .gtco-nav .up-nav .register a {
        background-color: #ff4497;
    }
    .gtco-nav ul li a {
        font-size: 19px;
        font-weight: 400;
        text-decoration: none;
    }
    .gtco-nav ul li a:hover {
        color: #353535;
        opacity: 1;
    }
}
@media screen and (max-width: 820px) {
    html {
        scroll-padding-top: 130px;
    }
    header {
        min-width: auto;
    }
    header.pc {
        display: none;
    }
    header.sp {
        display: block;
    }
    a[href^="tel:"] {
        pointer-events: auto;
    }
    nav {
        background: rgba(255, 255, 255, 0.98);
    }
    #mv {
        height: auto;
        background-image: none;
        min-width: auto;
        width: 100%;
        position: relative;
    }
    #mv .pc {
        display: none;
    }
    #mv .sp {
        display: block;
        width: 100%;
        max-width: none;
    }
    #mv h1 {
        width: 100%;
        background: none;
        position: absolute;
        height: auto;
        padding-top: 5vw;
    }
    #mv h1 span.s {
        display: none;
    }
    #mv h1 span.m {
        font-size: 9.3vw;
    }
    #mv h1 span.l {
        font-size: 16vw;
    }
    #mv p {
        font-size: 5vw;
        font-weight: bold;
        font-style: italic;
        text-align: center;
        color: #fff;
        background-color: #1e257b;
        padding: 8px 0 10px;
    }
    footer {
        min-width: auto;
    }
    main {
        min-width: auto;
        max-width: none;
    }
    main .pc {
        display: none !important;
    }
    main .sp {
        display: block !important;
    }
    main img.sp {
        width: 100%;
        height: auto
    }
    .work_block {
        min-width: auto;
        margin: 0 auto;
        background-color: #fff;
        background-image: url(../img/trainer/bg-work_sp.jpg);
        padding: 50px 50px 80px;
    }
    .work_block ul {
        list-style: none;
        display: flex !important;
        flex-wrap: wrap;
        justify-content: space-between;
        margin-bottom: 2.5vw;
    }
    .work_block ul li {
        width: 49.2%;
        margin-bottom: 12px;
    }
    .work_block ul li a {
        display: block;
        background-color: #fff;
        border: 3px solid #1cb24b;
        color: #01972f;
        border-radius: 10px;
        font-size: 2.8vw;
        padding: 1.5vw 3vw 1.5vw 0;
        position: relative;
    }
    .work_block ul li a::after {
        position: absolute;
        content: "";
        width: 2.2vw;
        height: 2.2vw;
        top: 2.2vw;
        right: 3.5vw;
        border-top: 5px solid #01972f;
        border-right: 5px solid #01972f;
        -webkit-transform: rotate(135deg);
        transform: rotate(135deg);
    }
    .work_block h2 {
        transform: scale(1);
        font-size: 7.2vw;
        font-weight: 700;
        margin: 0 -5vw;
        line-height: 1.05;
        margin-bottom: 40px;
    }
    .work_block h2 span:first-child, .work_block h2 span:nth-child(3), .work_block h2 span:nth-child(6) {
        font-size: 9vw;
    }
    .work_block h2 span:nth-child(3) {
        display: inline-block;
        padding-top: 3.5vw;
    }
    .work_block h2 span:nth-child(5), .work_block h2 span:last-child {
        font-size: 11.2vw;
    }
    .work_block h2 span:nth-child(5) {
        margin-left: -6.5vw;
        margin-right: -0.6vw;
    }
    .work_block h2 span:last-child {
        margin-right: -5.8vw;
        margin-left: -1.7vw;
    }
    .work_block .in {
        transform: scale(1);
    }
    .work_block p {
        font-size: 28px;
        line-height: 1.33;
    }
    .work_block .flex-box {
        margin: 40px auto 25px;
    }
    .work_block .flex-box .box {
        width: 25vw;
        margin: 0 0 2.5vw;
        background-color: #fff;
    }
    .work_block .flex-box .box:last-child {
        display: none;
    }
    .work_block .flex-box .box .icon {
        background: #4ed3b0;
        background: #00d4b0;
        margin-bottom: 1.2vw;
        height: 24vw;
    }
    .work_block .flex-box .box img {
        width: auto;
        height: 98%;
    }
    .work_block .flex-box .box p {
        font-size: 3.2vw;
    }
    .work_block .flex-box .box p.les {
        letter-spacing: -0.05em;
        margin-left: -2vw;
        margin-right: -2vw;
    }
    .work_block .flex-box + p {
        margin-bottom: 30px;
        text-align: left;
    }
    .merit_block {
        margin: 0 auto 90px;
        height: auto;
        padding-bottom: 90px;
    }
    .merit_block h2 {
        font-size: 6.7vw;
        line-height: 1.1;
        padding: 20px 0 20px 0;
        margin-bottom: 14vw;
    }
    .merit_block h2 span.bx:first-child {
        transform: scale(1);
    }
    .merit_block h2 span.bx:last-child {
        transform: scale(1);
    }
    .merit_block h2 span.bx span:first-child {
        font-size: 14vw;
        margin-left: -4vw;
    }
    .merit_block h2 span.bx span:last-child {
        font-size: 9.6vw;
        padding-top: 2.4vw;
    }
    .merit_block .in {
        transform: scale(1);
        padding: 0 50px;
    }
    .merit_block .flex-box .box {
        width: 100%;
        padding: 11vw 30px 50px;
        margin-bottom: 13vw;
    }
    .merit_block .flex-box .box:last-child {
        margin-bottom: 0;
    }
    .merit_block .flex-box .box .num {
        font-size: 15vw;
        width: 14.8vw;
        height: 14.8vw;
        line-height: 14vw;
        top: -7.4vw;
        left: calc(50% - 7.4vw);
    }
    .merit_block .flex-box .box h3 {
        font-size: 5vw;
        margin-bottom: 35px;
    }
    .merit_block .flex-box .box h3 span.s {
        font-size: 4.2vw;
    }
    .merit_block .flex-box .box:first-child h3 {
        margin-bottom: 25px;
    }
    .merit_block .flex-box .box:first-child img {
        margin-bottom: 15px;
    }
    .merit_block p {
        font-size: 25px;
    }
    .flow_block {
        margin: 0 auto 80px;
    }
    .flow_block h2 {
        font-size: 6.6vw;
        margin-bottom: 40px;
    }
    .flow_block h2 span:first-child {
        font-size: 8.4vw;
        padding: 10px 4.2vw 18px 3vw;
        clip-path: polygon(5% 0%, 100% 0%, 95% 100%, 0% 100%);
        margin-right: -1.2vw;
    }
    .flow_block h2 span:first-child span {
        font-size: 6.6vw;
        padding: 0;
        clip-path: none;
        margin-right: 0;
    }
    .flow_block h2 span:last-child {
        font-size: 8.4vw;
    }
    .flow_block .box .text h3 {
        font-size: 5.5vw;
    }
    .flow_block .box .text h3 span {
        display: inline-block;
    }
    .flow_block .box:nth-child(3) .num {
        padding-top: 2.5vw;
    }
    .flow_block .box:nth-child(2) {
        background-image: url(../img/trainer/bg-flow-01.png);
        background-position: left 40px top 200px;
    }
    .flow_block .box:nth-child(4) {
        background-image: url(../img/trainer/bg-flow-03.png);
        background-position: left 40px top 230px;
    }
    .flow_block .box:last-child {
        background-image: url(../img/trainer/bg-flow-01.png);
        background-position: right 20px top 230px;
    }
    .flow_block .box .text p {
        width: 100%;
    }
    .flow_block .box:last-child .text {
        padding-bottom: 0;
    }
    .wow_block {
        height: auto;
        padding: 80px 50px 90px;
        background-image: url(../img/trainer/bg-wow-01_sp.gif);
    }
    .wow_block h2 {
        transform: scale(1);
        font-size: 8.3vw;
        margin-bottom: 50px;
    }
    .wow_block h2 span.bx {
        display: inline-block;
        margin: 0 0 5px 2vw;
    }
    .wow_block h2 span.bx span {
        font-size: 8.7vw;
        padding: 2px 3.2vw 8px 1.5vw;
        margin: 0 -1.1vw;
    }
    .wow_block h2 span:last-child {
        font-size: 6.5vw;
    }
    .wow_block h2 {
        transform: scale(1);
    }
    .wow_block .in {
        transform: scale(1);
    }
    .wow_block p {
        font-size: 28px;
    }
    .wow_block .flex-box {
        height: auto;
        background: none;
        flex-wrap: wrap;
        margin: 0 auto 20px;
    }
    .wow_block .flex-box dl {
        background-image: url("../img/trainer/bg-wow-02_sp-01.png");
        background-repeat: no-repeat;
        background-position: top center;
        background-size: contain;
        width: 50%;
        margin-bottom: 30px;
    }
    .wow_block .flex-box dl:nth-child(2) {
        background-image: url("../img/trainer/bg-wow-02_sp-02.png");
    }
    .wow_block .flex-box dl:nth-child(3) {
        background-image: url("../img/trainer/bg-wow-02_sp-03.png");
    }
    .wow_block .flex-box dl:last-child {
        background-image: url("../img/trainer/bg-wow-02_sp-04.png");
    }
    .wow_block .flex-box dt {
        font-size: 4.7vw;
        margin-bottom: 42vw;
    }
    .wow_block .flex-box dl:first-child dt {
        padding-right: 2vw;
    }
    .wow_block .flex-box dl:nth-child(2) dt {
        padding-right: 0;
    }
    .wow_block .flex-box dl:nth-child(3) dt {
        padding-left: 0;
    }
    .wow_block .flex-box dl:last-child dt {
        padding-right: 1vw;
    }
    .wow_block .flex-box dd {
        font-size: 3.3vw;
        line-height: 1.4;
        margin-bottom: 5.5vw;
    }
    .wow_block .flex-box dl:first-child dd {
        padding-left: 0;
        padding-top: 2vw;
    }
    .wow_block .flex-box dl:nth-child(2) dd {
        padding-left: 0;
        padding-right: 1vw;
        padding-top: 1.8vw;
    }
    .wow_block .flex-box dl:last-child dd {
        padding-right: 0;
        padding-left: 2vw;
    }
    .wow_block .flex-box:last-child .box {
        flex-direction: column-reverse;
        flex-wrap: wrap;
        margin-bottom: 50px;
    }
    .wow_block .flex-box:last-child .box img {
        width: 100%;
        margin-right: 0;
        margin-bottom: 25px;
    }
    .wow_block .flex-box:last-child .box h3 {
        font-size: 5.3vw;
        margin-bottom: 20px;
    }
    .wow_block .flex-box:last-child .box ul li {
        font-size: 28px;
    }
    .teacher_block h2 {
        transform: scale(1);
    }
    .swiper-slide .box {
        transform: scale(1);
    }
    .swiper-button-prev {
        transform: scale(1);
    }
    .swiper-button-next {
        transform: scale(1);
    }
    .swiper-button-prev, .swiper-button-next {
        width: 8.3vw;
    }
    .swiper-button-prev:after, .swiper-button-next:after {
        width: 8.3vw;
        height: 8.3vw;
    }
    .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
        transform: scale(1);
    }
    .rr_block {
        margin: 0 auto 80px;
        transform: scale(1);
        padding: 0 50px;
    }
    .rr_block h2 {
        font-size: 6.6vw;
        margin-bottom: 50px;
    }
    .rr_block h2 span:first-child {
        margin-top: 0;
    }
    .rr_block h2 span:first-child span {
        font-size: 3.7vw;
        padding-right: 3.5vw;
    }
    .rr_block h2 span + span {
        font-size: 9.3vw;
    }
    .rr_block .in .box {
        padding: 0;
        box-shadow: none !important;
        margin-bottom: 60px;
    }
    .rr_block .in .box h3 {
        width: calc(100% + 6vw);
        height: auto;
        font-size: 5.5vw;
        top: auto;
        left: auto;
        box-shadow: none !important;
        margin: 0 -3vw 20px;
    }
    .rr_block .in .box h3 span {
        font-size: 6vw;
        padding: 5px 5vw 10px 3.9vw;
        clip-path: polygon(3% 0%, 100% 0%, 97% 100%, 0% 100%);
        letter-spacing: 0.08em;
    }
    .rr_block .in .box .flex-box {
        margin: 0 auto;
    }
    .rr_block .in .box .flex-box .detail {
        width: 100%;
    }
    .rr_block .in .box .flex-box .detail p {
        font-size: 4.3vw;
        margin-bottom: 20px;
    }
    .rr_block .in .box .flex-box .detail ul.sub {
        margin-top: 0;
        margin-bottom: 5px;
    }
    .rr_block .in .box .flex-box .detail ul.sub li {
        font-size: 3.65vw;
        padding: 10px 2.69vw 13px;
        margin-right: 2vw;
        margin-bottom: 15px;
    }
    .rr_block .in .box .flex-box .detail ul.sub li span {
        font-size: 2.2vw;
        margin: 0 -1.3vw 0 0;
    }
    .rr_block .in .box .flex-box img {
        width: 100%;
        height: auto;
        margin: 0 auto 30px;
    }
    .rr_block .in .box .flex-box .detail ul.fes {
        margin-bottom: 30px;
    }
    .rr_block .in .box .flex-box .detail ul.fes li {
        font-size: 3.65vw;
        padding: 0 0 5px 4.5vw;
        margin-bottom: 5px;
    }
    .rr_block .in .box .flex-box .detail ul.fes li::before {
        width: 3.5vw;
        height: 4.3vw;
        top: 0.4vw;
        left: -0.5vw;
    }
    .rr_block .in .box .flex-box .detail ul.fes li .svg {
        width: 3.5vw;
        height: 4.3vw;
        top: 0.4vw;
        left: -0.5vw;
    }
    .rr_block .in .box .flex-box + p {
        font-size: 28px;
        line-height: 1.4;
        margin-bottom: 30px;
    }
    .rr_block table {
        margin: 0 auto 15px;
    }
    .area_block table {
        margin: 0 auto;
    }
    .rr_block table th, .area_block table th {
        border: none;
        width: 100%;
        display: block;
        font-size: 30px;
        font-weight: bold;
        padding: 8px 0 12px;
        letter-spacing: 0.05em;
    }
    .rr_block table td, .area_block table td {
        border: none;
        padding: 20px 0 25px;
        width: 100%;
        display: block;
        font-size: 28px;
    }
    .rr_block .in .box#ex h3 {
        margin-bottom: 40px;
    }
    .rr_block .in .box#ex h3 span {
        padding: 5px 0 15px 1.5vw;
        clip-path: polygon(5% 0%, 100% 0%, 95% 100%, 0% 100%);
        width: 73vw;
    }
    .rr_block .in .box#ex h3 span span {
        width: auto;
        padding: 0 3.5vw 0 0;
    }
    .rr_block .in .box#ex .ex h4 {
        font-size: 4.5vw;
        padding-bottom: 8px;
        margin-bottom: 25px;
        margin-top: 0;
    }
    .rr_block .in .box#ex .ex h4 span {
        padding-right: 3vw;
    }
    .rr_block .in .box#ex .ex img {
        max-width: 435px;
        width: 100%;
        margin-right: 0;
        margin: 0 auto 25px;
    }
    .rr_block .in .box#ex .ex p {
        font-size: 28px;
        margin-bottom: 30px;
    }
    /* Firefox */
    @-moz-document url-prefix() {
        .rr_block .in .box#ex .ex table {
            border: 1px solid;
            box-shadow: none;
        }
    }
    .rr_block .in .box#ex .ex table tr th {
        font-size: 3.7vw;
        font-weight: 600;
        padding: 0 2.5vw 0.5vw;
    }
    .rr_block .in .box#ex .ex table tr:first-child td {
        width: auto;
        font-size: 3.7vw;
        padding: 0 2.5vw 0.5vw;
    }
    .rr_block .in .box#ex .ex table tr:last-child td {
        font-size: 5vw;
        padding: 1.2vw 0 2.2vw 2.4vw;
    }
    .rr_block .in .box#ex .ex table tr:last-child td span {
        font-size: 3.7vw;
        font-weight: bold;
        padding-top: 1vw;
        padding-left: 0.5vw;
    }
    .rr_block .in .box#ex + p {
        font-size: 30px;
        text-align: left;
        text-indent: -30px;
        padding-left: 30px;
    }
    .area_block {
        margin: 0 auto 55px;
    }
    .msg_block {
        margin: 0 auto 90px;
    }
    .area_block .in, .msg_block .in {
        transform: scale(1);
        padding: 0 50px;
    }
    .area_block h2, .msg_block h2 {
        font-size: 7.7vw;
        line-height: 1.25;
    }
    .msg_block h3 {
        font-size: 4.9vw;
        margin-bottom: 20px;
    }
    .msg_block .box:last-child {
        margin-bottom: 0;
    }
    .msg_block .box {
        flex-wrap: wrap;
        align-items: flex-start;
        margin-bottom: 60px;
    }
    .msg_block .box p {
        font-size: 28px;
        line-height: 1.4;
        margin-bottom: 35px;
    }
    .msg_block .box img {
        width: 100%;
        margin-left: 0;
    }
    .msg_block .box:last-child img {
        margin-right: 0;
    }
    .teacher_block {
        min-width: auto;
        background-image: url(../img/trainer/bg-voice_sp.jpg);
        background-repeat: no-repeat;
        background-size: cover;
        padding: 50px 50px 130px;
        margin: 0 auto 60px;
    }
    .teacher_block h2 {
        font-size: 6.6vw;
        margin-bottom: 35px;
        line-height: 1.2;
        transform: scale(1);
    }
    .teacher_block h2 span:last-child {
        font-size: 9.5vw;
        vertical-align: text-bottom;
        padding-left: 1vw;
    }
    .swiper-slide .box {
        padding: 40px 30px 70px;
    }
    .swiper-slide .box h3 {
        order: 2;
        width: 100%;
        font-size: 30px;
        padding-bottom: 0;
        margin-bottom: 25px;
    }
    .swiper-slide .box h3 span {
        display: inline-block;
        font-size: 30px;
        font-weight: 600;
        margin-bottom: 0;
        padding-right: 20px;
    }
    .swiper-slide .box img {
        order: 1;
        width: 300px;
        margin: 0 auto 20px;
    }
    .swiper-slide .box p {
        order: 3;
        font-size: 28px;
        margin-bottom: 0;
    }
    .swiper-button-prev {
        top: 47%;
        left: -4vw;
    }
    .swiper-button-next {
        top: 47%;
        right: -4vw;
    }
    .swiper-pagination-bullets.swiper-pagination-horizontal {
        bottom: -55px;
    }
    .contact_block p:last-child a[href^="tel:"] {
        pointer-events: inherit;
    }
    .contact_block {
        transform: scale(1);
        margin: 0 auto 90px;
        padding: 0 30px;
        background-position: left 7vw bottom 100px, right 5vw bottom 100px;
        background-repeat: no-repeat, no-repeat;
        background-size: 18vw auto, 23vw auto;
    }
    .contact_block h2 {
        display: block;
        font-size: 6.5vw !important;
        letter-spacing: 0;
        padding-bottom: 1.8vw;
        margin-bottom: 2.8vw;
    }
    .contact_block h2 span {
        font-size: 7.7vw !important;
    }
    .contact_block h2 + p {
        font-size: 3.5vw;
        line-height: 1.25;
        margin-bottom: 3.5vw
    }
    .contact_block h2 + p + p {
        font-size: 2.8vw;
        width: 60vw;
    }
    .contact_block h2 + p + p::before {
        width: 2vw;
        height: 3.5vw;
        left: 11vw;
        bottom: -0.2vw;
    }
    .contact_block h2 + p + p::after {
        width: 2vw;
        height: 3.5vw;
        right: 10vw;
        bottom: -0.2vw;
    }
    .contact_block a[href^="tel:"] span {
        font-size: 8.7vw;
    }
    .contact_block a[href^="tel:"] img.svg {
        width: 8.8vw;
        margin-right: 1vw;
    }
    .contact_block a[href^="tel:"] + p {
        font-size: 2.8vw;
        width: 60vw;
        line-height: 1;
        margin-bottom: 15px;
    }
    .contact_block img + img {
        position: absolute;
        width: 34vw;
        top: 18.9vw;
        right: 1.2vw;
    }
    .contact_block img {
        top: 12.2vw;
        right: 3vw;
        width: 34vw;
    }
    /* Safari */
    _::-webkit-full-page-media, _:future, :root .contact_block img {
        top: 11.8vw;
    }
    .contact_block .btn:hover {
        opacity: 1;
    }
    .contact_block .btn a {
        font-size: 5.5vw;
        line-height: 0.9;
        height: 110px;
    }
    .contact_block .btn a::after {
        right: 9%;
        width: 3vw;
        height: 3vw;
        border-top: 1vw solid #fff;
        border-right: 1vw solid #fff;
    }
    .contact_block .btn a span {
        font-size: 3.5vw;
        margin-right: 3vw;
        padding: 5px 4.3vw 10px;
    }
    .contact_block .btn a span span {
        font-size: 4.3vw;
        padding: 0 0.3vw;
    }
    footer .in {
        width: 100%;
        padding: 70px 8.7vw 23vw;
    }
    footer .in .box {
        display: block;
        width: 100%;
        margin-right: 0;
    }
    footer .in .box:first-child {
        margin-bottom: 7vw;
    }
    footer .in .box:nth-child(2) {
        width: 100%;
    }
    footer .in .box p, footer .in .box h5 {
        font-size: 3.4vw;
    }
    footer .in .box:first-child p {
        font-size: 2.9vw;
    }
    footer .in .box p span {
        display: inline-block;
    }
    footer .in .box h5 {
        margin-top: 5vw;
        margin-bottom: 10px;
    }
    footer .in .box h5:first-child {
        margin-top: 0;
    }
    footer .in .box .lg {
        max-width: 605px;
        width: 100%;
        padding: 3.1vw 6.1vw 3.5vw 5.3vw;
    }
    #fix-menu .telfo .free a {
        padding: 13px 0 17px 0;
    }
    #fix-menu .telfo .free a span:first-child::before {
        display: none;
    }
    #fix-menu .telfo .free a span:first-child {
        display: inline-block;
        width: 8.3vw;
        height: 8.3vw;
        background-color: #fff;
        border-radius: 100px;
        color: #ff2a91;
        font-size: 3.1vw;
        font-weight: bold;
        text-align: center;
        line-height: 0.9;
        padding-top: 1.2vw;
        margin-right: 1.5vw;
    }
    #fix-menu .telfo .free a span:first-child span {
        font-size: 3.5vw;
        vertical-align: baseline;
        padding: 0 0.3vw 0 0.4vw;
    }
    #fix-menu .telfo .free a span:last-child {
        font-size: 4.03vw;
        font-weight: 600;
    }
    #fix-menu .telfo .form a {
        padding: 13px 0 17px 6vw;
    }
    #fix-menu .telfo .form a span {
        font-size: 4.03vw;
    }
    #fix-menu .telfo .form a span:first-child::before {
        left: 8.5vw;
        top: 3.3vw;
    }
    #fix-menu #pageTop {
        bottom: 14.5vw;
    }
}
@media screen and (max-width: 768px) {
    .work_block p {
        font-size: 25px;
    }
    .merit_block p {
        font-size: 22px;
    }
    .wow_block h2 {
        margin-bottom: 40px;
    }
    .wow_block p {
        font-size: 25px;
    }
    .wow_block .flex-box:last-child .box ul li {
        font-size: 25px;
    }
    .rr_block .in .box .flex-box + p {
        font-size: 25px;
    }
    .rr_block table th, .area_block table th {
        font-size: 28px;
    }
    .rr_block table td, .area_block table td {
        font-size: 25px;
    }
    .rr_block .in .box#ex .ex p {
        font-size: 25px;
    }
    .rr_block .in .box#ex + p {
        font-size: 28px;
        text-indent: -28px;
        padding-left: 28px;
    }
    .rr_block .in .box#ex .ex table tr:last-child td {
        padding: 0.8vw 0 1.8vw 3vw;
        margin-right: -3vw;
    }
    .msg_block .box p {
        font-size: 25px;
    }
    .swiper-slide .box p {
        font-size: 25px;
    }
    .contact_block img + img {
        top: 19.3vw;
    }
    #fix-menu #pageTop {
        bottom: 15vw;
    }
}
@media screen and (max-width: 700px) {
    .rr_block .in .box .flex-box .detail ul.sub li {
        font-size: 25px;
    }
    .flow_block .box:last-child {
        background-position: right -20px top 230px;
    }
    .contact_block img + img {
        top: 20vw;
    }
}
@media screen and (max-width: 668px) {
    #mv h1 {
        padding-left: 1vw;
    }
    .work_block {
        padding: 40px 30px 80px;
    }
    .work_block h2 {
        margin: 0 0 0 -4vw;
        margin-bottom: 35px;
    }
    .merit_block .in {
        padding: 0 30px;
    }
    .wow_block {
        padding: 70px 30px 80px;
    }
    .work_block .flex-box .box {
        width: 27vw;
    }
    .work_block .flex-box .box .icon {
        height: 26vw;
    }
    .wow_block .flex-box:last-child {
        padding: 30px 30px 40px;
    }
    .teacher_block {
        padding: 50px 30px 130px;
    }
    .rr_block {
        padding: 0 40px;
    }
    .rr_block .in .box h3 {
        width: calc(100% + 4vw);
        margin: 0 -2vw 20px;
    }
    .rr_block .in .box .flex-box .detail ul.fes li {
        font-size: 3.8vw;
        font-weight: 600;
    }
    .area_block .in, .msg_block .in {
        padding: 0 30px;
    }
    .contact_block img + img {
        top: 20.5vw;
    }
    .contact_block img {
        top: 12.4vw;
    }
    /* Safari */
    _::-webkit-full-page-media, _:future, :root .contact_block img {
        top: 12vw;
    }
    #fix-menu #pageTop {
        bottom: 15.5vw;
    }
    #fix-menu .telfo .form a span:first-child::before {
        top: 3.6vw;
    }
}
@media screen and (max-width: 640px) {
    .work_block ul li {
        margin-bottom: 10px;
    }
    .work_block ul li a {
        font-size: 3.5vw;
    }
    .work_block ul li a::after {
        width: 2.5vw;
        height: 2.5vw;
        top: 2.5vw;
    }
    .work_block p {
        text-align: left;
    }
    .work_block p br.sp {
        display: none !important;
    }
    .work_block .flex-box .box {
        width: 28vw;
    }
    .work_block .flex-box .box .icon {
        height: 27vw;
    }
    .work_block .flex-box .box img {
        height: 98%;
    }
    .work_block .flex-box .box p {
        font-size: 3.5vw;
        text-align: center;
    }
    .flow_block .box .text h3 {
        font-size: 6.5vw;
    }
    .flow_block .box:nth-child(3) .num {
        padding-top: 4vw;
    }
    .rr_block {
        padding: 0 30px;
    }
    .rr_block .in .box .flex-box .detail ul.sub li {
        font-size: 3.85vw;
    }
    .rr_block .in .box#ex .ex h4 {
        font-size: 5.2vw;
    }
    .rr_block .in .box#ex .ex table tr:last-child td {
        font-size: 6vw;
    }
    .rr_block .in .box#ex .ex table tr:last-child td span {
        padding-top: 2vw;
    }
    .contact_block img + img {
        top: 20.9vw;
    }
    #fix-menu #pageTop {
        bottom: 16vw;
    }
}
@media screen and (max-width: 600px) {
    #mv h1 {
        padding-left: 1.8vw;
    }
    .contact_block h2 span {
        letter-spacing: 0.03em;
    }
    .contact_block img + img {
        top: 21.5vw;
    }
    .contact_block {
        background-position: left 7vw bottom 85px, right 5vw bottom 85px;
    }
    .contact_block .btn a {
        height: 90px;
    }
}
@media screen and (max-width: 568px) {
    html {
        scroll-padding-top: 110px;
    }
    #mv h1 {
        padding-left: 2.2vw;
    }
    .work_block {
        padding: 30px 30px 60px;
    }
    .work_block h2 {
        margin-bottom: 25px;
    }
    .work_block p {
        font-size: 21px;
    }
    .work_block .flex-box {
        margin: 30px auto 15px;
    }
    .merit_block {
        padding-bottom: 70px;
        margin: 0 auto 70px;
    }
    .merit_block h2 {
        margin-bottom: 13vw;
    }
    .merit_block .flex-box .box {
        margin-bottom: 12vw;
    }
    .merit_block p {
        font-size: 21px;
    }
    .flow_block {
        margin: 0 auto 70px;
    }
    .flow_block .box:nth-child(2) {
        background-position: left 20px top 115px;
    }
    .flow_block .box:nth-child(4) {
        background-position: left 20px top 145px;
    }
    .flow_block .box:last-child {
        background-position: right -20px top 145px;
    }
    .wow_block {
        padding: 60px 30px 70px;
    }
    .wow_block h2 {
        margin-bottom: 30px;
    }
    .wow_block p {
        font-size: 21px;
        margin-bottom: 40px;
    }
    .wow_block .flex-box {
        margin: 0 auto 5px;
    }
    .wow_block .flex-box:last-child .box {
        margin-bottom: 40px;
    }
    .wow_block .flex-box:last-child .box ul li {
        font-size: 21px;
    }
    .wow_block .flex-box:last-child .box ul li::before {
        top: 6px;
    }
    .teacher_block {
        margin: 0 auto 50px;
        padding: 50px 30px 110px;
    }
    .swiper-slide .box {
        padding: 40px 30px 45px;
    }
    .swiper-slide .box h3 {
        font-size: 25px;
    }
    .swiper-slide .box h3 span {
        font-size: 25px;
    }
    .swiper-slide .box img {
        width: 250px;
    }
    .swiper-slide .box p {
        font-size: 21px;
    }
    .swiper-button-prev {
        left: -5vw;
    }
    .swiper-button-next {
        right: -5vw;
    }
    .swiper-pagination-bullet {
        width: 15px;
        height: 15px;
    }
    .rr_block {
        margin: 0 auto 70px;
    }
    .rr_block h2 {
        margin-bottom: 40px;
    }
    .rr_block .in .box {
        margin-bottom: 40px;
    }
    .rr_block .in .box h3 {
        margin: 0 -2vw 15px;
    }
    .rr_block .in .box h3 span {
        font-size: 7vw;
        letter-spacing: 0.03em;
    }
    .rr_block .in .box .flex-box .detail p {
        font-size: 4.8vw;
    }
    .rr_block .in .box .flex-box .detail ul.sub li span {
        font-size: 2.3vw;
    }
    .rr_block .in .box .flex-box .detail ul.fes {
        margin-bottom: 20px;
    }
    .rr_block .in .box .flex-box .detail ul.fes li {
        font-size: 4vw;
        padding: 0 0 8px 5vw;
    }
    .rr_block .in .box .flex-box .detail ul.fes li::before {
        width: 4.5vw;
        height: 5.3vw;
    }
    .rr_block .in .box .flex-box .detail ul.fes li .svg {
        width: 4.5vw;
        height: 5.3vw;
    }
    .rr_block .in .box .flex-box img {
        margin: 0 auto 20px;
    }
    .rr_block .in .box .flex-box + p {
        font-size: 21px;
    }
    .rr_block table th, .area_block table th {
        font-size: 22px;
        padding: 8px 0 10px;
    }
    .rr_block table td, .area_block table td {
        font-size: 21px;
        padding: 15px 0 20px;
    }
    .rr_block .in .box#ex .ex {
        margin: 0 auto 60px;
    }
    .rr_block .in .box#ex h3 span {
        width: 83vw;
    }
    .rr_block .in .box#ex .ex p {
        font-size: 21px;
    }
    .rr_block .in .box#ex .ex table tr:last-child td {
        padding: 0.8vw 0 1.8vw 2.7vw;
    }
    .rr_block .in .box#ex + p {
        font-size: 23px;
        text-indent: -23px;
        padding-left: 23px;
    }
    .area_block {
        margin: 0 auto 45px;
    }
    .msg_block {
        margin: 0 auto 70px;
    }
    .area_block h2, .msg_block h2 {
        margin-bottom: 40px;
    }
    .msg_block h3 {
        font-size: 6vw;
    }
    .msg_block .box {
        margin-bottom: 50px;
    }
    .msg_block .box p {
        font-size: 21px;
        margin-bottom: 25px;
    }
    .contact_block {
        margin: 0 auto 60px;
    }
    .contact_block h2 span {
        padding: 0 3px;
    }
    .contact_block .btn a {
        font-size: 5.8vw;
        padding: 0 9% 0 0;
    }
    .contact_block .btn a span {
        font-size: 3.5vw;
        margin-right: 2.5vw;
    }
    .contact_block .btn a span span {
        font-size: 4.5vw;
    }
    .contact_block .btn a::after {
        right: 6%;
        width: 3.5vw;
        height: 3.5vw;
    }
    .contact_block img {
        top: 12.7vw;
    }
    /* Safari */
    _::-webkit-full-page-media, _:future, :root .contact_block img {
        top: 12.3vw;
    }
    footer .in {
        padding: 12vw 8.7vw 27vw;
    }
    #fix-menu .telfo .free {
        width: 50%;
    }
    #fix-menu .telfo .free a span:last-child {
        font-size: 4.2vw;
    }
    #fix-menu .telfo .form {
        width: 50%;
    }
    #fix-menu .telfo .form a span {
        font-size: 4.2vw;
    }
    #fix-menu .telfo .form a span:first-child {
        padding-left: 7px;
    }
    #fix-menu .telfo .form a span:first-child::before {
        top: 3.8vw;
    }
    #fix-menu #pageTop {
        bottom: 17vw;
    }
}
@media screen and (max-width: 540px) {
    #mv h1 {
        padding-left: 2.5vw;
    }
    .work_block h2 {
        margin-bottom: 20px;
    }
    .work_block .flex-box {
        margin: 30px auto 10px;
    }
    .wow_block {
        padding: 60px 20px 70px;
    }
    .wow_block .flex-box:last-child {
        padding: 20px 20px 30px;
    }
    .wow_block .flex-box:last-child .box {
        margin-bottom: 30px;
    }
    .rr_block {
        padding: 0 20px;
    }
    .rr_block .in .box h3 {
        width: 100%;
        margin: 0 auto 15px;
    }
    .rr_block .in .box#ex .ex img {
        max-width: 335px;
    }
    .rr_block .in .box#ex .ex table tr th {
        font-size: 4vw;
        padding: 0 2.2vw 0.5vw;
    }
    .rr_block .in .box#ex .ex table tr:first-child td {
        font-size: 4vw;
    }
    .rr_block .in .box#ex .ex table tr:last-child td {
        padding: 1vw 0 1.8vw 2.5vw;
    }
    .rr_block .in .box#ex .ex table tr:last-child td span {
        font-size: 4vw;
    }
    .area_block .in, .msg_block .in {
        padding: 0 20px;
    }
    .area_block h2, .msg_block h2 {
        padding: 20px 0 25px;
    }
    .contact_block {
        padding: 0 20px;
    }
    .contact_block img + img {
        top: 22vw;
    }
}
@media screen and (max-width: 500px) {
    #mv h1 {
        padding-left: 3vw;
    }
    .work_block .flex-box .box {
        width: 27vw;
    }
    .rr_block .in .box .flex-box .detail ul.fes li {
        width: 49%;
        font-size: 4.2vw;
        padding: 0 0 8px 5.2vw;
    }
    .rr_block .in .box .flex-box .detail ul.fes li::before {
        width: 5vw;
        height: 5.8vw;
        top: 0.2vw;
    }
    .rr_block .in .box .flex-box .detail ul.fes li .svg {
        top: 0.8vw;
    }
    .rr_block .in .box h3 span {
        letter-spacing: 0;
    }
    .swiper-slide .box h3 {
        font-size: 23px;
    }
    .swiper-slide .box h3 span {
        font-size: 23px;
    }
    .contact_block h2 {
        font-size: 7.2vw !important;
        letter-spacing: -0.05em;
        margin-left: -2vw;
        margin-right: -2vw;
    }
    .contact_block h2 span {
        font-size: 8.4vw !important;
        padding: 0;
    }
    .contact_block h2 span:first-child {
        padding-left: 1.2vw;
        padding-right: 0.3vw;
    }
    .contact_block h2 span:last-child {
        padding-left: 0.8vw;
        padding-right: 0.2vw;
    }
    .contact_block h2 + p {
        font-size: 3.5vw;
        padding-left: 1vw;
    }
    .contact_block a[href^="tel:"] {
        padding-left: 1vw;
    }
    .contact_block a[href^="tel:"] img.svg {
        margin-bottom: 0.5vw;
    }
    .contact_block a[href^="tel:"] span {
        font-size: 10.5vw;
        transform: scale(1.45, 1);
    }
    .contact_block a[href^="tel:"] + p {
        font-size: 3.3vw;
        width: 65vw;
    }
    .contact_block h2 + p + p {
        font-size: 3.3vw;
        width: 70vw;
    }
    .contact_block h2 + p + p::before {
        left: 13vw;
    }
    .contact_block h2 + p + p::after {
        right: 12vw;
    }
    .contact_block img + img {
        top: 26vw;
    }
    .contact_block .btn a {
        padding: 0 10% 0 0;
    }
}
@media screen and (max-width: 440px) {
    #mv h1 {
        padding-left: 3.5vw;
    }
    .work_block {
        padding: 30px 20px 60px;
    }
    .work_block ul li {
        margin-bottom: 7px;
    }
    .work_block ul li a {
        font-size: 4.3vw;
        padding: 1.5vw 5vw 1.5vw 0;
    }
    .work_block ul li a::after {
        width: 3vw;
        height: 3vw;
        top: 2.7vw;
        border-top: 4px solid #01972f;
        border-right: 4px solid #01972f;
    }
    .work_block .flex-box .box {
        width: 28vw;
    }
    .merit_block h2 {
        padding: 12px 0;
    }
    .merit_block .in {
        padding: 0 20px;
    }
    .merit_block .flex-box .box {
        padding: 11vw 20px 40px;
    }
    .merit_block .flex-box .box h3 {
        font-size: 5.8vw;
        margin-bottom: 20px;
    }
    .merit_block .flex-box .box h3 span.s {
        font-size: 4.8vw;
    }
    .merit_block .flex-box .box:first-child h3 {
        margin-bottom: 15px;
    }
    .merit_block .flex-box .box img {
        width: 100%;
        margin-bottom: 15px;
    }
    .merit_block .flex-box .box:first-child img {
        margin-bottom: 5px;
    }
    .flow_block {
        margin: 0 auto 60px;
    }
    .flow_block .box .text h3 {
        font-size: 6.15vw;
    }
    .flow_block .box:nth-child(3) .num {
        padding-top: 2vw;
    }
    .wow_block p {
        text-align: left;
    }
    .wow_block p br {
        display: none !important;
    }
    .rr_block .in .box .flex-box .detail p {
        font-size: 5.3vw;
        margin-left: -0.5vw;
        margin-right: -0.5vw;
        margin-bottom: 15px;
    }
    .rr_block .in .box .flex-box .detail ul.sub li {
        font-size: 4.5vw;
        font-weight: 600;
        padding: 8px 1.55vw 10px;
        margin-bottom: 8px;
    }
    .rr_block .in .box .flex-box .detail ul.sub li span {
        font-size: 3.05vw;
    }
    .rr_block .in .box .flex-box .detail ul.sub li:nth-child(3) {
        margin-right: 2vw;
    }
    .rr_block .in .box .flex-box .detail ul.fes li::before {
        top: 0;
    }
    .rr_block .in .box .flex-box .detail ul.fes li .svg {
        top: 0.5vw;
    }
    .rr_block .in .box#ex h3 span {
        padding: 6px 0 10px 1.5vw;
    }
    .rr_block .in .box#ex .ex table tr:first-child td {
        padding: 0 2vw 0.5vw;
    }
    .rr_block .in .box#ex .ex table tr:last-child td {
        margin-right: 0;
    }
    .contact_block {
        padding: 0 15px;
        background-position: left 7vw bottom 70px, right 5vw bottom 70px;
    }
    .contact_block .btn a {
        line-height: 75px;
        height: 75px;
    }
    .contact_block .btn a span {
        font-size: 4.2vw;
        line-height: 1.05;
    }
    .contact_block .btn a span span {
        font-size: 5.5vw;
    }
    .contact_block img + img {
        top: 27.5vw;
    }
    #fix-menu .telfo .form a span:first-child::before {
        top: 4.5vw;
    }
    #fix-menu #pageTop {
        bottom: 18vw;
    }
    #fix-menu #pageTop img {
        width: 15vw;
    }
}
@media screen and (max-width: 430px) {
    html {
        scroll-padding-top: 80px;
    }
    #mv p {
        font-size: 6vw;
    }
    .work_block {
        padding: 25px 20px 60px;
    }
    .work_block p {
        font-size: 18px;
    }
    .work_block h2 {
        margin: 0 0 15px -2vw;
    }
    .work_block .flex-box {
        margin: 25px auto 10px;
    }
    .work_block .flex-box + p {
        margin-bottom: 20px;
    }
    .work_block .flex-box .box .icon {
        padding: 12px;
    }
    .work_block .flex-box .box img {
        height: 100%;
    }
    .merit_block p {
        font-size: 18px;
    }
    .flow_block .box:nth-child(2) {
        background-position: left 12px top 80px;
    }
    .flow_block .box:nth-child(4) {
        background-position: left 0 top 90px;
    }
    .flow_block .box:last-child {
        background-position: right -20px top 100px;
    }
    .flow_block .box .text h3 {
        font-size: 6.8vw;
    }
    .flow_block .box:nth-child(3) .num {
        padding-top: 3.5vw;
    }
    .merit_block {
        margin: 0 auto 60px;
        padding-bottom: 60px;
    }
    .flow_block {
        margin: 0 auto 50px;
    }
    .flow_block h2 {
        margin-bottom: 30px;
    }
    .flow_block h2 span:first-child {
        padding: 5px 4.2vw 12px 3vw;
    }
    .wow_block {
        padding: 50px 20px 60px;
    }
    .wow_block h2 {
        margin-bottom: 20px;
    }
    .wow_block p {
        font-size: 18px;
        margin-bottom: 20px;
    }
    .wow_block .flex-box dl {
        height: 80vw;
        margin-bottom: 20px;
    }
    .wow_block .flex-box dt {
        font-size: 5.5vw;
        margin-bottom: 47.8vw;
    }
    .wow_block .flex-box dd {
        font-size: 4.3vw;
        line-height: 1.2;
        margin-bottom: 5.5vw;
    }
    .wow_block .flex-box dl:first-child dd {
        padding-left: 2.5vw;
        padding-top: 0.5vw;
    }
    .wow_block .flex-box dl:nth-child(2) dd {
        padding-right: 0;
        padding-top: 0;
    }
    .wow_block .flex-box:last-child .box {
        margin-bottom: 20px;
    }
    .wow_block .flex-box:last-child .box img {
        margin-bottom: 15px;
    }
    .wow_block .flex-box:last-child .box h3 {
        font-size: 6vw;
        margin-bottom: 10px;
    }
    .wow_block .flex-box:last-child .box ul li {
        font-size: 18px;
        padding-left: 20px;
    }
    .wow_block .flex-box:last-child .box ul li::before {
        left: 0;
        top: 5px;
        border-width: 6px 0 6px 12px;
    }
    .teacher_block {
        padding: 40px 20px 90px;
        margin: 0 auto 35px;
    }
    .teacher_block h2 {
        font-size: 7vw;
        margin-bottom: 20px;
    }
    .teacher_block h2 span:last-child {
        font-size: 9.8vw;
    }
    .swiper-slide .box {
        padding: 30px 20px 40px;
    }
    .swiper-slide .box h3 {
        margin-bottom: 15px;
    }
    .swiper-slide .box img {
        width: 220px;
    }
    .swiper-slide .box p {
        font-size: 18px;
    }
    .swiper-pagination-bullets.swiper-pagination-horizontal {
        bottom: -45px;
    }
    .swiper-button-next {
        right: -3vw;
    }
    .swiper-button-prev {
        left: -3vw;
    }
    .swiper-button-prev, .swiper-button-next {
        width: 10vw;
    }
    .swiper-button-prev:after, .swiper-button-next:after {
        width: 10vw;
        height: 10vw;
    }
    .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
        margin: 0 15px;
    }
    .rr_block {
        margin: 0 auto 45px;
    }
    .rr_block h2 {
        margin-bottom: 30px;
    }
    .rr_block .in .box {
        margin-bottom: 25px;
    }
    .rr_block .in .box h3 {
        margin: 0 auto 12px;
    }
    .rr_block .in .box .flex-box .detail ul.sub li span {
        font-size: 3vw;
    }
    .rr_block .in .box .flex-box .detail ul.fes {
        margin-bottom: 15px;
    }
    .rr_block .in .box .flex-box img {
        margin: 0 auto 15px;
    }
    .rr_block .in .box .flex-box + p {
        font-size: 18px;
        margin-bottom: 20px;
    }
    .rr_block table {
        margin: 0 auto 5px;
    }
    .rr_block table th, .area_block table th {
        font-size: 19px;
        padding: 5px 0 7px;
    }
    .rr_block table td, .area_block table td {
        font-size: 18px;
        padding: 12px 0 20px;
    }
    .rr_block .in .box#ex h3 {
        margin-bottom: 25px;
    }
    .rr_block .in .box#ex .ex {
        margin: 0 auto 45px;
    }
    .rr_block .in .box#ex .ex:last-child {
        margin-bottom: 20px;
    }
    .rr_block .in .box#ex .ex img {
        max-width: 65vw;
        margin: 0 auto 15px;
    }
    .rr_block .in .box#ex .ex h4 {
        font-size: 6vw;
        margin-bottom: 15px;
    }
    .rr_block .in .box#ex .ex p {
        font-size: 18px;
        margin-bottom: 20px;
    }
    .rr_block .in .box#ex .ex table tbody {
        display: initial;
    }
    .rr_block .in .box#ex .ex table tr {
        border-bottom: 1px solid;
    }
    .rr_block .in .box#ex .ex table tr:last-child {
        border-bottom: none;
    }
    .rr_block .in .box#ex .ex table tr th {
        width: 50%;
        font-size: 4.5vw;
        padding: 1.5vw 0;
    }
    .rr_block .in .box#ex .ex table tr:first-child td {
        font-size: 4.5vw;
        width: 50%;
        border-right: none;
        padding: 1.5vw 0;
    }
    .rr_block .in .box#ex .ex table tr:last-child td {
        padding: 0 0 1vw;
        width: 50%;
        font-size: 7vw;
        line-height: 1;
    }
    .rr_block .in .box#ex .ex table tr:last-child td span {
        font-size: 4.5vw;
    }
    .rr_block .in .box#ex + p {
        font-size: 20px;
        text-indent: -20px;
        padding-left: 20px;
    }
    .area_block {
        margin: 0 auto 30px;
    }
    .msg_block {
        margin: 0 auto 60px;
    }
    .area_block h2, .msg_block h2 {
        margin-bottom: 30px;
    }
    .msg_block .box p {
        font-size: 18px;
    }
    .msg_block h3 {
        margin-bottom: 15px;
    }
    .msg_block .box {
        margin-bottom: 30px;
    }
    .contact_block h2 + p {
        font-size: 3.8vw;
        letter-spacing: -0.01em;
    }
    .contact_block h2 + p + p {
        font-size: 3.6vw;
        width: 65vw;
    }
    .contact_block h2 + p + p::before {
        left: 9vw;
    }
    .contact_block h2 + p + p::after {
        right: 8vw;
    }
    .contact_block a[href^="tel:"] + p {
        font-size: 3.6vw;
        width: 62vw;
    }
    .contact_block img + img {
        top: 28.7vw;
    }
    .contact_block .btn a::after {
        border-top: 1.2vw solid #fff;
        border-right: 1.2vw solid #fff;
    }
    .contact_block img {
        top: 14.4vw;
    }
    /* Safari */
    _::-webkit-full-page-media, _:future, :root .contact_block img {
        top: 14vw;
    }
    footer .in .box .lg {
        margin-bottom: 10px;
    }
    footer .in .box:first-child p {
        font-size: 3.4vw;
    }
    footer .in .box p, footer .in .box h5 {
        font-size: 3.7vw;
    }
    #fix-menu #pageTop img {
        width: 13vw;
    }
}
@media screen and (max-width: 414px) {
    #mv h1 {
        padding-left: 4vw;
    }
    .wow_block p {
        margin-bottom: 30px;
    }
    .contact_block img + img {
        top: 29.4vw;
    }
    .flow_block {
        margin: 0 auto 40px;
    }
}
@media screen and (max-width: 393px) {
    .rr_block .in .box .flex-box .detail ul.sub li {
        padding: 8px 1.5vw 10px;
    }
    .contact_block img + img {
        top: 30vw;
    }
}
@media screen and (max-width: 390px) {
    .swiper-slide .box h3 {
        font-size: 21px;
        font-weight: 800;
    }
    .swiper-slide .box h3 span {
        font-size: 21px;
        font-weight: 800;
    }
    .rr_block .in .box .flex-box .detail ul.sub li {
        font-size: 4.4vw;
        padding: 8px 1.6vw 10px;
    }
    .rr_block .in .box .flex-box .detail ul.sub li span {
        font-size: 2.9vw;
    }
    .flow_block h2 span:first-child {
        padding: 7px 4.2vw 10px 3vw;
    }
    .flow_block .box .text h3 {
        font-size: 6.6vw;
    }
    .flow_block .box .text p a {
        display: block;
    }
    .contact_block img + img {
        top: 30.2vw;
    }
    .contact_block img {
        top: 14.7vw;
    }
    /* Safari */
    _::-webkit-full-page-media, _:future, :root .contact_block img {
        top: 14.3vw;
    }
    footer .in {
        padding: 10vw 8.7vw 27vw;
    }
    #fix-menu .telfo .free a {
        padding: 13px 0 15px 0;
    }
    #fix-menu .telfo .form a {
        padding: 13px 0 15px 6vw;
    }
}
@media screen and (max-width: 375px) {
    #mv h1 {
        padding-left: 4.5vw;
    }
    .work_block {
        padding: 25px 15px 50px;
    }
    .rr_block .in .box .flex-box .detail ul.sub li {
        font-size: 4.2vw;
        padding: 8px 1.72vw 10px;
    }
    .merit_block {
        margin: 0 auto 50px;
        padding-bottom: 50px;
    }
    .wow_block {
        padding: 50px 20px 55px;
    }
    .flow_block .box .text h3 {
        font-size: 6.6vw;
    }
    .contact_block {
        padding: 0 15px;
        background-position: left 6vw bottom 65px, right 4vw bottom 65px;
        background-size: 19vw auto, 24vw auto;
        margin: 0 auto 55px;
    }
    .contact_block img + img {
        top: 30.5vw;
    }
    .contact_block .btn a {
        line-height: 65px;
        height: 65px;
    }
    .msg_block {
        margin: 0 auto 50px;
    }
    #fix-menu .telfo .form a span:first-child::before {
        top: 4.8vw;
    }
}
@media screen and (max-width: 360px) {
    #mv h1 {
        padding-left: 5vw;
    }
    .merit_block .in {
        padding: 0 15px;
    }
    .wow_block {
        padding: 40px 15px 50px;
    }
    .wow_block .flex-box:last-child .box ul li {
        font-size: 16px;
        padding-left: 18px;
    }
    .wow_block .flex-box:last-child .box ul li::before {
        top: 4px;
    }
    .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
        margin: 0 12px;
    }
    .teacher_block {
        padding: 35px 15px 85px;
    }
    .swiper-button-prev {
        left: -10px;
    }
    .swiper-button-next {
        right: -10px;
    }
    .rr_block {
        padding: 0 15px;
    }
    .rr_block h2 {
        margin-bottom: 20px;
    }
    .rr_block .in .box .flex-box .detail ul.sub li {
        font-size: 4.6vw;
    }
    .area_block .in, .msg_block .in {
        padding: 0 15px;
    }
    .contact_block img + img {
        top: 31.4vw;
    }
    #fix-menu .telfo .form a span:first-child::before {
        top: 5.2vw;
    }
}
@media screen and (max-width: 344px) {
    .swiper-slide .box h3 {
        margin-bottom: 12px;
    }
    .swiper-slide .box h3 span {
        font-size: 18px;
        font-weight: 700;
        display: block;
        padding-right: 0;
        margin-bottom: 5px;
    }
    .rr_block .in .box .flex-box .detail ul.sub li {
        font-size: 4.5vw;
    }
    .rr_block .in .box#ex + p {
        font-size: 18px;
        text-indent: -18px;
        padding-left: 18px;
    }
    .contact_block img + img {
        top: 32vw;
    }
}
@media screen and (max-width: 320px) {
    .flow_block .box .text h3 {
        font-size: 6.4vw;
    }
    .swiper-slide .box img {
        width: 200px;
    }
    .rr_block .in .box .flex-box .detail ul.sub li span {
        font-size: 2.95vw;
    }
    .contact_block img + img {
        top: 33.1vw;
    }
    .contact_block .btn a::after {
        width: 4.5vw;
        height: 4.5vw;
        border-top: 1.5vw solid #fff;
        border-right: 1.5vw solid #fff;
    }
    .contact_block img + img {
        top: 33.1vw;
    }
    .contact_block .btn a::after {
        width: 4.5vw;
        height: 4.5vw;
        border-top: 1.5vw solid #fff;
        border-right: 1.5vw solid #fff;
    }
    #fix-menu .telfo .form a span:first-child::before {
        top: 5.5vw;
    }
    #fix-menu #pageTop {
        bottom: 20vw;
    }
}
@media screen and (max-width: 280px) {
    html {
        scroll-padding-top: 60px;
    }
    .merit_block .flex-box .box {
        padding: 11vw 15px 40px;
    }
    .flow_block .box .text h3 {
        font-size: 7.5vw;
        margin-top: -3.5vw;
    }
    .flow_block .box:nth-child(3) .num {
        padding-top: 0;
    }
    .flow_block .box:last-child .text h3 {
        margin-top: 0;
    }
    .wow_block .flex-box:last-child {
        padding: 20px 15px 30px;
    }
    .rr_block .in .box .flex-box .detail p {
        font-size: 6vw;
    }
    .rr_block .in .box .flex-box .detail ul.sub li {
        font-size: 5.2vw;
    }
    .contact_block h2 {
        margin-left: -2vw;
        margin-right: -2vw;
    }
    .contact_block img + img {
        top: 35.5vw;
    }
}