@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

/* 施設概要（共通）----------------------------------- */
.page .l-mainContent__inner>.post_content .wp-block-group.facility-outer-wrap {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    background-color: #FBFFF0;
    box-sizing: border-box;
}

.wp-block-group.facility-inner-wrap {
    width: 100%;
    max-width: 750px;
    margin-left: auto;
    margin-right: auto;
    padding: 0 24px;
}

/* 施設お問い合わせ（共通）----------------------------------- */
.page .l-mainContent__inner>.post_content .wp-block-group.facility-contact-outer-wrap {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    background-color: #E5F2EB;
    box-sizing: border-box;
}

.wp-block-group.facility-contact-inner-wrap {
    width: 100%;
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
    padding: 0 24px;
}

/* 施設資料ダウンロード ------------------------------- */
div.facility-docs-dl-subtitle {
    text-align: center;
    font-size: 1.2em;
    color: #009A46;
    margin: 2em 0;
}

@media (max-width: 599px) {
    div.facility-docs-dl-subtitle {
        font-size: .9em;
    }
}

.facility-docs-dl-subtitle i.fa-solid.fa-arrow-down {
    margin: 0 .5em;
}

h3.facility-docs-dl-table-title {
    width: 100%;
    max-width: 750px;
    margin: 0 auto .5em;
    color: #009A46;
    background-color: #C6E8DF;
    padding: 0 .5em;
    font-weight: 500;
}

/* 資料ダウンロード table -------*/
table.facility-docs-dl {
    width: 100%;
    max-width: 750px;
    margin: 0 auto 1.6em;
}

table.facility-docs-dl {
    border-collapse: collapse;
}

table.facility-docs-dl tbody {
    background-color: #fff;
}

table.facility-docs-dl td {
    width: 50%;
    border: solid 1px #009A46;
}

table.facility-docs-dl td:first-child {
    border-left: none;
}

table.facility-docs-dl td:last-child {
    border-right: none;
}

table.facility-docs-dl i.fa-regular.fa-file {
    color: #009A46;
    margin: 0 .3em;
}

table.facility-docs-dl i.fa-solid.fa-circle-arrow-down {
    color: #009A46;
    margin-left: .3em;
}

/* メディアクエリ：スマホ（600px以下） */
@media (max-width: 599px) {
    table.facility-docs-dl {
        display: block;
        width: 100%;
    }

    table.facility-docs-dl tbody {
        display: block;
    }

    table.facility-docs-dl tr {
        display: block;
        width: 100%;
    }

    table.facility-docs-dl td {
        display: block;
        width: 100%;
        border-left: solid 1px #009A46;
        border-right: solid 1px #009A46;
        border-top: none;
        border-bottom: solid 1px #009A46;
    }

    table.facility-docs-dl td:first-child {
        border-left: none;
        border-right: none;
    }

    table.facility-docs-dl td:last-child {
        border-left: none;
        border-right: none;
    }

    table.facility-docs-dl td.pc-tb-only {
        display: none;
    }
}

/* Instagram フィード -------------------------------- */
p.has-text-align-center.before-instagram {
    margin-bottom: .5em;
}

.eng-title-wrap.instagram {
    margin-bottom: 1.5em;
}

div.sbi_feedtheme_header_text h3 {
    color: #009A46 !important;
    font-weight: 600 !important;
}

.sbi_load_btn {
    background-color: #fff !important;
    color: #009A46 !important;
    border: solid 1px #009A46 !important;
}

#sb_instagram #sbi_load .sbi_follow_btn a {
    margin-top: 0 !important;
}

#sb_instagram .sbi_follow_btn a {
    background-color: #009A46;
    border: solid 1px #009A46;
}

#sb_instagram .sbi_follow_btn a:hover {
    /* background-colorはpluginで指定 */
    color: #009A46;
}

@media (max-width: 335px) {
    #sb_instagram #sbi_load .sbi_follow_btn a {
        margin-top: 10px !important;
    }
}

/* Round Button ----------------------------------------- */
.round-button-wrap {
    text-align: center;
}

a.round-button {
    border: solid 1px #009A46;
    padding: 0 1.5em;
    border-radius: 20px;
    background-color: #FBFFF0;
}

a.round-button:hover {
    background-color: #fff;
}

.round-button-wrap i.fa-solid.fa-circle-arrow-right {
    margin-left: .5em;
    color: #009A46;
    transition: transform 0.3s ease;
}

.round-button-wrap a:hover i.fa-solid.fa-circle-arrow-right {
    transform: translateX(5px);
    color: #E50112;
}

/* Square Button ---------------------------------------- */
.square-button-wrap {
    text-align: center;
}

a.square-button {
    border: solid 1px #009A46;
    color: #fff;
    background-color: #009A46;
    padding: .25em 2.4em;
    letter-spacing: .15em;
}

i.fa-solid.fa-chevron-right {
    font-size: .9em;
    margin-left: 1em;
    transition: transform 0.3s ease;
}

a:hover i.fa-solid.fa-chevron-right {
    transform: translateX(5px);
}

