@charset "utf-8";

.block-1159, .block-850, .block-600, .block-450 {
    display: none;
}


@media screen and (max-width: 1450px) {

    .inner {
        width: 90%;
    }

    .site-header__inner {
        padding: 0 40px;
        height: 80px;
    }

    .site-header__logo a {
        font-size: 28px;
    }

    .site-header__nav {
        margin-right: 32px;
    }

    .site-header__menu {
        gap: 40px;
    }

    .site-header__menu a {
        font-size: 16px;
    }

    .site-header__contact {
        width: 170px;
        height: 54px;
        font-size: 18px;
        padding: 0 20px;
    }



    .contact__cards {
        gap: 30px;
    }

    .contact-card {
        padding: 36px 40px;
        justify-content: center;
    }

    .contact-card__main {
        font-size: 50px;
    }

    .contact-card__mail {
        font-size: 28px;
    }

    .contact-card__icon {
        margin-right: 20px;
        width: 70px;
        height: 70px;
    }
}


@media screen and (max-width:1159px) {

    .block-1159 {
        display: block;
    }


    .firstview {
        height: 700px;
    }

    .fv-catch__1 {
        font-size: 26px;
        top: 140px;
        left: 60px;
    }

    .fv-catch__2 {
        font-size: 26px;
    }

    .fv-cloud {
        top: 110px;
        width: 24vw;
    }

    h1 {
        font-size: 30px;
        top: 50%;
    }

    h1 span {
        font-size: 75px;
    }

    .fv-img__right {
        bottom: 40px;
    }

    .fv-img__left {
        bottom: 80px;
    }

    h2 {
        font-size: 34px;
        margin: 0 auto 40px;
    }

    .worries-speech {
        padding: 30px 0 20px;
    }

    .worries-speech ul {
        font-size: 20px;
    }

    .worries-speech img {
        width: 50%;
    }

    .worries p {
        font-size: 22px;
    }

    .worries-catch {
        font-size: 26px !important;
        margin-top: 40px;
    }

    .contact__title {
        font-size: 44px;
    }

    .contact__lead {
        font-size: 28px;
    }

    .contact__cards {
        gap: 20px;
    }

    .contact-card {
        padding: 24px 20px;
    }

    .contact-card__icon {
        margin-right: 10px;
        width: 65px;
        height: 65px;
    }

    .contact-card__icon img {
        width: 50%;
    }

    .contact-card__main {
        font-size: 38px;
    }

    .contact-card__mail {
        font-size: 21px;
    }

    .contact-card__sub {
        margin-top: 5px;
        font-size: 14px;
    }

    .contact__catch {
        margin-top: 30px;
        font-size: 34px;
    }

    .map {
        height: 300px;
    }

    .schedule-card {
        padding: 35px 20px 32px;
    }

    .schedule-card__lists li {
        font-size: 18px;
    }

    .schedule-case__cards h3 {
        font-size: 28px;
    }

    .schedule-case__cards {
        margin: 50px auto 30px;
    }

    .feature-item+.feature-item {
        margin-top: 30px;
    }

    .class-card {
        gap: 40px;
        padding: 42px 30px;
    }

    .class-card__elementary img {
        width: 220px;
    }

    .class-card__junior-high img {
        width: 218px;
    }

    .class-card__row dt {
        font-size: 18px;
    }

    .class-card__row dd {
        font-size: 18px;
    }

    .price-table thead th {
        font-size: 22px;
    }

    .price-table tbody th {
        font-size: 22px;
    }

    .price-table td {
        font-size: 22px;
    }


    .footer__menu {
        gap: 30px;
    }

    .footer__menu a {
        font-size: 18px;
    }
}


