.p-free__problem {
    max-width: var(--wrap-max);
    margin-inline: auto;
    padding: 10.667vw 0 0;
    background: var(--color-bg-taupe);
    font-family: var(--font-jp);
    text-align: center;
}
.p-free__problem__liner {
    padding: 0 6.667vw;
}
.p-free__problem-lead {
    color: var(--color-text);
    font-weight: 500;
    font-size: 2vw;
}
.p-free__problem-lead-mark {
    position: relative;
    z-index: 0;
    color: #5e5e5e;
    font-size: 4.667vw;
    font-weight: 400;
    line-height: 1;
}
.p-free__problem-lead-mark::before {
    position: absolute;
    content: '';
    background: url(../svg/line01.svg) no-repeat center;
    width: 48vw;
    height: 2.133vw;
    left: 50%;
    transform: translateX(-50%);
    bottom: 0;
    z-index: -1;
}
.p-free__problem-ttl {
    margin-top: 3.733vw;
    color: #5e5e5e;
    font-weight: 700;
    font-size: 6vw;
    line-height: 1;
}
.p-free__problem-ttl-mark {
    background: var(--color-yellow);
    display: inline-block;
}
.p-free__problem-lst {
    margin-top: 4.8vw;
}
.p-free__problem-item {
    margin-bottom: 2.667vw;
    padding: 2.933vw 1.767vw 2.933vw 1.767vw;
    background: #fff;
    border-radius: 12px;
    color: #5e5e5e;
    font-weight: 400;
    font-size: 4vw;
    line-height: 1.533;
    text-align: center;
    font-feature-settings: 'palt';
    letter-spacing: 0.05em;
}
.p-free__problem-lst li:nth-child(4),
.p-free__problem-lst li:nth-child(5) {
    padding: 2.533vw 2.667vw 2.533vw 3.067vw;
}
.p-free__problem-item:last-child {
    margin-bottom: 0;
}
.p-free__problem-item-mark {
    background: linear-gradient(transparent 78%, #f9e78b 78%);
    font-weight: 400;
}
.p-free__problem-photo {
    margin-top: 4.267vw;
}
.p-free__problem-photo img {
    width: 100%;
    height: auto;
    display: block;
}
.p-free__support {
    position: relative;
    max-width: var(--wrap-max);
    margin-inline: auto;
    padding: 4.8vw 0 0;
    background: #fff;
    font-family: var(--font-jp);
    text-align: center;
}
.p-free__support::before {
    content: "";
    display: block;
    width: 0;
    height: 0;
    margin: 0 auto 5.067vw;
    border-left: 8.133vw solid transparent;
    border-right: 8.133vw solid transparent;
    border-top: 4.533vw solid #43a857;
}
.p-free__support-lead {
    color: #5e5e5e;
    font-weight: 400;
    font-size: 4vw;
    line-height: 1;
}
.p-free__support-ttl {
    margin-top: 1.067vw;
    color: #43a857;
    font-weight: 700;
    font-size: 4.533vw;
    line-height: 1.3;
}
.p-free__support-ttl.p-free--fz {
    font-size: 6.267vw;
}
.p-free__support-txt {
    margin-top: 2.133vw;
    color: #5e5e5e;
    font-weight: 400;
    font-size: 4.4vw;
    line-height: 1.515;
}
.p-free__support-txt strong {
    color: #43a857;
    font-weight: 500;
    font-size: 4.933vw;
    line-height: 1.351;
}
.p-free__support-photo {
    margin-top: 3.2vw;
}
.p-free__support-photo img {
    width: 100%;
    height: auto;
    display: block;
}
.p-free__result {
    max-width: var(--wrap-max);
    margin-inline: auto;
    padding: 15.733vw 6.667vw 13.333vw;
    background: #f5f2ea;
    font-family: var(--font-jp);
    text-align: center;
}
.p-free__result-hdg img {
    width: 100%;
    max-width: 86.4vw;
    height: auto;
    margin-inline: auto;
    display: block;
}
.p-free__result-lst {
    margin-top: 5.733vw;
}
.p-free__result-item {
    position: relative;
    margin-top: 14.4vw;
}
.p-free__result-item:first-child {
    margin-top: 0;
}
.p-free__result-icon {
    position: absolute;
    top: -9.333vw;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 14.667vw;
    height: 14.667vw;
    background: var(--color-gold);
    border-radius: 50%;
}
.p-free__result-lst li:nth-child(1) .p-free__result-icon img {
    width: 8.133vw;
    height: auto;
}
.p-free__result-lst li:nth-child(2) .p-free__result-icon img {
    width: 10vw;
    height: auto;
}
.p-free__result-lst li:nth-child(3) .p-free__result-icon img {
    width: 9.6vw;
    height: auto;
}
.p-free__result-card {
    overflow: hidden;
    border-radius: 30px;
    box-shadow: 0 7px 20px rgb(112 88 16 / .2);
}
.p-free__result-num-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.067vw;
    text-align: left;
}
.p-free__result-item:nth-child(3) .p-free__result-num-row {
    align-items: baseline;
}
.p-free__result-lbl {
    color: #fff;
    font-weight: 700;
    font-size: 5.6vw;
    font-feature-settings: 'palt';
}
.p-free__result-lbl > span {
    font-size: 4.267vw;
}
.p-free__result-num {
    height: auto;
    width: 32vw;
}
.p-free__result-compare img {
    height: auto;
    width: 20.133vw;
}
.p-free__result-ttl {
    padding: 5.467vw 4vw 4vw 5.733vw;
    background: var(--color-green-dark);
}
.p-free__result-item:nth-child(3) .p-free__result-ttl {
    padding: 5.067vw 4vw 3.2vw 5.333vw;
}
.p-free__result-compare {
    display: flex;
    align-items: center;
    gap: 1.067vw;
    text-align: left;
    margin-top: 1.333vw;
}
.p-free__result-compare-lbl {
    display: flex;
    flex: 1 1 auto;
    align-items: center;
    min-width: 0;
    color: #d7e8c7;
    font-weight: 700;
    font-size: 2.933vw;
    white-space: nowrap;
}
.p-free__result-compare-lbl::after {
    content: "";
    flex: 1 1 auto;
    min-width: 2.133vw;
    height: 0.267vw;
    margin-left: 2.133vw;
    margin-right: 0.8vw;
    margin-top: 0.667vw;
    background-image: repeating-linear-gradient(to right, #d7e8c7 0 0.267vw, transparent 0.267vw 0.533vw);
}
.p-free__result-body {
    padding: 4.8vw 0 4.133vw;
    background: #fff;
    text-align: left;
}
.p-free__result-item:nth-child(3) .p-free__result-body {
    padding: 4.8vw 0 7.733vw;
}
.p-free__result-body-ttl {
    color: var(--color-green-dark);
    font-weight: 700;
    font-size: 4.667vw;
    line-height: 1;
    text-align: center;
    font-feature-settings: 'palt';
    letter-spacing: 0.025em;
}
.p-free__result-body-txt {
    margin-top: 2.133vw;
    color: #5e5e5e;
    font-weight: 400;
    font-size: 4vw;
    line-height: 1.667;
    padding: 0 4vw;
    font-feature-settings: 'palt';
    letter-spacing: 0.05em;
}
.p-free__result-body-txt strong {
    color: var(--color-green-dark);
    font-weight: 700;
}
.p-free__attention-list li {
    padding: 0 4vw;
}
.p-free__result-annotation {
    margin-top: 1.6vw;
    color: var(--color-muted);
    font-weight: 500;
    font-size: 2.667vw;
    position: relative;
    line-height: 1.2;
    padding-left: 3em;
}
.p-free__result-annotation > span {
    position: absolute;
    left: 0;
    z-index: 9;
}
.p-free__result .p-free__note {
    margin-top: 8vw;
}
.p-free__features {
    max-width: var(--wrap-max);
    margin-inline: auto;
    padding: 10.4vw 6.667vw 12.533vw;
    background: #43a857;
    font-family: var(--font-jp);
    text-align: center;
}
.p-free__features-arch {
    width: 17.733vw;
    height: 8.267vw;
    margin-inline: auto;
    background: url("/freeschool/svg/features_arch.svg") no-repeat center / contain;
}
.p-free__features-lead {
    margin-top: 2.667vw;
    color: #fff;
    font-weight: 500;
    font-size: 6vw;
    line-height: 1;
}
.p-free__features-ttl {
    margin-top: 2.133vw;
    color: #fff;
    font-weight: 700;
    font-size: 8.667vw;
    line-height: 1;
}
.p-free__features-card {
    position: relative;
    margin-top: 8vw;
    padding: 8vw;
    background: url(../img/brown_bg.png);
    background-image: image-set(url("../webp/brown_bg.webp") 1x, url("../img/brown_bg.png") 1x);
    border-radius: 50px;
    box-shadow: 0 0 24px rgba(0, 0, 0, .05);
}
.p-free__features-icon {
    position: absolute;
    top: -4.267vw;
    left: 1.067vw;
    width: 17.733vw;
    height: 21.467vw;
}
.p-free__features-hdg {
    font-family: var(--font-jp-maru);
    color: #43a857;
    font-weight: 700;
    font-size: 6.667vw;
    line-height: 1.4;
    letter-spacing: -0.05em;
}
.p-free__features-group {
    margin-top: 7.733vw;
    padding-top: 8.4vw;
    position: relative;
}
.p-free__features-group::before {
    position: absolute;
    content: "";
    top: 0;
    height: 0.267vw;
    width: 100%;
    left: 0;
    background-image: repeating-linear-gradient(to right, #5db16a 0 0.267vw, transparent 0.267vw 0.533vw);
    z-index: 9;
}
.p-free__features-card > .p-free__features-group:first-of-type {
    margin-top: 4.267vw;
    padding-top: 5.6vw;
}
.p-free__features-card > .p-free__features-group:nth-of-type(3) {
    margin-top: 10.667vw;
    padding-top: 8.267vw;
}
.p-free__features-tag {
    font-family: var(--font-jp-maru);
    display: inline-flex;
    align-items: center;
    gap: 0.853vw;
    background: var(--color-yellow);
    color: #43a857;
    font-weight: 700;
    font-size: 5.333vw;
    line-height: 1;
    height: 5.333vw;
}
.p-free__features-card > .p-free__features-group:first-of-type .p-free__features-tag {
    padding: 0 1.333vw 0 0.8vw;
    align-items: end;
    gap: 1.733vw;
}
.p-free__features-card > .p-free__features-group:nth-of-type(2) .p-free__features-tag {
    padding: 0 2.133vw 0 1.333vw;
    align-items: end;
    gap: 2.267vw;
}
.p-free__features-card > .p-free__features-group:nth-of-type(3) .p-free__features-tag {
    padding: 0 1.867vw 0 0.933vw;
    align-items: end;
    gap: 1.333vw;
    margin: 0 -4vw;
}
.p-free__features-group .is-letterspace {
    letter-spacing: -0.25em;
    display: contents;
}
.p-free__features-card > .p-free__features-group:nth-of-type(2) .p-free__features-way-lst {
    margin-top: 4vw;
}
.p-free__features-tag i {
    font-size: 2.4vw;
}
.p-free__features-photo {
    margin-top: 2.667vw;
}
.p-free__features-photo img {
    width: 100%;
    height: auto;
    display: block;
}
.p-free__features-sub {
    font-family: var(--font-jp-maru);
    position: relative;
    margin-top: 3.733vw;
    color: #43a857;
    font-weight: 700;
    font-size: 4.4vw;
    line-height: 1.333;
}
.p-free__features-card > .p-free__features-group:nth-of-type(3) .p-free__features-sub {
    margin: 3.733vw -4vw 0;
    letter-spacing: -0.04em;
}
.p-free__features-txt {
    margin-top: 2.133vw;
    color: #5e5e5e;
    font-weight: 400;
    font-size: 4vw;
    line-height: 1.667;
    text-align: left;
}
.p-free__features-way-lst {
    margin-top: 2.667vw;
}
.p-free__features-way-item {
    margin-bottom: 5.333vw;
    overflow: hidden;
}
.p-free__features-way-item:last-child {
    margin-bottom: 0;
}
.p-free__features-way-item .p-free__features-photo {
    margin-top: 0;
}
.p-free__features-way-item .p-free__features-photo img {
    border-radius: 0;
}
.p-free__features-way-body {
    padding: 2.4vw 2.667vw 2.667vw;
    background: #fff;
    text-align: left;
}
.p-free__features-way-num {
    font-family: var(--font-jp-maru);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2vw;
    color: var(--color-green-dark);
    font-weight: 700;
    font-size: 4.4vw;
    line-height: 1;
}
.p-free__features-way-num img {
    width: 5.333vw;
    height: 5.6vw;
}
.p-free__features-way-txt {
    margin-top: 0.267vw;
    color: #333333;
    font-weight: 400;
    font-size: 4vw;
    line-height: 1.467;
}
.p-free__system {
    max-width: var(--wrap-max);
    margin-inline: auto;
    padding: 0 6.667vw 14.4vw;
    background: #43a857;
}
.p-free__system-inner {
    padding: 7.333vw 8vw 10.667vw;
    background: #fff;
    text-align: center;
    font-family: var(--font-jp);
    background: #fff url(../img/memo_bg.png) repeat-x top left / 100% auto;
    background-image: image-set(url("../webp/memo_bg.webp") 1x, url("../img/memo_bg.png") 1x);
}
.p-free__system-ttl {
    color: #009978;
    font-weight: 900;
    font-size: 6.667vw;
    line-height: 1.5;
    position: relative;
    z-index: 0;
}
.p-free__system-lst {
    margin-top: 5.333vw;
}
.p-free__system-ttl-mark {
    background: url(../svg/system_ttl_num.svg) no-repeat center / contain;
    color: transparent;
    line-height: 1;
    position: relative;
    font-size: 9.333vw;
}
.p-free__system-ttl-mark::before {
    position: absolute;
    content: '';
    background: url(../svg/circle.svg) no-repeat center / contain;
    width: 17.733vw;
    height: 14.4vw;
    left: -3.467vw;
    top: 0;
    z-index: -1;
}
.p-free__system-item {
    margin-bottom: 8vw;
    overflow: hidden;
    border-radius: 4vw;
    box-shadow: 0 0.533vw 1.333vw rgb(0 0 0 / .08);
    text-align: left;
}
.p-free__system-item:last-child {
    margin-bottom: 0;
}
.p-free__system-hdr {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2vw;
    padding: 1.333vw 2.667vw;
    background: var(--color-teal);
    line-height: 1;
}
.p-free__system-hdr-ttl {
    color: #fff;
    font-weight: 700;
    font-size: 5.333vw;
}
.p-free__system-hdr img {
    width: 8vw;
    height: auto;
}
.p-free__system-photo img {
    width: 100%;
    height: auto;
    display: block;
}
.p-free__system-body {
    padding: 4.667vw 2.667vw 5.333vw;
    background: #fff;
    text-align: center;
}
.p-free__system-sub {
    position: relative;
    background: url("/freeschool/svg/system_line01.svg") no-repeat left calc(100% + 0.133vw) / contain;
    color: #009978;
    font-weight: 700;
    font-size: 4.4vw;
    line-height: 1.333;
    display: inline-block;
}
.p-free__system-txt {
    margin-top: 1.6vw;
    color: #5e5e5e;
    font-weight: 400;
    font-size: 4vw;
    line-height: 1.667;
    text-align: left;
}
.p-free__system-txt .is-green {
    color: #009978;
}
/* ===== 日々の様子（p-free__daily） ===== */
.p-free__daily {
    padding: 13.333vw 0 17.067vw;
    background: url(../img/daily_bg.png) no-repeat center / cover;
    background-image: image-set(url("../webp/daily_bg.webp") 1x, url("../img/daily_bg.png") 1x);
    text-align: center;
    overflow: hidden;
    max-width: var(--wrap-max);
    margin-inline: auto;
}
.p-free__daily-ttl img {
    margin-inline: auto;
    display: block;
    margin-bottom: 3.733vw;
    width: 54.4vw;
    height: auto;
}
.p-free__daily-txt .line {
    background: var(--color-orange);
    color: #fff;
    font-weight: 500;
    font-size: 4.4vw;
    line-height: 1.697;
    line-height: 1;
    margin-bottom: 1.2vw;
    display: inline-block;
    font-feature-settings: 'palt';
    padding: 0.933vw 0 1.067vw;
}
.p-free__daily-txt .line:nth-child(1) {
    padding-inline: 2.4vw;
}
.p-free__daily-txt .line:nth-child(2) {
    padding-inline: 2.933vw 1.333vw;
}
.p-free__daily-txt .line:nth-child(3) {
    padding-inline: 1.867vw;
}
.p-free__daily-txt .line:last-child {
    margin-bottom: 0;
}
.p-free__daily-slider {
    --daily-slide-w: 74.667vw;
    position: relative;
}
.p-free__daily-slider .splide__track {
    overflow: hidden;
    padding-block: 4vw;
}
.p-free__daily-slider .splide__list {
    display: flex;
}
.p-free__daily-slider .splide__slide {
    overflow: hidden;
    border-radius: 16px;
    box-shadow: 10px 10px 7px rgb(0 0 0 / .2);
}
.p-free__daily-img {
    width: var(--daily-slide-w);
}
.p-free__daily-slider .splide__slide img {
    background: #f5f2ea;
    width: 100%;
    height: auto;
    display: block;
}
.p-free__daily-slider .splide__arrows {
    position: absolute;
    top: 50%;
    left: calc(50% - var(--daily-slide-w) / 2);
    right: calc(50% - var(--daily-slide-w) / 2);
    display: flex;
    align-items: center;
    justify-content: space-between;
    transform: translateY(-50%);
    z-index: 1;
}
.p-free__daily-slider .splide__arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 10.667vw;
    height: 10.667vw;
    background: #fc9347;
    border-radius: 50%;
    opacity: 1;
    transition: all 0.4s;
}
.p-free__daily-slider .splide__arrow--prev {
    left: -7.333vw;
    right: auto;
    transform: translateY(-50%);
}
.p-free__daily-slider .splide__arrow--next {
    left: auto;
    right: -7.333vw;
    transform: translateY(-50%);
}
.p-free__daily-slider .splide__arrow img {
    width: 4vw;
    height: 4vw;
}
.p-free__daily-slider .splide__arrow:disabled {
    opacity: .4;
}
.splide__arrow:hover:not(:disabled) {
    opacity: 1;
}
/* ===== 生徒・保護者の声（p-free__voice） ===== */
.p-free__voice {
    max-width: var(--wrap-max);
    margin-inline: auto;
    padding: 12vw 3.333vw 10.667vw;
    background: #fff url(../img/memo_bg02.png);
    font-family: var(--font-jp);
    text-align: center;
}
.p-free__voice-hdg img {
    margin-inline: auto;
    display: block;
    margin-bottom: 2.8vw;
    width: 67.2vw;
    height: auto;
}
.p-free__voice-lead {
    color: #5e5e5e;
    font-weight: 700;
    font-size: 5.333vw;
    font-feature-settings: 'palt';
    line-height: 1;
}
.p-free__voice-ttl {
    margin-top: 2.4vw;
    color: #5e5e5e;
    font-weight: 700;
    font-size: 6.667vw;
    font-feature-settings: 'palt';
    line-height: 1;
}
.p-free__voice-lst {
    margin-top: 4vw;
}
.p-free__voice-item {
    position: relative;
    margin-top: 10.667vw;
}
.p-free__voice-item:first-child {
    margin-top: 0;
}
.p-free__voice-icon {
    position: absolute;
    inset-block-start: 0;
    inset-inline-end: 1rem;
    display: block;
    right: -2.667vw;
    top: -8.8vw;
    width: 24.533vw;
    height: 24.533vw;
}
.p-free__voice-icon img {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
}
.p-free__voice-card {
    padding: 6.667vw 2.667vw 6.533vw;
    border: 4px solid #43a857;
    border-radius: 16px;
    text-align: left;
    background: #fff;
}
.p-free__voice-quote {
    padding-right: 9.6vw;
    color: var(--color-green-dark);
    font-weight: 700;
    font-size: 4.667vw;
    line-height: 1.417;
}
.p-free__voice-tags {
    display: flex;
    gap: 1.067vw;
    margin-top: 2.133vw;
}
.p-free__voice-tag {
    display: inline-flex;
    align-items: center;
    width: 16.533vw;
    height: 5.867vw;
    justify-content: center;
    border-radius: 999px;
    font-weight: 700;
    font-size: 3.733vw;
    line-height: 1;
}
.p-free__voice-tag--student {
    background: var(--color-green-dark);
    color: #fff;
}
.p-free__voice-tag--parent {
    background: #fff;
    border: 1px solid var(--color-green-dark);
    color: var(--color-green-dark);
}
.p-free__voice-tag--grade {
    background: var(--color-amber);
    color: #fff;
}
.p-free__voice-tag--high {
    background: #e5794f;
    color: #fff;
}
.p-free__voice-txt {
    margin-top: 0.8vw;
    color: #5e5e5e;
    font-weight: 400;
    font-size: 3.733vw;
    line-height: 1.679;
    font-feature-settings: 'palt';
    letter-spacing: 0.04em;
}
.p-free__voice-txt strong {
    color: var(--color-green-dark);
    font-weight: 700;
}
.p-free__voice .p-free__note {
    margin-top: 6.4vw;
}
/* ===== キャンパス一覧（p-free__campus） ===== */
.p-free__campus {
    background: #fff;
    max-width: var(--wrap-max);
    margin-inline: auto;
}
.p-free__campus-hero {
    padding: 7.067vw 0 5.733vw;
    background-image: url("/freeschool/img/campus_bg.jpg?2");
    background-image: image-set(url("/freeschool/webp/campus_bg.webp?2") 1x, url("/freeschool/img/campus_bg.jpg?2") 1x);
    background-size: cover;
    background-position: center;
    text-align: center;
}
.p-free__campus-hero-ttl {
    color: #fff;
    font-weight: 700;
    font-size: 6.667vw;
    line-height: 1.76;
    text-shadow: 0 0 16px rgb(0 0 0 / .6);
}
.p-free__campus-inner {
    max-width: var(--wrap-max);
    margin-inline: auto;
    padding: 3.467vw 6.667vw 2.667vw;
    font-family: var(--font-jp);
}
.p-free__campus-txt {
    color: #333333;
    font-weight: 400;
    font-size: 4vw;
    line-height: 1.667;
}
.p-free__campus-lst {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4.133vw 2.267vw;
    margin-top: 3.2vw;
}
.p-free__campus-btn {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 316 / 162;
    padding: 0;
    border-radius: 10px;
    overflow: hidden;
}
.p-free__campus-btn picture {
    position: absolute;
    inset: 0;
}
.p-free__campus-btn img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: all 0.4s;
}
.p-free__campus-btn::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: rgb(0 0 0 / .4);
}
.p-free__campus-btn::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    width: 9.6vw;
    height: 8.933vw;
    background: #43a857;
    clip-path: polygon(0 0, 100% 0, 0 100%);
    opacity: .8;
}
.p-free__campus-name {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-weight: 700;
    font-size: 5.067vw;
    text-shadow: 0 0 35px rgb(0 0 0 / .7);
}
.p-free__campus-name--sp {
    letter-spacing: .5em;
    padding-left: .5em;
}
.p-free__campus-item {
    width: 42.133vw;
    height: 21.6vw;
}
/* ===== キャンパスモーダル（p-free__campus-modal） ===== */
.p-free__campus-modal {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 100000;
    align-items: center;
    justify-content: center;
    padding: 3.2vw;
    background: rgb(0 0 0 / .6);
    overflow-y: auto;
}
.p-free__campus-modal.is-open {
    display: flex;
}
body.is-modal-open {
    overflow: hidden;
}
.p-free__campus-modal-panel {
    position: relative;
    width: 100%;
    max-width: 86.667vw;
    margin: auto;
    padding: 8.5vw 5.333vw;
    background: #fff;
    border-radius: 20px;
    box-shadow: 10px 10px 0 var(--color-mint-soft);
    font-family: var(--font-jp);
}
.p-free__campus-modal-scroll {
    height: 100%;
    overflow-y: auto;
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.p-free__campus-modal-scroll::-webkit-scrollbar {
    display: none;
}
.p-free__campus-modal-close {
    position: absolute;
    top: 1vw;
    right: 1vw;
    width: 8vw;
    height: 8vw;
}
.p-free__campus-modal-close::before,
.p-free__campus-modal-close::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 5.733vw;
    height: 0.4vw;
    background: var(--color-mint);
    border-radius: 2px;
}
.p-free__campus-modal-close::before {
    transform: translate(-50%, -50%) rotate(45deg);
}
.p-free__campus-modal-close::after {
    transform: translate(-50%, -50%) rotate(-45deg);
}
.p-free__campus-modal-photo img {
    width: 100%;
    height: auto;
    border-radius: 12px;
    display: block;
}
.p-free__campus-modal-name {
    margin-top: 3.2vw;
    padding-bottom: 1.6vw;
    border-bottom: 2px solid var(--color-mint);
    color: var(--color-text);
    font-weight: 700;
    font-size: 3vh;
}
.p-free__campus-modal-block {
    margin-top: 2.667vw;
}
.p-free__campus-modal-lbl {
    color: var(--color-mint);
    font-weight: 700;
    font-size: 2.2vh;
}
.p-free__campus-modal-txt {
    margin-top: 0.533vw;
    color: var(--color-text);
    font-weight: 700;
    font-size: 1.8vh;
    line-height: 1.5;
}
.p-free__campus-modal-txt:empty {
    display: none;
}
.p-free__campus-modal-txt + .p-free__campus-modal-txt {
    margin-top: 1.333vw;
}
/* ===== オンライン相談（p-free__online） ===== */
.p-free__online {
    max-width: var(--wrap-max);
    margin-inline: auto;
    padding: 0 4vw 13.867vw;
    background: #fff;
    font-family: var(--font-jp);
    text-align: center;
}
.p-free__online-arw {
    display: flex;
    justify-content: center;
}
.p-free__online-arw img {
    width: auto;
    height: 15.467vw;
}
.p-free__online-lead {
    margin-top: 3.733vw;
}
.p-free__online-lead-mark {
    padding: 0 0.667vw;
    background: #d7e8c7;
    color: #5e5e5e;
    font-weight: 400;
    font-size: 5.2vw;
    line-height: 1;
    font-feature-settings: 'palt';
    display: inline-block;
    padding-bottom: 0.4vw;
}
.p-free__online-badge {
    margin-top: 4.533vw;
}
.p-free__online-badge img {
    margin-inline: auto;
    width: 29.2vw;
    height: auto;
}
.p-free__online-ttl {
    position: relative;
    margin-top: 0.4vw;
    padding-bottom: 3.067vw;
    background: url("/freeschool/svg/line01.svg") no-repeat left 3.467vw bottom 0 / 81.867vw auto;
    color: #43a857;
    font-weight: 700;
    font-size: 6vw;
    line-height: 1;
    font-feature-settings: 'palt';
    margin-bottom: 1.067vw;
}
.p-free__online-ttl .is-fz {
    font-size: 4.8vw;
}
.p-free__online-block {
    display: flex;
    gap: 2.267vw;
    text-align: left;
}
.p-free__online-photo {
    flex-shrink: 0;
    width: 40%;
}
.p-free__online-photo img {
    width: 100%;
    height: auto;
    border-radius: 12px;
    display: block;
}
.p-free__online-txt {
    color: #43a857;
    font-weight: 400;
    font-size: 4vw;
    line-height: 1.667;
    font-feature-settings: 'palt';
    letter-spacing: 0.05em;
    padding-top: 4.533vw;
}
.p-free__online-card {
    position: relative;
    margin-top: 4vw;
    padding: 7.067vw 4.467vw 4.8vw;
    border: 4px solid var(--color-green-dark);
    border-radius: 19px;
    text-align: left;
}
.p-free__online-card-badge {
    position: absolute;
    inset-block-start: 0;
    inset-inline-start: 50%;
    transform: translate(-50%, -50%);
    white-space: nowrap;
}
.p-free__online-card-badge img {
    height: auto;
}
.p-free__online-card-item {
    display: flex;
    align-items: center;
    gap: 1.333vw;
    margin-bottom: 2.667vw;
    color: #5e5e5e;
    font-weight: 500;
    font-size: 4.533vw;
    line-height: 1.294;
}
.p-free__online-card-item:last-child {
    margin-bottom: 0;
}
.p-free__online-check {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 5.867vw;
    height: 5.867vw;
    background: var(--color-green-dark);
    border-radius: 50%;
}
.p-free__online-check img {
    width: 3.733vw;
    height: auto;
}
/* ===== 入学までの流れ（p-free__flow） ===== */
.p-free__flow {
    padding: 10.667vw 7.2vw 13.333vw;
    background: var(--color-bg-mint);
    max-width: var(--wrap-max);
    margin-inline: auto;
    font-family: var(--font-jp);
}
.p-free__flow-ttl {
    color: #43a857;
    font-weight: 700;
    font-size: 6.667vw;
    line-height: 1.32;
    text-align: center;
}
.p-free__flow-lst {
    position: relative;
    margin-top: 2.933vw;
}
.p-free__flow-lst::after {
    content: "";
    position: absolute;
    z-index: 0;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 7.467vw;
    background: linear-gradient(#43a857 0%,#009978 100%);
    transform: translateX(-50%);
}
.p-free__flow-item:not(:last-child) {
    padding-bottom: 5.333vw;
}
.p-free__flow-card {
    position: relative;
    z-index: 1;
    padding: 5.067vw 3.067vw 5.333vw 14.267vw;
    background: #fff;
    border-radius: 20px;
    box-shadow: 0 4px 24px rgb(0 0 0 / .05);
    text-align: left;
}
.p-free__flow-badge {
    position: absolute;
    top: 2.133vw;
    left: -2.267vw;
    width: 13.6vw;
    height: auto;
}
.p-free__flow-hdg {
    color: #43a857;
    font-weight: 700;
    font-size: 4.667vw;
    font-feature-settings: 'palt';
    line-height: 1;
}
.p-free__flow-txt {
    margin-top: 1.067vw;
    color: #5e5e5e;
    font-weight: 400;
    font-size: 4vw;
    line-height: 1.467;
    font-feature-settings: 'palt';
}
/* ===== よくある質問（p-free__faq） ===== */
.p-free__faq {
    max-width: var(--wrap-max);
    margin-inline: auto;
    padding: 13.333vw 3.333vw 15.467vw;
    background: #fff;
    font-family: var(--font-jp);
    text-align: center;
}
.p-free__faq-ttl-mark {
    color: #5e5e5e;
    font-weight: 700;
    font-size: 6.667vw;
    display: inline-block;
    padding: 0 1.6vw 0 1.333vw;
    line-height: 1;
    position: relative;
    z-index: 0;
}
.p-free__faq-ttl-mark::before {
    position: absolute;
    content: '';
    background: #fde462;
    width: 100%;
    height: 1.733vw;
    left: 0;
    bottom: -0.4vw;
    z-index: -1;
}
.p-free__faq-lst {
    margin-top: 5.333vw;
    text-align: left;
}
.p-free__faq-item {
    padding: 5.333vw 0 5.467vw;
    border-top: 3px solid #e2e2e2;
}
.p-free__faq-item:last-child {
    border-bottom: 3px solid #e2e2e2;
}
.p-free__faq-q {
    position: relative;
    display: flex;
    gap: 1.6vw;
    align-items: start;
    width: 100%;
    padding-right: 9.867vw;
    text-align: left;
}
.p-free__faq-q-ttl {
    margin-top: -0.667vw;
    color: #43a857;
    font-weight: 500;
    font-size: 5.333vw;
    line-height: 1.3;
}
.p-free__faq-q-icon {
    width: 5.333vw;
    height: auto;
}
.p-free__faq-q::before {
    position: absolute;
    content: "";
    width: 5.067vw;
    height: 3.067vw;
    right: 2.4vw;
    top: 50%;
    transform: translateY(-50%);
    background: url("/freeschool/svg/faq_arw.svg") no-repeat center / contain;
    z-index: 9;
    transition: transform .2s ease;
}
.p-free__faq-q[aria-expanded="true"]::before {
    transform: translateY(-50%) rotate(180deg);
}
.p-free__faq-a {
    margin-top: 1.6vw;
    color: #333333;
    font-weight: 400;
    font-size: 4vw;
    line-height: 1.467;
    padding: 0 2.667vw 0 6.933vw;
}
/* ===== お問い合わせ（p-free__contact） ===== */
.p-free__contact {
    max-width: var(--wrap-max);
    margin-inline: auto;
    padding: 0 3.2vw 11.2vw;
    font-family: var(--font-jp);
    text-align: center;
}
.p-free__contact-ttl-mark {
    color: var(--color-text);
    font-weight: 700;
    font-size: 6.667vw;
    display: inline-block;
    line-height: 1;
    position: relative;
    z-index: 0;
}
.p-free__contact-ttl-mark::before {
    position: absolute;
    content: '';
    background: var(--color-yellow);
    width: 100%;
    height: 1.733vw;
    left: 0;
    bottom: -0.4vw;
    z-index: -1;
}
.reqFlow_lst {
    overflow: hidden;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    margin-bottom: 2.667vw;
}
.reqFlow_lst > li {
    width: 13.333vw;
    height: 4vw;
    box-sizing: border-box;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    text-align: center;
    border-top: 1px solid #d4d4d4;
    border-bottom: 1px solid #d4d4d4;
    background: #fff;
    color: #d3d3d3;
    z-index: 2;
    position: relative;
}
.reqFlow_lst > li .txt {
    margin: 0;
}
.reqFlow_lst > li:last-child {
    border-right: none;
}
.reqFlow_lst > li.is-on {
    background: var(--color-mint);
    color: #fff;
    border-right-color: transparent;
}
.reqRead_txt {
    margin-top: 4vw;
    color: var(--color-text);
    text-align: center;
    line-height: 1.8;
    font-weight: 500;
    font-size: 5.4vw;
    margin-bottom: 9.333vw;
}
.request_in {
    overflow: hidden;
    transition: height .4s cubic-bezier(.645, .045, .355, 1);
    background: #fff;
    position: relative;
    border-radius: 15px;
    box-shadow: 0 0 6px 5px rgba(0, 0, 0, 0.01);
    padding: 4vw 2vw 6.667vw;
}
.reqForm_wrap {
    position: relative;
    left: 0;
    display: -webkit-flex;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    align-items: flex-start;
    transition: .4s cubic-bezier(.645, .045, .355, 1);
}
.reqForm_in {
    flex: 0 0 100%;
    min-width: 100%;
    box-shadow: 0 0 6px 5px rgb(0 0 0 / .01);
    box-sizing: border-box;
    background: #fff;
    position: relative;
    width: 100%;
    border-radius: 15px;
    padding: 6.133vw 2.667vw 6.667vw;
}
.reqForm_box {
    display: block;
    margin-top: 4vw;
}
.reqForm_in > .reqForm_box:first-child {
    margin-top: 0;
}
.reqForm_box .ttl {
    color: var(--color-text);
    text-align: left;
    line-height: 1.6;
    font-weight: 700;
    box-sizing: border-box;
    position: relative;
    font-size: 4.8vw;
    width: 100%;
    margin-bottom: 2.667vw;
}
.reqForm_box .his {
    top: 0.267vw;
    right: 9.333vw;
    z-index: 1;
    justify-content: center;
    font-weight: 700;
    color: #fff;
    background: #01c69a;
    box-sizing: border-box;
    display: inline-block;
    position: static;
    transform:none;
    text-align: center;
    width: 8vw;
    height: 4.267vw;
    font-size: 3.2vw;
    border-radius: 6px;
    padding-top: 0.4vw;
    margin-left: 1em;
    line-height: 1;
}
.reqForm_box .add {
    font-weight: 500;
    display: inline-block;
    font-size: 3.6vw;
    line-height: 1.6;
    margin-top: 0;
}
.reqForm_box .box {
    line-height: 1.6;
    font-weight: 500;
    box-sizing: border-box;
    font-size: 2.6vw;
    width: 100%;
}
.reqForm_box input[type="text"],
.reqForm_box input[type="tel"],
.reqForm_box select,
.reqForm_box textarea {
    width: 100%;
    height: 9.333vw;
    padding: 0 1.333vw;
    border: 1px solid #d4d4d4;
    border-radius: 3px;
    color: var(--color-text);
    font-family: inherit;
    font-size: max(16px, 4vw);
    font-weight: 500;
    line-height: 1;
    box-sizing: border-box;
    outline-color: #01c69a;
}
.reqForm_box select {
    background: #fff url(../svg/entry_arw.svg) no-repeat right 1.867vw center / 16px auto;
}
.reqForm_box textarea {
    height: 22vw;
    padding: 1.6vw;
    line-height: 1.6;
    resize: none;
}
.reqForm_box .addtxt {
    text-align: left;
    display: block;
    font-weight: 400;
    margin-top: 2.133vw;
    font-size: 3.6vw;
    line-height: 1.4;
}
.com_ppbox {
    box-sizing: border-box;
    overflow-y: scroll;
    border: 1px solid #d4d4d4;
    background: #fff;
    width: 100%;
    height: 22vw;
    padding: 1.6vw;
    margin-bottom: 5.067vw;
}
.ppin-ttl {
    color: var(--color-text);
    font-weight: 400;
    text-align: center;
    font-size: 3.6vw;
    line-height: 1.8;
    width: 100%;
    margin-bottom: 1.6vw;
}
.ppin .txt {
    color: var(--color-text);
    font-weight: 400;
    font-size: 2.4vw;
    line-height: 1.8;
}
.ppin .txt a {
    text-decoration: underline;
}
.is-center {
    margin-top: 2.133vw;
    color: var(--color-text);
    font-weight: 500;
    font-size: 2.6vw;
    text-align: center;
}
.reqFormBtn_wrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    flex-flow: column-reverse;
    margin-top: 6.667vw;
}
.reqForm-btn,
.c-btn {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 64vw;
    height: 9.333vw;
    margin: 0 auto;
    border-radius: 100vh;
    color: #fff;
    font-weight: 700;
    font-size: 3.6vw;
    line-height: 1;
    box-sizing: border-box;
    transition: opacity .2s ease-out, all .2s ease-out;
}
.reqForm-btn::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 2.4vw;
    width: 2.133vw;
    height: 2.133vw;
    background-color: #fff;
    mask-image: url("/freeschool/svg/ct_arw_rg.svg");
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    -webkit-mask-image: url("/freeschool/svg/ct_arw_rg.svg");
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    transform: translateY(-50%);
}
.reqForm-btn.is-back {
    max-width: 20vw;
    margin-top: 2.667vw;
}
.reqForm-btn.is-back::before {
    right: auto;
    left: 2.4vw;
    transform: translateY(-50%) rotate(180deg);
}
.c-btn {
    background: var(--color-orange);
}
/* ===== フッター（p-free__footer） ===== */
.p-free__footer {
    padding: 3.733vw 3.2vw 8vw;
    border-top: 1px solid #e2e2e2;
    font-family: var(--font-jp);
    text-align: center;
}
.p-free__footer-logo {
    margin-inline: auto;
}
.p-free__footer-logo img {
    margin-inline: auto;
    width: 38.133vw;
    height: auto;
}
.p-free__footer-txt {
    margin-top: 4.667vw;
    color: #000;
    font-weight: 400;
    font-size: 3.2vw;
    line-height: 1.4;
}
.p-free__footer-gakken {
    margin: 1.067vw auto 0;
    display: block;
    width: 40vw;
    height: auto;
}
.f_copy {
    margin-top: 7.467vw;
    font-weight: 500;
    font-size: 2.933vw;
    color: #000;
}

