/*
 * block-contents.css
 * ------------------------------------------------------------
 * WordPress コアブロック用ベーススタイル
 * .block-contents が付与された要素の配下にのみ適用される。
 * reset.css で全リセットされる前提の再定義用。
 *
 * 読み込み例(functions.php):
 *   wp_enqueue_style( 'block-contents',
 *     get_theme_file_uri( 'css/block-contents.css' ),
 *     array(), '1.0.0' );
 *
 * 使い方:
 *   投稿本文のラッパーに class="block-contents" を付与する。
 *   例: <div class="block-contents"><?php the_content(); ?></div>
 * ------------------------------------------------------------
 */

/* ============================================================
   0. 変数
   ============================================================ */
.block-contents {
  --bc-text: #333;
  --bc-muted: #767676;
  --bc-link: #0057ad;
  --bc-border: #ddd;
  --bc-bg-soft: #f5f5f5;
  --bc-accent: #333;          /* ボタン等の背景 */
  --bc-accent-text: #fff;     /* ボタン等の文字 */
  --bc-radius: 4px;
  --bc-block-gap: 1.75em;     /* ブロック間の余白 */
  --bc-line-height: 1.8;
}

/* ============================================================
   1. ベース(タイポグラフィ / ブロック間余白)
   ============================================================ */
.block-contents {
  color: var(--bc-text);
  font-size: 1rem;
  line-height: var(--bc-line-height);
  overflow-wrap: break-word;
}

/* 直下ブロックの縦方向の余白 */
.block-contents > * {
  margin-top: 0;
  margin-bottom: 0;
}
.block-contents > * + * {
  margin-top: var(--bc-block-gap);
}

.block-contents a {
  color: var(--bc-link);
  text-decoration: underline;
}
.block-contents a:hover {
  text-decoration: none;
}

