@charset "UTF-8";




/*========================================

front-page.php

========================================*/

/*----------------------------------------

#front_slide

----------------------------------------*/

#front_slide {
    padding: 0 0 0 8%;
}

#front_slide .con {
    position: relative;
}

#front_slide .swiper_item {
    width: 100%;
    height: 80svh;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    border-radius: 0 0 0 80px;
}

#front_slide .kv_copy {
    position: absolute;
    top: 50%;
    left: 8%;
    transform: translateY(-50%);
    z-index: 10;
}

#front_slide .kv_copy p {
    font-size: 7.2vw;
    color: #ffffff;
    text-shadow: 2px 2px 5px rgba(0, 0, 0, 0.5);
}


@media (min-width: 768px) {

    #front_slide {
        padding: 120px 0 0 8%;
    }

    #front_slide .swiper_item {
        height: 64vw;
        border-radius: 0 0 0 120px;
    }

}


@media (min-width: 1024px) {

    #front_slide .swiper_item {
        height: 48vw;
    }

    #front_slide .kv_copy p {
        font-size: 5.6vw;
    }
    
}




/*----------------------------------------

#front_loop

----------------------------------------*/

#front_loop {
    position: relative;
    z-index: 10;
    margin-top: -12vw;
    overflow: hidden;
}

#front_loop .loop_box {
    display: flex;
    width: 100%;
    padding: 4vw 0 0;
}

#front_loop .loop_item {
    flex: 0 0 auto;
    white-space: nowrap;
    padding-right: 50px;
    font-size: 24vw;
    font-weight: 500;
    line-height: 1;
    color: #ffffff;
}

#front_loop .loop_item:nth-child(odd) {
    animation: loop 20s -10s linear infinite;
}

#front_loop .loop_item:nth-child(even) {
    animation: loop2 20s linear infinite;
}

@keyframes loop {
    0% {
        transform: translateX(100%);
    }
    to {
        transform: translateX(-100%);
    }
}

@keyframes loop2 {
    0% {
        transform: translateX(0);
    }
    to {
        transform: translateX(-200%);
    }
}




/*----------------------------------------

#front_concept

----------------------------------------*/

#front_concept .con {
    padding: 40px 8% 80px;
}

#front_concept .concept_txt {
    margin: 0 0 40px;
}

#front_concept .concept_txt h2 {
    font-size: 5.6vw;
    font-weight: 500;
    color: #ffffff;
}

#front_concept .concept_txt p {
    margin-top: 20px;
    color: #ffffff;
}

#front_concept .concept_img {
    width: 100%;
    height: 64vw;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    border-radius: 20px;
}


@media (min-width: 768px) {

    #front_concept .con {
        display: flex;
        flex-direction: row-reverse;
        justify-content: space-between;
        padding: 60px 8% 120px;
    }

    #front_concept .concept_txt {
        flex-basis: 50%;
        margin: 0;
    }

    #front_concept .concept_txt h2 {
        font-size: 2.8vw;
    }

    #front_concept .concept_txt p {
    }

    #front_concept .concept_img {
        flex-basis: 42%;
        height: auto;
    }

}


@media (min-width: 1024px) {
    
}




/*----------------------------------------

#front_blog

----------------------------------------*/

#front_blog .con {
    padding: 80px 0;
}

#front_blog .h2_ttl {
    padding: 0 8%;
}

#front_blog .post_list {
    padding: 40px 0 80px;
}

#front_blog .post_list article {
    background: #ffffff;
    border-radius: 20px;
}

#front_blog .page_link {
    text-align: center;
}

#front_blog .page_link a {
    display: inline-block;
    padding: 20px 80px;
    font-size: 1em;
    letter-spacing: 1px;
    color: #ffffff;
    background: #F2994A;
    border-radius: 40px;
    transition: all 0.3s;
}

#front_blog .page_link a:hover {
    background: #6FCF97;
}