a.square-button:hover {
    color: #009A46;
    background-color: #fff;
}

/* お知らせ一覧 categoryページ ---------------------------- */
.category .p-termContent.l-parent {
    margin-top: 2em;
}

.category h1.c-pageTitle {
    display: none;
}

.category .c-tabBody.p-postListTabBody {
    width: 100%;
    max-width: 680px;
    margin: 0 auto;
}

.category ul.p-postList.-type-list {
    border-top: solid 1px #009A46;
    padding-top: 1.5em;
}

.category li.p-postList__item {
    border-bottom: solid 1px #009A46;
    padding-bottom: 1.5em;
}

.category figure.c-postThumb__figure {
    display: none;
}

.category .p-postList__body {
    width: 100% !important;
}

.category .p-postList__title {
    font-size: 1.68em !important;
    color: #292929;
    font-weight: 500;
}

.category li.p-postList__item:hover .p-postList__title {
    color: #009A46;
}

.category .p-postList__excerpt {
    font-size: 1em !important;
}

.category time.c-postTimes__posted.icon-posted {
    font-size: 1.25em;
}

.category time.c-postTimes__posted.icon-posted::before {
    display: none;
}

/* 投稿ページ (News) ------------------------------------- */

/* 日付とタイトル */
time.c-postTitle__date.u-thin {
    background-color: #fff;
    aspect-ratio: 1 / 1;
    border-radius: 50px;
    border: solid 1px #009A46;
    font-family: "Roboto", sans-serif;
    color: #009A46;
    line-height: 1.1 !important;
    font-weight: 500;
    text-align: center;
    padding: 1em 8px 0 8px;
}

span.__y {
    font-size: 1em !important;
    margin-bottom: 0 !important;
}

h1.c-postTitle__ttl {
    color: #009A46;
    font-weight: 500;
}

/* タイトル下カテゴリと日付非表示 */
.p-articleMetas.-top {
    display: none;
}

/* ページ下カテゴリ非表示 */
.p-articleMetas.-bottom {
    display: none;
}

.p-articleFoot {
    border: 0;
    margin: 0;
    padding: .1em;
}

/* ページネーション非表示 */
ul.p-pnLinks.-style-normal {
    display: none;
}

/* ページ下スペース */
.single-post div#content {
    margin-bottom: 0 !important;
}

.single-post div#before_footer_widget {
    margin-top: 4em;
}

/* 各施設の紹介 ------------------------------------------ */
.swell-block-columns.facilities-about {
    width: 100%;
    max-width: 750px;
    margin: 0 auto;
    background-color: #fff;
    border-top: solid 1px #000;
    border-bottom: solid 1px #000;
    padding: 1.5em;
}

.facilities-about p.services {
    font-size: 1.28em;
    color: #009A46;
    font-weight: 500;
    line-height: 1.5;
}

@media (max-width: 599px) {
    .facilities-about p.services {
        font-size: 1em;
    }
}

.facilities-about p.text {
    line-height: 1.5;
}

/* 施設概要 table ---------------------------------------- */
table.facility {
    position: relative;
    width: 100%;
    max-width: 750px;
    margin: 0 auto 1.5em auto;
    border-collapse: collapse;
    table-layout: fixed;
    border-top: solid 1px #009A46;
    border-bottom: solid 1px #009A46;
    border-left: none;
    border-right: none;
    background-color: #fff;
}

table.facility::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateY(-50%);
    width: 1px;
    height: 90%;
    background-color: #009A46;
}

table.facility td {
    width: 50%;
    padding: .6em 1em;
    vertical-align: top;
    border: none;
}

table.facility td.teiin.one-column {
    padding: .6em 1em;
    position: relative;
    vertical-align: middle;
}

table.facility td.teiin.one-column::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 90%;
    height: 1px;
    background-color: #009A46;
}

table.facility td.teiin.one-column span {
    width: 100px;
}

table.facility td div {
    display: flex;
    align-items: center;
}

table.facility td span {
    color: #788282;
    font-size: .8em;
    margin-right: 13px;
    font-family: "Zen Kaku Gothic New", sans-serif;
    flex-shrink: 0;
}

table.facility td span.chita {
    margin-right: 0;
}

table.facility td.byousyou,
table.facility td.shikichi,
table.facility td.yuka-menseki,
table.facility td.two-columns {
    position: relative;
}

table.facility td.two-columns::before {
    content: '';
    position: absolute;
    top: 20%;
    left: 50%;
    transform: translateX(-50%);
    width: 1px;
    height: 60%;
    background-color: #009A46;
}

table.facility td.byousyou::after,
table.facility td.shikichi::after,
table.facility td.yuka-menseki::after,
table.facility td.two-columns::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 90%;
    height: 1px;
    background-color: #009A46;
}

table.facility td.byousyou span {
    width: 85px;
}

table.facility td.setsubi,
table.facility td.yuka-menseki,
table.facility td.kibo-kouzou {
    vertical-align: middle;
}

table.facility td.setsubi span {
    width: 50px;
}