.block-contents strong { font-weight: 700; }
.block-contents em     { font-style: italic; }
.block-contents s      { text-decoration: line-through; }
.block-contents sup    { font-size: .75em; vertical-align: super; }
.block-contents sub    { font-size: .75em; vertical-align: sub; }
.block-contents mark   { background: #fff3b8; padding: 0 .2em; }
.block-contents kbd {
  font-family: ui-monospace, "SFMono-Regular", Consolas, Menlo, monospace;
  font-size: .875em;
  background: var(--bc-bg-soft);
  border: 1px solid var(--bc-border);
  border-radius: 3px;
  padding: .1em .4em;
}
.block-contents code {
  font-family: ui-monospace, "SFMono-Regular", Consolas, Menlo, monospace;
  font-size: .875em;
  background: var(--bc-bg-soft);
  border-radius: 3px;
  padding: .15em .4em;
}

/* キャプション共通 */
.block-contents figcaption,
.block-contents .wp-element-caption {
  margin-top: .5em;
  font-size: .8125rem;
  color: var(--bc-muted);
  text-align: center;
}

/* ============================================================
   2. 汎用ユーティリティ(配置 / 文字揃え / 色 / サイズ)
   ============================================================ */
/* 文字揃え */
.block-contents .has-text-align-left   { text-align: left; }
.block-contents .has-text-align-center { text-align: center; }
.block-contents .has-text-align-right  { text-align: right; }

/* 回り込み配置 */
.block-contents .alignleft {
  float: left;
  margin: .5em 1.5em 1em 0;
  max-width: 50%;
}
.block-contents .alignright {
  float: right;
  margin: .5em 0 1em 1.5em;
  max-width: 50%;
}
.block-contents .aligncenter {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
/* float 解除 */
.block-contents::after {
  content: "";
  display: block;
  clear: both;
}

/* 幅広・全幅(コンテナ幅の制御はテーマ側に依存するため最低限) */
.block-contents .alignwide { max-width: none; }
.block-contents .alignfull { max-width: none; width: 100%; }

/* 背景色付きブロックの内側余白(コア標準値) */
.block-contents .has-background {
  padding: 1.25em 2.375em;
}

/* フォントサイズ クラス */
.block-contents .has-small-font-size   { font-size: .8125rem; }
.block-contents .has-medium-font-size  { font-size: 1.25rem; }
.block-contents .has-large-font-size   { font-size: 1.75rem; }
.block-contents .has-x-large-font-size { font-size: 2.25rem; }

/* ドロップキャップ */
.block-contents p.has-drop-cap:not(:focus)::first-letter {
  float: left;
  font-size: 3.2em;
  line-height: 1;
  font-weight: 700;
  margin: .05em .1em 0 0;
}

/* ============================================================
   3. テキスト系ブロック
   ============================================================ */

/* --- 段落 (core/paragraph) --- */
.block-contents p {
  line-height: var(--bc-line-height);
}

/* --- 見出し (core/heading) --- */
.block-contents h1,
.block-contents h2,
.block-contents h3,
.block-contents h4,
.block-contents h5,
.block-contents h6 {
  font-weight: 700;
  line-height: 1.4;
}
.block-contents > h1 + *, .block-contents > h2 + *,
.block-contents > h3 + *, .block-contents > h4 + *,
.block-contents > h5 + *, .block-contents > h6 + * {
  margin-top: 1em;
}
.block-contents h1 { font-size: 2rem; }
.block-contents h2 { font-size: 1.625rem; }
.block-contents h3 { font-size: 1.375rem; }
.block-contents h4 { font-size: 1.125rem; }
.block-contents h5 { font-size: 1rem; }
.block-contents h6 { font-size: .875rem; }

/* --- リスト (core/list) --- */
.block-contents ul,
.block-contents ol {
  padding-left: 1.5em;
}
.block-contents ul { list-style: disc; }
.block-contents ol { list-style: decimal; }
.block-contents ul ul { list-style: circle; }
.block-contents ul ul ul { list-style: square; }
.block-contents li {
  margin-top: .375em;
}
.block-contents li > ul,
.block-contents li > ol {
  margin-top: .375em;
}
/* スタイル: マーカーなし */
.block-contents ul.is-style-no-disc,
.block-contents ul[style*="list-style-type:none"] {
  list-style: none;
  padding-left: 0;
}

/* --- 引用 (core/quote) --- */
.block-contents .wp-block-quote {
  border-left: 4px solid var(--bc-border);
  padding: .25em 0 .25em 1.25em;
}
.block-contents .wp-block-quote p + p {
  margin-top: 1em;
}
.block-contents .wp-block-quote cite {
  display: block;
  margin-top: .75em;
  font-size: .8125rem;
  font-style: normal;
  color: var(--bc-muted);
}
/* スタイル: 大 */
.block-contents .wp-block-quote.is-style-large,
.block-contents .wp-block-quote.is-style-plain {
  border-left: none;
  padding-left: 0;
}
.block-contents .wp-block-quote.is-style-large p {
  font-size: 1.375rem;
  font-style: italic;
}

/* --- プルクオート (core/pullquote) --- */
.block-contents .wp-block-pullquote {
  border-top: 3px solid var(--bc-text);
  border-bottom: 3px solid var(--bc-text);
  padding: 2em 0;
  text-align: center;
}
.block-contents .wp-block-pullquote blockquote p {
  font-size: 1.375rem;
  line-height: 1.6;
}
.block-contents .wp-block-pullquote cite {
  display: block;
  margin-top: .75em;
  font-size: .8125rem;
  font-style: normal;
  color: var(--bc-muted);
}
.block-contents .wp-block-pullquote.is-style-solid-color {
  border: none;
  background: var(--bc-bg-soft);
  padding: 2em;
}

/* --- コード (core/code) --- */
.block-contents .wp-block-code {
  background: var(--bc-bg-soft);
  border: 1px solid var(--bc-border);
  border-radius: var(--bc-radius);
  padding: 1.25em 1.5em;
  overflow-x: auto;
}
.block-contents .wp-block-code code {
  display: block;
  background: none;
  padding: 0;
  font-size: .875rem;
  line-height: 1.7;
  white-space: pre;
}

/* --- 整形済みテキスト (core/preformatted) --- */
.block-contents .wp-block-preformatted {
  font-family: ui-monospace, "SFMono-Regular", Consolas, Menlo, monospace;
  font-size: .875rem;
  line-height: 1.7;
  white-space: pre-wrap;
  background: var(--bc-bg-soft);
  border-radius: var(--bc-radius);
  padding: 1.25em 1.5em;
  overflow-x: auto;
}

/* --- 詩 (core/verse) --- */
.block-contents .wp-block-verse {
  font-family: inherit;
  white-space: pre-wrap;
  padding: 1em 1.5em;
  border-left: 4px solid var(--bc-border);
}

/* --- テーブル (core/table) --- */
.block-contents .wp-block-table {
  overflow-x: auto;
}
.block-contents .wp-block-table table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
}
.block-contents .wp-block-table th,
.block-contents .wp-block-table td {
  border: 1px solid var(--bc-border);
  padding: .625em .875em;
  text-align: left;
  vertical-align: top;
}
.block-contents .wp-block-table th,
.block-contents .wp-block-table thead th {
  background: var(--bc-bg-soft);
  font-weight: 700;
}
.block-contents .wp-block-table figcaption {
  text-align: center;
}
.block-contents .wp-block-table .has-fixed-layout {
  table-layout: fixed;
}
/* スタイル: ストライプ */
.block-contents .wp-block-table.is-style-stripes table {
  border-collapse: separate;
}
.block-contents .wp-block-table.is-style-stripes th,
.block-contents .wp-block-table.is-style-stripes td {
  border: none;
  border-bottom: 1px solid var(--bc-border);
}
.block-contents .wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
  background: var(--bc-bg-soft);
}

