@charset "utf-8";

/*--------------------------------------------------------
目次
--------------------------------------------------------
1. テーマ情報
2. ルート変数
3. タイポグラフィとフォント設定
   -- for Apple
4. for Apple
5. テキスト要素のスタイル
6. ブロックエディタのデフォルト設定とレイアウト・ブレークポイントを合わせる
7. コンテナのスタイル
8. 下層ページメインビジュアル
9. パンクズリストのスタイル
10. 見出しのスタイル
11. オリジナルブロックのスタイル
12. フッターのスタイル
13. SNSリンク
14. トップに戻るボタン
15. モバイルナビボタン
16. モバイルナビ
17. ロゴ
18. サイトヘッダー
19. ブログ関連のスタイル
20.トップページメインビジュアル
21.スマホ用下部固定メニュー
22.スクロールヒント
--------------------------------------------------------*/

/*--------------------------------------------------------
1. テーマ情報
--------------------------------------------------------*/
/*
Theme Name: nenrin
Theme URI:
Template: lightning
Description:
Author:
Tags:
Version: 
*/

/*--------------------------------------------------------
2. ルート変数
--------------------------------------------------------*/
:root {
    /*白は #fff 線は #cccとする*/
    
    --vk-color-text-body: #1c1f26;
    --vk-color-text-link: #1c1f26;
    /*--vk-color-text-link-hover: ;*/
    --vk-color-border-hr: #caccd9;
    /*--vk-color-primary: ;*/
    
    /*明るめオレンジ 項目タイトル等に使用*/
    --vk-color-primary-light: #ff9a50;
    --green: #24a58d;
    --red: #f45b59;
    --daidai: #f05b4c;
    --systemgray: #dee0ed;
    
    --parts: #ffde5a;
    
    --vk-size-text: 18px;
    --vk-size-radius: 5px;
    
    /*背景色*/
    /*--bg-dark: ;*/
    --bg-light: #ecf0f4;
    
    /*ヘッダーの高さ*/
    --header-height: 160px;
    /*ボックスシャドウ（ボタン）*/
    --box-shadow: 0px 2px 3px rgba(211,211,211,0.75);
    /*トランジション（ボタン）*/
    --transition: all 0.3s ease;
}
@media screen and (max-width: 991.98px) {
    :root {
        /*ヘッダーの高さ*/
        --header-height: 135px;
    }
}

/*--------------------------------------------------------
3. タイポグラフィとフォント設定
--------------------------------------------------------*/
body, html {
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    font-feature-settings: "palt";
    letter-spacing: 1px;
}
@media (max-width: 991.98px) {
    body, html {
        font-size: var(--vk-size-text);
    }
}
@media print {
    body, html {
        background-color: transparent;
    }
    body.custom-background {
        background: none!important;
    }
}

/*--------------------------------------------------------
-- for Apple
--------------------------------------------------------*/
body {
    -webkit-text-size-adjust: 100%;
}
a[href^="tel:"] {
    color: var(--vk-color-text-body);
    text-decoration: none;
}
.device-pc a[href^="tel:"] {
    pointer-events: none;
}

/*--------------------------------------------------------
4. リンクのスタイル
--------------------------------------------------------*/

a, li a, p a {
    text-decoration: none;
}
a:hover, li a:hover, p a:hover {
    text-decoration: underline;
    -webkit-text-decoration-style: solid;
    text-decoration-style: solid;
    text-underline-offset: 2px;
    text-decoration-thickness: 1px;
}

/*サイトごとに異なる*/
a:hover {
    opacity: .8;
}

/*外部リンクにアイコンを付ける*/
.entry a[target="_blank"]::after,
.site-footer a[target="_blank"]::after{
    display: inline-block;
    content: "";
    width: 14px;
    height: 14px;
    background-color: currentColor;
    mask-image: url("img/parts/mask-blank-03.svg");
    mask-size:cover;
    margin-left: 4px;
}

/*--------------------------------------------------------
5. テキスト要素のスタイル
--------------------------------------------------------*/
/* フロント用（通常表示） */
b, strong {
  font-weight: 500;
}
/* 管理画面用（WordPress Admin） */
.editor-styles-wrapper p b,
.editor-styles-wrapper p strong {
  font-weight: bold;
}

li {
    line-height: var(--vk-line-height);
}
address {
    font-style: normal;
    line-height: var(--vk-line-height);
}
address span {
    display: inline-block;
}

/*--------------------------------------------------------
6. ブロックエディタのデフォルト設定とレイアウト・ブレークポイントを合わせる
--------------------------------------------------------*/

/* カラムブロックのブレイクポイントを992pxにあわせる */
@media screen and (max-width: 991.98px) {
    .wp-block-columns {
        flex-wrap: wrap !important;
    }
    .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column {
        flex-basis: 100% !important;
    }
}

/* カラムブロック 印刷時は横に並べる */
@media print {
    .wp-block-columns {
        flex-wrap: nowrap;
    }
    .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column {
        flex-basis:auto;
    }
}