table.facility td.shikichi span,
table.facility td.yuka-menseki span,
table.facility td.kibo-kouzou span {
    width: 115px;
}

table.facility td p {
    color: #009A46;
    margin: 0;
}

table.facility td.teiin,
table.facility td.tanki {
    padding: 0;
}

table.facility td.tanki {
    padding-left: 1em;
}

table.facility td.tanki.chita {
    vertical-align: middle;
    text-align: center;
    padding-left: 0;
}

table.facility td.byousyou p,
table.facility td.shikichi p,
table.facility td.yuka-menseki p,
table.facility td.teiin p,
table.facility td.tanki p {
    font-size: 1.4em;
}

table.facility td.setsubi p,
table.facility td.kibo-kouzou p {
    font-size: 1em;
    letter-spacing: 0;
}

/* iOS / iPadOS Safari系だけに効かせる */
@supports (-webkit-touch-callout: none) {
    table.facility {
        border-collapse: separate;
        /* ←ここがポイント */
        border-spacing: 0;
    }
}

/* ダウンロードボタン ----------- */
.swell-block-columns.download-button-outer-wrap {
    width: 100%;
    max-width: 720px;
    margin: 0 auto;
}

.download-button-wrap {
    text-align: center;
}

a.download-button {
    color: #009A46;
    border: solid 1px #009A46;
    padding: .3em 1.5em;
    border-radius: 40px;
    background-color: #fff;
}

i.fa-solid.fa-circle-arrow-down {
    margin-left: .5em;
}

a.download-button:hover {
    color: #fff;
    background-color: #009A46;
}

/* メディアクエリ：スマホ（600px以下） */
@media (max-width: 760px) {
    table.facility {
        display: block;
    }

    table.facility::before {
        display: none;
    }

    /* ★外側の構造だけに限定（ここが重要） */
    table.facility>tbody {
        display: block;
    }

    table.facility>tbody>tr {
        display: block;
        width: 100%;
    }

    table.facility>tbody>tr>td {
        display: block;
        width: 100% !important;
    }

    /* two-columns 自体は block でOK */
    table.facility td.two-columns {
        display: block;
        width: 100% !important;
    }

    /* 内側テーブルは通常の table レイアウトで */
    table.facility td.two-columns table {
        width: 100%;
        table-layout: fixed;
        border-collapse: collapse;
    }

    /* ★内側テーブルの tbody/tr/td を “テーブル” に戻す（保険として入れてOK） */
    table.facility td.two-columns table tbody {
        display: table-row-group;
    }

    table.facility td.two-columns table tr {
        display: table-row;
    }

    table.facility td.two-columns table td {
        display: table-cell;
        width: 50%;
        box-sizing: border-box;
        padding: 0 !important;
    }

    table.facility td.two-columns table td.tanki {
        padding-left: 1em !important;
    }

    /* rowspan 周り（既存のままでOK） */
    table.facility td[rowspan] {
        position: static;
    }

    table.facility td.setsubi {
        position: relative;
    }

    table.facility td.setsubi::after {
        content: '';
        position: absolute;
        bottom: 0;
        left: 50%;
        transform: translateX(-50%);
        width: 90%;
        height: 1px;
        background-color: #009A46;
    }

    .download-button-wrap {
        font-size: .78em;
    }
}

@media (max-width: 599px) {
    .download-button-wrap {
        font-size: 1em;
    }
}

/* アクセス------------------------------------ */
ul.access {
    width: 100%;
    max-width: 720px;
    margin: 0 auto 1.5em auto;
    padding: 0;
    list-style: none;
    background-color: #fff;
}

ul.access li {
    display: flex;
    padding: .5em 1em;
    border-top: solid 1px #009A46;
    margin: 0;
}

ul.access li.access-wrap {
    padding-top: 1em;
    align-items: flex-start;
}

ul.access li.access-wrap.takasugi {
    padding-right: 0;
}

ul.access li.tel-fax div.tel p {
    color: #E50112;
}

ul.access-howto {
    padding-left: 0;
}

ul.access li.access-wrap.takasugi ul.access-howto li {
    padding-right: 0;
}

ul.access li:nth-child(1) {
    padding-top: .8em;
    padding-bottom: .8em;
    align-items: center;
}

ul.access li.access-wrap ul.access-howto li {
    padding-top: 0;
    padding-bottom: .5em;
}

ul.access li:nth-child(2) {
    padding-top: .6em;
    padding-bottom: .6em;
    align-items: center;
}

ul.access li:nth-child(3) {
    padding-top: 1em;
    padding-bottom: 1em;
}

ul.access li:last-child {
    border-bottom: solid 1px #009A46;
}

span.green {
    width: 15%;
    color: #009A46;
    font-size: .9em;
    font-weight: 600;
}

span.green.access {
    width: 15%;
}

ul.access-howto {
    width: 85%;
}

ul.access li:nth-child(1) {
    justify-content: flex-start;
}

ul.access li:nth-child(1) p {
    text-align: left;
}

ul.access li.tel-fax {
    position: relative;
}

