.main {
    overflow: hidden;
    background-color: #FFFAEF;
    padding-top: 10.666rem;
}

.keyvisual-swiper {
    height: 67.9rem;
}

.keyvisual .swiper-slide {
    width: 100%;
    height: 67.9rem;
    overflow: hidden;
}

.keyvisual .swiper-slide img {
    height: 100%;
}

.news {
    width: 113rem;
    border-radius: 3rem;
    background-color: #FFFFFF;
    box-shadow: 0 0.3rem 0.6rem #00000029;
    margin: -10.6rem auto 8rem;
    position: relative;
    z-index: 2;
    padding: 4rem 5rem;
}

.news__list {
    display: flex;
    flex-direction: column;
    gap: 1.8rem;
    margin-bottom: 3rem;
}

.news__item a {
    display: flex;
    align-items: center;
    border-bottom: 0.1rem dashed #707070;
    padding-bottom: 1.4rem;
}

.news__item div {
    display: flex;
}

.news__item time {
    font-size: 1.6rem;
    font-weight: 400;
    width: 14.6rem;
    margin-right: 1rem;
}

.news__item span {
    color: #FFFFFF;
    width: 11.6rem;
    padding-inline: 1.5rem;
    display: flex;
    justify-content: center;
    font-size: 1.4rem;
    font-weight: 400;
    border-radius: 0.5rem;
}

.news__item h2 {
    font-size: 1.6rem;
    font-weight: 400;
    padding-left: 2.7rem;
}

.news__link {
    padding-block: 1rem;
    color: #FFFFFF;
    font-size: 1.6rem;
    font-weight: 500;
    background-color: #F6AD3C;
    border-radius: 2.3rem;
    display: block;
    text-align: center;
    margin-inline: auto;
    width: 24rem;
    transition: background-color 0.3s ease;
}

.news__link:hover {
    background-color: #FF7602;
}

.nursery {
    position: relative;
    margin-bottom: 10rem;
}

.nursery h2 {
    font-size: 3.5rem;
    font-weight: 500;
    color: #FF7600;
    margin-bottom: 3.4rem;
    text-align: center;
}

.nursery p {
    font-size: 2rem;
    font-weight: 400;
    text-align: center;
    width: 64.5rem;
    margin: 0 auto 4rem;
    line-height: calc(3.4 / 1.6);
}

.nursery__link {
    width: 24rem;
    display: block;
    margin-inline: auto;
    margin-bottom: 10rem;
    text-align: center;
    border-radius: 2.3rem;
    padding-block: 1rem;
    font-size: 1.6rem;
    font-weight: 500;
    background-color: #F6AD3C;
    color: #FFFFFF;
    transition: background-color 0.3s ease;
}

.nursery__link:hover {
    background-color: #FF7602;
}

.nursery_slider_container {
    display: flex;
    flex-wrap: nowrap;
    overflow: hidden;
}

.nursery__slide {
    display: flex;
    flex-wrap: nowrap;
    animation: loopAnimation 30s linear infinite;
}

.nursery__slide img {
    width: 20rem;
    height: 20rem;
    margin-right: 3.7rem;
    border-radius: 2rem;
    overflow: hidden;
}

.nursery__slide img.even {
    margin-top: 10rem;
}

@keyframes loopAnimation {
    0% {
        transform: translate(0%);
    }

    100% {
        transform: translate(-100%);
    }

}

.nursery__bg {
    position: absolute;
    width: 18.727rem;
    height: 35.74rem;
    top: 5.43rem;
}

.nursery__bg--left {
    left: 13.5rem;
}

.nursery__bg--right {
    right: 17.5rem;
}

.link-box {
    display: flex;
    flex-wrap: wrap;
    gap: 5.6rem 4.2rem;
    width: 115.5rem;
    margin: 0 auto 10rem;
}

.link-box a {
    width: 54.5rem;
    height: 33.6rem;
    border-radius: 3rem;
    overflow: hidden;
    position: relative;
    box-shadow: 0 0.3rem 0.6rem #00000029;
    transition: all 0.1s ease;
}

.link-box h2 {
    position: absolute;
    bottom: 0;
    z-index: 2;
    background-color: #FFFFFF;
    width: 100%;
    padding: 1.3rem 0 1.3rem 3rem;
    font-size: 3rem;
    display: flex;
    gap: 1rem;
    justify-content: start;
    align-items: center;
    flex-direction: row-reverse;
}

.link-box h2::after {
    content: "";
    width: 1.7rem;
    height: 1.5rem;
    background-image: url("../img/footer/footer_img_pic1.svg");
    z-index: 5;
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
    position: absolute;
}

.link-box h2::before {
    content: "";
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    background-color: #000000;
}

.link-box a:nth-child(1) h2 {
    color: #E53F30;
}

.link-box a:nth-child(1) h2::after {
    left: 19.8rem;
}