/* 不要な左右マージンが入るのを回避 */
.is-layout-constrained > * {
    max-width: none;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* 囲み（グループ）内 不要な左右マージンが入るのを回避 */
.wp-block-group h1,
.wp-block-group h2,
.wp-block-group h3,
.wp-block-group h4,
.wp-block-group h5,
.wp-block-group h6 {
    margin-left: 0!important;
    margin-bottom:  var(--vk-margin-headding-bottom)!important;
}

/*--------------------------------------------------------
7. コンテナのスタイル
--------------------------------------------------------*/

@media screen and (min-width: 1200px) {
    .container {
        max-width: calc( 1000px + 15px + 15px );
    } 
}
@media print {
    .container {
        max-width: none;
    }
}

/*サイトヘッダコンテナ*/
.site-header-container {
    max-width: none!important;
}
@media screen and (min-width: 992px) {
    .site-header-container {
        padding-left: 30px;
        padding-right: 30px;
    }
}

/*サイトボディ（＋ページヘッダ、パンくずコンテナ）*/
.site-body {
    padding-top: 70px!important;
    padding-bottom: 120px!important;
    background-color: #fff;
    margin-bottom: 40px;
}
@media screen and (min-width: 576px) {
    .site-body {
        width: calc( 100% - 60px );
        max-width: 1200px;
        padding-right: 15px;
        padding-left: 15px;
        margin-right: auto;
        margin-left: auto;
    }
    .page-header .container,
    .breadcrumb .container {
        width: calc( 100% - 60px + 30px );
        max-width: 1230px;
    }
}
.site-body-container {
    background-color: #fff;
}

/*サイトフッタ 印刷に反映しない*/
@media screen and (min-width: 992px) {
    .site-footer-container,
    .site-footer-copyright .container {
        max-width: none;
        padding-left: 30px;
        padding-right: 30px;
    }
}
@media screen and (min-width: 1200px) {
    .site-footer-container,
    .site-footer-copyright .container {
        max-width: calc( 1200px + 30px + 30px );
        padding-left: 30px;
        padding-right: 30px;
    } 
}

/*トップページ*/
@media screen and (min-width: 1200px) {
    .top-cont-container {
        max-width: calc( 1200px + 15px + 15px );
    } 
}


/*--------------------------------------------------------
8. 下層ページメインビジュアル
--------------------------------------------------------*/
.page-header {
    background-color: transparent;
    min-height: 60px;
    text-align: left;
}
.page-header {
    margin-top:var(--header-height);
}
.page-header-inner {
    margin: 2px auto;
}
.page-header-title, h1.page-header-title {
    font-size: 40px;
    font-weight: 700;
}

/*--------------------------------------------------------
9. パンクズリストのスタイル
--------------------------------------------------------*/

.breadcrumb {
    font-size: 14px;
    line-height: var(--vk-line-height);
    margin-bottom: 30px;
}
.breadcrumb-list li:first-child i,
.breadcrumb-list__item--home a svg {
    display: none;
}

/*文字色 まとめて設定*/
.breadcrumb-list li:after,
.breadcrumb-list a,
.breadcrumb-list span,
.breadcrumb-list a:hover {
    color: var(--vk-color-text-body);
}

.breadcrumb-list li:after {
    content: "＞";
}

/*--------------------------------------------------------
10. 見出しのスタイル
--------------------------------------------------------*/
h1, h2, h3, h4, h5, h6 {
    font-weight: 700;
}

.is-style-custom-heading-style-1 {
    font-size: 36px;
}
.is-style-custom-heading-style-2 {
    font-size: 28px;
    background-color: var(--parts);
    padding: 10px 30px;
    border-radius: var(--vk-size-radius);
    font-weight: 500;
}
.is-style-custom-heading-style-3 {
    font-size: 20px; 
    position: relative;
    padding-left: 35px;
}
.is-style-custom-heading-style-3::before {
    content: "";
    position: absolute;
    top: 5px;
    left: 0;
    display: block;
    width: 18px;
    height: 18px;
    background-color: var(--parts);
        
    mask-image: url("img/png-icon/h4-icon.png");
    mask-position: center;
    mask-repeat: no-repeat;
    mask-size: cover;
}

/*--------------------------------------------------------
11. オリジナルブロックのスタイル
--------------------------------------------------------*/

/* 囲み（グループ） */
.is-style-custom-block-wrapper-1,
.is-style-custom-block-wrapper-2 {
    max-width: none;
    padding: 30px;
    border-radius: var(--vk-size-radius);
}
.is-style-custom-block-wrapper-1 {
    border: 1px solid var(--vk-color-text-body);
}
.is-style-custom-block-wrapper-2 {
    background-color: var(--bg-light);
}
.is-style-custom-block-wrapper-1 p:last-child,
.is-style-custom-block-wrapper-2 p:last-child,
.wp-block-group[class*=wp-container-]>:is(p):last-child {
    margin-bottom: 0;
    margin-block-end: 0;
}

/* カラム */
.wp-block-columns.is-style-justify {
    justify-content: space-between;
}
.wp-block-columns.is-style-center {
    justify-content: center;
}

/*テーブル デフォルト*/
.wp-block-table tr td:first-child {
    background-color: var(--bg-light);        
}
.wp-block-table td {
    font-size: 1rem;
    padding: 1rem;
    line-height: var(--vk-line-height);
    border: 1px solid #ccc;
    border-left: none;
    border-right: none;
}
.wp-block-table {
    position: relative;
    padding-top: 2rem;
}
.wp-block-table figcaption {
    margin-top: 0;
    text-align: right;
    font-size: 1rem;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
}
.wp-block-flexible-table-block-table tr th {
    font-weight: 500;
}

/*テーブル 縦積みのときは線を重ねる*/
@media screen and (max-width: 768px) {
    .wp-block-flexible-table-block-table.wp-block-flexible-table-block-table>table.is-stacked-on-mobile tr:not(:last-child) th,
    .wp-block-flexible-table-block-table.wp-block-flexible-table-block-table>table.is-stacked-on-mobile tr:not(:last-child) td,
    .wp-block-flexible-table-block-table.wp-block-flexible-table-block-table>table.is-stacked-on-mobile tr:last-child th:not(:last-child),
    .wp-block-flexible-table-block-table.wp-block-flexible-table-block-table>table.is-stacked-on-mobile tr:last-child td:not(:last-child) {
        border-bottom-color: transparent!important;
    }
}

.wp-block-flexible-table-block-table a { 
    color: #0693e3;
}

/* ボタン 共通 */
.wp-block-button__link {
    transition: none;
}
.wp-block-button__link:hover {
    filter: none!important;
}

/*ボタン オリジナル*/
/*.editor-styles-wrapper .wp-block-buttons :where(.wp-block-button):not(.is-style-outline) .wp-block-button__link {
    background-color: #fff;
}*/
[class*="is-style-button-"] .wp-block-button__link,
.is-style-button-2 .wp-block-button__link:hover {
    background-color: var(--vk-color-primary)!important;
    border: 1px solid var(--vk-color-primary)!important;
    border-radius: 999px!important;
    color: var(--vk-color-text-body)!important;
    font-weight: 500;
    padding: 18px 78px;
    position: relative;
}

[class*="is-style-button-"] .wp-block-button__link::before,
.is-style-button-2 .wp-block-button__link:hover::before {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 28px;
    content: "";
    display: block;
    background-image: url("img/png-icon/btn-icon.png");
    background-size: cover;
    width: 18px;
    height: 12px;
}
[class*="is-style-button-"] .wp-block-button__link:hover {
    opacity: 1;
}
.is-style-button-1 .wp-block-button__link:hover,
.is-style-button-2 .wp-block-button__link {
    border-color: var(--vk-color-primary)!important;
    background-color: #fff!important;
    color: var(--vk-color-primary)!important;
}
.is-style-button-1 .wp-block-button__link:hover::before,
.is-style-button-2 .wp-block-button__link::before {
    background-image: url("img/png-icon/btn-icon-orange.png");
}
.is-style-button-3 .wp-block-button__link {
    border-color: var(--green)!important;
    background-color: #fff!important;
    color: var(--green)!important;
}
.is-style-button-2 .wp-block-button__link:hover,
.is-style-button-3 .wp-block-button__link:hover {
    color: #fff!important;
}
.is-style-button-2 .wp-block-button__link:hover::before,
.is-style-button-3 .wp-block-button__link:hover::before {
    background-image: url("img/png-icon/btn-icon-white.png");
}
.is-style-button-3 .wp-block-button__link:hover {
    background-color: var(--green)!important;
}
.is-style-button-3 .wp-block-button__link::before {
    background-image: url("img/png-icon/btn-icon-green.png");
}
.is-style-button-5 .wp-block-button__link {
    background-color: var(--parts)!important;
    border-color: var(--parts)!important;
}
.is-style-button-5 .wp-block-button__link:hover {
    background-color: #fff!important;
}

/*マップ*/
.is-style-button-4 .wp-block-button__link {
    border-color: #3d7ae6;
    background-color: #fff;
    color: #3d7ae6;
    padding: 7px 24px 9px 24px;
}
.is-style-button-4 .wp-block-button__link:hover {
    opacity: .8;
}
.is-style-button-4 .wp-block-button__link::before {
    content: none;
}

/*--------------------------------------------------------
12. フッターのスタイル
--------------------------------------------------------*/
.site-footer {
    padding-top: 17px;
    padding-bottom: 60px;
    font-size: 18px;
}
@media print, screen and (min-width: 992px) {
    .site-footer {
        padding-top: 140px;
    }
}
.site-footer-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    row-gap: 50px;
    margin-bottom: 35px;
}
@media screen and (max-width: 991.98px) {
    .p-footer-left, .p-footer-right {
        width: 100%;
    }
}
@media print, screen and (min-width: 992px) {
    /*マップ側*/
    .p-footer-left {
        order: 1;
        width: 48%;
    }
    /*ロゴ側*/
    .p-footer-right {
        order: 0;
        width: 47%;
    }
}


.site-footer ul li a:hover {
    text-decoration: none;
}
.site-footer ul#menu-footer-navigation li a:hover {
    color: var(--vk-color-text-link-hover);
}

@media screen and (max-width: 991.98px) {
    .footer-nav {
        display: none;
    }
}

.footer-nav {
    padding: 0;
    margin-bottom: 20px;
}
.footer-nav ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    column-gap: 30px;
    row-gap: 0;
}
.footer-nav ul li {
    padding: 0;
}
.footer-nav ul li a {
    font-size: 16px;
    padding: 2px 0;
    display: block;
}