@media (min-width: 768px) {

    #front_blog .con {
        position: relative;
        display: flex;
        justify-content: space-between;
        padding: 80px 0 80px 8%;
    }

    #front_blog .h2_ttl {
        flex-basis: 25%;
        padding: 0;
    }

    #front_blog .post_list {
        flex-basis: 64%;
        min-width: 0;
        padding: 0;
    }

    #front_blog .page_link {
        position: absolute;
        bottom: 80px;
        left: 8%;
    }
    
}


@media (min-width: 1024px) {

    #front_blog .con {
        padding: 120px 0 120px 8%;
    }

    #front_blog .post_list {
        flex-basis: 68%;
    }

    #front_blog .page_link {
        bottom: 120px;
    }
    
}




/*----------------------------------------

#front_about

----------------------------------------*/

#front_about .con {
    padding: 80px 8%;
}

#front_about .about {
    padding: 0 0 40px;
}

#front_about .about_txt .txt {
    padding: 20px 0 40px;
}

#front_about .about_img img {
    border-radius: 20px;
}

#front_about .message {
    border-top: solid 1px #dcdcdc;
    padding: 40px 0 0;
}

#front_about .message .h3_ttl {
    margin: 0 0 20px;
}

#front_about .message .h3_ttl h3 {
    font-size: 5.6vw;
    font-weight: 700;
    color: #163A5F;
}

#front_about .message .txt p {
    margin: 0 0 20px;
}

#front_about .message .txt span {
    display: block;
    text-align: right;
}


@media (min-width: 768px) {

    #front_about .con {
        padding: 120px 8%;
    }
    
    #front_about .about {
        display: flex;
        flex-direction: row-reverse;
        justify-content: space-between;
    }
    
    #front_about .about_txt {
        flex-basis: 42%;
    }

    #front_about .about_txt .txt {
        padding: 20px 0 0;
    }

    #front_about .about_img {
        flex-basis: 50%;
    }

    #front_about .message .h3_ttl h3 {
        font-size: 2.4vw;
    }

}


@media (min-width: 1024px) {
    
}




/*----------------------------------------

#front_info

----------------------------------------*/

#front_info .con {
    padding: 80px 8%;
}

#front_info .info_txt table {
    width: 100%;
    padding: 20px 0 40px;
}

#front_info .info_txt table tr {
    display: flex;
    align-items: center;
    padding: 20px 0;
    border-top: solid 1px #dcdcdc;
}

#front_info .info_txt table th {
    width: 120px;
    font-size: 1em;
    font-weight: 500;
}

#front_info .info_txt table td {
    flex: 1;
}

#front_info .info_txt table td p {
    font-size: 0.9em;
}

#front_info .info_map iframe {
    width: 100%;
    height: 56vw;
    border-radius: 20px;
}


@media (min-width: 768px) {

    #front_info .con {
        display: flex;
        justify-content: space-between;
        padding: 120px 8%;
    }

    #front_info .info_txt {
        flex-basis: 42%;
    }

    #front_info .info_txt table {
        padding: 20px 0 0;
    }

    #front_info .info_map {
        flex-basis: 50%;
    }

    #front_info .info_map iframe {
        height: 100%;
    }

}


@media (min-width: 1024px) {
    
}









/*========================================

home.php
category.php

========================================*/

/*----------------------------------------

#archive_blog / .post_list

----------------------------------------*/

#archive_blog .post_list ul li {
    margin: 0 0 40px;
}

#archive_blog .post_list article {
    background: #ffffff;
    border-radius: 20px;
}

.post_list article a {
    display: block;
}

.post_list article .thumb_area img {
    border-radius: 20px 20px 0 0;
}

.post_list article .txt_area {
    padding: 20px;
}

.post_list article .txt_area .post_meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.post_list article .txt_area .post_meta time {
    display: block;
    font-size: 0.9em;
    line-height: 1;
    color: #6FCF97;
}

.post_list article .txt_area .post_meta span {
    display: block;
    padding: 3px 6px;
    font-size: 0.8em;
    color: #ffffff;
    background: #6FCF97;
    border-radius: 5px;
}

.post_list article .txt_area .post_ttl {
    padding: 10px 0;
}

.post_list article .txt_area .post_ttl h3 {
    min-height: 3.2em;
    font-size: 1em;
    font-weight: 500;
    color: #3B4E32;
}