ul.access li.tel-fax::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 1px;
    height: 60%;
    background-color: #009A46;
}

ul.access li div {
    display: flex;
}

ul.access li div.tel {
    width: 50%;
    align-items: center;
}

ul.access li div.fax {
    width: 50%;
    align-items: center;
}

ul.access li div.tel p,
ul.access li div.fax p {
    font-size: 1.5em;
}

ul.access li div.fax p,
ul.access li div.fax span.green {
    padding-left: 1em;
}

ul.access li div.tel span.green,
ul.access li div.fax span.green {
    width: 30%;
}

ul.access li.access-wrap ul.access-howto li {
    list-style: none;
    border: none !important;
    border-top: none !important;
    padding-left: 1.5em;
    position: relative;
    margin-top: 0;
    padding-top: 0;
    display: flex;
    align-items: flex-start;
    line-height: 1.5;
}

ul.access-howto li:last-child {
    padding-top: 0;
    padding-bottom: 0;
    margin-bottom: 0;
}

ul.access-howto li::before {
    content: '◎';
    position: absolute;
    top: 0;
    left: 0;
    color: #009A46;
}

/* メディアクエリ：タブレット（959px以下） */
@media (max-width: 959px) {
    ul.access {
        max-width: 100%;
        padding: 0 1em;
    }

    ul.access li {
        flex-direction: column;
        padding: .5em 0.75em;
    }

    ul.access li:nth-child(1) {
        flex-direction: row;
        align-items: center;
    }

    ul.access li:nth-child(1) span.green {
        width: 15%;
        margin-bottom: 0;
    }

    ul.access li:nth-child(3) {
        flex-direction: row;
        align-items: flex-start;
    }

    ul.access li:nth-child(3) span.green {
        width: 15%;
    }

    span.green {
        width: 100%;
        margin-bottom: 0.5em;
    }

    ul.access li div.tel,
    ul.access li div.fax {
        width: 50%;
        margin-bottom: 0;
    }

    ul.access li div.tel p,
    ul.access li div.fax p {
        font-size: 1.3em;
    }

    ul.access li.tel-fax {
        flex-direction: row;
    }

    ul.access li div.tel span.green,
    ul.access li div.fax span.green {
        width: 30%;
        margin-bottom: 0;
    }

    ul.access li div.fax p,
    ul.access li div.fax span.green {
        padding-left: 1em;
    }

    ul.access-howto {
        padding-left: 0;
    }

    .access-howto li {
        padding-left: 1.8em !important;
    }
}

@media (max-width: 840px) {
    ul.access li:nth-child(3) {
        flex-direction: column;
    }
}

/* メディアクエリ：スマホ（600px以下） */
@media (max-width: 600px) {
    ul.access {
        padding: 0 0.5em;
    }

    ul.access li {
        padding: .5em 0.5em;
        flex-direction: column;
    }

    ul.access li:nth-child(1) {
        flex-direction: column;
    }

    ul.access li:nth-child(1) span.green {
        width: 100%;
        margin-bottom: 0.5em;
    }

    ul.access li:nth-child(3) span.green {
        width: 100%;
        margin-bottom: 0.5em;
    }

    span.green {
        width: 100%;
        font-size: 0.85em;
        margin-bottom: 0.5em;
    }

    ul.access li.tel-fax {
        flex-direction: column;
    }

    ul.access li div.tel,
    ul.access li div.fax {
        width: 100%;
        margin-bottom: 0.5em;
    }

    ul.access li div.tel:last-child,
    ul.access li div.fax:last-child {
        margin-bottom: 0;
    }

    ul.access li div.tel p,
    ul.access li div.fax p {
        font-size: 1.1em;
    }

    ul.access li div.tel span.green,
    ul.access li div.fax span.green {
        width: 22%;
        margin-bottom: 0;
        font-size: 0.75em;
    }

    ul.access li div.fax p,
    ul.access li div.fax span.green {
        padding-left: 0;
    }

    ul.access li.tel-fax::before {
        display: none;
    }

    ul.access-howto li::before {
        top: 0px;
    }

}

/*お問い合わせフォーム -----------------------------------*/
table.contact-table {
    width: 100%;
    max-width: 720px;
    margin: 0 auto;
}

.contact-table,
.contact-table tr,
.contact-table td {
    border: none !important;
    border-collapse: collapse;
}

.contact-table td {
    padding: 7px;
}

.contact-table input[type="text"],
.contact-table input[type="email"] {
    width: 100%;
    padding: 10px;
    font-size: 1rem;
    line-height: 1.5rem;
    border: solid 1px #009A46;
    border-radius: 0;
    background-color: #fff;
}

.contact-table textarea {
    width: 100%;
    height: 220px;
    padding: 10px;
    font-size: 1rem;
    line-height: 1.5rem;
    border: solid 1px #009A46;
    border-radius: 0;
    background-color: #fff;
}

.contact-table input[type="text"]:focus,
.contact-table input[type="email"]:focus,
.contact-table textarea:focus {
    border: solid 1px #014DA1;
    outline: none;
    box-shadow: 0 0 3px #014DA1;
}

