/*
Theme Name: aichidks
Version: 1.0.0
Template: xwrite
*/

.wp-block-group :where(.wp-block-group__inner-container) > figure{ margin-top:0; }
a img { transition: opacity 0.3s ease; }
a:hover img { opacity: 0.7; }
.mainslider{ background:url(images/bg-diagonal.png) repeat left top; }

/*見出し*/
.articleBody h2:not(.is-style-default):not(.is-style-normal):not(h2[class*="is-style-heading"]).wp-block-heading.is-style-custom-main-heading {
    background-color: #f0f5fb;
    color: #184273;
}

/* 上段のレイアウト：ロゴを左、ボタンを右に */
.headerInfo { display: flex; justify-content: space-between; align-items: center; width: 100%; }

/* 下段（メニュー）を中央揃えにする */
.header-nav-centered { display: flex; justify-content: center; width: 100%; margin-top: 10px;}

/* Xwrite標準のメニューリストを中央寄せに上書き */
.header-nav-centered .gNavList { margin-bottom: 0; justify-content: center; }

/*footer*/
.container-footer-area + .container-siteNavList .siteNavList--footer { border-top: none;}

/*frontpage*/
body .feature-foundation,body .feature-movie,body .feature-library,body .feature-class,body .feature-donation,body .feature-group,body .feature-contact,body .feature-facility{ position:relative; }
body .feature-foundation > .wp-block-group__inner-container > .wp-block-group { position: relative; }
body .feature-movie > .wp-block-group__inner-container > .wp-block-group { position: relative; }
body .feature-library > .wp-block-group__inner-container > .wp-block-group { position: relative; }
body .feature-class > .wp-block-group__inner-container > .wp-block-group { position: relative; }
body .feature-donation > .wp-block-group__inner-container > .wp-block-group { position: relative; }
body .feature-group > .wp-block-group__inner-container > .wp-block-group { position: relative; }
body .feature-contact > .wp-block-group__inner-container > .wp-block-group { position: relative; }
body .feature-facility > .wp-block-group__inner-container > .wp-block-group { position: relative; }