/*アイコン付き*/
.footer-nav-icon {
    margin-bottom: 10px;
}
.footer-nav-icon  ul li a {
    font-size: 20px; 
    font-weight: 700;
    position: relative;
    padding-left: 30px;
}
.footer-nav-icon  ul li a::before {
    content: "";
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 0;
    display: block;
    width: 19px;
    height: 19px;
    background-image: url("img/png-icon/nav-icon.png");
    background-size: cover;
}
.footer-nav-icon  ul li a:hover::before {
    background-image: url("img/png-icon/h4-icon.png");
}

/*ロゴ*/
.site-footer-logo {
    margin-bottom: 20px;
}

/*アドレス*/
.site-footer-address {
    margin-bottom: 15px;
}
.site-footer-address h5 {
    font-size: 20px;
    font-weight: 400;
    margin-bottom: 15px;
}
.site-footer-address h5 span {
    display: inline-block;
}
.address__tel {
    display: inline-block;
    position: relative;
    font-size: 35px;
    font-weight: 700;
    line-height: 1;
    color: var(--red);
    padding-left: 50px;
    margin-top: 50px;
    margin-bottom: 5px;
}
.address__tel a {
    color: var(--red);
    pointer-events: none;
}
.address__tel::before,
.address__tel::after {
    content: "";
    position: absolute;
}
.address__tel::before {
    display: block;
    background-image: url("img/svg-icon/tel-icon.svg");
    background-size: cover;
    width: 40px;
    height: 40px;
    top: 50%;
    transform: translateY(-50%);
    left: 0;
}
.address__tel::after {
    content: "いい高齢";
    font-size: 14px;
    top: -14px;
    right: 14px;
    letter-spacing: 2px;
}

.address__tel-form {
    margin: 0;
}
.address__tel-form::after {
    content: none;
}

/*マップ*/
.p-footer-left__gmap {
  width: 100%;
    background-image: url("img/footer/map.jpg");
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}
.p-footer-left__gmap .gmap-inner {
    position: relative;
    width: 100%;
    padding-top: 59.58%; /* 339 ÷ 569 × 100 ≒ 59.58% */
    overflow: hidden;
    border-radius: 10px;
}
.p-footer-left__gmap .gmap-inner iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.p-footer-left__route {
    padding: 20px 0;
    margin-bottom: 0;
}
.p-footer-left__route span {
    display: inline-block;
}

.site-footer-copyright {
    padding: 0;
}
.site-footer-copyright ul {
    list-style-type: none;
    display: flex;
    flex-wrap: wrap;
    padding: 0;
    margin: 0;
}
.site-footer-copyright ul li, 
.site-footer-copyright ul li a {
    font-size: 16px;
}
.site-footer-copyright ul li {
    margin: 0;
}
.site-footer-copyright ul li a {
    position: relative;
    padding-right: min(2vw, 10px);
    color: var(--vk-color-text-body);
    margin-right: min(2vw, 10px);
}
.site-footer-copyright ul li a::after {
    content: "";
    position: absolute;
    top: 6px;
    right: 0;
    width: 1px;
    bottom: 2px;
    background-color: var(--vk-color-border-hr);
}

/*--------------------------------------------------------
13. SNSリンク
--------------------------------------------------------*/
.footer-sns {
    margin-top: 20px;
}
.footer-sns__ul {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    column-gap: 20px;
}
.footer-sns__ul__li {
    margin: 0;
}
.footer-sns__ul__li a {
    display: block;
    width: 40px;
    height: 40px;
    background-size: cover;
    text-indent: -9999px;
}
.footer-sns__ul__li.instagram a {
    background-image: url("img/png-icon/sns-instagram.png");
}
.footer-sns__ul__li.line a {
    background-image: url("img/png-icon/sns-line.png");
}
.footer-sns__ul__li.facebook a {
    background-image: url("img/png-icon/sns-fb.png");
}

/*--------------------------------------------------------
14. トップに戻るボタン
--------------------------------------------------------*/
.page_top_btn {
    right: 15px;
    bottom: 15px;
    height: 40px;
    background-color: var(--vk-color-primary);
    box-shadow: none;
    border-radius: 50%;
    
    z-index: 1999;
}
.home .page_top_btn {
    bottom: 75px;
}
@media screen and (max-width: 991.98px) {
    .page_top_btn {
        right: 5px;
    }
}

/*--------------------------------------------------------
15. モバイルナビボタン
--------------------------------------------------------*/

.vk-mobile-nav-menu-btn, .vk-mobile-nav-menu-btn.menu-open {
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    top: 15px;
    left: auto;
    border: none;
    border-top-left-radius: 0;
    width: 50px;
    height: 50px;
    background-color: transparent;
}
@media print, screen and (min-width: 992px) {
    .vk-mobile-nav-menu-btn, .vk-mobile-nav-menu-btn.menu-open {
        width: 70px;
        height: 70px;
    }
}
.vk-mobile-nav-menu-btn {
    background-image: url("img/svg-icon/menu.svg");
}
.vk-mobile-nav-menu-btn.menu-open {
    background-image: url("img/svg-icon/menu-close.svg");
}

.vk-mobile-nav-menu-btn.position-right {
    right: 15px;
}

/*PCでも表示させる*/
@media print, screen and (min-width: 992px) {
    body.device-pc .vk-mobile-nav-menu-btn,
    body.device-pc .vk-mobile-nav,
    body.device-mobile .vk-mobile-nav-menu-btn,
    body.device-mobile .vk-mobile-nav{
        display: block;
    }
}
@media print, screen and (min-width: 992px) {
    .vk-mobile-nav.vk-mobile-nav-open.vk-mobile-nav-left-in, 
    .vk-mobile-nav.vk-mobile-nav-open.vk-mobile-nav-right-in {
        left: calc( 100% - 500px );
        overflow-x: hidden;
        width: 500px;
    }
}
/*グロナビは非表示にする*/
@media print, screen and (min-width: 992px) {
    body .global-nav {
        display: none!important;
    }    
}


/*--------------------------------------------------------
16. モバイルナビ
--------------------------------------------------------*/

/*警告を非表示*/
.veu_adminEdit.alert {
    display: none;
}

/*クリックさせない*/
.pointer-events-none>a {
    pointer-events: none;
}

/*メニューの背景*/
.vk-mobile-nav {
    background-color: var(--bg-light);
    border-bottom: none;
    padding: 0 0 20px;
    height: 100%;
}
@media print, screen and (min-width: 992px) {
    .vk-mobile-nav {
        padding-left: 40px;
        padding-right: 40px;
    }
}

@media screen and (max-width: 991.98px) {
    body:not(.scrolled) .vk-mobile-nav,
    body:not(.scrolled) .vk-mobile-nav.vk-mobile-nav-open.vk-mobile-nav-right-in {
        top: calc( var(--header-height) - 60px );
        height: calc( 100% - 75px );
    }
}
@media print, screen and (min-width: 992px) {
    .vk-mobile-nav,
    .vk-mobile-nav.vk-mobile-nav-open.vk-mobile-nav-right-in {
        top: calc( var(--header-height) - 60px );
        height: calc( 100% - 100px );
    }
}