.contact-table input.wpcf7-form-control.wpcf7-file {
    font-size: .8em;
}

.contact-table input[type="submit"] {
    width: 100%;
    max-width: 240px;
    padding: .45em;
    font-size: 1rem;
    font-weight: 600;
    text-align: center;
    line-height: 1.5rem;
    letter-spacing: .4rem;
    border: solid 1px #009A46;
    border-radius: 0;
    background-color: #009A46;
    color: #fff;
    cursor: pointer;
    margin: .3em auto 0 0;
    display: block;
}

.contact-table input[type="submit"]:hover {
    background-color: #fff;
    border: solid 1px #009A46;
    color: #009A46;
    cursor: pointer;
}

@media screen and (max-width: 480px) {
    .contact-table {
        width: 100%;
    }

    .contact-table tr {
        display: block;
        margin-bottom: 10px;
    }

    .contact-table td {
        display: block;
        width: 100%;
    }
}

/* 電話ボタン --------------------------- */
p.contact-tel-text {
    margin-bottom: 1em;
}

.contact-tel-button-wrap {
    text-align: center;
}

a.contact-tel-button {
    padding: .3em 2em;
    background-color: #fff;
    border-radius: 40px;
    border: solid 2px #009A46;
    letter-spacing: .15em;
    font-size: 1.2em;
    font-weight: 600;
}

i.fa-solid.fa-phone.contact {
    margin-right: .5em;
    color: #009A46;
}

a.contact-tel-button:hover {
    background-color: #009A46;
    color: #fff;
}

a.contact-tel-button:hover i.fa-solid.fa-phone.contact {
    color: #fff;
}

/* 施設一覧------------------------------ */
.facilities-outer-wrap {
    width: 100%;
    max-width: 900px;
    margin: 0 auto;
    background-color: #fff;
    padding: 30px;
    border-radius: 20px;
}

.facilities-inner-wrap {
    width: 100%;
    display: flex;
    position: relative;
    margin-bottom: 4em;
}

.facilities-inner-wrap .img-column {
    width: 20%;
    aspect-ratio: 177 / 120;
    overflow: hidden;
}

.facilities-inner-wrap img {
    width: 100%;
    max-width: 177px;
}

.facilities-inner-wrap .img-column img {
    transition: transform 0.3s ease;
}

.facilities-inner-wrap .img-column:hover img {
    transform: scale(1.1);
}

.facilities-inner-wrap .text-column {
    width: 80%;
}

p.facilities__address {
    margin-bottom: .2em;
}

.facilities-inner-wrap .text-column {
    padding-left: 24px;
}

.facilities-inner-wrap h3 {
    font-size: 1.6em;
    font-weight: 500;
    margin-bottom: 0px !important;
    margin-top: 0px !important;
    transition: color 0.3s ease;
}

.facilities-inner-wrap h3:hover {
    color: #E50112;
}

.facilities-inner-wrap i.fa-solid.fa-circle-arrow-right {
    color: #009A46;
    margin-left: .5em;
    transition: color 0.3s ease, transform 0.3s ease;
}

.facilities-inner-wrap h3:hover i.fa-solid.fa-circle-arrow-right {
    color: #E50112;
    transform: translateX(5px);
}

.facilities__subtitle {
    font-weight: 500;
    color: #009A46;
}

/* 罫線 */
.facilities-inner-wrap::after {
    content: '';
    position: absolute;
    top: calc(100% + 2em);
    left: 50%;
    transform: translateX(-50%);
    width: 66%;
    height: 1px;
    background-color: #014DA1;
}

.facilities-inner-wrap:last-child::after {
    display: none;
}

a.facilities__button {
    border: solid 1px #009A46;
    border-radius: 4px;
    padding: 0 1.5em;
    background-color: #F7FCEF;
    line-height: 2em;
}

a.facilities__button.tel {
    border: 0;
    background-color: transparent;
    color: #E50112;
    padding-left: 0;
    font-family: "Roboto", sans-serif;
    font-size: 1.1em;
    position: relative;
    display: inline-block;
    padding-bottom: 2px;
    padding-right: 0;
}

a.facilities__button.tel::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 5px;
    width: 100%;
    height: 2px;
    background-color: #E50112;
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.25s ease;
}

a.facilities__button.tel:hover::after {
    transform: scaleX(1);
}

a.facilities__button.tel:hover {
    background-color: transparent;
    border: 0;
}

a.facilities__button:hover {
    background-color: #fff;
    border: solid 1px #009A46;
}

a.facilities__button:hover i.fa-solid.fa-circle-chevron-right.facilities,
a.facilities__button:hover i.fa-solid.fa-envelope.facilities {
    color: #E50112;
}

a.facilities__button.map {
    margin-left: 1em;
}

a.facilities__button.contact {
    margin-right: 1em;
}

i.fa-solid.fa-circle-chevron-right.facilities {
    color: #009A46;
    margin-left: .5em;
}

i.fa-solid.fa-phone.facilities {
    color: #E50112;
    margin: 0 .5em 0 0;
}