/* --- 詳細 (core/details) --- */
.block-contents .wp-block-details {
  border: 1px solid var(--bc-border);
  border-radius: var(--bc-radius);
  padding: .875em 1.25em;
}
.block-contents .wp-block-details summary {
  cursor: pointer;
  font-weight: 700;
  list-style: revert; /* reset で消えたマーカーを復帰 */
}
.block-contents .wp-block-details[open] summary {
  margin-bottom: .75em;
}

/* --- 脚注 (core/footnotes) --- */
.block-contents .wp-block-footnotes {
  font-size: .8125rem;
  color: var(--bc-muted);
  border-top: 1px solid var(--bc-border);
  padding-top: 1.25em;
  padding-left: 1.5em;
  list-style: decimal;
}

/* ============================================================
   4. メディア系ブロック
   ============================================================ */

/* 画像・動画のはみ出し防止 */
.block-contents img,
.block-contents video,
.block-contents embed,
.block-contents object {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
}
.block-contents iframe {
  max-width: 100%; /* height は width/height 属性・embed 用スタイルに委ねる */
  vertical-align: middle;
}

/* --- 画像 (core/image) --- */
.block-contents .wp-block-image img {
  display: block;
}
.block-contents .wp-block-image.aligncenter img,
.block-contents .wp-block-image .aligncenter img {
  margin-left: auto;
  margin-right: auto;
}
.block-contents .wp-block-image.is-style-rounded img,
.block-contents .wp-block-image .is-style-rounded img {
  border-radius: 9999px;
}
.block-contents .wp-block-image figure.alignleft,
.block-contents .wp-block-image figure.alignright {
  max-width: 50%;
}