.request_wrap {
    background: #fbfbfb;
    position: relative;
    padding: 4.533vw 2.667vw 9.333vw;
}

.reqFlow_lst li {
    width: 18.667vw;
    height: 6.667vw;
    box-sizing: border-box;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    text-align: center;
    border-top: 1px solid #d4d4d4;
    border-bottom: 1px solid #d4d4d4;
    background: #fff;
    color: #d3d3d3;
    z-index: 2;
    position: relative;
}
.reqFlow_lst li:first-child {
    border-left: 1px solid #d4d4d4;
}
.reqFlow_lst li:last-child {
    border-right: 1px solid #d4d4d4;
}
.reqFlow_lst li.is-on {
    border: 1px solid #01c69a;
    background: #01c69a;
    color: #fff;
}
.reqFlow_lst li:before {
    content: none;
    display: block;
    width: 8.267vw;
    height: 0.267vw;
    position: absolute;
    right: -8.533vw;
    top: 50%;
    margin-top: -0.133vw;
    background: #d4d4d4;
    z-index: 1;
}
.reqFlow_lst li:last-child:before {
    content: none;
}
.reqFlow_lst .txt {
    line-height: 1.4;
    font-weight: 700;
    font-size: 1.6vw;
}
.reqFlow_lst .txt span {
    width: 100%;
    display: block;
    font-size: 3.2vw;
}