/*ul*/
.vk-mobile-nav nav>ul {
    border: none;
}
.vk-mobile-nav nav>ul>li>.sub-menu {
    padding: 20px 0;
    border-bottom: 1px solid var(--vk-color-border-hr);
}
/*親メニュー 子メニュー 一括指定*/
.vk-mobile-nav nav ul li a {
}
.vk-mobile-nav nav ul li a:hover {
    color: var(--red);
}
/*親メニュー*/
.vk-mobile-nav nav>ul>li>a {
    font-size: 24px;
    padding: 23px 25px;
    font-weight: 500;
    border-color: var(--vk-color-border-hr);
}
/*子メニュー*/
.vk-mobile-nav nav>ul>li>.sub-menu li a {
    font-size: 20px;
    padding: 10px 40px;
    border: none;
}
/*親メニューにアイコン*/
.vk-mobile-nav nav>ul>li>a::after {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 25px;
    
    content: "";
    display: block;
    width: 18px;
    height: 12px;
    background-color: currentColor;
    mask-image: url("img/svg-icon/arrow.svg");
    mask-position: center;
    mask-repeat: no-repeat;
    mask-size: contain;
    
    pointer-events: none;
}
/*子メニューにアイコン*/
.vk-mobile-nav nav>ul>li>.sub-menu li a::after {
    position: absolute;
    top: 20%;
    left: 15px;
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    content: "\f068";
    transform: scale(0.7);
    transform-origin: right center;
}

/* acc-btnを非表示にする */
.vk-mobile-nav .acc-btn {
    display: none !important;
}
/* サブメニューを最初から展開しておく */
.vk-menu-acc ul.sub-menu {
    transition: all .5s ease-in;
    max-height: 80vh;
    overflow-y: auto;
    opacity: 1;
}

/*--------------------------------------------------------
17. ロゴ
--------------------------------------------------------*/
.site-header-logo {
    text-align: left; /*消さないで*/
    
    padding: 0;
    margin: 0;
    display: flex;
    align-items: center;
    min-height: calc( var(--header-height) - 60px );
}
.site-header-logo img {
    margin: 0; /*消さないで*/
}

/*--------------------------------------------------------
18. サイトヘッダー
--------------------------------------------------------*/

.site-header {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    min-height: calc( var(--header-height) - 60px );
    background-color: #fff;
    box-shadow: none;
}
@media screen and (min-width: 992px) {
    .site-header {
        position: fixed;
        
    }
}
@media print, screen and (min-width: 992px) {
    .site-header {
        background-color: #fff;
    }
    .device-pc .global-nav-list>li>a:hover {
        text-decoration: none;
    }
}

/*文字サイズ タブレットとか関係なく強制的に統一*/
.device-mobile .global-nav-list>li .global-nav-name,
.global-nav-list>li .global-nav-name {
    font-size: 16px;
}

/*サブメニューのスクロールバーが気になるのを解決*/
.device-pc .global-nav-list>li:focus-within li:focus-within>.sub-menu, 
.device-pc .global-nav-list>li:focus-within>.sub-menu, 
.device-pc .global-nav-list>li:hover li:focus-within>.sub-menu, 
.device-pc .global-nav-list>li:hover>.sub-menu {
    overflow-y: hidden;
}

/*ユーティリティ*/
.menu-utility {
    padding: 0 20px;
    display: flex;
    flex-direction: column;
    gap: 25px;
}
.site-header .menu-utility {
    display: none;
}
@media print, screen and (min-width: 992px) {
    .vk-mobile-nav .menu-utility {
        display: none;
    }
    .site-header .menu-utility {
        padding: 0 20px;
        display: flex;
        flex-direction: row;
        align-items: center;
        gap: 15px;
        padding-right: min(8vw, 130px);
    }
    .site-header .menu-utility__search {
        order: -1;
        min-width: 220px;
    }
}
.menu-utility a {
    display: block;
    border: 1px solid var(--vk-color-primary);
    border-radius: 999px;
    font-weight: 500;
    background-color: #fff;
    color: var(--vk-color-primary);
    padding: 18px 30px;
    font-size: 18px;
    line-height: 1;
    white-space: nowrap;
}
@media print, screen and (min-width: 992px) {
    .menu-utility a {
        padding: 10px 30px;
    }
}
.menu-utility a:nth-child(odd) {
    border-color: var(--green);
    color: var(--green);
}
.menu-utility a:nth-child(even) {
    border-color: var(--red);
    color: var(--red);
}

/* 検索フォーム全体のスタイル */
.wp-block-search__inside-wrapper {
    display: flex;
    border-radius: 999px;
    overflow: hidden;
    background-color: var(--systemgray); /* 入力欄背景色 */
    border: 1px solid var(--systemgray);
    padding: 0;
}

/* 入力フィールド */
.wp-block-search__input {
    padding: 7px 0 7px 30px!important;
    border: none!important;
    background-color: transparent;
    width: 80%!important;
    font-size: 16px!important;
}
@media print, screen and (min-width: 992px) {
    .wp-block-search__input {
        padding: 7px 0 7px 15px!important;
    }
}
.wp-block-search__input::placeholder {
    color: #64666d;
}

/* 検索ボタン */
.wp-block-search__button {
    width: 20%!important;
    background-color: transparent!important;
    border-radius: 0;
    margin-left: 0;
}
.wp-block-search__button svg {
    transform-origin: center;
    transform: scaleX(-1) scale(1.2);
    fill: #64666d;
}
@media print, screen and (min-width: 992px) {
    .wp-block-search .wp-block-search__button {
        padding-left: 0;
    }
}

/*--------------------------------------------------------
19.ブログ関連のスタイル
--------------------------------------------------------*/
.vk_posts {
    margin-left: 0;
    margin-right: 0;
}
@media print, screen and (min-width: 992px) {
    .vk_posts {
        border-top: 1px solid var(--vk-color-border-hr);
    }
}
.vk_post {
    width: calc( 100% + 30px );
    margin-left: -15px;
    margin-right: -15px;
    display: flex;
    flex-wrap: wrap;
    --gap: 20px;
    column-gap:  var(--gap);
    row-gap: 5px;
    position: relative;
}
@media print, screen and (min-width: 992px) {
    .vk_post {
        width: 100%;
        margin-left: 0;
        margin-right: 0;
        flex-direction: column;
        row-gap: 0;
    }
}
.postListText {
    padding: 15px 15px 15px 30px;
    border-bottom: 1px solid var(--vk-color-border-hr);
}
@media print, screen and (min-width: 992px) {
    .postListText {
        height: 138px;
    }
    .postListText:hover {
        background-color: rgba(255,240,174,0.3);
    }
}
.parts01 {
    width: 46px;
    height: 46px;
}
@media print, screen and (min-width: 992px) {
    .parts01 {
        width: 82px;
        height: 82px;
    }
}
.parts02 {
    width: calc( 100% - 46px - var(--gap) );
    display: flex;
    align-items: center;
    gap: var(--gap);
}
.parts03 {
    width: 100%;
    padding-right: 30px;
}
@media print, screen and (min-width: 992px) {
    .parts02, .parts03 {
        width: calc(100% - 82px);
    }
    /* parts02とparts03を縦に並べたい */
    .parts02 {
        height: 40px;
    }

    .parts03 {
        height: calc( 100% - 40px );
        padding-right: 60px;
        display: flex;
        align-items: center;
    }
}
/*日*/
.postListText_date {
    font-size: 18px;
    float: none;
    min-width: 0;
    margin-right: 0;
}
@media print, screen and (min-width: 992px) {
}
/*カテゴリ*/
.postListText_singleTermLabel {
    float: none;
    min-width: 0;
    margin-right: 0;
    margin-top: 0;
}
@media print, screen and (min-width: 992px) {
}
.postListText_singleTermLabel a {
    background-color: #fff !important;
    line-height: 1;
    min-width: 0;
    padding: 4px;
    font-size: 14px;
    font-weight: 500;
    color: var(--daidai);
    border: 1px solid var(--daidai);
    border-radius: 3px;
}
/*題名*/
.postListText_title {
    font-size: 20px;
    padding-top: 0;
}
.postListText_title a {
    text-decoration: none;
    display: -webkit-box;
    -webkit-line-clamp: 2; /* ここで「2行まで」と指定 */
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
}
.postListText_title a:hover {
    text-decoration: none;
    color: var(--vk-color-text-body);
    opacity: 1;
}
.postListText_title a::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
}
.postListText_title a::after {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 25px;
    
    content: "";
    display: block;
    width: 18px;
    height: 12px;
    background-color: currentColor;
    mask-image: url("img/svg-icon/arrow.svg");
    mask-position: center;
    mask-repeat: no-repeat;
    mask-size: contain;
    
    pointer-events: none;
}
@media screen and (max-width: 991.98px) {
    .postListText_title a::after {
        top: auto;
        bottom: 25px;
        transform: none;
    }
}
/*ページネーション*/
ul.page-numbers li {
    width: 40px;
    height: 40px;
    border: 1px solid var(--vk-color-primary);
    border-radius: 5px;
    margin-right: 1rem;
}
ul.page-numbers li:last-child {
    margin-right: 0;
}
ul.page-numbers li a, ul.page-numbers li span.page-numbers {
    padding: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    border: none;
    margin-left: 0;
    width: 100%;
    height: 100%;
}
ul.page-numbers li a {
    background-color: #fff;
}
ul.page-numbers li a:hover {
    background-color: var(--vk-color-primary);
    color: #fff;
    opacity: 1;
}
ul.page-numbers li span.page-numbers {
    width: 100%;
    height: 100%;
}
.next.page-numbers,
.prev.page-numbers {
    font-size: 26px;
    padding-bottom: 6px;
}
/*詳細記事*/
.entry-meta {
    line-height: var(--vk-line-height);
    margin-bottom: var(--vk-margin-meta);
}
.entry-meta span {
    margin-right: 1em;
    position: relative;
}
.entry-meta span:last-child {
    margin-right: 0;
}
.entry-meta span a:hover {
    text-decoration: underline;
}
.next-prev {
    display: none;
}