i.fa-solid.fa-envelope.facilities {
    color: #009A46;
    margin: .5em .5em 0 0;
}

i.fa-brands.fa-instagram {
    font-size: 1.4em;
    margin-left: .5em;
    color: #009A46;
}

.facilities-outer-wrap a:hover i.fa-brands.fa-instagram {
    color: #E50112;
}

.tb-only,
.tb-only2 {
    display: none;
}

@media (max-width: 959px) {
    .tb-only {
        display: block;
    }

    a.facilities__button {
        display: inline-block;
        width: 180px;
        text-align: center;
        font-size: 16px !important;
        margin: .5em 0;
        line-height: 1.8;
    }

    a.facilities__button.map {
        margin-left: 0;
        margin-bottom: 0;
    }
}

@media (max-width: 740px) {
    .tb-only2 {
        display: block;
    }

    a.facilities__button.contact {
        margin-left: 0;
    }
}

@media (max-width: 599px) {
    .facilities-outer-wrap {
        padding: 20px;
    }

    .facilities-inner-wrap {
        flex-direction: column;
    }

    .facilities-inner-wrap .img-column {
        width: 100%;
        max-width: 177px;
        margin: 0 auto .4em auto;
    }

    .facilities-inner-wrap .text-column {
        width: 100%;
        padding-left: 0;
    }

    a.facilities__button.tel {
        margin: 0;
        text-align: left;
        font-size: 20px !important;
    }
}

@media (max-width: 480px) {
    .facilities-inner-wrap h3 {
        font-size: 1.4em !important;
    }
}

/* H2---------------------------------- */
.h2-wrap {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: .5em;
}

.title-with-logo-icon-wrap {
    display: flex;
    justify-content: center;
}

.title-with-logo-icon {
    position: relative;
    display: inline-block;
    margin-bottom: 60px;
}

.title-with-logo-icon::before {
    content: '';
    position: absolute;
    right: 100%;
    top: 50%;
    transform: translateY(-50%);
    margin-right: 12px;
    width: 94px;
    height: 94px;
    background: url('https://kyoaikai.org/wordpress2/wp-content/uploads/2026/05/logo-icon.png') no-repeat center / contain;
}

.title-with-logo-icon--white {
    margin-bottom: 40px;
}

.title-with-logo-icon--white::before {
    background-image: url('https://kyoaikai.org/wordpress2/wp-content/uploads/2026/05/logo-icon-white.png');
}

.title-with-logo-icon:has(#staff-stories)::before {
    margin-right: -20px;
}

.title-with-logo-icon__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.title-with-logo-icon .h2-wrap {
    margin-bottom: .5em;
}

.title-with-logo-icon .eng-title-wrap {
    margin-bottom: 0;
}

h2.wp-block-heading {
    font-size: 2.2em;
    font-weight: 500;
    letter-spacing: .2em;
    color: #292929;
    margin-top: 0px;
    margin-bottom: 0;
}

.eng-title-wrap {
    text-align: center;
    margin-bottom: 60px;
}

.title-eng {
    font-family: "Roboto", sans-serif;
    font-weight: 600;
    font-size: 1.2em;
    color: #009A46;
    letter-spacing: .4em;
}