@media screen and (max-width: 950px) {
    .site-header {
        width: calc(100% - 20px);
    }

    .site-header__inner {
        height: 78px;
        padding: 0 24px 0 40px;
        border-radius: 9999px;
    }

    .site-header__logo a {
        font-size: 28px;
        letter-spacing: 0.05em;
    }

    .site-header__nav,
    .site-header__contact {
        display: none;
    }

    .site-header__toggle {
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 10px;
        width: 44px;
        height: 44px;
        padding: 0;
        border: none;
        background: transparent;
        cursor: pointer;
        flex-shrink: 0;
        position: relative;
        z-index: 3;
    }

    .site-header__toggle span {
        display: block;
        width: 100%;
        height: 5px;
        background: #E88B3E;
        transition: transform 0.3s ease, opacity 0.3s ease;
    }

    .site-header__drawer {
        display: block;
        position: absolute;
        top: 88px;
        left: 0;
        width: 100%;
        background: #FFFBE3;
        border-radius: 30px;
        box-shadow: 0 8px 14px rgba(0, 0, 0, 0.18);
        padding: 24px 24px 28px;
        box-sizing: border-box;
        opacity: 0;
        visibility: hidden;
        transform: translateY(-10px);
        transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s ease;
    }

    .site-header__drawer-nav {
        width: 100%;
    }

    .site-header__drawer-menu {
        margin: 0;
        padding: 0;
        list-style: none;
    }

    .site-header__drawer-menu li+li {
        margin-top: 16px;
    }

    .site-header__drawer-menu a {
        display: block;
        color: #46423A;
        font-size: 18px;
        font-weight: 700;
        text-decoration: none;
        padding: 12px 0;
    }

    .site-header__drawer-menu a:hover {
        color: #E88B3E;
    }

    .site-header.is-open .site-header__drawer {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }

    .site-header.is-open .site-header__toggle span:nth-child(1) {
        transform: translateY(15px) rotate(45deg);
    }

    .site-header.is-open .site-header__toggle span:nth-child(2) {
        opacity: 0;
    }

    .site-header.is-open .site-header__toggle span:nth-child(3) {
        transform: translateY(-15px) rotate(-45deg);
    }


    .footer__inner {
        display: block;
    }

    .footer__logo {
        margin: 0 auto 10px;
        width: fit-content;
    }

    .footer__info {
        text-align: center;
    }


    .footer__right {
        margin-top: 50px;
    }

    .footer__menu {
        width: fit-content;
        margin: 0 auto;
    }

    .footer-instagram {
        margin: 30px auto 0;
    }




}


@media screen and (max-width:850px) {

    .display-pc {
        display: none !important;
    }

    .block-850 {
        display: block;
    }

    .inner {
        width: 90%;
    }

    h2 {
        font-size: 32px;
        margin: 0 auto 30px;
    }

    .section-title::before {
        width: 35px;
        height: 35px;
        margin: 0 auto 5px;
    }


    .firstview {
        height: 600px;
    }

    h1 {
        font-size: 20px;
    }

    h1 span {
        font-size: 60px;
    }

    .fv-catch__1 {
        font-size: 20px;
        /* top: 140px;
        left: 60px; */
    }

    .fv-img__right {
        bottom: 90px;
        width: 42vw;
    }

    .fv-img__left {
        width: 36vw;
        bottom: 100px;
    }

    .fv-catch__2 {
        font-size: 19px;
    }


    .worries {
        padding: 60px 0 70px;
    }

    .worries-speech ul {
        font-size: 18px;
    }

    .worries-speech img {
        margin: 20px auto 0;
    }

    .worries-speech {
        border-radius: 50px;
    }

    .worries p {
        font-size: 18px;
    }

    .worries-catch {
        font-size: 20px !important;
        margin-top: 30px;
    }


    .contact__title {
        font-size: 40px;
    }

    .contact__lead {
        font-size: 26px;
    }

    .contact__cards {
        display: block;
        margin-top: 30px;
    }

    .contact-card {
        width: 100%;
        max-width: 500px;
        margin: 0 auto;
    }

    .contact-card+.contact-card {
        margin-top: 20px;
    }

    .contact__catch {
        font-size: 32px;
    }


    .access {
        padding: 60px 0 70px;
    }

    .access address {
        font-size: 18px;
        line-height: 1.6;
        margin-bottom: 20px;
    }

    .map {
        height: 250px;
    }


    .schedule {
        padding: 60px 0 70px;
        background-size: 40px 40px;
    }

    .schedule p {
        line-height: 2.2;
    }

    .schedule-case__cards {
        display: block;
        margin: 30px auto 20px;
    }

    .schedule-card {
        border-radius: 30px;
        width: 100%;
        max-width: 500px;
        margin: 0 auto;
    }

    .schedule-card+.schedule-card {
        margin-top: 30px;
    }

    .schedule-case__cards h3 {
        font-size: 26px;
    }

    /* .schedule p:nth-of-type(2) {
        text-align: left;
        width: fit-content;
        margin: 0 auto;
    } */

    .feature {
        padding: 60px 0 70px;
    }

    .feature-item {
        border-radius: 30px;
        padding: 30px 35px;
    }

    .feature-item__head {
        display: block;
        text-align: center;
    }

    .feature-item h3 {
        font-size: 24px;
        margin-top: 10px;
    }


    .time {
        padding: 60px 0 70px;
    }

    .class-card {
        display: block;
        border-radius: 30px;
        padding: 35px 30px;
        max-width: 500px;
        margin: 0 auto;
    }

    .class-card+.class-card {
        margin-top: 30px;
    }

    .class-card__content h3 {
        font-size: 24px;
        width: fit-content;
        margin: 0 auto 30px;
    }

    .class-card__elementary img,
    .class-card__junior-high img {
        display: block;
        margin: 0 auto 20px;
    }

    .class-card__info {
        margin: 0 auto;
        width: fit-content;
    }

    .class-card__note {
        font-size: 18px;
    }


    .price {
        padding: 60px 0 70px;
    }

    .price-table__note {
        margin: 0 0 3px;
        font-size: 16px;
    }

    .price-table thead th {
        font-size: 18px;
    }

    .price-table tbody th {
        font-size: 18px;
    }

    .price-table td {
        font-size: 18px;
    }

    .price-note {
        margin-top: 20px;
    }

    .price-note li+li {
        margin-top: 10px;
    }


    .footer__inner {
        padding: 50px 0;
    }

    .footer__info {
        font-size: 18px;
        line-height: 1.6;
    }

    .footer__right {
        margin-top: 40px;
    }

    .footer__menu {
        display: block;
        text-align: center;
    }

    .footer__menu li+li {
        margin-top: 10px;
    }

    .footer__copy {
        padding: 10px 10px;
        font-size: 12px;
    }

}