/* --- ギャラリー (core/gallery) --- */
.block-contents .wp-block-gallery {
  display: flex;
  flex-wrap: wrap;
  gap: .75em;
}
.block-contents .wp-block-gallery figcaption:not(.wp-block-image figcaption) {
  flex-basis: 100%;
}
.block-contents .wp-block-gallery .wp-block-image {
  margin: 0;
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.block-contents .wp-block-gallery .wp-block-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* 列数指定 */
.block-contents .wp-block-gallery.columns-1 .wp-block-image { width: 100%; }
.block-contents .wp-block-gallery.columns-2 .wp-block-image { width: calc((100% - .75em) / 2); }
.block-contents .wp-block-gallery.columns-3 .wp-block-image { width: calc((100% - .75em * 2) / 3); }
.block-contents .wp-block-gallery.columns-4 .wp-block-image { width: calc((100% - .75em * 3) / 4); }
.block-contents .wp-block-gallery.columns-5 .wp-block-image { width: calc((100% - .75em * 4) / 5); }
.block-contents .wp-block-gallery.columns-6 .wp-block-image { width: calc((100% - .75em * 5) / 6); }
.block-contents .wp-block-gallery.columns-7 .wp-block-image { width: calc((100% - .75em * 6) / 7); }
.block-contents .wp-block-gallery.columns-8 .wp-block-image { width: calc((100% - .75em * 7) / 8); }
/* 列数未指定(default): 2列相当 */
.block-contents .wp-block-gallery.columns-default .wp-block-image {
  width: calc((100% - .75em) / 2);
}

/* --- 音声 (core/audio) --- */
.block-contents .wp-block-audio audio {
  width: 100%;
}

/* --- 動画 (core/video) --- */
.block-contents .wp-block-video video {
  width: 100%;
}

/* --- カバー (core/cover) --- */
.block-contents .wp-block-cover {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 430px;
  padding: 1em;
  overflow: hidden;
  box-sizing: border-box;
}
.block-contents .wp-block-cover .wp-block-cover__image-background,
.block-contents .wp-block-cover .wp-block-cover__video-background {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  z-index: 0;
}
.block-contents .wp-block-cover .wp-block-cover__background {
  position: absolute;
  inset: 0;
  z-index: 1;
}
/* オーバーレイ不透明度(コア標準: has-background-dim-XX) */
.block-contents .wp-block-cover .has-background-dim { opacity: .5; }
.block-contents .wp-block-cover .has-background-dim-0   { opacity: 0; }
.block-contents .wp-block-cover .has-background-dim-10  { opacity: .1; }
.block-contents .wp-block-cover .has-background-dim-20  { opacity: .2; }
.block-contents .wp-block-cover .has-background-dim-30  { opacity: .3; }
.block-contents .wp-block-cover .has-background-dim-40  { opacity: .4; }
.block-contents .wp-block-cover .has-background-dim-50  { opacity: .5; }
.block-contents .wp-block-cover .has-background-dim-60  { opacity: .6; }
.block-contents .wp-block-cover .has-background-dim-70  { opacity: .7; }
.block-contents .wp-block-cover .has-background-dim-80  { opacity: .8; }
.block-contents .wp-block-cover .has-background-dim-90  { opacity: .9; }
.block-contents .wp-block-cover .has-background-dim-100 { opacity: 1; }
.block-contents .wp-block-cover__inner-container {
  position: relative;
  z-index: 2;
  width: 100%;
  color: #fff;
}
.block-contents .wp-block-cover__inner-container > * + * {
  margin-top: 1em;
}
/* 配置バリエーション */
.block-contents .wp-block-cover.is-position-top-left      { align-items: flex-start; justify-content: flex-start; }
.block-contents .wp-block-cover.is-position-top-center    { align-items: flex-start; justify-content: center; }
.block-contents .wp-block-cover.is-position-top-right     { align-items: flex-start; justify-content: flex-end; }
.block-contents .wp-block-cover.is-position-center-left   { align-items: center; justify-content: flex-start; }
.block-contents .wp-block-cover.is-position-center-right  { align-items: center; justify-content: flex-end; }
.block-contents .wp-block-cover.is-position-bottom-left   { align-items: flex-end; justify-content: flex-start; }
.block-contents .wp-block-cover.is-position-bottom-center { align-items: flex-end; justify-content: center; }
.block-contents .wp-block-cover.is-position-bottom-right  { align-items: flex-end; justify-content: flex-end; }

/* --- メディアとテキスト (core/media-text) --- */
.block-contents .wp-block-media-text {
  display: grid;
  grid-template-columns: 50% 1fr;
  align-items: center;
  gap: 0;
}
.block-contents .wp-block-media-text.has-media-on-the-right {
  grid-template-columns: 1fr 50%;
}
.block-contents .wp-block-media-text .wp-block-media-text__media {
  grid-column: 1;
  grid-row: 1;
  margin: 0;
}
.block-contents .wp-block-media-text.has-media-on-the-right .wp-block-media-text__media {
  grid-column: 2;
}
.block-contents .wp-block-media-text .wp-block-media-text__content {
  grid-column: 2;
  grid-row: 1;
  padding: 0 8%;
}
.block-contents .wp-block-media-text.has-media-on-the-right .wp-block-media-text__content {
  grid-column: 1;
}
.block-contents .wp-block-media-text .wp-block-media-text__content > * + * {
  margin-top: 1em;
}
.block-contents .wp-block-media-text .wp-block-media-text__media img,
.block-contents .wp-block-media-text .wp-block-media-text__media video {
  width: 100%;
  height: auto;
}
.block-contents .wp-block-media-text.is-image-fill .wp-block-media-text__media {
  height: 100%;
  min-height: 250px;
  background-size: cover;
  background-position: center;
}
.block-contents .wp-block-media-text.is-image-fill .wp-block-media-text__media img {
  position: absolute;
  width: 1px;
  height: 1px;
  clip: rect(0, 0, 0, 0);
}
.block-contents .wp-block-media-text.is-vertically-aligned-top    { align-items: start; }
.block-contents .wp-block-media-text.is-vertically-aligned-bottom { align-items: end; }

/* --- ファイル (core/file) --- */
.block-contents .wp-block-file {
  display: flex;
  align-items: center;
  gap: .75em;
  flex-wrap: wrap;
}
.block-contents .wp-block-file a:first-child {
  font-weight: 700;
}
.block-contents .wp-block-file .wp-block-file__button {
  display: inline-block;
  background: var(--bc-accent);
  color: var(--bc-accent-text);
  font-size: .8125rem;
  text-decoration: none;
  padding: .5em 1.25em;
  border-radius: var(--bc-radius);
}
.block-contents .wp-block-file .wp-block-file__button:hover {
  opacity: .85;
}
.block-contents .wp-block-file object,
.block-contents .wp-block-file .wp-block-file__embed {
  width: 100%;
  margin-bottom: 1em;
}

/* --- 埋め込み (core/embed) --- */
.block-contents .wp-block-embed {
  overflow: hidden;
}
.block-contents .wp-block-embed__wrapper {
  position: relative;
}
/* レスポンシブ対応(コアの wp-embed-responsive 前提) */
.wp-embed-responsive .block-contents .wp-has-aspect-ratio .wp-block-embed__wrapper::before {
  content: "";
  display: block;
}
.wp-embed-responsive .block-contents .wp-has-aspect-ratio iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.wp-embed-responsive .block-contents .wp-embed-aspect-21-9 .wp-block-embed__wrapper::before { padding-top: 42.85%; }
.wp-embed-responsive .block-contents .wp-embed-aspect-18-9 .wp-block-embed__wrapper::before { padding-top: 50%; }
.wp-embed-responsive .block-contents .wp-embed-aspect-16-9 .wp-block-embed__wrapper::before { padding-top: 56.25%; }
.wp-embed-responsive .block-contents .wp-embed-aspect-4-3  .wp-block-embed__wrapper::before { padding-top: 75%; }
.wp-embed-responsive .block-contents .wp-embed-aspect-1-1  .wp-block-embed__wrapper::before { padding-top: 100%; }
.wp-embed-responsive .block-contents .wp-embed-aspect-9-16 .wp-block-embed__wrapper::before { padding-top: 177.77%; }
.wp-embed-responsive .block-contents .wp-embed-aspect-1-2  .wp-block-embed__wrapper::before { padding-top: 200%; }

/* ============================================================
   5. デザイン系ブロック
   ============================================================ */

/* --- ボタン (core/buttons, core/button) --- */
.block-contents .wp-block-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: .75em;
  align-items: center;
}
.block-contents .wp-block-buttons.is-content-justification-center { justify-content: center; }
.block-contents .wp-block-buttons.is-content-justification-right  { justify-content: flex-end; }
.block-contents .wp-block-buttons.is-content-justification-space-between { justify-content: space-between; }
.block-contents .wp-block-buttons.is-vertical {
  flex-direction: column;
  align-items: flex-start;
}
.block-contents .wp-block-button__link {
  display: inline-block;
  background: var(--bc-accent);
  color: var(--bc-accent-text);
  text-decoration: none;
  text-align: center;
  line-height: 1.5;
  padding: .667em 1.333em;
  border: 2px solid transparent;
  border-radius: var(--bc-radius);
  cursor: pointer;
  box-sizing: border-box;
  transition: opacity .2s;
}
.block-contents .wp-block-button__link:hover {
  opacity: .85;
  text-decoration: none;
}
/* スタイル: アウトライン */
.block-contents .wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent;
  color: var(--bc-accent);
  border-color: currentColor;
}
/* 角丸なし */
.block-contents .wp-block-button.is-style-squared .wp-block-button__link,
.block-contents .wp-block-button .wp-block-button__link.no-border-radius {
  border-radius: 0;
}
/* 幅指定 */
.block-contents .wp-block-button.has-custom-width .wp-block-button__link { width: 100%; }
.block-contents .wp-block-button.wp-block-button__width-25  { width: calc(25% - .75em * 3 / 4); }
.block-contents .wp-block-button.wp-block-button__width-50  { width: calc(50% - .75em / 2); }
.block-contents .wp-block-button.wp-block-button__width-75  { width: calc(75% - .75em / 4); }
.block-contents .wp-block-button.wp-block-button__width-100 { width: 100%; }