@media (max-width: 480px) {
    .h2-wrap {
        gap: 24px;
    }

    .title-with-logo-icon {
        margin-bottom: 40px;
    }

    .title-with-logo-icon::before {
        width: 60px;
        height: 60px;
        margin-right: -4px;
        margin-top: -12px;
    }

    .title-with-logo-icon:has(#open-positions)::before,
    .title-with-logo-icon:has(#staff-stories)::before {
        margin-right: -20px;
    }

    h2.wp-block-heading {
        font-size: 28px;
        letter-spacing: .08em;
    }

    h2.wp-block-heading.instagram,
    h2.wp-block-heading.incho-message {
        font-size: 26px;
        letter-spacing: .04em;
    }

    .eng-title-wrap {
        margin-bottom: 40px;
    }

    .title-eng {
        font-size: 16px;
    }
}

/* footer -------------------------------------------------- */
.l-footer {
    background: linear-gradient(to bottom, #014DA1 0%, #009A46 70%, #99C412 100%);
}

.l-footer__widgetArea {
    padding-top: 2.2em;
}

img.footer-logo {
    width: 185px;
    margin-bottom: 1em;
}

@media (max-width: 599px) {
    .footer-sp {
        text-align: center;
    }

    .footer-sp img.footer-logo {
        display: block;
        margin: 0 auto 1em auto;
    }

    .footer-sp .footer-address {
        width: 100%;
        max-width: 220px;
        text-align: left;
        margin: 0 auto;
    }

}

@media (min-width: 960px) {
    .footer-pc-2,
    .footer-pc-3 {
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        column-gap: clamp(24px, 4vw, 60px);
        row-gap: 12px;
        align-items: flex-start;
    }

    .footer-pc-2 > ul,
    .footer-pc-3 > ul {
        margin: 0;
        line-height: 1.8;
        flex: 0 0 auto;
        width: auto;
        display: block;
    }

    .footer-pc-2 > ul > li:first-child,
    .footer-pc-3 > ul > li:first-child {
        background-color: #fff;
        border-radius: 4px;
        padding: 4px 10px;
        display: inline-block;
        margin-bottom: .6em;
    }

    .footer-pc-2 > ul > li:first-child a,
    .footer-pc-3 > ul > li:first-child a {
        color: #014DA1;
    }

    .footer-pc-2 > ul > li:nth-child(n+2),
    .footer-pc-3 > ul > li:nth-child(n+2) {
        font-size: 14px;
    }

    ul.footer_facilitites > li:nth-child(2),
    ul.footer_job > li:nth-child(2) {
        background-color: #E50112;
        border-radius: 4px;
        padding: 0 10px;
        display: inline-block;
        margin-bottom: .5em;
    }

    ul.footer_facilitites > li:nth-child(2) a,
    ul.footer_job > li:nth-child(2) a {
        color: #fff;
    }

    .footer-pc-3 > ul.footer_facilitites,
    .footer-pc-3 > ul.footer_job {
        display: block;
    }

    .footer-pc-3 > ul.footer_facilitites > li,
    .footer-pc-3 > ul.footer_job > li {
        display: block;
        width: 100%;
    }
}

/* Copyright下余白 --- */
.l-footer__foot {
    padding-bottom: 1.5em;
}

/* header -------------------------------------------------- */
/* SP表示 mobile menu ---------- */
.c-widget__title.-spmenu {
    display: none;
}

.p-spMenu__nav {
    margin-top: 0;
    position: relative;
}

.p-spMenu__nav::before {
    content: "";
    display: block;
    width: 140px;
    height: 58px;
    background-image: url(http://202512kyoaikai.local/wp-content/uploads/2026/04/logo-white.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    margin: 0 auto 1.5em auto;
}

ul.c-spnav.c-listMenu {
    font-size: 16px !important;
}

ul.c-spnav.c-listMenu li.menu-item a {
    border-bottom: dotted 1px #fff;
    padding: .8em 1em .8em 1.5em;
}

ul.c-spnav.c-listMenu li.menu-item-has-children>a {
    border-bottom: none;
    padding-bottom: .4em;
}

ul.c-spnav.c-listMenu li.menu-item-has-children::after {
    content: '';
    display: block;
    border-bottom: dotted 1px #fff;
}

ul.c-spnav.c-listMenu li.menu-item a::before {
    display: none;
}

ul.c-spnav.c-listMenu .sub-menu li.menu-item a {
    padding: .6em .8em .6em 3.2em;
    border-bottom: none;
}

ul.c-spnav.c-listMenu .sub-menu li.menu-item:last-child a {
    padding-bottom: 1.2em;
}

ul.c-spnav.c-listMenu .sub-menu li.menu-item a::before {
    display: block;
    left: 1.8em;
    color: #fff;
}

ul.c-spnav.c-listMenu li.menu-item-59 a {
    border-bottom: 0;
}

.c-spnav li.menu-item-59 a .header-nyuukyo-button {
    padding-bottom: 8px;
    letter-spacing: .2em;
}

.header-nyuukyo-button-sp {
    background-color: #009A46;
    width: 160px;
    color: #fff;
    text-align: center;
    padding: .4em;
    letter-spacing: .4em;
    font-weight: 600;
    border-radius: 3px;
}

/* PC表示---------- */
header#header {
    border-top: solid 10px #014DA1;
}

@media (max-width: 599px) {
    header#header {
        border-top: solid 6px #014DA1;
    }
}

nav#gnav .c-gnav li.menu-item:not(.menu-item-59):hover {
    background-color: transparent;
}

@media (min-width: 960px) {

    nav#gnav .c-gnav span.ttl {
        font-size: 18px !important;
        font-weight: 400;
        position: relative;
    }

    nav#gnav .c-gnav span.ttl::after {
        content: '';
        position: absolute;
        bottom: -12px;
        left: 0;
        width: 0;
        height: 2px;
        background-color: #014DA1;
        transition: width 0.3s ease;
    }

    nav#gnav .c-gnav li.menu-item:not(.menu-item-has-children):not(.menu-item-59):hover span.ttl::after,
    nav#gnav .c-gnav li.menu-item-has-children:not(.menu-item-59) > a:hover span.ttl::after {
        width: 100%;
    }

    nav#gnav .c-gnav .sub-menu li.menu-item span.ttl::after {
        bottom: -6px;
    }

    nav#gnav .c-gnav .sub-menu li.menu-item:hover,
    nav#gnav .c-gnav .sub-menu li.menu-item:hover > a,
    nav#gnav .c-gnav .sub-menu li.menu-item > a:hover {
        background-color: transparent !important;
    }

    nav#gnav .c-gnav .sub-menu li.menu-item:hover span.ttl::after {
        width: 100%;
    }

    nav#gnav .c-gnav span.ttl:hover {
        font-weight: 400;
    }

    .header-nyuukyo-button span {
        font-size: 16px !important;
        font-weight: 600 !important;
    }
}