@media screen and (max-width:600px) {

    .block-600 {
        display: block;
    }

    h2 {
        font-size: 28px;
        margin: 0 auto 20px;
    }

    .section-title::before {
        width: 30px;
        height: 30px;
        margin: 0 auto;
    }


    .firstview {
        height: 550px;
    }

    h1 {
        font-size: 16px;
    }

    h1 span {
        font-size: 50px;
        letter-spacing: 0.08em;
    }

    .fv-catch__1 {
        font-size: 17px;
        top: 120px;
        left: 30px;
    }

    .fv-img__left {
        width: 170px;
        bottom: 110px;
    }

    .fv-img__right {
        bottom: 60px;
        width: 200px;
    }

    .fv-catch__2 {
        font-size: 18px;
        text-align: center;
        bottom: 0;
        line-height: 1.5;
    }


    .worries {
        padding: 50px 0 60px;
    }


    .contact {
        padding: 40px 0;
    }

    .contact__title {
        font-size: 36px;
    }

    .contact__catch {
        font-size: 30px;
        margin-top: 20px;
    }


    .access {
        padding: 50px 0 60px;
    }

    .map {
        height: 200px;
    }


    .schedule {
        padding: 50px 0 60px;
    }

    .schedule-card+.schedule-card {
        margin-top: 20px;
    }

    .schedule-case__cards h3 {
        font-size: 24px;
    }

    .schedule-card__a img {
        width: 200px;
    }

    .schedule-card__b img {
        width: 210px;
        height: auto;
    }

    .schedule-card__box {
        margin: 20px auto 0;
        border-radius: 20px;
        padding: 28px 24px;
    }

    .schedule-case__lists {
        margin: 0;
    }

    .schedule p:nth-of-type(2) {
        text-align: left;
        line-height: 1.8;
        margin-top: 10px;
    }


    .feature {
        padding: 50px 0 60px;
    }


    .feature-item h3 {
        font-size: 22px;
    }

    .feature-item {
        border-radius: 25px;
        padding: 25px 30px 30px;
    }

    .feature-item+.feature-item {
        margin-top: 20px;
    }

    .feature-note {
        margin-top: 20px;
    }


    .time {
        padding: 50px 0 60px;
    }

    .class-card {
        border-radius: 25px;
    }

    .class-card__content h3 {
        font-size: 22px;
        margin: 0 auto 20px;
    }

    .class-card__elementary img {
        width: 180px;
    }

    .class-card__junior-high img {
        width: 200px;
    }

    .class-card {
        border-radius: 25px;
        padding: 35px 18px;
    }

    .class-card__row {
        gap: 8px;
    }


    .price {
        padding: 50px 0 60px;
    }
}