/* --- カラム (core/columns, core/column) --- */
.block-contents .wp-block-columns {
  display: flex;
  flex-wrap: nowrap;
  gap: 2em;
  align-items: initial;
}
.block-contents .wp-block-columns.are-vertically-aligned-top    { align-items: flex-start; }
.block-contents .wp-block-columns.are-vertically-aligned-center { align-items: center; }
.block-contents .wp-block-columns.are-vertically-aligned-bottom { align-items: flex-end; }
.block-contents .wp-block-column {
  flex-grow: 1;
  flex-basis: 0;
  min-width: 0;
  word-break: break-word;
}
.block-contents .wp-block-column[style*="flex-basis"] {
  flex-grow: 0;
}
.block-contents .wp-block-column.is-vertically-aligned-top    { align-self: flex-start; }
.block-contents .wp-block-column.is-vertically-aligned-center { align-self: center; }
.block-contents .wp-block-column.is-vertically-aligned-bottom { align-self: flex-end; }
.block-contents .wp-block-column > * + * {
  margin-top: 1em;
}

/* --- グループ / 横並び / 縦積み (core/group) --- */
.block-contents .wp-block-group > * + * {
  margin-top: var(--bc-block-gap);
}
.block-contents .wp-block-group.is-layout-flex,
.block-contents .is-layout-flex {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1em;
}
.block-contents .is-layout-flex > * { margin: 0; }
.block-contents .is-vertical.is-layout-flex { flex-direction: column; align-items: flex-start; }
.block-contents .is-content-justification-center.is-layout-flex { justify-content: center; }
.block-contents .is-content-justification-right.is-layout-flex  { justify-content: flex-end; }
.block-contents .is-content-justification-space-between.is-layout-flex { justify-content: space-between; }
.block-contents .is-layout-grid {
  display: grid;
  gap: 1em;
}

