@charset "UTF-8";
/* ==========================================================
   ブロックエディターで作る本文の見た目（サイト表示と編集画面の両方で読み込む）
   - トップページ本文（主な取り組み・関わり方・資料・活動実績）の部品
   - テーマのブロックスタイル（inc/block-styles.php）
   - 標準ブロック（表・ボタン・詳細・画像）の調整
   ========================================================== */

/* ---------- パレット色のクラス（theme.json の色を本文で使ったとき） ---------- */
.has-brand-color { color: var(--color-brand); }
.has-brand-strong-color { color: var(--color-brand-strong); }
.has-cta-color { color: var(--color-cta); }
.has-rose-color { color: var(--color-rose); }
.has-orange-color { color: var(--color-orange); }
.has-text-sub-color { color: var(--color-text-sub); }
.has-brand-tint-background-color { background-color: var(--color-brand-tint); }
.has-rose-tint-background-color { background-color: var(--color-rose-tint); }
.has-orange-tint-background-color { background-color: var(--color-orange-tint); }
.has-bg-alt-background-color { background-color: var(--color-bg-alt); }

/* 今の本文に残っているSWELLの色の指定（色の値は今のサイトのまま。これがないと、背景がなくなって白い文字が見えなくなる） */
.has-swl-main-background-color { background-color: #3390d6; }
.has-swl-deep-01-background-color { background-color: #e44141; }
.has-swl-deep-02-background-color { background-color: #3d79d5; }
.has-swl-deep-03-background-color { background-color: #63a84d; }
.has-swl-deep-04-background-color { background-color: #f09f4d; }
.has-swl-pale-01-background-color { background-color: #fff2f0; }
.has-swl-pale-02-background-color { background-color: #f3f8fd; }
.has-swl-pale-03-background-color { background-color: #f1f9ee; }
.has-swl-pale-04-background-color { background-color: #fdf9ee; }
.has-swl-gray-background-color { background-color: rgba(200, 200, 200, .15); }
.has-swl-main-color { color: #3390d6; }
.has-swl-deep-01-color { color: #e44141; }
.has-swl-deep-02-color { color: #3d79d5; }
.has-swl-deep-03-color { color: #63a84d; }
.has-swl-deep-04-color { color: #f09f4d; }
.entry .has-background { padding: .5em .9em; }

/* ---------- トップページ本文 ---------- */
.front-content > * { margin-block: 0; }
.front-content .section > .container > * + *:not(.section-foot) { margin-top: 0; }

/* 大きな英字＋日本語の見出し（パターン「セクション見出し（英字付き）」） */
.section-head--big > p.section-head__en { margin: 0; }

/* 主な取り組み：グループ（work-grid）の中に、画像＋見出し段落のグループ（work） */
.work-grid.wp-block-group { display: grid; }
.work-grid > .wp-block-group { margin: 0; text-align: center; }
.work-grid figure { margin: 0; }
.work-grid figure img { width: 100%; aspect-ratio: 500 / 260; object-fit: cover; border-radius: 4px; }
.work-grid .work__title { margin: .6rem 0 0; font-weight: 700; }
.work-grid .work__title a { color: var(--color-brand-strong); text-decoration: none; }
.work-grid .work__title a:hover { text-decoration: underline; }

/* 関わり方：グループ（relation-grid）の中に、画像＋一文＋ボタンのグループ（rel） */
.relation-grid.wp-block-group { display: grid; }
.relation-grid > .wp-block-group { margin: 0; display: flex; flex-direction: column; align-items: center; gap: .75rem; text-align: center; }
.relation-grid figure { margin: 0; width: 100%; }
.relation-grid figure img { width: 100%; aspect-ratio: 500 / 340; object-fit: cover; border-radius: 4px; }
.relation-grid p { margin: 0; flex: 1; font-size: .9375rem; }
.relation-grid .wp-block-buttons { margin: 0; justify-content: center; }

/* 資料・動画：キャプションボックスを2列 */
.banner-grid.wp-block-group { display: grid; }
.banner-grid > .wp-block-group { margin: 0; }
.banner-grid figure { margin: 0; }
.banner-grid figure img { width: 100%; aspect-ratio: 500 / 260; object-fit: cover; }

/* 活動実績：年度のボタン（リストブロック） */
ul.year-grid { padding: 0; }
.year-grid li { margin: 0; }


/* 事業報告：写真のない投稿 */
.report__noimg { display: block; aspect-ratio: 16 / 9; background: linear-gradient(135deg, var(--color-brand-tint), #fff); }
.report-grid--archive { margin-bottom: 2rem; }

/* ページ送り */
.pagination .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; margin-top: 2rem; }
.pagination .page-numbers {
  display: grid; place-items: center; min-width: 44px; min-height: 44px; padding: 0 .75rem;
  border: 1px solid var(--color-border); border-radius: 6px; text-decoration: none; color: var(--color-text);
}
.pagination .page-numbers.current { background: var(--color-brand-strong); border-color: var(--color-brand-strong); color: #fff; }

/* 検索フォーム（検索結果・404） */
.search-form { display: flex; gap: .5rem; margin-top: 1rem; max-width: 32rem; }
.search-form input[type="text"] { flex: 1; }

/* ---------- 本文の標準ブロック ---------- */
.entry .wp-block-image img { border-radius: var(--radius); }
.entry .wp-block-image figcaption,
.entry .wp-element-caption { font-size: var(--fs-small); color: var(--color-text-sub); margin-top: .5rem; text-align: left; }
.entry__thumb { margin: 0 0 2rem; }
.entry__thumb img { border-radius: var(--radius); width: 100%; }

/* 古い形式のギャラリー（今の本文に残っている ul.blocks-gallery-grid）も、列に並べる */
.entry .blocks-gallery-grid { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.entry .wp-block-gallery.columns-1 .blocks-gallery-grid { grid-template-columns: 1fr; }
@media (min-width: 640px) {
  .entry .wp-block-gallery.columns-3 .blocks-gallery-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .entry .wp-block-gallery.columns-4 .blocks-gallery-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.entry .blocks-gallery-item { margin: 0; }
.entry .blocks-gallery-item figure { margin: 0; }
.entry .blocks-gallery-item img { width: 100%; height: auto; border-radius: var(--radius); }
.entry .wp-block-gallery.is-cropped .blocks-gallery-item img { aspect-ratio: 3 / 2; object-fit: cover; }
.entry .blocks-gallery-item figcaption { font-size: var(--fs-small); color: var(--color-text-sub); margin-top: .35rem; }
.entry .wp-block-gallery { margin-block: 1.5rem; }

/* 全幅・幅広 */
.entry .alignfull { margin-inline: calc(50% - 50vw); max-width: 100vw; width: 100vw; }
.entry .alignwide { margin-inline: calc(-1 * min(180px, (100vw - 100%) / 2)); }

/* 表 */
.entry .wp-block-table table { width: 100%; border-collapse: collapse; font-size: .9375rem; }
.entry .wp-block-table th,
.entry .wp-block-table td { border: 1px solid var(--color-border); padding: .75rem 1rem; text-align: left; vertical-align: top; }
.entry .wp-block-table th,
.entry .wp-block-table td:first-child:not(:only-child) { background: var(--color-bg-alt); font-weight: 700; width: 30%; }
.entry .wp-block-table figcaption { font-size: var(--fs-small); color: var(--color-text-sub); }
/* 表の中の小さい文字（<small>）は通常の大きさにそろえる（本文で一部の行だけ小さくなっているため） */
.entry .wp-block-table td small { font-size: inherit; }
@media (max-width: 639px) {
  .wp-block-table.is-style-stack th,
  .wp-block-table.is-style-stack td { display: block; width: 100% !important; }
  .wp-block-table.is-style-stack tr > *:not(:last-child) { border-bottom: 0; }
  .wp-block-table.is-style-stack tr + tr > *:first-child { border-top: 0; }
}

/* ボタン（標準は濃い青、テーマのスタイル：主ボタン・副ボタン） */
.wp-block-button__link {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 48px; padding: .6em 1.6em; border-radius: 999px; border: 2px solid transparent;
  background: var(--color-brand-strong); color: #fff; font-weight: 700; text-decoration: none; line-height: 1.3;
}
.wp-block-button.is-style-cta .wp-block-button__link { background: var(--color-cta); color: #fff; }
.wp-block-button.is-style-cta .wp-block-button__link:hover { background: var(--color-cta-hover); }
.wp-block-button.is-style-sub .wp-block-button__link { background: #fff; color: var(--color-brand-strong); border-color: var(--color-brand-strong); }
.wp-block-button.is-style-sub .wp-block-button__link:hover { background: var(--color-brand-tint); }
.relation-grid .wp-block-button__link { min-height: 40px; padding: .4em 1.1em; font-size: .9375rem; }

/* 詳細ブロック（よくある質問） */
.entry .wp-block-details { border-bottom: 1px solid var(--color-border); margin: 0; }
.entry .wp-block-details:first-of-type,
.entry :not(.wp-block-details) + .wp-block-details { border-top: 1px solid var(--color-border); margin-top: 1.25rem; }
.entry .wp-block-details summary {
  list-style: none; cursor: pointer; padding: 1rem 2.5rem 1rem 2.25rem; position: relative; font-weight: 700;
}
.entry .wp-block-details summary::-webkit-details-marker { display: none; }
.entry .wp-block-details summary::before { content: "Q"; position: absolute; left: .25rem; color: var(--color-brand-strong); }
.entry .wp-block-details summary::after { content: "+"; position: absolute; right: .75rem; top: .9rem; font-size: 1.25rem; color: var(--color-brand-strong); }
.entry .wp-block-details[open] summary::after { content: "−"; }
.entry .wp-block-details > :not(summary) { margin: 0 1rem 1.25rem 2.25rem; }

/* ---------- テーマのブロックスタイル ---------- */
/* 見出し：セクション見出し（中央） */
.is-style-section { text-align: center; border: 0 !important; padding: 0 !important; }

/* 囲みボックス */
.is-style-box { border: 1px solid var(--color-border); border-radius: var(--radius); padding: 1.25rem 1.5rem; background: #fff; }
.is-style-box > :last-child { margin-bottom: 0; }

/* 注意・情報ボックス */
.is-style-note {
  background: var(--color-brand-tint); border-left: 4px solid var(--color-brand);
  padding: 1rem 1.25rem; border-radius: 0 var(--radius) var(--radius) 0;
}
.is-style-note > :last-child { margin-bottom: 0; }

/* キャプションボックス（オレンジ）：最初の段落か見出しを見出し帯にする */
.wp-block-group.is-style-capbox {
  border: 1px solid var(--color-orange); border-radius: var(--radius);
  background: var(--color-orange-tint); overflow: hidden; padding: 0 0 1.25rem;
}
.wp-block-group.is-style-capbox > :first-child {
  background: var(--color-orange); color: #fff; font-weight: 700; font-size: 1rem; line-height: 1.6;
  padding: .5rem 1.25rem; margin: 0 0 1.25rem; border: 0;
}
.wp-block-group.is-style-capbox > :not(:first-child) { margin-inline: 1.25rem; }
.banner-grid .wp-block-group.is-style-capbox > :first-child { text-align: center; font-size: .9375rem; }

/* 番号付きの手順（リスト） */
ol.is-style-steps { list-style: none; padding: 0; counter-reset: step; display: grid; gap: .75rem; }
ol.is-style-steps > li {
  counter-increment: step; position: relative; margin: 0;
  padding: 1rem 1rem 1rem 3.75rem; background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius);
}
ol.is-style-steps > li::before {
  content: counter(step); position: absolute; left: 1rem; top: 1rem;
  width: 2rem; height: 2rem; border-radius: 50%; display: grid; place-items: center;
  background: var(--color-brand-strong); color: #fff; font-weight: 700;
}

.post-nav { display: grid; gap: 1rem; }

/* All in One SEO のパンくず */
.breadcrumb .aioseo-breadcrumbs { display: flex; flex-wrap: wrap; gap: .25rem .5rem; }
.breadcrumb .aioseo-breadcrumb-separator { color: var(--color-text-sub); }

/* ログイン中の管理バーと固定ヘッダーが重ならないように */
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .site-header { top: 0; } }

/* ---------- サイドバー（トップ以外。PCは右、スマホは本文の下） ---------- */
.layout-side { display: grid; gap: 0; }
.layout-side__main { min-width: 0; }
@media (min-width: 1080px) {
  .layout-side { grid-template-columns: minmax(0, 1fr) 300px; gap: 3.5rem; align-items: start; }
}
.layout-side__aside { display: grid; gap: 2rem; align-content: start; padding-bottom: var(--space-section); }
@media (min-width: 1080px) { .layout-side__aside { padding-top: 2.5rem; } }
.side-widget { margin: 0; }
.side-widget img { display: block; width: 100%; height: auto; }
.side-widget a:hover img { opacity: .85; }
/* 見出し（今のサイトと同じく青の帯） */
.side-widget__title,
.side-widget .wp-block-heading {
  margin: 0 0 .75rem; padding: .6rem .9rem; background: var(--color-brand); color: #fff;
  font-size: .9375rem; font-weight: 700; line-height: 1.5;
}
/* 新着記事 */
.side-widget ul { list-style: none; margin: 0; padding: 0; }
.side-widget li { border-bottom: 1px solid var(--color-border); }
.side-widget li a { display: block; padding: .6rem .25rem; color: var(--color-text); text-decoration: none; font-size: .9375rem; line-height: 1.6; }
.side-widget li a:hover { color: var(--color-brand-strong); text-decoration: underline; }
/* 検索 */
.side-widget .search-form,
.side-widget .wp-block-search__inside-wrapper { display: flex; gap: .5rem; margin: 0; }
.side-widget input[type="search"], .side-widget input[type="text"] { flex: 1; min-width: 0; }

/* ---------- PDFの書類リスト ----------
   箇条書きの全項目がPDFへのリンクなら、カード状に並べる（本文の書き換えは不要） */
.entry ul:has(> li > a[href$=".pdf"]):not(:has(> li > :not(a[href$=".pdf"]))) {
  list-style: none; padding: 0; margin-block: 1rem 2rem;
  display: grid; gap: .5rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr));
}
.entry ul:has(> li > a[href$=".pdf"]):not(:has(> li > :not(a[href$=".pdf"]))) > li { margin: 0; }
.entry ul:has(> li > a[href$=".pdf"]):not(:has(> li > :not(a[href$=".pdf"]))) > li > a[href$=".pdf"] {
  display: flex; align-items: center; gap: .75rem; height: 100%;
  padding: .75rem 1rem; border: 1px solid var(--color-border); border-radius: var(--radius);
  background: #fff; color: var(--color-text); text-decoration: none; line-height: 1.5;
  transition: border-color .15s, background-color .15s;
}
.entry ul:has(> li > a[href$=".pdf"]):not(:has(> li > :not(a[href$=".pdf"]))) > li > a[href$=".pdf"]::before {
  content: "PDF"; flex: none; padding: .1rem .4rem; border-radius: 3px;
  background: var(--color-rose-tint); color: var(--color-rose);
  font-size: .6875rem; font-weight: 700; letter-spacing: .05em;
}
.entry ul:has(> li > a[href$=".pdf"]):not(:has(> li > :not(a[href$=".pdf"]))) > li > a[href$=".pdf"]::after {
  content: ""; flex: none; margin-left: auto; width: .5rem; height: .5rem;
  border-top: 2px solid var(--color-brand-strong); border-right: 2px solid var(--color-brand-strong);
  transform: rotate(45deg);
}
.entry ul:has(> li > a[href$=".pdf"]):not(:has(> li > :not(a[href$=".pdf"]))) > li > a[href$=".pdf"]:hover {
  border-color: var(--color-brand); background: var(--color-brand-tint); color: var(--color-brand-strong);
}

/* ---------- お知らせ一覧ページ（写真付きの行。トップの欄より余裕をもたせる） ---------- */
.news-media-list { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--color-border); }
.news-media-list > li { border-bottom: 1px solid var(--color-border); }
.news-media {
  display: grid; grid-template-columns: 7.5rem minmax(0, 1fr); gap: 1rem; align-items: start;
  padding: 1.25rem .25rem; color: var(--color-text); text-decoration: none;
}
@media (min-width: 640px) { .news-media { grid-template-columns: 13rem minmax(0, 1fr); gap: 1.5rem; padding-block: 1.5rem; } }
.news-media__thumb { display: block; border-radius: 4px; overflow: hidden; }
.news-media__thumb img,
.news-media__thumb .report__noimg { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; transition: transform .3s; }
.news-media__body { display: grid; gap: .4rem; }
.news-media__title { font-weight: 700; font-size: 1.0625rem; line-height: 1.6; }
.news-media__text { font-size: .875rem; color: var(--color-text-sub); line-height: 1.7; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
@media (max-width: 639px) { .news-media__text { display: none; } .news-media__title { font-size: 1rem; } }
.news-media:hover .news-media__title { color: var(--color-brand-strong); text-decoration: underline; }
.news-media:hover .news-media__thumb img { transform: scale(1.04); }

/* 一覧・検索ページのサイドバーは、セクションの余白があるので上下の余白を足さない */
.section .layout-side__aside { padding-block: 0; }
@media (max-width: 1079px) { .section .layout-side__aside { padding-top: 3rem; } }

/* サイドバーの検索（標準の検索ウィジェット） */
.side-widget .search-form label { flex: 1; min-width: 0; }
.side-widget .search-form .search-field {
  width: 100%; min-height: 44px; padding: .5rem .75rem;
  border: 1px solid var(--color-border); border-radius: 6px; font: inherit; background: #fff;
}
.side-widget .search-form .search-submit {
  min-height: 44px; padding: 0 1.1rem; border: 0; border-radius: 6px; cursor: pointer;
  background: var(--color-brand-strong); color: #fff; font: inherit; font-weight: 700;
}

/* ---------- お問い合わせフォーム（今のMW WP Form。項目・文言は変えず、見た目だけ整える） ---------- */
.mw_wp_form h2 { margin-top: 2rem; }
.mw_wp_form .form { display: block; }
.mw_wp_form .form > dl { margin: 1.5rem 0 0; border-top: 1px solid var(--color-border); }
.mw_wp_form dt { font-weight: 700; padding: 1.1rem 0 .4rem; display: flex; align-items: center; gap: .6rem; }
.mw_wp_form dd { margin: 0; padding: 0 0 1.1rem; border-bottom: 1px solid var(--color-border); }
/* 必須の印（*）を「必須」のラベルにする */
.mw_wp_form dt small { font-size: 0; display: inline-flex; flex: none; white-space: nowrap; }
.mw_wp_form dt { flex-wrap: wrap; }
.mw_wp_form dt small::before {
  content: "必須"; white-space: nowrap; font-size: .75rem; font-weight: 700; line-height: 1; padding: .3rem .5rem;
  background: var(--color-cta); color: #fff; border-radius: 3px;
}
.mw_wp_form input[type="text"], .mw_wp_form input[type="email"], .mw_wp_form input[type="tel"], .mw_wp_form textarea {
  width: 100%; max-width: 100%; min-height: 48px; padding: .6rem .8rem; font: inherit;
  border: 1px solid #b8c0c8; border-radius: 6px; background: #fff;
}
.mw_wp_form input:focus, .mw_wp_form textarea:focus { outline: 3px solid var(--color-brand-tint); border-color: var(--color-brand-strong); }
.mw_wp_form textarea { min-height: 11rem; resize: vertical; line-height: 1.7; }
.mw_wp_form dd > br { display: none; }
/* 電話番号：3つを横に並べる */
.mw_wp_form .mwform-tel-field { display: flex; align-items: center; gap: .5rem; max-width: 22rem; }
.mw_wp_form .mwform-tel-field input { flex: 1; min-width: 0; text-align: center; }
/* 区分：チェックボックスを2列に */
.mw_wp_form dd:has(.mwform-checkbox-field) { display: grid; gap: .25rem .75rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .mw_wp_form dd:has(.mwform-checkbox-field) { grid-template-columns: 1fr 1fr; } }
.mw_wp_form dd:has(.mwform-checkbox-field) > input[type="hidden"] { display: none; }
.mw_wp_form .mwform-checkbox-field label { display: flex; align-items: center; gap: .6rem; min-height: 44px; cursor: pointer; }
.mw_wp_form .mwform-checkbox-field input { width: 1.2rem; height: 1.2rem; flex: none; }
/* 注意書き */
.mw_wp_form dd { font-size: .9375rem; }
.mw_wp_form dd input, .mw_wp_form dd textarea { font-size: 1rem; }
.mw_wp_form #yosan { margin-top: .5rem; max-width: 22rem; }
/* ボタン */
.mw_wp_form .form > p { margin: 2rem 0 0; text-align: center; }
.mw_wp_form input[type="submit"], .mw_wp_form input[type="button"], .mw_wp_form button {
  min-height: 52px; min-width: 14rem; padding: .6em 2em; border: 0; border-radius: 999px; cursor: pointer;
  background: var(--color-cta); color: #fff; font: inherit; font-weight: 700; font-size: 1.0625rem;
}
.mw_wp_form input[type="submit"]:hover { background: var(--color-cta-hover); }
.mw_wp_form input[name="submitBack"] { background: #fff; color: var(--color-brand-strong); border: 2px solid var(--color-brand-strong); margin-right: .5rem; }
/* 確認画面 */
.mw_wp_form_confirm dd { white-space: pre-wrap; padding-top: .25rem; }
@media (min-width: 768px) {
  .mw_wp_form .form > dl > div, .mw_wp_form .form > dl { display: grid; grid-template-columns: 15rem minmax(0, 1fr); column-gap: 1.5rem; }
  .mw_wp_form dt { padding: 1.25rem 0; align-items: flex-start; border-bottom: 1px solid var(--color-border); }
  .mw_wp_form dd { padding: 1rem 0; }
  .mw_wp_form dd, .mw_wp_form dt { border-bottom: 1px solid var(--color-border); }
  .mw_wp_form .form > dl { border-top: 1px solid var(--color-border); }
}

/* ---------- 実施中の事業（トップのヒーロー直下。外部の事業サイトへのカード） ---------- */
.project-grid.wp-block-group { display: grid; gap: 1.5rem; }
@media (min-width: 768px) { .project-grid.wp-block-group { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; } }
.project-grid > .project { margin: 0; display: flex; flex-direction: column; gap: .5rem; padding: 0 0 1.25rem; background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-card); }
.project figure { margin: 0 0 .5rem; }
.project figure img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 0; transition: transform .3s; }
.project:hover figure img { transform: scale(1.03); }
.project figure { overflow: hidden; }
.project > p, .project > .wp-block-buttons { margin: 0; padding-inline: 1.25rem; }
.project__tag { align-self: flex-start; margin-left: 1.25rem !important; padding: .15rem .7rem !important; background: var(--color-cta); color: #fff; font-size: .75rem; font-weight: 700; border-radius: 999px; }
.project__title { font-size: 1.1875rem; font-weight: 700; line-height: 1.5; }
.project__title a { color: var(--color-text); text-decoration: none; }
.project__title a:hover { color: var(--color-brand-strong); text-decoration: underline; }
.project__area { color: var(--color-text-sub); font-size: .9375rem; }
.project .wp-block-buttons { margin-top: .5rem; }