.entry-meta span:last-child::before {
    content: "";
    position: absolute;
    top: 6px;
    left: -5px;
    width: 1px;
    bottom: 4px;
    background-color: var(--vk-color-text-body);
}

/*トップページ 先頭固定 お知らせ*/
section.important {
    padding: 40px 0;
    margin-bottom: 80px;
}
.important-info-box {
    border: 2px solid var(--daidai);
    border-radius: 20px;
    overflow: hidden;
    font-family: sans-serif;
    margin: 0 auto;
    background: #fafafa;
}
.important-info-header {
  background-color: var(--daidai);
  color: #fffa8f;
  text-align: center;
  padding: 27px;
  font-size: 32px;
    line-height: 1;
  font-weight: 700;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
}
.important-info-icon img {
    display: block;
}
.important-info-list {
  background-color: #fdfdfd;
  padding: 0 28px;
}
.important-info-item {
    border-bottom: 1px solid var(--vk-color-border-hr);
    padding: 36px 0;
    display: flex;
    gap: 16px;
    color: var(--daidai);
    font-size: 20px;
    font-weight: 500;
}
.important-info-item:hover {
    color: var(--daidai);
    opacity: 1;
}
.important-info-item:last-child {
  border-bottom: none;
}
.info-date {
  white-space: nowrap;
}
.info-text {
  flex: 1;
}
@media screen and (max-width: 991.98px) {
    .important-info-item {
        flex-flow: column;
        gap: 0;
    }
}

/*トップページ*/
.nenrin-news__flexwrap {
    display: flex;
    flex-flow: column;
    gap: 40px;
    
    margin-bottom: 120px;
}
@media print, screen and (min-width: 992px) {
    .nenrin-news__flexwrap {
        flex-flow:row;
        gap: 50px;
    }
    .nenrin-news__flexwrap__item-left {
        width: 21%;
    }
    .nenrin-news__flexwrap__item-right {
        flex: 1;
    }
}
@media screen and (min-width: 1200px) {
    .nenrin-news__flexwrap {
        gap: 70px;
    }
    .nenrin-news__flexwrap__item-left {
        width: 19%;
    }
}
.posts-group { display: none; }
.posts-group.visible { display: block; }

.news-headline-more {
    margin-top: 60px;
    width: 100%;
}

.nav-cat {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
}
@media print, screen and (min-width: 992px) {
    .nav-cat {
        gap: 30px;
    }
}
.cat-item {
    width: calc( ( 100% - 10px ) / 2 );
}
@media print, screen and (min-width: 992px) {
    .cat-item {
        width: 100%;
    }
}

.cat-item a {
    font-size: 16px;
    min-height: 48px;
    font-weight: 500;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 5px;
    background-color: var(--systemgray);
}
@media print, screen and (min-width: 992px) {
    .cat-item a {
        font-size: 18px;
        min-height: 60px;
        
    }
}
.cat-item a:hover {
    text-decoration: none;
    background-color: var(--vk-color-primary-light);
}
.cat-item.active a {
    background-color: var(--vk-color-primary-light);
}

/*スタッフのひとりごと*/
.news-staffblog {
    background-image: url("img/bg/line-png-sp.png");
    background-position: center top;
    background-repeat: no-repeat;
    background-size: auto 34px;
    padding-top: 120px;
}
.news-staffblog h3{
    font-size: 26px;
    font-weight: 500;
    letter-spacing: 2px;
    margin-bottom: 30px;
}
@media screen and (min-width: 768px) {
    .news-staffblog {
        background-image: url("img/bg/line-png-OxiPNG.png");
        background-position: left top;
        background-size: auto;
    }
    .news-staffblog .vk_posts {
        column-gap: 60px;
        border-top: none;
    }
    .news-staffblog .vk_posts .vk_post {
        width: calc( ( 100% - 60px ) / 2 );
    }
    .news-staffblog .vk_posts .vk_post:nth-child(1),
    .news-staffblog .vk_posts .vk_post:nth-child(2) {
        border-top: 1px solid var(--vk-color-border-hr);
    }
}

/*--------------------------------------------------------
20.トップページメインビジュアル
--------------------------------------------------------*/
.mainvisual {
    margin-top: calc( var(--header-height) - 60px );
    position: relative;
    z-index: 1;
    margin-bottom: 126vw;
}
@media screen and (min-width: 576px) {
    .mainvisual {
    margin-top: calc( var(--header-height) - 60px );
    position: relative;
    z-index: 1;
    margin-bottom: 120px;
}
}
.mainvisual img {
    display: block;
}

/*container*/
.mainvisual__copy.container {
}
@media print, screen and (min-width: 992px) {
    .mainvisual__copy.container {
        max-width: 850px;
    }
}
.mainvisual__copy__txt.container {
    max-width: 730px;
}