.reqForm_box:first-child {
    margin-top: 0;
}

.reqForm_box .addtxt.is-inline {
    display: block;
    padding-left: 0;
}
.reqForm_box .addtxt.is-inline.is-ver2 {
    margin: 0;
    vertical-align: middle;
    margin-top: .4em;
}
.reqForm_box .lst.is-ver1 {
    padding-top: 1.6vw;
    text-align: left;
}
.reqForm_box .is-center {
    margin: 0 auto;
    font-size: 3.467vw;
}
select[name="hopedate"] + select[name="hopetime"] {
    margin-left: 4%;
}

.com_ppbox .ttl {
    font-weight: 400;
    text-align: center;
    margin-bottom: 2em;
    font-size: 2.133vw;
    line-height: 1.8;
}
.com_ppbox .txt {
    font-weight: 400;
    font-size: 2.667vw;
    line-height: 1.8;
}
.com_ppbox .txt a {
    text-decoration: underline;
}
.error {
    color: #c10303;
    margin-top: .6em;
    font-weight: 500;
    text-align: left;
    font-size: 2.933vw;
}
/*part*/
fieldset {
    border: none;
}
legend {
    display: none;
}
label {
    cursor: pointer;
}
label input[type="radio"],
label input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    outline-color: #01c69a;
}
label input[type="radio"] + span,
label input[type="checkbox"] + span {
    position: relative;
    display: inline-block;
    padding-left: 6.133vw;
    font-size: 4.533vw;
    font-weight: 500;
    line-height: 1.4;
    box-sizing: border-box;
}
label input[type="radio"] + span {
    line-height: 1;
}
label input[type="checkbox"] + span:before {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    border: 1px solid #d4d4d4;
    box-sizing: border-box;
    top: 1.6vw;
    width: 3.467vw;
    height: 3.467vw;
}
label input[type="radio"] + span:before {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 0;
    border-radius: 50%;
    border: 1px solid #d4d4d4;
    box-sizing: border-box;
    width: 1.867vw;
    height: 1.867vw;
}
label input[type="checkbox"] + span:after {
    display: block;
    position: absolute;
    border-bottom: 0.533vw solid #21977d;
    border-right: 0.533vw solid #21977d;
    transform: rotate(40deg);
    box-sizing: border-box;
    top: -0.267vw;
    left: 0.267vw;
    width: 2.4vw;
    height: 4.267vw;
}
label input[type="radio"] + span:after {
    display: block;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    border-radius: 50%;
    background: #21977d;
    box-sizing: border-box;
    left: 0.4vw;
    width: 1.067vw;
    height: 1.067vw;
}
label input[type="radio"]:checked + span:before,
label input[type="checkbox"]:checked + span:before {
    border: 1px solid #01c69a;
    /*background: #01c69a;
    */;
}
label input[type="radio"]:checked + span:after,
label input[type="checkbox"]:checked + span:after {
    content: "";
}
input[type=text],
input[type=tel],
input[type=email],
input[type=date],
input[type=number] {
    padding: 0;
    border: none;
    border-radius: 0;
    background: none;
    box-sizing: border-box;
    outline-color: #01c69a;
}
select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    border: none;
    box-sizing: border-box;
    outline-color: #01c69a;
    padding-right: 2.667vw;
    background: #fff url(../svg/entry_arw.svg) no-repeat right 1.067vw center / 12px auto;
}
textarea {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    resize: none;
    border: 0;
    background: transparent;
    box-sizing: border-box;
    outline-color: #01c69a;
    line-height: 1.6;
    height: 22vw;
    padding: 1.6vw;
}
select,
input[type=text],
input[type=tel],
input[type=email],
input[type=date],
input[type=number],
textarea {
    background: #fff;
    border: 1px solid #d4d4d4;
    width: 100%;
    height: 5.867vw;
    font-size: 2.133vw;
    font-weight: 500;
    line-height: 1;
    padding: 0 1.867vw;
    border-radius: 3px;
}