.link-box a:nth-child(1) h2::before {
    background-color: #E53F30;
}

.link-box a:nth-child(2) h2 {
    color: #4D5E9C;
}

.link-box a:nth-child(2) h2::after {
    left: 16.8rem;
}

.link-box a:nth-child(2) h2::before {
    background-color: #4D5E9C;
}

.link-box a:nth-child(3) h2 {
    color: #84BC59;
}

.link-box a:nth-child(3) h2::after {
    left: 16.8rem;
}

.link-box a:nth-child(3) h2::before {
    background-color: #84BC59;
}

.link-box a:nth-child(4) h2 {
    color: #2381B6;
}

.link-box a:nth-child(4) h2::after {
    left: 22.7rem;
}

.link-box a:nth-child(4) h2::before {
    background-color: #2381B6;
}

.link-box a:hover {
    transform: rotate(5deg);
}

.stroll {
    width: 100%;
    height: 48.7rem;
    display: block;
}

.stroll img {
    height: 100%;
}

.contact {
    background-color: #FFFFFF;
    padding-top: 8rem;
    padding-bottom: 10rem;
}

.contact h2 {
    text-align: center;
    color: #F6AD3C;
    font-size: 3.5rem;
    font-weight: 500;
    margin-bottom: 3.3rem;
}

.contact p {
    font-size: 1.6rem;
    font-weight: 400;
    line-height: calc(3.4 / 1.6);
    width: fit-content;
    margin-inline: auto;
    margin-bottom: 6.6rem;
}

.contact .input-area {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    width: 113rem;
    margin-inline: auto;
    font-size: 1.6rem;
    font-weight: 400;
}

.contact .input-area div {
    display: flex;
    align-items: center;
    gap: 2.5rem;
    position: relative;
    height: 5rem;
}

.contact .input-area div label {
    width: 19.7rem;
    position: relative;
    display: flex;
}

.contact .input-area div label span {
    position: absolute;
    right: 0;
    color: #FFFFFF;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 5rem;
}

.contact .input-area div .required span {
    background-color: #F6AD3C;
}

.contact .input-area div .optional span {
    background-color: #767676;
}

.contact .input-area div img {
    position: absolute;
    width: 1.9rem;
    height: 1.6rem;
    right: 2rem;
    pointer-events: none;
}

.contact .input-area input,
.contact .input-area select {
    background-color: #EDEDED;
    border-radius: 1rem;
    padding: 1rem;
    width: 90.8rem;
}

.contact .input-area div:last-of-type {
    align-items: start;
    margin-bottom: 1rem;
    height: 25rem;
}

.contact .input-area div:last-of-type textarea {
    width: 90.8rem;
    height: 25rem;
    resize: none;
    background-color: #EDEDED;
    border-radius: 1rem;
    padding: 1rem;
}

.contact .input-area .btn-confirm {
    background-color: #F6AD3C;
    border-radius: 2.3rem;
    color: #FFFFFF;
    width: 24rem;
    padding-block: 1rem;
    text-align: center;
    margin-inline: auto;
    transition: background-color 0.3s ease;
}

.contact .input-area .btn-confirm:hover {
    background-color: #FF7602;
}

.wpcf7-form-control:focus {
    border: 0.1rem solid #F6AD3C;
}

.contact .confirm-area.active {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    align-items: center;
}

.contact .confirm-area p {
    margin: 0 auto;
    display: flex;
    align-items: center;
    width: fit-content;
    font-size: 1.6rem;
    font-weight: 400;
}

.contact .confirm-area p span:first-child {
    width: 12.8rem;
}

.contact .confirm-area p span:nth-child(2) {
    color: #FFFFFF;
    margin-left: 1.9rem;
    padding-inline: 0.9rem;
    height: 2.4rem;
    display: flex;
    align-items: center;
}

.contact .confirm-area p span.required {
    background-color: #F6AD3C;
}

.contact .confirm-area p span.optional {
    background-color: #767676;
}

.contact .confirm-area p span:last-child {
    width: 90.8rem;
    border-radius: 1rem;
    background-color: #FFFAEF;
    display: block;
    padding: 1rem;
    margin-left: 2.5rem;
    height: 5rem;
}

.contact .confirm-area p:last-of-type {
    display: flex;
    align-items: start;
}

.contact .confirm-area p:last-of-type span:first-child {
    margin-top: -0.5rem;
}

.contact .confirm-area p:last-of-type span:last-child {
    height: 25rem;
    overflow-y: scroll;
    word-break: break-all;
    white-space: pre-wrap;
}

.contact .confirm-area .btn-box {
    display: flex;
    gap: 2.5rem;
    justify-content: center;
    margin-top: 3rem;
}

.contact .confirm-area .btn-box button,
.contact .confirm-area .btn-box input {
    display: block;
    width: 24rem;
    padding-block: 1rem;
    background-color: #F6AD3C;
    color: #FFFFFF;
    border-radius: 2.3rem;
    font-size: 1.6rem;
    font-weight: 500;
    transition: background-color 0.3s ease;
}