@media (min-width: 768px) {

    #archive_blog .post_list ul {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
    }

    #archive_blog .post_list ul li {
        flex-basis: 48%;
        margin: 0 0 4%;
    }

}


@media (min-width: 1024px) {

    #archive_blog .post_list ul::after {
        display: block;
        content: '';
        width: 32%;
    }

    #archive_blog .post_list ul li {
        flex-basis: 32%;
        margin: 0 0 2%;
    }
    
}




/*----------------------------------------

#archive_blog / .post_pager

----------------------------------------*/

#archive_blog .post_pager {
    padding: 40px 0 0;
    display: flex;
    justify-content: center;
}

nav.navigation .nav-links a.page-numbers {
    display: inline-block;
    width: 40px;
    height: 40px;
    line-height: 40px;
    margin: 0 5px;
    text-align: center;
    font-weight: 700;
    color: #3D4650;
    background: #ffffff;
    border-radius: 50%;
}

nav.navigation .nav-links span.page-numbers.current {
    display: inline-block;
    width: 40px;
    height: 40px;
    line-height: 40px;
    margin: 0 5px;
    text-align: center;
    font-weight: 700;
    color: #ffffff;
    background: #f2994a;
    border-radius: 50%;
}

nav.navigation .nav-links a.prev.page-numbers,
nav.navigation .nav-links a.next.page-numbers {
    display: none;
}


@media (min-width: 768px) {

    nav.navigation .nav-links a.page-numbers {
        width: 50px;
        height: 50px;
        line-height: 50px;
    }

    nav.navigation .nav-links span.page-numbers.current {
        width: 50px;
        height: 50px;
        line-height: 50px;
    }

}


@media (min-width: 1024px) {
    
}









/*========================================

single.php

========================================*/

/*----------------------------------------

#single_blog / .main_column

----------------------------------------*/

#single_blog .main_column {
    margin: 0 0 80px;
}

#single_blog .main_column .post_content {
    margin: 0 0 40px;
    padding: 40px;
    background: #ffffff;
    border-radius: 20px;
}

#single_blog .main_column .post_content img {
    margin: 0 0 20px;
}

#single_blog .main_column .np_link .next_link {
    margin: 0 0 40px;
}

#single_blog .main_column .np_link .next_link a {
    display: flex;
    flex-direction: row-reverse;
    align-items: center;
    padding: 40px;
    color: #3D4650;
    background: #ffffff;
    border-radius: 20px;
    transition: all 0.3s;
}

#single_blog .main_column .np_link .next_link a:hover {
    color: #8dc21f;
}

#single_blog .main_column .np_link .next_link .lead {
    width: 120px;
}

#single_blog .main_column .np_link .next_link .lead span {
    display: block;
    text-align: right;
}

#single_blog .main_column .np_link .next_link .post_ttl {
    flex: 1;
}

#single_blog .main_column .np_link .prev_link a {
    display: flex;
    align-items: center;
    padding: 40px;
    color: #3D4650;
    background: #ffffff;
    border-radius: 20px;
    transition: all 0.3s;
}

#single_blog .main_column .np_link .prev_link a:hover {
    color: #8dc21f;
}

#single_blog .main_column .np_link .prev_link .lead {
    width: 120px;
}

#single_blog .main_column .np_link .prev_link .lead span {
    display: block;
}

#single_blog .main_column .np_link .prev_link .post_ttl {
    flex: 1;
}


@media (min-width: 768px) {
    
    #single_blog .flex_box {
        display: flex;
        justify-content: space-between;
    }

    #single_blog .main_column {
        flex-basis: 68%;
        margin: 0;
    }

    #single_blog .side_column {
        flex-basis: 24%;
    }

}


@media (min-width: 1024px) {
    
}




/*----------------------------------------

#single_blog / .side_column

----------------------------------------*/

#single_blog .side_column .post_category .h3_ttl {
    margin: 0 0 20px;
}

#single_blog .side_column .post_category .h3_ttl h3 {
    font-size: 1.5em;
    font-weight: 500;
}