/* 20260224 */
.request_in.is-ver2 {
    background: none;
    border-radius: 0px;
    box-shadow: none;
    position: static;
    padding: 0;
    overflow: hidden;
}

.reqForm-btn {
    width: 100%;
    box-sizing: border-box;
    max-width: 64vw;
    height: 9.333vw;
    margin: 0 auto;
}
.reqFormBtn_wrap .c-btn {
    background: none;
    margin: 0 auto;
}
.reqFormBtn_wrap .c-btn button {
    margin: auto;
    width: 100%;
    height: 100%;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    background: #5cbea3;
    color: #fff;
    border-radius: 100vh;
    font-size: 2.4vw;
    font-weight: bold;
    line-height: 1;
    text-decoration: none;
    position: relative;
    box-shadow: 0 4px 0 0 #4da38b;
    box-sizing: border-box;
    max-width: 64vw;
    height: 9.333vw;
    transition: opacity .2s ease-out, all .2s ease-out;
}
.reqFormBtn_wrap .c-btn button::before {
    content: '';
    display: block;
    width: 3.2vw;
    height: 3.2vw;
    position: absolute;
    right: 3.2vw;
    top: 50%;
    transform: translateY(-50%);
    background: url(../svg/c-btn_arw.svg) no-repeat center / 100% auto;
    z-index: 1;
}
.reqFormBtn_wrap .c-btn button > span {
    font-size: 3.467vw;
}
.reqForm-btn.is-prv {
    max-width: 24vw;
    margin-top: 5.333vw;
}
.reqForm-btn a {
    width: 100%;
    height: 100%;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    background: #5cbea3;
    color: #fff;
    border-radius: 100vh;
    font-weight: bold;
    line-height: 1;
    text-decoration: none;
    position: relative;
    box-shadow: 0 4px 0 0 #4da38b;
    box-sizing: border-box;
    transition: opacity .2s ease-out, all .2s ease-out;
    margin-top: 0;
    font-size: 3.467vw;
}
.reqForm-btn.is-disabled a {
    margin-top: 0.533vw;
    pointer-events: none;
    cursor: default !important;
    outline: 0 !important;
    background: #cccccc;
    box-shadow: none;
}
.reqForm-btn.is-prv a {
    outline: 0 !important;
    background: #cccccc;
    box-shadow: 0 4px 0 0 #9c9c9c;
}
.reqForm-btn a:before {
    content: '';
    display: block;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: url(../svg/c-btn_arw.svg) no-repeat center / 100% auto;
    z-index: 1;
    width: 3.2vw;
    height: 3.2vw;
    right: 2.4vw;
}
.reqForm-btn.is-prv a:before {
    right: auto;
    transform: none;
    translate: 0 -50%;
    rotate: 180deg;
    left: 2.4vw;
}
.reqForm-btn a span {
    display: inline-block;
    position: relative;
    z-index: 3;
}
.reqForm_box .box .is-hope {
    display: block;
}
.reqForm_box .box .is-hope .terms-top {
    display: flex;
}
.reqForm_box .box .is-hope .terms-btm {
    margin-left: 0;
    margin-top: 2.667vw;
}
.reqForm_box .box .is-hope select {
    padding: 0 4vw 0 1.6vw;
    padding-right: 3.467vw;
    background: #fff url(../svg/entry_arw.svg) no-repeat right 1.067vw center / 2.667vw auto;
}
@media (min-width: 751px) {
    .p-free__problem {
        padding: 80px 0 0;
    }
    .p-free__problem__liner {
        padding: 0 50px;
    }
    .p-free__problem-lead {
        font-size: 15px;
    }
    .p-free__problem-lead-mark {
        font-size: 35px;
    }
    .p-free__problem-lead-mark::before {
        width: 360px;
        height: 16px;
    }
    .p-free__problem-ttl {
        margin-top: 28px;
        font-size: 45px;
    }
    .p-free__problem-lst {
        margin-top: 36px;
    }
    .p-free__problem-item {
        margin-bottom: 20px;
        padding: 22px 14px 22px 15px;
        font-size: 30px;
    }
    .p-free__problem-lst li:nth-child(4),
    .p-free__problem-lst li:nth-child(5) {
        padding: 19px 20px 19px 23px;
    }
    .p-free__problem-photo {
        margin-top: 2rem;
    }
    .p-free__support {
        padding: 36px 0 0;
    }
    .p-free__support::before {
        margin: 0 auto 38px;
        border-left: 61px solid transparent;
        border-right: 61px solid transparent;
        border-top: 34px solid #43a857;
    }
    .p-free__support-lead {
        font-size: 30px;
    }
    .p-free__support-ttl {
        margin-top: .5rem;
        font-size: 34px;
    }
    .p-free__support-ttl.p-free--fz {
        font-size: 47px;
    }
    .p-free__support-txt {
        margin-top: 1rem;
        font-size: 33px;
    }
    .p-free__support-txt strong {
        font-size: 37px;
    }
    .p-free__support-photo {
        margin-top: 1.5rem;
    }
    .p-free__result {
        padding: 118px 50px 100px;
    }
    .p-free__result-hdg img {
        max-width: 648px;
    }
    .p-free__result-lst {
        margin-top: 43px;
    }
    .p-free__result-item {
        margin-top: 108px;
    }
    .p-free__result-icon {
        top: -70px;
        width: 110px;
        height: 110px;
    }
    .p-free__result-lst li:nth-child(1) .p-free__result-icon img {
        width: 61px;
    }
    .p-free__result-lst li:nth-child(2) .p-free__result-icon img {
        width: 75px;
    }
    .p-free__result-lst li:nth-child(3) .p-free__result-icon img {
        width: 72px;
    }
    .p-free__result-num-row {
        gap: .5rem;
    }
    .p-free__result-lbl {
        font-size: 42px;
    }
    .p-free__result-lbl > span {
        font-size: 32px;
    }
    .p-free__result-num {
        width: 240px;
    }
    .p-free__result-compare img {
        width: 151px;
    }
    .p-free__result-ttl {
        padding: 41px 30px 30px 43px;
    }
    .p-free__result-item:nth-child(3) .p-free__result-ttl {
        padding: 38px 30px 24px 40px;
    }
    .p-free__result-compare {
        gap: .5rem;
        margin-top: 10px;
    }
    .p-free__result-compare-lbl {
        font-size: 22px;
    }
    .p-free__result-compare-lbl::after {
        min-width: 1rem;
        height: 2px;
        margin-left: 16px;
        margin-right: 6px;
        margin-top: 5px;
        background-image: repeating-linear-gradient(to right, #d7e8c7 0 2px, transparent 2px 4px);
    }
    .p-free__result-body {
        padding: 36px 0 31px;
    }
    .p-free__result-item:nth-child(3) .p-free__result-body {
        padding: 36px 0 58px;
    }
    .p-free__result-body-ttl {
        font-size: 35px;
    }
    .p-free__result-body-txt {
        margin-top: 16px;
        font-size: 30px;
        padding: 0 30px;
    }
    .p-free__attention-list li {
        padding: 0 30px;
    }
    .p-free__result-annotation {
        margin-top: .75rem;
        font-size: 20px;
    }
    .p-free__result .p-free__note {
        margin-top: 60px;
    }
    .p-free__features {
        padding: 78px 50px 94px;
    }
    .p-free__features-arch {
        width: 133px;
        height: 62px;
    }
    .p-free__features-lead {
        margin-top: 20px;
        font-size: 45px;
    }
    .p-free__features-ttl {
        margin-top: 16px;
        font-size: 65px;
    }
    .p-free__features-card {
        margin-top: 60px;
        padding: 60px;
    }
    .p-free__features-icon {
        top: -32px;
        left: 8px;
        width: 133px;
        height: 161px;
    }
    .p-free__features-hdg {
        font-size: 50px;
    }
    .p-free__features-group {
        margin-top: 58px;
        padding-top: 63px;
    }
    .p-free__features-group::before {
        height: 2px;
        background-image: repeating-linear-gradient(to right, #5db16a 0 2px, transparent 2px 4px);
    }
    .p-free__features-card > .p-free__features-group:first-of-type {
        margin-top: 32px;
        padding-top: 42px;
    }
    .p-free__features-card > .p-free__features-group:nth-of-type(3) {
        margin-top: 80px;
        padding-top: 62px;
    }
    .p-free__features-tag {
        gap: .4rem;
        font-size: 40px;
        height: 40px;
    }
    .p-free__features-card > .p-free__features-group:first-of-type .p-free__features-tag {
        padding: 0 10px 0 6px;
        gap: 13px;
    }
    .p-free__features-card > .p-free__features-group:nth-of-type(2) .p-free__features-tag {
        padding: 0 16px 0 10px;
        gap: 17px;
    }
    .p-free__features-card > .p-free__features-group:nth-of-type(3) .p-free__features-tag {
        padding: 0 14px 0 7px;
        gap: 10px;
        margin: 0 -30px;
    }
    .p-free__features-card > .p-free__features-group:nth-of-type(2) .p-free__features-way-lst {
        margin-top: 30px;
    }
    .p-free__features-tag i {
        font-size: 1.125rem;
    }
    .p-free__features-photo {
        margin-top: 1.25rem;
    }
    .p-free__features-sub {
        margin-top: 28px;
        font-size: 33px;
    }
    .p-free__features-card > .p-free__features-group:nth-of-type(3) .p-free__features-sub {
        margin: 28px -30px 0;
    }
    .p-free__features-txt {
        margin-top: 16px;
        font-size: 30px;
    }
    .p-free__features-way-lst {
        margin-top: 1.25rem;
    }
    .p-free__features-way-item {
        margin-bottom: 40px;
    }
    .p-free__features-way-body {
        padding: 18px 20px 20px;
    }
    .p-free__features-way-num {
        gap: 15px;
        font-size: 33px;
    }
    .p-free__features-way-num img {
        width: 40px;
        height: 42px;
    }
    .p-free__features-way-txt {
        margin-top: 2px;
        font-size: 30px;
    }
    .p-free__system {
        padding: 0 50px 108px;
    }
    .p-free__system-inner {
        padding: 55px 60px 80px;
    }
    .p-free__system-ttl {
        font-size: 50px;
    }
    .p-free__system-lst {
        margin-top: 40px;
    }
    .p-free__system-ttl-mark {
        font-size: 70px;
    }
    .p-free__system-ttl-mark::before {
        width: 133px;
        height: 108px;
        left: -26px;
    }
    .p-free__system-item {
        margin-bottom: 60px;
        border-radius: 30px;
        box-shadow: 0 4px 10px rgb(0 0 0 / .08);
    }
    .p-free__system-hdr {
        gap: 15px;
        padding: 10px 1.25rem;
    }
    .p-free__system-hdr-ttl {
        font-size: 40px;
    }
    .p-free__system-hdr img {
        width: 60px;
        height: auto;
    }
    .p-free__system-body {
        padding: 35px 20px 40px;
    }
    .p-free__system-sub {
        background: url("/freeschool/svg/system_line01.svg") no-repeat left calc(100% + 1px) / contain;
        font-size: 33px;
    }
    .p-free__system-txt {
        margin-top: .75rem;
        font-size: 30px;
    }
    .p-free__daily {
        padding: 100px 0 128px;
    }
    .p-free__daily-ttl img {
        margin-bottom: 28px;
        width: 408px;
        height: auto;
    }
    .p-free__daily-txt .line {
        font-size: 33px;
        margin-bottom: 9px;
        padding: 7px 0 8px;
    }
    .p-free__daily-txt .line:nth-child(1) {
        padding-inline: 18px;
    }
    .p-free__daily-txt .line:nth-child(2) {
        padding-inline: 22px 10px;
    }
    .p-free__daily-txt .line:nth-child(3) {
        padding-inline: 14px;
    }
    .p-free__daily-slider {
        --daily-slide-w: 560px;
    }
    .p-free__daily-slider .splide__track {
        padding-block: 30px;
    }
    .p-free__daily-slider .splide__arrow {
        width: 80px;
        height: 80px;
    }
    .p-free__daily-slider .splide__arrow--prev {
        left: -55px;
    }
    .p-free__daily-slider .splide__arrow--next {
        right: -55px;
    }
    .p-free__daily-slider .splide__arrow img {
        width: 30px;
        height: 30px;
    }
    .splide__arrow:hover:not(:disabled) {
        opacity: 0.8;
    }
    .p-free__voice {
        padding: 90px 25px 80px;
    }
    .p-free__voice-hdg img {
        margin-bottom: 21px;
        width: 504px;
    }
    .p-free__voice-lead {
        font-size: 40px;
    }
    .p-free__voice-ttl {
        margin-top: 18px;
        font-size: 50px;
    }
    .p-free__voice-lst {
        margin-top: 30px;
    }
    .p-free__voice-item {
        margin-top: 80px;
    }
    .p-free__voice-icon {
        right: -20px;
        top: -66px;
        width: 184px;
        height: 184px;
    }
    .p-free__voice-card {
        padding: 50px 20px 49px;
    }
    .p-free__voice-quote {
        padding-right: 4.5rem;
        font-size: 35px;
    }
    .p-free__voice-tags {
        gap: .5rem;
        margin-top: 16px;
    }
    .p-free__voice-tag {
        width: 124px;
        height: 44px;
        font-size: 28px;
    }
    .p-free__voice-txt {
        margin-top: 6px;
        font-size: 28px;
    }
    .p-free__voice .p-free__note {
        margin-top: 3rem;
    }
    .p-free__campus-hero {
        padding: 53px 0 43px;
    }
    .p-free__campus-hero-ttl {
        font-size: 50px;
    }
    .p-free__campus-inner {
        padding: 26px 50px 20px;
    }
    .p-free__campus-txt {
        font-size: 30px;
    }
    .p-free__campus-lst {
        gap: 31px 17px;
        margin-top: 1.5rem;
    }
    .p-free__campus-btn::after {
        width: 72px;
        height: 67px;
    }
    .p-free__campus-btn:hover img {
        transform: scale(1.2);
    }
    .p-free__campus-name {
        font-size: 38px;
    }
    .p-free__campus-item {
        width: 316px;
        height: 162px;
    }
    .p-free__campus-modal {
        padding: 1.5rem;
    }
    .p-free__campus-modal-panel {
        max-width: 650px;
        padding: 60px 40px;
    }
    .p-free__campus-modal-close {
        top: 0.625rem;
        right: 0.625rem;
        width: 2.5rem;
        height: 2.5rem;
    }
    .p-free__campus-modal-close::before,
.p-free__campus-modal-close::after {
        width: 28px;
        height: 3px;
    }
    .p-free__campus-modal-name {
        margin-top: 1.5rem;
        padding-bottom: .75rem;
        font-size: 26px;
    }
    .p-free__campus-modal-block {
        margin-top: 1.25rem;
    }
    .p-free__campus-modal-lbl {
        font-size: 18px;
    }
    .p-free__campus-modal-txt {
        margin-top: 4px;
        font-size: 16px;
    }
    .p-free__campus-modal-txt + .p-free__campus-modal-txt {
        margin-top: 10px;
    }
    .p-free__online {
        padding: 0 30px 104px;
    }
    .p-free__online-arw img {
        height: 116px;
    }
    .p-free__online-lead {
        margin-top: 28px;
    }
    .p-free__online-lead-mark {
        padding: 0 5px;
        font-size: 39px;
        padding-bottom: 3px;
    }
    .p-free__online-badge {
        margin-top: 34px;
    }
    .p-free__online-badge img {
        width: 219px;
    }
    .p-free__online-ttl {
        margin-top: 3px;
        padding-bottom: 23px;
        background: url("/freeschool/svg/line01.svg") no-repeat left 26px bottom 0 / 614px auto;
        font-size: 45px;
        margin-bottom: 8px;
    }
    .p-free__online-ttl .is-fz {
        font-size: 36px;
    }
    .p-free__online-block {
        gap: 17px;
    }
    .p-free__online-txt {
        font-size: 30px;
        padding-top: 34px;
    }
    .p-free__online-card {
        margin-top: 30px;
        padding: 53px 41px 36px;
    }
    .p-free__online-card-item {
        gap: 10px;
        margin-bottom: 20px;
        font-size: 34px;
    }
    .p-free__online-check {
        width: 44px;
        height: 44px;
    }
    .p-free__online-check img {
        width: 28px;
    }
    .p-free__flow {
        padding: 80px 54px 100px;
    }
    .p-free__flow-ttl {
        font-size: 50px;
    }
    .p-free__flow-lst {
        margin-top: 22px;
    }
    .p-free__flow-lst::after {
        width: 56px;
    }
    .p-free__flow-item:not(:last-child) {
        padding-bottom: 40px;
    }
    .p-free__flow-card {
        padding: 38px 23px 40px 107px;
    }
    .p-free__flow-badge {
        top: 16px;
        left: -17px;
        width: 102px;
    }
    .p-free__flow-hdg {
        font-size: 35px;
    }
    .p-free__flow-txt {
        margin-top: 8px;
        font-size: 30px;
    }
    .p-free__faq {
        padding: 100px 25px 116px;
    }
    .p-free__faq-ttl-mark {
        font-size: 50px;
        padding: 0 12px 0 10px;
    }
    .p-free__faq-ttl-mark::before {
        height: 13px;
        bottom: -3px;
    }
    .p-free__faq-lst {
        margin-top: 40px;
    }
    .p-free__faq-item {
        padding: 40px 0 41px;
        transition: all 0.4s;
    }
    .p-free__faq-q::after {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        top: -40px;
        bottom: -41px;
        z-index: -1;
    }
    .p-free__faq-q[aria-expanded="true"]::after {
        bottom: 0;
    }
    .p-free__faq-q:hover {
        text-decoration: underline;
        color: #43a857;
    }
    .p-free__faq-q {
        gap: 12px;
        padding-right: 74px;
    }
    .p-free__faq-q-ttl {
        margin-top: -5px;
        font-size: 40px;
    }
    .p-free__faq-q-icon {
        width: 40px;
    }
    .p-free__faq-q::before {
        width: 38px;
        height: 23px;
        right: 18px;
    }
    .p-free__faq-a {
        margin-top: .75rem;
        font-size: 30px;
        padding: 0 20px 0 52px;
    }
    .p-free__contact {
        padding: 0 24px 84px;
    }
    .p-free__contact-ttl-mark {
        font-size: 50px;
    }
    .p-free__contact-ttl-mark::before {
        height: 13px;
        bottom: -3px;
    }
    .reqFlow_lst {
        margin-bottom: 20px;
    }
    .reqFlow_lst > li {
        width: 100px;
        height: 30px;
    }
    .reqRead_txt {
        margin-top: 30px;
        font-size: 40.5px;
        margin-bottom: 70px;
    }
    .request_in {
        padding: 30px 15px 50px;
    }
    .reqForm_in {
        padding: 46px 20px 50px;
    }
    .reqForm_box {
        margin-top: 30px;
    }
    .reqForm_box .ttl {
        font-size: 36px;
        margin-bottom: 20px;
    }
    .reqForm_box .his {
        top: 2px;
        right: 70px;
        width: 60px;
        height: 32px;
        font-size: 24px;
        padding-top: 3px;
    }
    .reqForm_box .add {
        font-size: 27px;
    }
    .reqForm_box .box {
        font-size: 30px;
    }
    .reqForm_box input[type="text"],
    .reqForm_box input[type="tel"],
    .reqForm_box select,
    .reqForm_box textarea {
        height: 70px;
        padding: 0 10px;
        font-size: 30px;
    }
    .reqForm_box select {
        background:#fff url(../svg/entry_arw.svg) no-repeat right 14px center / 16px auto;
    }
    .reqForm_box textarea {
        height: 165px;
        padding: 12px;
    }
    .reqForm_box .addtxt {
        margin-top: 16px;
        font-size: 27px;
    }
    .com_ppbox {
        height: 165px;
        padding: 12px;
        margin-bottom: 38px;
    }
    .ppin-ttl {
        font-size: 27px;
        margin-bottom: 12px;
    }
    .ppin .txt {
        font-size: 18px;
    }
    .is-center {
        margin-top: 1rem;
        font-size: 1.21875rem;
    }
    .reqFormBtn_wrap {
        margin-top: 50px;
    }
    .reqForm-btn,
    .c-btn {
        max-width: 480px;
        height: 70px;
        font-size: 27px;
    }
    .reqForm-btn::before {
        right: 18px;
        width: 16px;
        height: 16px;
    }
    .reqForm-btn.is-back {
        max-width: 150px;
        margin-top: 20px;
    }
    .reqForm-btn.is-back::before {
        left: 18px;
    }
    .p-free__footer {
        padding: 28px 24px 60px;
    }
    .p-free__footer-logo img {
        width: 286px;
    }
    .p-free__footer-txt {
        margin-top: 35px;
        font-size: 24px;
    }
    .p-free__footer-gakken {
        margin: 8px auto 0;
        width: 300px;
    }
    .f_copy {
        margin-top: 56px;
        font-size: 22px;
    }
    .request_wrap {
        padding: 34px 20px 70px;
    }
    .request_wrap:before {
        top: -2px;
        height: 10px;
    }
    .reqFlow_lst li {
        width: 140px;
        height: 50px;
    }
    .reqFlow_lst li:before {
        width: 62px;
        height: 2px;
        right: -64px;
        margin-top: -1px;
    }
    .reqFlow_lst .txt {
        font-size: 12px;
    }
    .reqFlow_lst .txt span {
        font-size: 24px;
    }
    .reqForm_box .lst.is-ver1 {
        padding-top: 12px;
    }
    .reqForm_box .is-center {
        font-size: 26px;
    }
    .com_ppbox .ttl {
        font-size: 16px;
    }
    .com_ppbox .txt {
        font-size: 20px;
    }
    .error {
        font-size: 22px;
    }
    label input[type="radio"] + span,
    label input[type="checkbox"] + span {
        padding-left: 32px;
        font-size: 16px;
    }
    label input[type="checkbox"] + span:before {
        top: 12px;
        width: 26px;
        height: 26px;
    }
    label input[type="radio"] + span:before {
        width: 14px;
        height: 14px;
    }
    label input[type="checkbox"] + span:after {
        top: -2px;
        left: 2px;
        width: 18px;
        height: 32px;
        border-bottom: 4px solid #21977d;
        border-right: 4px solid #21977d;
    }
    label input[type="radio"] + span:after {
        left: 3px;
        width: 8px;
        height: 8px;
    }
    select {
        padding-right: 20px;
        background:#fff url(../svg/entry_arw.svg) no-repeat right 8px center / 12px auto;
    }
    textarea {
        height: 165px;
        padding: 12px;
    }
    select,
input[type=text],
input[type=tel],
input[type=email],
input[type=date],
input[type=number],
textarea {
        height: 44px;
        font-size: 16px;
        padding: 0 14px;
    }
    .reqForm-btn {
        max-width: 480px;
        height: 70px;
    }
    .reqFormBtn_wrap .c-btn button {
        font-size: 18px;
        max-width: 480px;
        height: 70px;
    }
    .reqFormBtn_wrap .c-btn button::before {
        width: 24px;
        height: 24px;
        right: 24px;
    }
    .reqFormBtn_wrap .c-btn button > span {
        font-size: 26px;
    }
    .reqForm-btn.is-prv {
        max-width: 180px;
        margin-top: 40px;
    }
    .reqForm-btn a {
        font-size: 26px;
    }
    .reqForm-btn.is-disabled a {
        margin-top: 4px;
    }
    .reqForm-btn a:before {
        width: 24px;
        height: 24px;
        right: 18px;
    }
    .reqForm-btn.is-prv a:before {
        left: 18px;
    }
    .reqForm_box .box .is-hope .terms-btm {
        margin-top: 20px;
    }
    .reqForm_box .box .is-hope select {
        padding: 0 30px 0 12px;
        padding-right: 26px;
        background: #fff url(../svg/entry_arw.svg) no-repeat right 8px center / 20px auto;
    }
    .p-free__contact-ttl {
        margin-bottom: 30px;
    }
    .reqForm_box .lst.is-ver1,
    .reqForm_box .lst.is-ver2 {
        margin-top: -10px;
    }
    .reqForm_box .lst.is-ver1 li,
    .reqForm_box .lst.is-ver2 li {
        margin-top: 16px;
    }
    label input[type="radio"] + span,
    label input[type="checkbox"] + span {
        padding-left: 46px;
        font-size: 34px;
    }
    select,
    input[type=text],
    input[type=tel],
    input[type=email],
    input[type=date],
    input[type=number],
    textarea {
        height: 30px;
        font-size: 13px;
        padding: 0 10px;
    }
}
@media (max-width: 750px) {
    .p-free__feature-item picture {
        display: flex;
        align-items: center;
        justify-content: center;
        max-width: 100%;
        height: 100%;
    }
    .p-free__feature-item img {
        max-width: 100%;
        max-height: 100%;
        width: auto;
        height: auto;
    }
    .p-free__features-tag img {
        max-height: 100%;
        width: auto;
    }
    .l-header__logo img {
        width: 26.667vw;
        height: auto;
    }
    .l-header__tel img:nth-child(1) {
        width: 2.8vw;
        height: auto;
    }
    .l-header__tel img:nth-child(2) {
        width: 23.333vw;
        height: auto;
    }
}

@media (min-width: 896px) {
    .com_ppbox .txt a:hover {
        text-decoration: none;
    }
    .reqForm-btn a:hover {
        transform: translateY(4px);
        box-shadow: none;
    }
    .reqForm_box .box .is-hope select {
        cursor: pointer;
    }
    .reqFormBtn_wrap .c-btn button:hover {
        transform: translateY(4px);
        box-shadow: none;
    }
}
    .p-free__contact-ttl {
    margin-bottom: 4vw;
}
    .reqForm_box .lst {
    display: block;
    flex-wrap: wrap;
}
    .reqForm_box .lst.is-ver1,
    .reqForm_box .lst.is-ver2 {
    padding-top: 0;
    margin-top: -1.333vw;
}
    .reqForm_box .lst.is-ver1 li,
    .reqForm_box .lst.is-ver2 li {
    width: 100%;
    margin-top: 2.133vw;
    margin-right: 0;
}
    /*part*/
    select,
    input[type=text],
    input[type=tel],
    input[type=email],
    input[type=date],
    input[type=number],
    textarea {
    width: 100%;
    height: 4vw;
    font-size: 1.733vw;
    padding: 0 1.333vw;
    border-radius: 3px;
}