/* --- 区切り (core/separator) --- */
.block-contents .wp-block-separator {
  border: none;
  border-top: 1px solid var(--bc-border);
  width: 100px;
  margin-left: auto;
  margin-right: auto;
}
.block-contents .wp-block-separator.is-style-wide {
  width: 100%;
}
.block-contents .wp-block-separator.is-style-dots {
  width: auto;
  border: none;
  text-align: center;
  line-height: 1;
}
.block-contents .wp-block-separator.is-style-dots::before {
  content: "\00b7 \00b7 \00b7";
  font-size: 1.5rem;
  letter-spacing: 2em;
  padding-left: 2em;
  color: var(--bc-muted);
}

/* --- スペーサー (core/spacer) --- */
.block-contents .wp-block-spacer {
  clear: both;
}

/* ============================================================
   6. ウィジェット系ブロック(本文内で使われた場合)
   ============================================================ */

/* --- アーカイブ / カテゴリー / 固定ページリスト --- */
.block-contents .wp-block-archives-list,
.block-contents .wp-block-categories-list,
.block-contents .wp-block-page-list,
.block-contents .wp-block-latest-posts,
.block-contents .wp-block-latest-comments,
.block-contents .wp-block-rss {
  list-style: none;
  padding-left: 0;
}
.block-contents .wp-block-archives-list li,
.block-contents .wp-block-categories-list li,
.block-contents .wp-block-page-list li {
  margin-top: .375em;
}
.block-contents .wp-block-categories-list .children,
.block-contents .wp-block-page-list .wp-block-page-list__item ul {
  list-style: none;
  padding-left: 1.25em;
}
.block-contents .wp-block-archives-dropdown select,
.block-contents .wp-block-categories-dropdown select {
  padding: .5em .75em;
  border: 1px solid var(--bc-border);
  border-radius: var(--bc-radius);
  background: #fff;
  font: inherit;
}