#single_blog .side_column .post_category .cat_list ul li {
    border-top: solid 1px #8F9989;
}

#single_blog .side_column .post_category .cat_list ul li a {
    display: block;
    padding: 15px 0;
    color: #3B4E32;
    transition: all 0.3s;
}

#single_blog .side_column .post_category .cat_list ul li a:hover {
    color: #8dc21f;
}


@media (min-width: 768px) {

    #single_blog .side_column .post_category .h3_ttl h3 {
        font-size: 1.2em;
    }

}


@media (min-width: 1024px) {

    #single_blog .side_column .post_category .h3_ttl h3 {
        font-size: 1.5em;
    }
    
}









/*========================================

page-recruit.php

========================================*/

/*----------------------------------------

#page_recruit

----------------------------------------*/

#page_recruit .outline {
    margin: 0 0 40px;
    padding: 8%;
    background: #ffffff;
    border-radius: 20px;
}

#page_recruit .outline .h2_ttl {
    margin: 0 0 20px;
}

#page_recruit .outline .h2_ttl h2 {
    font-size: 6vw;
    font-weight: 500;
}

#page_recruit .outline table {
    width: 100%;
}

#page_recruit .outline table tr {
    display: block;
    border-top: solid 1px #dcdcdc;
    padding: 40px 0;
}

#page_recruit .outline table th {
    display: block;
    width: 100%;
    margin: 0 0 20px;
    text-align: left;
    font-size: 1.1em;
    font-weight: 500;
}

#page_recruit .outline table td {
    display: block;
    width: 100%;
}

#page_recruit .outline table td div {
    margin: 0 0 20px;
}

#page_recruit .outline table td div:last-of-type {
    margin: 0;
}

#page_recruit .outline table td p {
    font-size: 0.9em;
}

#page_recruit .outline table td span {
    position: relative;
    display: block;
    margin-top: 5px;
    padding-left: 15px;
    font-size: 0.8em;
}

#page_recruit .outline table td span::before {
    display: block;
    content: '※';
    position: absolute;
    top: 0;
    left: 0;
}

#page_recruit .form_link {

}

#page_recruit .form_link a {
    display: block;
    padding: 25px 0;
    text-align: center;
    font-size: 1;
    letter-spacing: 1px;
    color: #ffffff;
    background: #f2994a;
    border-radius: 50px;
    transition: all 0.3s;
}

#page_recruit .form_link a:hover {
    background: #6FCF97;
}


@media (min-width: 768px) {

    #page_recruit .outline .h2_ttl h2 {
        font-size: 4vw;
    }

    #page_recruit .outline table tr {
        display: flex;
        align-items: center;
    }

    #page_recruit .outline table th {
        width: 240px;
        margin: 0;
        text-align: center;
    }

    #page_recruit .outline table td {
        width: auto;
        flex: 1;
    }

    #page_recruit .form_link a {
        width: 400px;
        margin: 0 auto;
    }

}


@media (min-width: 1024px) {
    
}









/*========================================

page-contact.php

========================================*/

/*----------------------------------------

#page_contact / form

----------------------------------------*/

#page_contact form {
    padding: 8%;
    background: #ffffff;
    border-radius: 20px;
}

#page_contact .welcome {
    padding: 0 0 40px;
}

#page_contact .form_box {
    border-top: solid 1px #dcdcdc;
    padding: 40px 0;
}


@media (min-width: 768px) {

    
}


@media (min-width: 1024px) {
    
    #page_contact .form_box {
        display: flex;
        justify-content: space-between;
        align-items: center;
    }
    
    #page_contact .label_area {
        flex-basis: 28%;
    }
    
    #page_contact .input_area {
        flex-basis: 68%;
    }

}




/*----------------------------------------

#page_contact / .label_area

----------------------------------------*/

#page_contact .label_area {
    padding: 0 0 20px;
}

#page_contact .label_area label {
    display: block;
    font-size: 1em;
    font-weight: 700;
    line-height: 1;
}

#page_contact .label_area label span {
    margin-left: 5px;
    padding: 3px 10px;
    font-size: 0.8em;
    color: #ffffff;
    background: #ea7261;
    border-radius: 3px;
}