.mainvisual__copy {
    background-color: rgba(255,255,255,0.9);
    box-shadow: 0 0 5px rgba(109, 109, 109, 0.75);
    position: absolute;
    top: calc( 100% - 15px );
    left: 0;
    right: 0;
}
@media screen and (min-width: 576px) {
    .mainvisual__copy {
        border-radius: 20px;
        top: 50%;
        transform: translateY(-50%);
        left: 15px;
        right: 15px;
    }
}
@media print, screen and (min-width: 992px) {
    .mainvisual__copy {
        left: 50%;
        transform: translate(-50%, -50%);
        right: auto;
    }
}
.mainvisual__copy__img {
    position: relative;
}
.mainvisual__copy__img .mainvisual__copy__img__inner {
    position: absolute;
    top: -15px;
    left: -14vw;
    right: -14vw;
    text-align: center;
}
@media screen and (min-width: 768px) {
    .mainvisual__copy__img .mainvisual__copy__img__inner {
        top: -20px;
    }
}
@media print, screen and (min-width: 992px) {
    .mainvisual__copy__img .mainvisual__copy__img__inner {
        left: 0;
        right: 0;
    }
}
.mainvisual__copy__img .mainvisual__copy__img__inner img {
    display: inline-block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
@media screen and (min-width: 768px) {
    .mainvisual__copy__img .mainvisual__copy__img__inner img {
        width: auto;
        height: auto;
        object-fit: none;
    }
}
.mainvisual__copy__txt {
    padding-top: 36vw;
    font-weight: 500;
}
@media screen and (min-width: 576px) {
    .mainvisual__copy__txt {
        padding-top: 30vw;
    }
}
@media screen and (min-width: 768px) {
    .mainvisual__copy__txt {
        padding-top: 196px;
    }
}
.mainvisual__copy__txt {
    margin-bottom: 50px;
}

/*ページネーション*/
.swiper-pagination-bullets {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    column-gap: 5px;
        
    top: auto;
    left: auto;
    right: 30px;
    bottom: -40px!important;
    width: auto!important;
}
@media print, screen and (min-width: 992px) {
    .swiper-pagination-bullets {
        right: calc( 60px + 15px );
    }
}
.swiper-pagination-bullet {
    border-radius: 50%;
    width: 10px;
    height: 10px;
    outline: none;

    display: inline-block;
    margin: 0!important;
}
.swiper-pagination-bullet-active {
    background-color: var(--vk-color-primary);
}

/*--------------------------------------------------------
21.スマホ用下部固定メニュー
--------------------------------------------------------*/
@media screen and (max-width: 1499.98px) {
    body.home footer {
        margin-bottom: 50px;
    }
    .bottommenu {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        display: flex;
        justify-content: space-between;
        z-index: 1;
        font-size: 14px;
        opacity: 0;
        transition: opacity 0.3s ease;
        gap: min( 4vw , 40px );
    }
    body.home.scrolled .bottommenu {
        opacity: 1;
    }
    body.home.scrolled .bottommenu.bottommenu.is-hidden {
      opacity: 0;
      pointer-events: none; /* 必要に応じて：非表示中にクリックを無効に */
    }

    .bottommenu__item {
        width: 50%;
    }
    .bottommenu__item a {
        display: flex;
        justify-content: center;
        align-items: center;
        /*line-height: 70px;*/
        width: 100%;
        height: 100%;
        border-top-left-radius: 15px;
        border-top-right-radius: 15px;
        font-size: min( 4vw , 22px );
        font-weight: 700;
        gap: 10px;
    }
    .bottommenu__item a::before {
        content: "";
        background-size: contain;
        background-position: right bottom;
        background-repeat: no-repeat;
        display: block;
        width: 82px;
        height: 62px;
        margin-top: 8px;
    }
    .bottommenu__item__line-a::before {
        background-image: url("img/top/bnr1bottom.png");
    }
    .bottommenu__item__page-a::before {
        background-image: url("img/top/bnr2bottom.png");
    }
    .bottommenu__item a:hover {
        text-decoration: none;
        filter: brightness(1.1) saturate(2);
        opacity: 1;
        color: var(--vk-color-text-body);
    }
    .bottommenu__item__line-a, .bottommenu__item__line-a:hover {
        background-color: #3bdb61;
    }
    .bottommenu__item__page-a, .bottommenu__item__page-a:hover {
        background-color: var(--vk-color-primary-light);
    }
}
@media screen and (max-width: 575.98px) {
    .bottommenu__item a {
        line-height: 40px;
    }
    .bottommenu__item a::before {
        width: 41px;
        height: 31px;
    }
}
@media print, screen and (min-width: 1500px) {
    .bottommenu {
        display: none;
    }
}

/*フローティングバナー*/
#floating-banners {
    display: none;
}
/*ファーストビュー*/
@media screen and (min-width: 1500px) {
    #floating-banners {
        flex-direction: row;
        gap: 10px;
        left: 50px;
        position: fixed;
        bottom: 6%;
        z-index: 1999;
        display: flex;
        transition: all .3s ease;
    }
    .floating-banner {
        border-top-right-radius: 0;
        border-bottom-right-radius: 0;
        width: 260px;
        height: 260px;
        position: relative;        
    }
    #banner-line {
        background-color: transparent;
    }
    #banner-gear {
        background-color: transparent;
    }
    .floating-banner a {
        display: block;
        width: 100%;
        height: 100%;
        filter: drop-shadow(0 0 10px #FFF);
        background-size: cover;
        text-indent: -9999px;
    }
    #banner-line a {
        background-image: url("img/top/bnr1pc.png");
    }
    #banner-gear a {
        background-image: url("img/top/bnr2pc.png");
    }
    .floating-banner a:hover {
        filter: brightness(1.1) saturate(2);
        opacity: 1;
    }
    .banner-close {
        top: 20px;
        right: 20px;
        width: 40px;
        height: 40px;
        font-size: 40px;
        line-height: 40px;
        position: absolute;
        background-color: #dee0ed;
        border: none;
        border-radius: 50%;
        color: #858b97;
        cursor: pointer;
        z-index: 1;
        display: flex;
        justify-content: center;
        align-items: center;
    }
}
/*スクロールド*/
@media screen and (min-width: 1500px) {
    body.scrolled #floating-banners {
        flex-direction: column;
        left: 0;
        gap: 30px;
    }
    body.scrolled .floating-banner {
        border-top-right-radius: 10px;
        border-bottom-right-radius: 10px;
        width: 150px;
        height: 120px;
    }
    body.scrolled #banner-line {
        background-color: #3bdb61;
    }
    body.scrolled #banner-gear {
        background-color: var(--vk-color-primary-light);
    }
    body.scrolled .floating-banner a {
        filter: none;
    }
    body.scrolled #banner-line a {
        background-image: url("img/top/bnr1.png");
    }
    body.scrolled #banner-gear a {
        background-image: url("img/top/bnr2.png");
    }
    body.scrolled .floating-banner img {        
        
    }
    body.scrolled .banner-close {
        top: -10px;
        right: -10px;
        width: 35px;
        height: 35px;
        font-size: 25px;
        line-height: 35px;
    }
}


/*--------------------------------------------------------
22.スクロールヒント
--------------------------------------------------------*/
.scroll-hint-icon {
    border-radius: var(--vk-size-radius);
    background: var(--vk-color-primary);
}
.scroll-hint-text {
    margin-top: 5px;
    margin-bottom: 5px;
    line-height: 1;
}
.c-scrollHint {
    -webkit-animation: FloatHorizontal 2s ease-in-out infinite alternate;
    animation: FloatHorizontal 2s ease-in-out infinite alternate;
    margin-bottom: 2px!important;
    margin-top: 3em;
    text-align: right;
}
.c-scrollHint span {
    align-items: center;
    display: inline-flex;
    font-size: 12px;
    line-height: 1;
    opacity: .75;
    vertical-align: middle;
}
@media (min-width: 768px){
    .sp_, .sp_only {
        display: none!important;
    }
}
.c-scrollHint span i {
    font-size: 16px;
    margin-left: 4px;
}