.header-nyuukyo-button {
    display: inline-block;
    padding: 8px 16px 12px 16px;
    background-color: #E50112;
    font-weight: 600;
    color: #ffffff;
    text-decoration: none;
    border-radius: 4px;
    border: solid 1px #E50112;
    cursor: pointer;
    transition: background-color 0.3s ease;
}

.header-nyuukyo-button:hover {
    background-color: #fff;
    color: #E50112;
    border: solid 1px #E50112;
}

/* 投稿の p下マージン */
.single-post p {
    margin-bottom: 1em !important;
}

/* フォントの指定 */
body {
    font-family: "Noto Sans JP", sans-serif;
    letter-spacing: .05em;
}

/* パンくずリスト非表示 */
div#breadcrumb {
    display: none;
}

/* Turnstile--------- */
.wpcf7-turnstile.cf-turnstile {
    display: none;
}

/* レスポンシブ */
.sp-only {
    display: none;
}

@media(max-width:959px) {
    .pc-only {
        display: none;
    }
}

@media (max-width: 599px) {
    .sp-only {
        display: block;
    }

    /* <tr class="sp-only"> は block だと表が崩れるため行として表示 */
    tr.sp-only {
        display: table-row;
    }

    .pc-tb-only {
        display: none;
    }
}

/* Top main visual fade-in */
.home #main_visual.p-mainVisual {
    opacity: 0;
    transform: translateY(20px);
    animation: homeMainVisualFadeIn 2.2s ease-out 0.25s forwards !important;
}

.home #main_visual .p-mainVisual__imgLayer,
.home #main_visual .p-mainVisual__textLayer {
    opacity: 0;
    filter: blur(3px);
    animation: homeMainVisualLayerFade 2.2s ease-out 0.25s both;
}

@keyframes homeMainVisualFadeIn {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes homeMainVisualLayerFade {
    from {
        opacity: 0;
        filter: blur(3px);
    }
    to {
        opacity: 1;
        filter: blur(0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .home #main_visual.p-mainVisual,
    .home #main_visual .p-mainVisual__imgLayer,
    .home #main_visual .p-mainVisual__textLayer {
        animation: none !important;
        opacity: 1 !important;
        transform: none !important;
        filter: none !important;
    }
}

/* Top page about fade-in */
.home div#top-page-about {
    opacity: 0;
    transform: translateY(20px);
}

.home div#top-page-about.is-visible {
    animation: topPageAboutFadeIn 2.2s ease-out 0.25s both;
}

@keyframes topPageAboutFadeIn {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .home div#top-page-about {
        animation: none !important;
        opacity: 1 !important;
        transform: none !important;
    }
}

/* 求人 open-position table --------------------------------------- */
div#content main#main_content .post_content table.open-position {
    background-color: #fff;
    font-family: "Zen Kaku Gothic New", sans-serif;
    border-collapse: collapse !important;
    margin-bottom: 8em !important;
}

/* th / td の縦罫線を消し、横罫線は box-shadow で描く（border への SWELL 干渉を回避） */
div#content main#main_content .post_content table.open-position th,
div#content main#main_content .post_content table.open-position td {
    border: none !important;
    box-shadow: inset 0 -1px 0 0 #B3B3B3;
}

/* テーブル上端の罫線 */
div#content main#main_content .post_content table.open-position tr:first-child th,
div#content main#main_content .post_content table.open-position tr:first-child td {
    box-shadow: inset 0 1px 0 0 #B3B3B3, inset 0 -1px 0 0 #B3B3B3;
}

table.open-position th {
    width: 30%;
    font-weight: 500;
    background-color: #fff !important;
    padding: 1em;
    position: relative;
}

table.open-position th::after {
    content: '';
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 1px;
    height: 60%;
    background-color: #B3B3B3;
}

table.open-position td {
    width: 70%;
    padding: 1em;
}

.job-entry-button-wrap {
    margin: .6em 0 .4em 0;
}

a.job-entry-button {
    border: solid 1px #009A46;
    background-color: #009A46;
    color: #fff;
    padding: .2em 1.5em;
    display: inline-flex;
    align-items: center;
    font-weight: 500;
}

a.job-entry-button:hover {
    background-color: #fff;
    color: #009A46;
}

a.job-entry-button i.fa-solid.fa-chevron-right {
    margin-left: 1em;
    font-size: 14px;
    vertical-align: middle;
}

ul.job-list {
    list-style: none;
    padding-left: 0;
}

ul.job-list li {
    padding-left: 1.5em;
    text-indent: -1.5em;
}

ul.job-list li::before {
    content: '◎';
    color: #009A46;
    margin-right: 0.5em;
}

/* 固定ページ内：keyvisualを全幅表示 */
.page .l-mainContent__inner>.post_content figure.wp-block-image.keyvisual {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}

/* 画像自体も全幅にフィット */
.page .l-mainContent__inner>.post_content figure.wp-block-image.keyvisual img {
    display: block;
    width: 100%;
    height: auto;
}