@media screen and (max-width:450px) {

    .block-450 {
        display: block;
    }

    h2 {
        font-size: 24px;
    }

    p {
        font-size: 16px;
        line-height: 1.6;
    }

    html {
        scroll-padding-top: 50px;
    }


    .site-header__inner {
        height: 60px;
        padding: 0 24px 0 24px;
        box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
    }

    .site-header__logo a {
        font-size: 22px;
    }

    .site-header__toggle span {
        height: 4px;
    }

    .site-header__toggle {
        gap: 7px;
        width: 35px;
        height: 26px;
    }

    .site-header.is-open .site-header__toggle span:nth-child(1) {
        transform: translateY(9px) rotate(45deg);
    }

    .site-header.is-open .site-header__toggle span:nth-child(3) {
        transform: translateY(-12px) rotate(-45deg);
    }

    .site-header__drawer-menu a {
        font-size: 16px;
        padding: 8px 0;
    }

    .site-header__drawer {
        top: 70px;
        padding: 20px 24px 24px;
    }


    .firstview {
        height: 520px;
    }

    h1 {
        top: 55%;
    }

    h1 span {
        font-size: 40px;
    }

    .fv-img__right {
        bottom: 55px;
        width: 180px;
    }

    .fv-cloud {
        width: 100px;
    }

    .fv-img__left {
        left: 20px;
        bottom: 85px;
        width: 150px;
    }

    .fv-catch__2 {
        font-size: 16px;
        line-height: 1.2;
    }


    .worries {
        padding: 40px 0 50px;
    }

    .worries-speech {
        border-radius: 30px;
        margin: 0 auto 25px;
    }

    .worries-speech ul {
        font-size: 16px;
    }

    .worries p {
        font-size: 16px;
    }

    .worries-catch {
        font-size: 17px !important;
        margin-top: 20px;
    }


    .contact__title {
        font-size: 30px;
    }

    .contact__lead {
        font-size: 20px;
    }

    .contact-card {
        padding: 20px 0;
    }

    .contact-card__main {
        font-size: 30px;
    }

    .contact-card__sub {
        font-size: 12px;
    }

    .contact-card__mail {
        font-size: 16px;
    }

    .contact-card+.contact-card {
        margin-top: 16px;
    }

    .contact-card__icon {
        margin-right: 8px;
        width: 60px;
        height: 60px;
    }

    .contact__catch {
        font-size: 28px;
    }


    .access {
        padding: 40px 0 50px;
    }

    .access address {
        font-size: 16px;
    }

    .map {
        height: 180px;
    }


    .schedule {
        padding: 40px 0 50px;
    }

    .schedule-case__cards h3 {
        font-size: 20px;
        margin-bottom: 20px;
    }

    .schedule-card__a img {
        width: 180px;
    }

    .schedule-card__b img {
        width: 190px;
    }

    .schedule-card__box {
        padding: 20px 22px;
    }

    .schedule-card__lists li {
        font-size: 16px;
    }

    .schedule-case__lists {
        font-size: 16px;
    }

    /* .schedule p {
        line-height: 1.8;
    } */


    .feature {
        padding: 40px 0 50px;
    }

    .feature-item__num {
        font-size: 40px;
    }

    .feature-item h3 {
        font-size: 20px;
    }

    .feature-note {
        font-size: 16px;
    }


    .time {
        padding: 40px 0 50px;
    }

    .class-card {
        padding: 30px 20px;
    }

    .class-card__content h3 {
        font-size: 20px;
    }

    .class-card__elementary img {
        width: 160px;
    }

    .class-card__junior-high img {
        width: 175px;
    }

    .class-card__list {
        margin: 0 auto;
        width: fit-content;
    }

    .class-card__row dt {
        font-size: 16px;
    }

    .class-card__row dd {
        font-size: 16px;
    }

    .class-card__note {
        font-size: 16px;
    }



    .price {
        padding: 40px 0 50px;
    }

    .price-table thead th {
        font-size: 16px;
    }

    .price-table th, .price-table td {
        padding: 18px 10px;
    }

    .price-table tbody th {
        font-size: 16px;
    }

    .price-table td {
        font-size: 16px;
    }

    .price-note {
        font-size: 16px;
    }


    .footer__inner {
        padding: 40px 0;
    }

    .footer__info {
        font-size: 16px;
    }

    .footer__menu a {
        font-size: 16px;
    }

    .footer__right {
        margin-top: 30px;
    }

    .footer-instagram {
        margin: 20px auto 0;
    }

    .footer__copy {
        padding: 8px 0;
    }
}