/* --- 最新の投稿 (core/latest-posts) --- */
.block-contents .wp-block-latest-posts li {
  margin-top: .75em;
}
.block-contents .wp-block-latest-posts.is-grid {
  display: grid;
  gap: 1.25em;
}
.block-contents .wp-block-latest-posts.is-grid li { margin-top: 0; }
.block-contents .wp-block-latest-posts.columns-2 { grid-template-columns: repeat(2, 1fr); }
.block-contents .wp-block-latest-posts.columns-3 { grid-template-columns: repeat(3, 1fr); }
.block-contents .wp-block-latest-posts.columns-4 { grid-template-columns: repeat(4, 1fr); }
.block-contents .wp-block-latest-posts.columns-5 { grid-template-columns: repeat(5, 1fr); }
.block-contents .wp-block-latest-posts.columns-6 { grid-template-columns: repeat(6, 1fr); }
.block-contents .wp-block-latest-posts__post-date,
.block-contents .wp-block-latest-posts__post-author {
  display: block;
  font-size: .8125rem;
  color: var(--bc-muted);
}
.block-contents .wp-block-latest-posts__post-excerpt {
  margin-top: .375em;
  font-size: .9375rem;
}
.block-contents .wp-block-latest-posts__featured-image img {
  width: 100%;
  height: auto;
}

/* --- 最新のコメント (core/latest-comments) --- */
.block-contents .wp-block-latest-comments article {
  display: flex;
  gap: .75em;
  margin-top: .75em;
}
.block-contents .wp-block-latest-comments__comment-avatar {
  border-radius: 50%;
  width: 40px;
  height: 40px;
  flex-shrink: 0;
}
.block-contents .wp-block-latest-comments__comment-date {
  display: block;
  font-size: .8125rem;
  color: var(--bc-muted);
}

/* --- カレンダー (core/calendar) --- */
.block-contents .wp-block-calendar table {
  width: 100%;
  border-collapse: collapse;
  text-align: center;
}
.block-contents .wp-block-calendar caption {
  padding: .5em 0;
  font-weight: 700;
}
.block-contents .wp-block-calendar th,
.block-contents .wp-block-calendar td {
  border: 1px solid var(--bc-border);
  padding: .375em;
}
.block-contents .wp-block-calendar th {
  background: var(--bc-bg-soft);
  font-weight: 700;
}
.block-contents .wp-block-calendar nav {
  display: flex;
  justify-content: space-between;
  margin-top: .5em;
  font-size: .875rem;
}