.contact .confirm-area .btn-box button:hover,
.contact .confirm-area .btn-box input:hover {
    background-color: #FF7602;
}

.wpcf7-spinner {
    display: none;
}

.contact .confirm-area p:last-of-type span:last-child::-webkit-scrollbar {
    display: none;
}

.confirm-area,
.thanks-area {
    display: none;
    /* 初期状態では非表示 */
}

.wpcf7-response-output {
    display: none;
    /* Contact Form 7のデフォルトの送信完了メッセージを非表示 */
}

.input-area.completed {
    display: none;
}

.contact p.thanks {
    display: none;
}

.contact .thanks-area.active {
    display: block;
}

.contact .thanks-area .top__link {
    display: block;
    margin-inline: auto;
    width: 24rem;
    padding-block: 1rem;
    border-radius: 2.3rem;
    color: #FFFFFF;
    background-color: #F6AD3C;
    font-size: 1.6rem;
    text-align: center;
    transition: background-color 0.3s ease;
}

.contact .thanks-area .top__link:hover {
    background-color: #FF7602;
}

@media screen and (max-width:699.98px) {
    .main {
        padding-top: 6rem;
    }

    .keyvisual-swiper {
        height: 60.7rem;
    }

    .keyvisual .swiper-slide {
        height: 100%;
    }

    .news {
        width: 33.5rem;
        padding: 2rem 1.75rem;
        margin-top: -18.7rem;
    }

    .news__item a {
        flex-direction: column;
        width: 30rem;
        align-items: start;
    }

    .news__item time {
        margin-right: 0.5rem;
        font-size: 1.5rem;
        width: auto;
    }

    .news__item span {
        font-size: 1.3rem;
        width: auto;
    }

    .news__item h2 {
        padding-left: 0;
        font-size: 1.5rem;
    }

    .nursery {
        margin-bottom: 7rem;
    }

    .nursery h2 {
        font-size: 2rem;
        margin-bottom: 3.8rem;
    }

    .nursery p {
        font-size: 1.6rem;
        text-align: left;
        width: 33.5rem;
        margin-bottom: 3rem;
    }

    .nursery__bg {
        width: 6rem;
        height: auto;
        top: -3rem;
    }

    .nursery__bg--left {
        left: 2rem;
    }

    .nursery__bg--right {
        right: 2rem;
    }

    .nursery__link {
        margin-bottom: 5rem;
    }

    .nursery__slide img {
        width: 17rem;
        height: 17rem;
    }

    .link-box {
        flex-direction: column;
        gap: 3rem;
        align-items: center;
        width: 100%;
    }

    .link-box a {
        width: 33.5rem;
        height: 21rem;
    }

    .link-box h2 {
        font-size: 2rem;
    }

    .link-box a:nth-child(1) h2::after {
        left: 14.8rem;
    }

    .link-box a:nth-child(2) h2::after {
        left: 12.8rem;
    }

    .link-box a:nth-child(3) h2::after {
        left: 12.8rem;
    }

    .link-box a:nth-child(4) h2::after {
        left: 16.7rem;
    }

    .link-box a:hover {
        transform: rotate(0);
    }

    .stroll {
        height: 22rem;
    }

    .contact {
        padding-top: 5rem;
        padding-bottom: 7rem;
    }

    .contact h2 {
        font-size: 2rem;
    }

    .contact p {
        width: 33.5rem;
        margin-bottom: 5rem;
    }

    .contact .input-area {
        width: 33.5rem;
        gap: 3rem;
    }

    .contact .input-area div {
        flex-direction: column;
        align-items: start;
        height: auto;
        gap: 1.2rem;
    }

    .contact .input-area input,
    .contact .input-area select {
        width: 33.5rem;
        height: 5rem;
    }

    .contact .input-area div img {
        top: 5rem;
    }

    .contact .input-area div label {
        width: fit-content;
        gap: 1.5rem;
    }

    .contact .input-area div label span {
        position: relative;
    }

    .contact .input-area div:last-of-type {
        margin-bottom: 3rem;
    }

    .contact .input-area div:last-of-type textarea {
        width: 33.5rem;
    }

    .contact .confirm-area {
        gap: 3rem;
    }

    .contact .confirm-area p {
        flex-wrap: wrap;
        width: 33.5rem;
    }

    .contact .confirm-area p span:first-child {
        width: fit-content;
    }

    .contact .confirm-area p span:nth-child(2) {
        margin-left: 1.5rem;
    }

    .contact .confirm-area p span:last-child {
        margin-left: 0;
        width: 33.5rem;
        margin-top: 1.2rem;
    }

    .contact .confirm-area .btn-box {
        margin-top: 1rem;
        flex-direction: column;
    }
}