/*--------------------------------------------------------
フォーム
--------------------------------------------------------*/
/* template01 */
.form__wrap {
  width: 100%;
  margin-right: auto;
  margin-left: auto;
}
.wpcf7 .template01 {
  font-size: 16px;
}
.wpcf7 .template01 a {
  margin: 0;
  padding: 0;
  text-decoration: underline;
  color: inherit;
  transition: opacity .25s;
}
.wpcf7 .template01 a:hover {
  opacity: .5;
  transition: opacity .25s;
}
.wpcf7 .template01 div.form__row {
  margin: 0;
  padding: 0;
  margin-top: 2em;
}
.wpcf7 .template01 div.form__row.row-privacy {
  margin-top: 3.5em;
  text-align: center;
}
.wpcf7 .template01 div.form__row.row-submit {
  margin-top: 3em;
  text-align: center;
}
.wpcf7 .template01 p.form__label,
.wpcf7 .template01 p.form__body {
  margin: 0;
  margin-bottom: .5em;
  padding: 0;
  box-sizing: border-box;
}
.wpcf7 .template01 p.form__label label {
    margin: 0 0 16px;
    padding: 0;
    box-sizing: border-box;
    font-size: 20px; 
    position: relative;
    padding-left: 35px;
    font-weight: 700;
    line-height: var(--vk-line-height-low);
    display: inline-block;
}
.wpcf7 .template01 p.form__label.is-required label {
    padding-right: 90px;
}
.wpcf7 .template01 p.form__label label::before {
    content: "";
    position: absolute;
    top: 5px;
    left: 0;
    display: block;
    width: 18px;
    height: 18px;
    background-color: var(--parts);
    mask-image: url("img/png-icon/h4-icon.png");
    mask-position: center;
    mask-repeat: no-repeat;
    mask-size: cover;
}
.wpcf7 .template01 p.form__label.is-required label::after {
    content: "必須";
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    top: 0;
    right: 0;
    width: 80px;
    height: 30px;
    padding: 1px 1px 2px;
    background-color: var(--red); /*修正箇所*/
    color: #fff;
    font-size: 16px;
    text-align: center;
    box-sizing: border-box;
    border-radius: 999px;
    font-weight: 500;
}
/* テキストフィールド */
.wpcf7 .template01 input[type=text],
.wpcf7 .template01 input[type=tel],
.wpcf7 .template01 input[type=email],
.wpcf7 .template01 input[type=url],
.wpcf7 .template01 input[type=date],
.wpcf7 .template01 input[type=number],
.wpcf7 .template01 textarea {
    width: auto;
    max-width: 100%;
    margin: 0;
    padding: 1.5em 35px;
    border: none;
    border-radius: 6px;
    background-color: #f5f6f8;
    color: var(--vk-color-text-body);
    font-family: inherit;
    font-size: 16px;
    box-sizing: border-box;
    transition: background-color 0.2s ease, border 0.2s ease;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}
.wpcf7 .template01 textarea {
    width: 100%;
}
/* placeholder */
.wpcf7 .template01 input::placeholder,
.wpcf7 .template01 textarea::placeholder {
  color: #8c94a0;
}
/* フォーカス時（囲み線で強調） */
.wpcf7 .template01 input[type=text]:focus,
.wpcf7 .template01 input[type=tel]:focus,
.wpcf7 .template01 input[type=email]:focus,
.wpcf7 .template01 input[type=url]:focus,
.wpcf7 .template01 input[type=date]:focus,
.wpcf7 .template01 input[type=number]:focus,
.wpcf7 .template01 textarea:focus {
  outline: none;
  border: 1px solid #080808;
  background-color: #fff;
}
/* チェックボックス */
.wpcf7 .template01 input[type=checkbox] {
  display: none;
}
.wpcf7 .template01 input[type=checkbox] + span {
  cursor: pointer;
  position: relative;
  margin: 0;
  padding: 0 1em 0 1.8em;
  font-size: inherit;
  box-sizing: border-box;
  transition: opacity .25s ease;
}
.wpcf7 .template01 input[type=checkbox] + span::before {
  content: "";
  opacity: 1;
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 1.24em;
  height: 1.24em;
  border: 1px solid #ccc;
  border-radius: 0;
  background-color: #fff;
  box-sizing: border-box;
  transition: opacity .25s ease;
  z-index: 1;
}
.wpcf7 .template01 input[type=checkbox] + span::after {
  content: "";
  opacity: 0;
  display: block;
  position: absolute;
  top: 0.15em;
  left: 0.44em;
  width: 0.4em;
  height: .8em;
  border-bottom: 3px solid #000;
  border-right: 3px solid #000;
  box-sizing: border-box;
  transform: rotate(40deg);
  transition: opacity .25s ease;
  z-index: 10;
}
.wpcf7 .template01 input[type=checkbox]:checked + span {
  color: #306ad4;
  transition: all .25s ease;
}
.wpcf7 .template01 input[type=checkbox]:checked + span::before {
  opacity: 1;
  transition: opacity .25s ease;
}
.wpcf7 .template01 input[type=checkbox]:checked + span::after {
  opacity: 1;
  border-bottom: 2px solid #306ad4;
  border-right: 2px solid #306ad4;
  transition: opacity .25s ease;
}
/* ラジオボタン */
.wpcf7 .template01 input[type=radio] {
  display: none;
}
.wpcf7 .template01 input[type=radio] + span {
  cursor: pointer;
  position: relative;
  margin: 0;
  padding: 0 1em 0 1.8em;
  font-size: inherit;
  transition: opacity .25s ease;
}
.wpcf7 .template01 input[type=radio] + span::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 1em;
  height: 1em;
  border: 1px solid #ccc;
  border-radius: 50%;
  background-color: #fff;
  box-sizing: border-box;
  transition: opacity .25s ease;
}
.wpcf7 .template01 input[type=radio] + span::after {
  content: "";
  display: block;
  opacity: 0;
  position: absolute;
  box-sizing: border-box;
  transition: opacity .25s ease;
}
.wpcf7 .template01 input[type=radio]:checked + span {
  color: #306ad4;
  transition: opacity .25s ease;
}
.wpcf7 .template01 input[type=radio]:checked + span::after {
  opacity: 1;
  top: .2em;
  left: .2em;
  width: .6em;
  height: .6em;
  background-color: #306ad4;
  border-radius: 50%;
  box-sizing: border-box;
  transition: opacity .25s ease;
}
/* セレクト */
.wpcf7 .template01 span.select-wrap {
    position: relative;
    display: block;
    width: 280px;
    max-width: 100%;
}
.wpcf7 .template01 select {
    cursor: pointer;
    width: 100%;
    max-width: 100%;
    padding: 1.5em 35px;
    border: none;
    border-radius: 6px;
    background-color: #f5f6f8;
    font-size: 1rem;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    box-shadow: none;
    font-size: 16px;
}
.wpcf7 .template01 select.placeholder {
  color: #8c94a0; /* プレースホルダー用の色 */
}
.wpcf7 .template01 select::-ms-expand {
  display: none;
}
.wpcf7 .template01 span.select-wrap::after {
  content: "";
  pointer-events: none;
  position: absolute;
  top: 28px;
  right: 1em;
  width: 8px;
  height: 8px;
  border-right: 2px solid #333;
  border-bottom: 2px solid #333;
  transform: rotate(45deg);
}
.wpcf7 .template01 select:focus {
  outline: none;
  background-color: #eef0f3;
}
.wpcf7 .template01 span.select-wrap:focus-within::after {
  border-color: #333;
}