body .feature-foundation .f-icon,body .feature-movie .f-icon,body .feature-library .f-icon,body .feature-class .f-icon,body .feature-donation .f-icon,body .feature-group .f-icon,body .feature-contact .f-icon,body .feature-facility .f-icon { position: absolute; top: -4em; left: 50%; transform: translateX(-50%); z-index: 2; }
body .feature-foundation h3,body .feature-movie h3,body .feature-library h3,body .feature-class h3,body .feature-donation h3,body .feature-group h3,body .feature-contact h3,body .feature-facility h3{ position:relative; margin:0 auto 0.5rem; line-height: 1.4;min-height: calc(1.4em * 2); }
body .feature-foundation h3 a,body .feature-movie h3 a,body .feature-library h3 a,body .feature-class h3 a,body .feature-donation h3 a,body .feature-group h3 a,body .feature-contact h3 a,body .feature-facility h3 a{ color:#184273; font-weight: 600; text-decoration:none; }
body .feature-foundation h3 a:hover,body .feature-movie h3 a:hover,body .feature-library h3 a:hover,body .feature-class h3 a:hover,body .feature-donation h3 a:hover,body .feature-group h3 a:hover,body .feature-contact h3 a:hover,body .feature-facility h3 a:hover{ color:#4573a7; }
body .feature-foundation h4,body .feature-movie h4,body .feature-library h4,body .feature-class h4,body .feature-donation h4,body .feature-group h4,body .feature-contact h4,body .feature-facility h4{ position:relative; margin-top:0; }
.feature-desc{ margin-top:0; }

.feature-foundation,.feature-movie,.feature-class,.feature-donation,.feature-group,.feature-contact,.feature-facility,.feature-library { position: relative; transition: background-color 0.3s ease; cursor: pointer;}
.feature-foundation .wp-block-image a::after,.feature-movie .wp-block-image a::after,.feature-class .wp-block-image a::after,.feature-donation .wp-block-image a::after,.feature-group .wp-block-image a::after,.feature-contact .wp-block-image a::after,.feature-facility .wp-block-image a::after,.feature-library .wp-block-image a::after { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 10;}
.feature-foundation .f-icon img,.feature-movie .f-icon img,.feature-class .f-icon img,.feature-donation .f-icon img,.feature-group .f-icon img,.feature-contact .f-icon img,.feature-facility .f-icon img,.feature-library .f-icon img { transition: transform 0.4s ease, opacity 0.4s ease; transform: translateY(0);}
.feature-foundation:hover .f-icon img,.feature-movie:hover .f-icon img,.feature-class:hover .f-icon img,.feature-donation:hover .f-icon img,.feature-group:hover .f-icon img,.feature-contact:hover .f-icon img,.feature-facility:hover .f-icon img,.feature-library:hover .f-icon img { transform: translateY(-10px); opacity: 0.8;}

/*custom-latest-posts*/
.custom-latest-posts {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.latest-post-item { padding: 0 0 1rem 1.5rem; display: block; flex-direction: row; align-items: center; gap: 10px; border-bottom: 1px solid #ddd; background: url(images/i-arrow.png) no-repeat  0 5px; }
.new-icon{ margin-left: 1rem; padding: 0.5rem 0.7rem; background:#F9A61A; color:#ffffff; font-size: 1.3rem; }

.post-meta { display: flex; gap: 10px; align-items: center; white-space: nowrap; }
.post-date { margin-top: 0; font-size: .8125em; white-space: nowrap; color: inherit; }
.category-names { display: flex; gap: 10px; flex-wrap: wrap; }
.custom-latest-posts .category-name {
    display: inline-block;
    padding: 5px 10px;
    border-radius: 2px;
    font-size: 12px;
    margin-right: 5px;
    font-weight: 500;
    transition: all 0.2s ease;
}

/* ホバー効果（お好みで） */
.custom-latest-posts .category-name:hover { opacity: 0.9; transform: scale(1.05);}

/* デフォルト色（設定なしの場合） */
.custom-latest-posts .category-name:not([style]) { background-color: #e0e0e0; color: #3C2F27;}
.articleBody .latest-post-item h3{ display:block; margin: 5px 0 0; }
.articleBody .latest-post-item h3:not(.is-style-default):not(.is-style-normal):not(h3[class*="is-style-heading"]) {
     padding: 0; font-size: 1em; font-weight: 500;
}
.articleBody .latest-post-item h3:not(.is-style-default):not(.is-style-normal):not(h3[class*="is-style-heading"]){ border:none; }
.articleBody .latest-post-item h3:not(.is-style-default):not(.is-style-normal):not(h3[class*="is-style-heading"])::before{ content:none; }

.heading-topics{ padding-left:1.8em; background-image: url(images/i-topics.png); background-repeat: no-repeat; background-position: 10px 20px; }
.heading-will{ padding-left: 1.5em;background:url(images/i-plus.png) no-repeat 0 0; }

.custom-willplus-container{ margin:0 auto; text-align:center; }
.feature-wrap > .wp-block-column{ background:#ffffff; }


/*event*/
.event-details { margin: 4rem auto 0; border: 1px solid #ddd; }
.responsive-table{ margin:0 auto; }
.responsive-table .table-row { display: flex; border-bottom: 1px solid #ddd; }
.responsive-table .table-row:last-child{ border-bottom:none; }

.responsive-table dt {
    width: 30%;
    background: #f9f9f9;
    padding: 15px;
    font-weight: bold;
    flex-shrink: 0;
}

.responsive-table dd {
    width: 70%;
    padding: 15px;
    margin: 0;
}

.responsive-table dd iframe {
    width: 100% !important; /* 強制的に幅いっぱいにする */
    height: auto;
    min-height: 250px; /* スマホで潰れすぎないように最低限の高さを確保 */
    border: 0;
    margin-top: 10px;
}
.event-form-section{ margin-top: 6rem; }


/* ==============================================
   Ninja Forms 汎用イベントフォームデザイン
   ============================================== */

/* --- 全体的な基盤とフォント設定 --- */
.nf-form-cont {
    max-width: 800px; /* フォームの最大幅を設定（お好みで調整） */
    margin: 30px auto; /* フォームを中央寄せ、上下に余白 */
    padding: 25px 30px;
    background-color: #ffffff;
    border-radius: 8px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.08); /* フォーム全体に柔らかい影 */
}

/* --- 必須項目マークの強調 --- */
.nf-form-fields-required,
.ninja-forms-req-symbol {
    color: #e44d26; /* 必須項目はアクセントカラーで強調 */
    font-weight: bold;
}

/* --- フィールドラベルのスタイル --- */
.nf-field-label label {
    font-size: 1em;
    font-weight: bold;
    margin-bottom: 8px;
    display: block; /* ラベルと入力欄を分離 */
    color: #555;
}

/* --- 入力フィールド（テキスト、メール、セレクト、テキストエリア）の汎用スタイル --- */
.nf-field-element input[type="text"],
.nf-field-element input[type="email"],
.nf-field-element input[type="tel"], /* 電話番号フィールド用 */
.nf-field-element select,
.nf-field-element textarea {
    width: 100%;
    padding: 12px 15px;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-size: 1em;
    color: #333;
    box-shadow: inset 0 1px 3px rgba(0,0,0,0.06); /* わずかな凹み */
    transition: border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
    -webkit-appearance: none; /* iOSでのSafariのデフォルトスタイルをリセット */
    -moz-appearance: none;
    appearance: none;
}

/* フィールドフォーカス時のスタイル */
.nf-field-element input[type="text"]:focus,
.nf-field-element input[type="email"]:focus,
.nf-field-element input[type="tel"]:focus,
.nf-field-element select:focus,
.nf-field-element textarea:focus {
    border-color: #0073aa; /* フォーカス時にブランドカラー */
    box-shadow: 0 0 0 3px rgba(0,115,170,0.2); /* 柔らかいアウトライン */
    outline: none;
}

/* セレクトボックスの矢印をカスタム（必要であれば） */
.nf-field-element select {
    background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-6.5%200-12.3%203.2-16.1%208.1-3.7%204.9-3.9%2011.6-.6%2016.9l132%20140c3.7%203.9%209.4%206.1%2015.6%206.1s11.9-2.2%2015.6-6.1l132-140c3.3-5.3%203.1-12-.6-16.9z%22%2F%3E%3C%2Fsvg%3E');
    background-repeat: no-repeat;
    background-position: right 15px center;
    background-size: 12px;
    padding-right: 35px; /* 矢印との重なりを防ぐ */
}

/* --- フィールドの説明文 --- */
.nf-field-description p {
    font-size: 0.85em;
    margin-top: 5px;
    line-height: 1.4;
}

/* --- HTMLフィールドのテキスト --- */
.html-container .nf-field-element p {
    font-size: 0.95em;
    color: #444;
    margin-bottom: 15px;
}

/* --- 区切り線 (Divider) のスタイル --- */
hr.ninja-forms-field {
    border: none;
    border-top: 1px solid #eee;
    margin: 30px 0;
}

/* --- レスポンシブ対応のためのカラム調整 --- */
.nf-field-container.one-half {
    width: calc(50% - 10px); /* 間に20pxの余白を想定 */
    float: left;
    margin-right: 20px;
}
.nf-field-container.one-half.last {
    margin-right: 0;
}
.nf-field-container.one-half.first {
    clear: both; /* 常に新しい行から始める */
}
@media screen and (max-width: 768px) {
    .nf-field-container.one-half {
        width: 100%;
        float: none;
        margin-right: 0;
    }
}

form .html-container p{ margin:0 auto; }

/* --- リピーター（参加者追加）セクションのスタイル --- */
.nf-repeater {
    background: #f9f9f9; /* フォーム背景より少し濃い色で区別 */
    border: 1px solid #e0e0e0;
    padding: 20px;
    border-radius: 8px;
    margin-bottom: 30px;
}
.nf-repeater fieldset {
    border: 1px dashed #ccc; /* 参加者ごとの枠線 */
    padding: 15px;
    margin-bottom: 20px; /* 各参加者枠の下余白 */
    border-radius: 6px;
}
.nf-repeater fieldset legend {
    font-weight: bold;
    color: #0073aa; /* ブランドカラーで強調 */
    background: #f9f9f9; /* 親要素の背景色に合わせる */
    padding: 0 10px;
    font-size: 1.05em;
    margin-bottom: 10px; /* 見出しと入力欄の間に余白 */
}
.nf-repeater .nf-remove-fieldset {
    background-color: #dc3545; /* 削除ボタンは赤 */
    color: #fff;
    border: none;
    padding: 5px 10px;
    border-radius: 4px;
    font-size: 0.85em;
    cursor: pointer;
    float: right; /* 右寄せ */
    margin-top: -35px; /* legendと重ならないように調整 */
}
.nf-repeater .nf-remove-fieldset:hover {
    background-color: #c82333;
}
.nf-repeater .nf-repeater-fieldset {
    clear: both; /* 参加者入力欄内の要素の浮動化を解除 */
}


/* --- 「参加者を追加する」ボタン --- */
.nf-add-fieldset {
    background-color: #28a745 !important; /* 目立つ緑色で「追加」を促す */
    color: #fff !important;
    border: none !important;
    padding: 12px 25px !important;
    border-radius: 25px !important; /* 丸みを帯びたボタン */
    font-weight: bold !important;
    font-size: 1.05em !important;
    cursor: pointer;
    transition: background-color 0.3s, transform 0.3s;
    display: block !important; /* ブロック要素で独立 */
    margin: 25px auto 0 !important; /* 中央寄せ、上部に余白 */
    box-shadow: 0 2px 5px rgba(0,0,0,0.2); /* 浮き上がるような影 */
}

.nf-add-fieldset:hover {
    background-color: #218838 !important; /* ホバーで少し暗く */
    transform: translateY(-2px); /* わずかに浮き上がるアニメーション */
}

/* --- 送信ボタン --- */
.nf-field-container.submit-container .nf-field-element input[type="submit"] {
    background-color: #0073aa; /* ブランドのメインカラー */
    color: #fff;
    border: none;
    padding: 15px 30px;
    border-radius: 6px;
    font-size: 1.1em;
    font-weight: bold;
    cursor: pointer;
    transition: background-color 0.3s, transform 0.3s;
    width: auto; /* 幅を自動調整 */
    display: block;
    margin: 30px auto 0; /* 中央寄せ、上部に余白 */
    box-shadow: 0 4px 10px rgba(0,0,0,0.15);
}

.nf-field-container.submit-container .nf-field-element input[type="submit"]:hover {
    background-color: #005a87;
    transform: translateY(-2px);
}


/* --- エラーメッセージのスタイル --- */
.nf-error-wrap {
    color: #dc3545;
    font-size: 0.85em;
    margin-top: 5px;
}
.nf-error-wrap ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
}
.nf-error-wrap li {
    margin-bottom: 5px;
}

/* --- フォーム全体のメッセージエリア (例: 送信成功メッセージ) --- */


.nf-form-errors {
    display: none; /* 最初は存在自体を消しておく */
    background-color: #f8d7da;
    color: #721c24;
    border: 1px solid #f5c6cb;
    padding: 15px;
    border-radius: 5px;
    margin-bottom: 20px;
}

.nf-form-errors:has(nf-errors:not(:empty)) {
    display: block;
}

nf-errors:not(:empty) {
    display: block;
    background-color: #f8d7da;
    color: #721c24;
    border: 1px solid #f5c6cb;
    padding: 15px;
    border-radius: 5px;
    margin-bottom: 20px;
}

/* --- その他の汎用的な調整 --- */
.nf-field-container {
    margin-bottom: 20px; /* 各フィールド間の標準的な余白 */
    clear: both; /* 新しいフィールドが前の要素の下に来るように */
}

/* Ninja Forms独自の clearfix */
.nf-fields-wrap:after {
    content: "";
    display: table;
    clear: both;
}




/* スマートフォン（768px以下）の設定 */
.pdf-link { display: inline-block; background: #e74c3c; color: #fff; padding: 5px 15px; text-decoration: none; border-radius: 4px;}

@media screen and (max-width: 768px) {
    .responsive-table .table-row { display: block; }
    .responsive-table dt { width: 100%; padding: 8px 15px; background: #eee; font-size: 0.9em; }
    .responsive-table dd { width: 100%; padding: 15px; }
}

@media (max-width: 991px) {
    .footer-nav-wrap .wp-block-group.is-layout-flex { display: flex !important; flex-direction: column; align-items: start; gap: 10px; }
    .footer-nav-wrap .wp-block-group.is-layout-flex p:not(:last-child)::after { content: none; }
    .footer-nav-wrap .wp-block-group.is-layout-flex p { white-space: normal; text-align: center; }

    .acc-tools-nav{ margin-top:2rem; }
}

@media (min-width: 992px) {
    .sp{ display:none ; }
    .header-fix .gnav, .header.is-pc-left .gnav{ margin:0 auto; }
    .header-fix .gnav .nav__drawers{ justify-content: inherit; }
    .gnav.navbar,.nav__drawers,ul#menu-global-nav,
    .header-fix .gnav .nav__drawers ul#menu-global-nav{ width:100%; }
    ul#menu-global-nav li{ padding: 0.8rem 0; width:20%; text-align:center; display: block; }
    ul#menu-global-nav li a::before { display: block; transition: transform 0.3s ease; }
    ul#menu-global-nav li a:hover::before {    transform: translateY(-3px);}
    ul#menu-global-nav li.nav-event,.header-fix ul#menu-global-nav-1 li.nav-event{ border-bottom:5px solid #8D21B0; }
    ul#menu-global-nav li.nav-event a::before,.header-fix ul#menu-global-nav-1 li.nav-event a::before{ content:url(images/i-event.png); }
    ul#menu-global-nav li.nav-movie,.header-fix ul#menu-global-nav-1 li.nav-movie{ border-bottom:5px solid #DD1B7D; }
    ul#menu-global-nav li.nav-movie a::before,.header-fix ul#menu-global-nav-1 li.nav-movie a::before{ content:url(images/i-movie.png); }
    ul#menu-global-nav li.nav-library,.header-fix ul#menu-global-nav-1 li.nav-library{ border-bottom:5px solid #5E66AA; }
    ul#menu-global-nav li.nav-library a::before,.header-fix ul#menu-global-nav-1 li.nav-library a::before{ content:url(images/i-library.png); }
    ul#menu-global-nav li.nav-class,.header-fix ul#menu-global-nav-1 li.nav-class{ border-bottom:5px solid #A1C515; }
    ul#menu-global-nav li.nav-class a::before,.header-fix ul#menu-global-nav-1 li.nav-class a::before{ content:url(images/i-health.png); }
    ul#menu-global-nav li.nav-about,.header-fix ul#menu-global-nav-1 li.nav-about{ border-bottom:5px solid #18A4C6; }
    ul#menu-global-nav li.nav-about a::before,.header-fix ul#menu-global-nav-1 li.nav-about a::before{ content:url(images/i-foundation.png); }

    .header-fix ul#menu-global-nav-1 li a{ width:240px; }

    .header .gNavList a,.header-fix .gNavList a{ font-weight:600;display: block !important; text-align:center; }
    .header-fix .gNavList > .menu-item > a > .menu-item-title, .header.is-pc-left .gNavList > .menu-item > a > .menu-item-title{ display:block; }
    .container-footer-area {
        display: grid;
        column-gap: 40px;
        grid-template-columns: repeat(1, 1fr); /*2カラムなら340px 1fr*/
    }

    .footer-nav-wrap .wp-block-group.is-layout-flex { display: flex; align-items: center; flex-wrap: wrap; justify-content: start; }
    .footer-nav-wrap .wp-block-group.is-layout-flex p { white-space: nowrap; margin-bottom: 5px; }
    .footer-nav-wrap .wp-block-group.is-layout-flex p:not(:last-child)::after { content: "｜"; margin-left: 5px; margin-right: 5px; color: #ccc; display: inline-block; vertical-align: middle;  }
    .footer-nav-wrap .wp-block-group.is-layout-flex a{ text-decoration:underline; }
    .footer-nav-wrap .wp-block-group.is-layout-flex a:hover{ text-decoration:none; }
}