#page_contact .label_area p {
    position: relative;
    margin-top: 10px;
    padding-left: 16px;
    font-size: 0.9em;
    color: #8F9989;
}

#page_contact .label_area p::before {
    display: block;
    content: '※';
    position: absolute;
    top: 0;
    left: 0;
}


@media (min-width: 768px) {

}


@media (min-width: 1024px) {

    #page_contact .label_area {
        padding: 0;
    }

}




/*----------------------------------------

.input_area / text,textarea

----------------------------------------*/

#page_contact .input_area input.input_left_50,
#page_contact .input_area input.input_right_50,
#page_contact .input_area input.input_100,
#page_contact .input_area textarea {
    display: block;
    width: 100%;
    border: none;
    border-radius: 0;
    padding: 20px;
    outline: none;
    font-family: "Zen Maru Gothic", sans-serif;
    font-size: 1em;
    background: #f9f6f0;
    border-radius: 5px;
}

#page_contact .input_area .name_kanji {
    margin: 0 0 2%;
}

#page_contact .input_area .wpcf7-form-control-wrap[data-name="kanji_sei"],
#page_contact .input_area .wpcf7-form-control-wrap[data-name="kana_sei"],
#page_contact .input_area .wpcf7-form-control-wrap[data-name="kanji_sei_guardian"],
#page_contact .input_area .wpcf7-form-control-wrap[data-name="kana_sei_guardian"] {
    float: left;
    width: 49%;
    margin-right: 2%;
}

#page_contact .input_area .wpcf7-form-control-wrap[data-name="kanji_mei"],
#page_contact .input_area .wpcf7-form-control-wrap[data-name="kana_mei"],
#page_contact .input_area .wpcf7-form-control-wrap[data-name="kanji_mei_guardian"],
#page_contact .input_area .wpcf7-form-control-wrap[data-name="kana_mei_guardian"] {
    float: left;
    width: 49%;
}




/*----------------------------------------

.input_area / .wpcf7-radio

※デフォルトのラジオボタンを任意のデザインに変更

----------------------------------------*/

/* お問い合わせ内容CSS */
#page_contact .input_area [data-name="radio_item"] span.wpcf7-list-item {
    display: block;
    margin: 0 0 2%;
}


/* 以下共通CSS */
#page_contact .input_area .wpcf7-radio input[type="radio"] {
    display: none;
}

#page_contact .input_area .wpcf7-radio span.wpcf7-list-item-label {
    display: block;
    position: relative;
    z-index: 1;
    padding: 20px 0px 20px 40px;
    font-size: 0.9em;
    line-height: 1.5;
    background: #f9f6f0;
    border-radius: 5px;
    cursor: pointer;
    transition: all 0.3s;
}

#page_contact .input_area .wpcf7-radio span.wpcf7-list-item-label::before {
    display: block;
    content: '';
    position: absolute;
    z-index: 3;
    top: 50%;
    left: 20px;
    transform: translateY(-50%);
    width: 10px;
    height: 10px;
    background: #F2994A;
    border-radius: 50%;
    opacity: 0;
}

#page_contact .input_area .wpcf7-radio span.wpcf7-list-item-label::after {
    display: block;
    content: '';
    position: absolute;
    z-index: 2;
    top: 50%;
    left: 16px;
    transform: translateY(-50%);
    width: 16px;
    height: 16px;
    border: solid 1px #F2994A;
    border-radius: 50%;
    background: #ffffff;
}

/* #page_contact .input_area .wpcf7-radio input:checked+span.wpcf7-list-item-label {
    background: #FBE1E2;
} */

#page_contact .input_area .wpcf7-radio input:checked+span.wpcf7-list-item-label::before {
    opacity: 1;
}


@media (min-width: 768px) {

    #page_contact .input_area [data-name="radio_item"] .flex_box {
        position: relative;
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        row-gap: 12px;
    }
    
    /* #page_contact .input_area [data-name="radio_item"] .flex_box::after {
        display: block;
        content: '';
        width: 32%;
    } */
    
    #page_contact .input_area [data-name="radio_item"] span.wpcf7-list-item {
        flex-basis: 32%;
        margin: 0;
    }

}