/* --- 検索 (core/search) --- */
.block-contents .wp-block-search .wp-block-search__label {
  display: block;
  margin-bottom: .5em;
  font-weight: 700;
}
.block-contents .wp-block-search .wp-block-search__inside-wrapper {
  display: flex;
  gap: .5em;
}
.block-contents .wp-block-search .wp-block-search__input {
  flex-grow: 1;
  min-width: 0;
  padding: .5em .75em;
  border: 1px solid var(--bc-border);
  border-radius: var(--bc-radius);
  font: inherit;
}
.block-contents .wp-block-search .wp-block-search__button {
  background: var(--bc-accent);
  color: var(--bc-accent-text);
  border: none;
  border-radius: var(--bc-radius);
  padding: .5em 1.25em;
  font: inherit;
  cursor: pointer;
}
.block-contents .wp-block-search .wp-block-search__button:hover {
  opacity: .85;
}
.block-contents .wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper {
  border: 1px solid var(--bc-border);
  border-radius: var(--bc-radius);
  padding: 3px;
}
.block-contents .wp-block-search.wp-block-search__button-inside .wp-block-search__input {
  border: none;
}

/* --- ソーシャルアイコン (core/social-links) --- */
.block-contents .wp-block-social-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .5em;
  list-style: none;
  padding-left: 0;
}
.block-contents .wp-block-social-links .wp-social-link {
  margin: 0;
  border-radius: 9999px;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bc-accent);
}
.block-contents .wp-block-social-links .wp-social-link a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  color: var(--bc-accent-text);
  text-decoration: none;
}
.block-contents .wp-block-social-links .wp-social-link svg {
  width: 1.25em;
  height: 1.25em;
  fill: currentColor;
}
.block-contents .wp-block-social-links.is-style-logos-only .wp-social-link {
  background: none;
  width: auto;
  height: auto;
}
.block-contents .wp-block-social-links.is-style-logos-only .wp-social-link a {
  color: var(--bc-text);
}

/* --- タグクラウド (core/tag-cloud) --- */
.block-contents .wp-block-tag-cloud a {
  display: inline-block;
  margin: 0 .375em .5em 0;
  padding: .25em .75em;
  background: var(--bc-bg-soft);
  border-radius: 9999px;
  font-size: .8125rem !important; /* inline の font-size を無効化して統一 */
  color: var(--bc-text);
  text-decoration: none;
}
.block-contents .wp-block-tag-cloud a:hover {
  background: var(--bc-border);
}

/* --- RSS (core/rss) --- */
.block-contents .wp-block-rss li {
  margin-top: .75em;
}
.block-contents .wp-block-rss__item-publish-date,
.block-contents .wp-block-rss__item-author {
  display: block;
  font-size: .8125rem;
  color: var(--bc-muted);
}

/* ============================================================
   7. レスポンシブ
   ============================================================ */
@media (max-width: 781px) {
  /* カラム: モバイルで縦積み(コア標準の挙動) */
  .block-contents .wp-block-columns:not(.is-not-stacked-on-mobile) {
    flex-wrap: wrap;
  }
  .block-contents .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column {
    flex-basis: 100% !important;
  }
}

@media (max-width: 600px) {
  /* メディアとテキスト: 縦積み */
  .block-contents .wp-block-media-text.is-stacked-on-mobile {
    grid-template-columns: 100% !important;
  }
  .block-contents .wp-block-media-text.is-stacked-on-mobile .wp-block-media-text__media {
    grid-column: 1;
    grid-row: 1;
  }
  .block-contents .wp-block-media-text.is-stacked-on-mobile .wp-block-media-text__content {
    grid-column: 1;
    grid-row: 2;
    padding: 1.5em 0 0;
  }

  /* ギャラリー: 3列以上は2列に */
  .block-contents .wp-block-gallery[class*="columns-"] .wp-block-image {
    width: calc((100% - .75em) / 2);
  }
  .block-contents .wp-block-gallery.columns-1 .wp-block-image {
    width: 100%;
  }

  /* 回り込みを解除 */
  .block-contents .alignleft,
  .block-contents .alignright {
    float: none;
    margin-left: 0;
    margin-right: 0;
    max-width: 100%;
  }

  /* 最新の投稿グリッド */
  .block-contents .wp-block-latest-posts.is-grid {
    grid-template-columns: 1fr !important;
  }

  /* 見出しサイズ調整 */
  .block-contents h1 { font-size: 1.75rem; }
  .block-contents h2 { font-size: 1.5rem; }
  .block-contents h3 { font-size: 1.25rem; }
}