/* ファイル選択ボタン */
.wpcf7 .template01 .wpcf7-form-control-wrap input[type="file"] {
    position: relative;
    cursor: pointer;
    box-sizing: border-box;
    max-width: 100%;
    width: 190px;
    padding: 1em 35px;
    font-size: 16px;
    border: none;
    border-radius: 6px;
    background-color: #dfdfec;
    text-align: center;
    display: block;
    margin: 0 0 .5rem;
}
/* Chrome・Edgeでネイティブボタン非表示 */
.wpcf7 .template01 input[type="file"]::-webkit-file-upload-button {
  visibility: hidden;
}
/* カスタムボタン風の ::before */
.wpcf7 .template01 input[type="file"]::before {
  content: 'ファイルを選択';
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  border-radius: 6px;
  background-color: #dfdfec;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
}
/* ファイル名表示用のカスタム span */
.wpcf7 .template01 .file-name {
    padding-top: 18px;
    font-size: 14px;
}
.row-file .form__body {
    display: flex;
    column-gap: 14px;
}
/* 送信ボタン */
.wpcf7 .template01 .submit-btn {
  position: relative;
  width: 320px;
  height: 65px;
  max-width: 100%;
  margin: 0;
  padding: 0;
  margin-left: auto;
  margin-right: auto;
}
.wpcf7 .template01 input[type="submit"] {
    cursor: pointer;
    width: 320px;
    max-width: 100%;
    padding: 18px;
    box-shadow: none;
    border: 1px solid var(--green);
    background-color: var(--green);
    color: #fff;
    font-size: 18px;
    text-align: center;
    box-sizing: border-box;
    transition: opacity .25s;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    border-radius: 999px;
}
.wpcf7 .template01 input[type="submit"]:disabled {
  cursor: not-allowed;
  box-shadow: none!important;
  border: 1px solid #f8f8f8!important;
  background-color: #f8f8f8!important;
  color: #999!important;
}
.wpcf7 .template01 input[type="submit"]:hover {
  border: 1px solid #000;
  background-color: #fff;
  color: #000;
  transition: opacity .25s, background-color .25s;
}
.wpcf7 .template01 input[type="submit"]:focus {
  outline: 1px #eee solid;
  border: 1px #080808 solid;
}
.wpcf7 .template01  span.wpcf7-list-item {
  margin: 0 1em .2em 0;
}
.wpcf7 .template01 .ajax-loader {
  display: block;
}
@media only screen and (max-width: 768px) {
  .wpcf7 .template01 span.wpcf7-list-item {
    display: block;
  }
}
.wpcf7 form .wpcf7-response-output {
    margin: 48px 0 0 0!important;
    padding: 13px!important;
}
/*送信後*/
.wpcf7 form .display-field {
  max-height: 2000px; /* 適当な十分大きな値に */
  overflow: hidden;
  opacity: 1;
  transition: max-height 0.5s ease, opacity 0.5s ease;
}
.wpcf7 form.sent .display-field {
  max-height: 0;
  opacity: 0;
  pointer-events: none;
}

/*--------------------------------------------------------
トップページ
--------------------------------------------------------*/
section.section001 {
    margin-bottom: 128px;
}
section.section002 {
    margin-bottom: 111px;
}
section.section003 {
    border-bottom: 1px solid var(--vk-color-border-hr);
    padding-bottom: 64px;
}
@media print, screen and (min-width: 992px) {
    section.section003 {
        padding-bottom: 130px;
    }
}

/*お知らせ*/
.top-title__headline {
    font-size: 45px;
    font-weight: 700;
    position: relative;
    padding-left: 35px;
}
.top-title__headline::before {
    content: "";
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 0;
    display: block;
    width: 18px;
    height: 18px;
    background-image: url("img/png-icon/h4-icon.png");
    background-size: cover;
}

/*バナー*/
.banner {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    align-items: center;
    gap: 38px;
}
.banner__item {
    height: 60px; /* バナー枠の高さを一定に */
    background-color: #fff;
}
.banner__item img {
  height: 100%;     /* 高さ固定 */
  width: auto;      /* 幅は自動（トリミングされず） */
  display: block;
}
@media screen and (max-width: 565.98px) {
    .banner {
        gap: 15px;
    }
    .banner__item {
        width: 100%;
        height: auto;
    }
    .banner__item img {
        width: 100%;
        height: auto;
    }
}

/*活動内容*/

/*文字サイズ大きめ*/
.bg-color .top-title__headline.font-50 {
    font-size: 50px;
    margin-bottom: 93px;
}

/*色背景*/
.bg-color {
    background-color: #fff0ae;
    padding: clamp(60px, 11%, 120px) 0;
}
@media print, screen and (min-width: 992px) {
    .bg-color {
        border-radius: 120px;
        margin-left: 30px;
        margin-right: 30px;
        padding-left: 30px;
        padding-right: 30px;
    }
}
@media  screen and (min-width: 1200px) {
    .bg-color {
        padding-left: 40px;
        padding-right: 40px;
    }
}

/*リンクカード風*/
.links-flexwrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    column-gap: clamp(30px, 5%, 60px);
    row-gap: 50px;
    margin-bottom: 50px;
}
.links-flexwrap__item {
    width: 100%;
    background-color: #fff;
    border-radius: 20px;
}
@media print, screen and (min-width: 768px) {
    .links-flexwrap__item {
        width: calc( ( 100% - clamp(30px, 5%, 60px) ) / 2 );
    }
}
@media print, screen and (min-width: 992px) {
    .links-flexwrap {
        row-gap: 90px;
        margin-bottom: 90px;
    }
}
@media  screen and (min-width: 1200px) {
    .links-flexwrap__item {
        width: calc( ( 100% - ( clamp( 30px, 5%, 60px ) * 2 ) ) / 3 );
    }
}

.linkbox {
    background-color: #fff;
    border-radius: 20px;
    padding: 34px;
    text-align: center;
    position: relative;
}
.linkbox h3 {
    font-size: 18px;
    margin-bottom: 10px;
}
.linkbox h4 {
    font-size: 26px;
}
.linkbox .wp-block-button a.wp-block-button__link{
    padding: 18px 70px; /*768に合わせた*/
}

.linkbox__img {
    position: static;
    height: 128px;
}
.linkbox__img .linkbox__img__inner {
    position: absolute;
    top: -27px;
    left: 50%;
    transform: translateX(-50%);
    width: 224px;
    height: 168px;
}
.linkbox__img .linkbox__img__inner img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.linkbox100 h4 {
    font-size: 30px;
    margin-bottom: 14px;
}
.linkbox100 h3 {
    margin-bottom: var(--vk-margin-headding-bottom);
}
.linkbox100 h3 span {
    display: inline-block;
}
.linkbox100 .wp-block-buttons {
    justify-content: center;
}
@media screen and (min-width: 1200px) {
    .linkbox100 {
        display: flex;
        gap: 30px;
        padding: 46px 34px;
    }
    .linkbox100__left {
        width: 224px;
    }
    .linkbox100__mid {
        width: calc( 100% - 224px - 260px - 60px );
    }
    .linkbox100__right {
        width: 260px;
    }
    .linkbox100 .linkbox__img {
        position: relative;
        height: auto;
    }
    .linkbox100 .linkbox__img .linkbox__img__inner {
        top: -76px;
        left: 0;
        transform: translateX(0);
    }
    .linkbox100 h4, .linkbox100 h3 {
        text-align: left;
        
    }
    .linkbox100 h4 {
        margin-bottom: 7px;
    }
    .linkbox100 h3 {
        margin-bottom: 0;
    }
    .linkbox100 .wp-block-buttons {
        justify-content: flex-end;
    }
}

.search-results .parts02 {
    display: none;
}
@media print, screen and (min-width: 992px) {
    .search-results .postListText {
        justify-content: center;
        height: calc( 82px + 30px );
    }
}



/*事業案内 冒頭*/
.fukidashiwrap {
    text-align: center;
}
.fukidashi {
  display: inline-block;
  background-color: #ff8058; /* お好みで色を変更 */
  color: #fff;
  padding: 3px 1em 5px;
  border-radius: 999px;
  position: relative;
  font-weight: 500;
  text-align: center;
}
/* 下の三角形を追加 */
.fukidashi::after {
  content: "";
  position: absolute;
  bottom: -6px;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 6px solid #ff8058; /* 吹き出しの背景色と同じに */
}

.linetitle {
    background-image: url("img/bg/line-png-sp.png");
    background-position: center bottom;
    background-repeat: no-repeat;
    background-size: auto 20px;
    padding-bottom: 40px;
}
@media screen and (min-width: 768px) {
    .linetitle {
        background-image: url("img/bg/line-png-OxiPNG.png");
    }
}
.linetitle span {
    font-weight: 700;
    display: inline-block;
}


/*LINE非表示*/
#banner-line, .footer-sns__ul__li.line, .bottommenu__item__line-a {
    display: none!important;
}