@media (min-width: 1024px) {


}




/*----------------------------------------

.consent_area

----------------------------------------*/

#page_contact .consent_area {
    border-top: solid 1px #dcdcdc;
    padding: 40px 0;
}

#page_contact .consent_area .wpcf7-acceptance .wpcf7-list-item {
    display: block;
    text-align: center;
    margin: 0;
}

#page_contact .consent_area .wpcf7-acceptance .wpcf7-list-item-label {
    font-size: 1em;
    font-weight: 700;
}

#page_contact .consent_area .wpcf7-acceptance .wpcf7-list-item-label a {
    display: inline-block;
    color: #8F9989;
    transition: all 0.3s;
}

#page_contact .consent_area .wpcf7-acceptance .wpcf7-list-item-label a:hover {
    color: #4A4A2A;
}




/*----------------------------------------

.submit_area

----------------------------------------*/

#page_contact .submit_area {
}

#page_contact .submit_area input.submit_btn {
    display: block;
    width: 100%;
    max-width: 400px;
    margin: 0 auto;
    border: none;
    outline: none;
    padding: 25px 0;
    font-family: "Zen Maru Gothic", sans-serif;
    font-size: 1em;
    font-weight: 700;
    line-height: 1;
    color: #ffffff;
    background: #F2994A;
    border-radius: 50px;
    cursor: pointer;
    transition: all 0.3s;
}

#page_contact .submit_area input.submit_btn:hover {
    background: #6FCF97;
}




/*----------------------------------------

.wpcf7-not-valid-tip(エラーメッセージ)

----------------------------------------*/

#page_contact .wpcf7-not-valid-tip {
    font-size: 0.9em;
    font-weight: 700;
}

#page_contact .consent_area .wpcf7-not-valid-tip {
    text-align: center;
}




/*----------------------------------------

.grecaptcha-badge

----------------------------------------*/

.grecaptcha-badge {
    z-index: 50;
}









/*========================================

page-privacy.php

========================================*/

/*----------------------------------------

#page_privacy

----------------------------------------*/

#page_privacy .pp_list {
    padding: 8%;
    background: #ffffff;
    border-radius: 20px;
}

#page_privacy .pp_list .opening {
    margin: 0 0 40px;
}

#page_privacy .pp_list ol {
    list-style: none;
    counter-reset: privacy-list;
}

#page_privacy .pp_list ol li {
    position: relative;
    counter-increment: privacy-list;
    border-top: solid 1px #dcdcdc;
    padding: 40px 0 40px 20px;
}

#page_privacy .pp_list ol li::before {
    position: absolute;
    content: counter(privacy-list) ".";
    top: 40px;
    left: 0;
    font-size: 1.1em;
    font-weight: 500;
}

#page_privacy .pp_list ol li h2 {
    margin: 0 0 10px;
    font-size: 1.1em;
    font-weight: 500;
}

#page_privacy .pp_list ol li p {
    font-size: 0.9em;
}


@media (min-width: 768px) {

}


@media (min-width: 1024px) {
    
}









/*========================================

404.php

========================================*/

#page_404 .not_found {
    padding: 8%;
    background: #ffffff;
    border-radius: 20px;
}

#page_404 .not_found .sorry p {
    margin: 0 0 20px;
    font-size: 0.9em;
}

#page_404 .not_found .page_link {
    padding: 40px 0 0;
}

#page_404 .not_found .page_link a {
    display: block;
    max-width: 400px;
    margin: 0 auto;
    padding: 25px 0;
    text-align: center;
    font-size: 1em;
    font-weight: 700;
    letter-spacing: 1px;
    color: #ffffff;
    background: #f2994a;
    border-radius: 50px;
    transition: all 0.3s;
}

#page_404 .not_found .page_link a:hover {
    background: #6FCF97;
}


@media (min-width: 768px) {

}


@media (min-width: 1024px) {

    #page_404 .not_found .sorry p {
        text-align: center;
    }
    
}