/* 本番の overlay スクロールバーに合わせて透明にする */
html {
  scrollbar-width: thin;
  scrollbar-color: rgba(0, 0, 0, 0.25) transparent;
  overflow-x: clip;
}
body { overflow-x: clip; }
::-webkit-scrollbar { width: 0; height: 0; background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(0, 0, 0, 0.25); border-radius: 4px; }

:root {
  --wp-content-max: 1140px;
  /* WP の spacing preset。インライン style が参照する */
  --wp--preset--spacing--20: 0.44rem;
  --wp--preset--spacing--30: 0.75rem;
  /* --40 から --70 は --wp-margin-* に結ぶ。固定値だと中間の幅で本番と余白がずれる */
  --wp--preset--spacing--40: var(--wp-margin-sm);
  --wp--preset--spacing--50: var(--wp-margin-md);
  --wp--preset--spacing--60: var(--wp-margin-lg);
  --wp--preset--spacing--70: var(--wp-margin-xl);
  --wp--preset--spacing--80: 5.06rem;
  --wp-color-primary: #f39813;
  --wp-color-primary-dark: #c2790f;
  --wp-color-primary-vivid: #ffa714;
  --wp-color-text: #333;
  --wp-color-text-light: #666;
  --wp-color-border: #e5e5e5;
  --wp-color-bg-soft: #fafafa;
  --wp-margin-xs: 0.75rem;
  /* sm・md を大きくすると 575px 以下で本番とずれる */
  --wp-margin-sm: 1rem;
  --wp-margin-md: 3rem;
  --wp-margin-lg: 4rem;
  --wp-margin-xl: 6rem;
}
@media (min-width: 576px) {
  :root { --wp-margin-sm: 2rem; --wp-margin-md: 4rem; --wp-margin-lg: 5rem; }
}
@media (min-width: 992px) {
  :root { --wp-margin-sm: 3rem; --wp-margin-md: 5rem; --wp-margin-lg: 6rem; }
}

.site-body { padding: 0; }
.site-body-container.container { max-width: var(--wp-content-max); margin: 0 auto; padding: 0 15px; }
.main-section { width: 100%; }
/* .entry-body 全体を 1.7 にするのは簡略化。本番の body は line-height: normal なので、ボタン・表など normal のものは個別に戻している */
.entry-body { line-height: 1.7; color: var(--wp-color-text); }
.entry-body > * + * { margin-top: 0; }
.entry-body p { margin: 0 0 1.5rem; line-height: 1.7; }
.entry-body h1, .entry-body h2, .entry-body h3, .entry-body h4 { line-height: 1.4; }
.entry-body ul, .entry-body ol { margin: 0 0 1.5rem; padding-left: 1.5rem; }
.entry-body li { margin-bottom: 0.4rem; }
.entry-body a { color: var(--color-link); }
.entry-body img { max-width: 100%; height: auto; }

.alignfull { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); width: 100vw; max-width: 100vw; }
.alignwide { margin-left: calc(50% - 45vw); margin-right: calc(50% - 45vw); width: 90vw; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; text-align: center; }
.alignleft { float: left; margin-right: 1rem; }
.alignright { float: right; margin-left: 1rem; }
.has-text-align-center { text-align: center; }
.has-text-align-left { text-align: left; }
.has-text-align-right { text-align: right; }

.has-vk-color-primary-color { color: var(--wp-color-primary); }
.has-vk-color-primary-vivid-color { color: var(--wp-color-primary-vivid); }
.has-vk-color-primary-dark-color { color: var(--wp-color-primary-dark); }
.has-vk-color-primary-background-color { background-color: var(--wp-color-primary); }
.has-luminous-vivid-orange-color { color: #ff6900; }
.has-luminous-vivid-orange-background-color { background-color: #ff6900; }
.has-vk-color-primary-vivid-background-color { background-color: var(--wp-color-primary-vivid); }
.has-luminous-vivid-amber-background-color { background-color: #fcb900; }
.has-white-color { color: #fff; }
.has-cyan-bluish-gray-color { color: #abb8c3; }
.has-cyan-bluish-gray-background-color { background-color: #abb8c3; }
.has-white-background-color { background-color: #fff; }
.has-black-background-color { background-color: #000; }
.has-text-color { }
.has-background { }
html :where([style*="border-color"]) { border-style: solid; }
html :where([style*="border-top-color"]) { border-top-style: solid; }
html :where([style*="border-right-color"]) { border-right-style: solid; }
html :where([style*="border-bottom-color"]) { border-bottom-style: solid; }
html :where([style*="border-left-color"]) { border-left-style: solid; }
html :where([style*="border-width"]) { border-style: solid; }
html :where([style*="border-top-width"]) { border-top-style: solid; }
html :where([style*="border-right-width"]) { border-right-style: solid; }
html :where([style*="border-bottom-width"]) { border-bottom-style: solid; }
html :where([style*="border-left-width"]) { border-left-style: solid; }
figure.wp-block-image.is-style-vk-image-border img { border: 1px solid #e5e5e5; }
.wp-block-image.is-style-vk-image-border figure.alignleft img, .wp-block-image.is-style-vk-image-border figure.alignright img, .wp-block-image.is-style-vk-image-border figure.aligncenter img { border: 1px solid #e5e5e5; }
/* :root :where() で強さ 0,1,0。style の padding が勝つ */
:root :where(p.has-background) { padding: 1.25em 2.375em; }

/* 本番と同じ px 固定。基準の文字サイズ（991px 以下は 14px）が変わっても縮まない。
 * !important は使わず、:root で詳細度を上げてページ側の指定に勝つ */
:root .has-large-font-size { font-size: 36px; }
:root .has-huge-font-size { font-size: 36px; }
:root .has-medium-font-size { font-size: 20px; }
:root .has-small-font-size { font-size: 13px; }
:root .has-regular-font-size { font-size: 16px; }

.wp-block-group { box-sizing: border-box; }
.wp-block-group.is-layout-flow > * + * { margin-top: 0; }
.wp-block-group.is-layout-constrained { max-width: var(--wp-content-max); margin-left: auto; margin-right: auto; padding-left: 15px; padding-right: 15px; }
.wp-block-group.alignfull.is-layout-constrained { max-width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); padding-left: 0; padding-right: 0; }
.wp-block-group.alignfull.is-layout-constrained > * { max-width: var(--wp-content-max); margin-left: auto; margin-right: auto; padding-left: 15px; padding-right: 15px; }

.wp-block-group.is-layout-flex,
.wp-block-buttons.is-layout-flex {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  /* 1.5rem だと幅 768px で実績のロゴが 3 つ並ばない */
  gap: 0.75rem;
}
.wp-block-group p:last-child,
.wp-block-group ul:last-child,
.wp-block-group ol:last-child,
.wp-block-group dl:last-child,
.wp-block-group table:last-child,
.wp-block-group .wp-block-columns:last-child { margin-bottom: 0; }
/* 折り返さない横並びの中の空の段組みに、:where(.wp-block-columns) の下の余白が付かないようにする */
.is-layout-flex > :is(*, div) { margin: 0; }
.is-content-justification-center { justify-content: center; }
.is-content-justification-left { justify-content: flex-start; }
.is-content-justification-right { justify-content: flex-end; }
.is-content-justification-space-between { justify-content: space-between; }
/* .wp-block-group.is-layout-flex (0,2,0) に負けないよう、同じ強さ以上にする */
.is-nowrap,
.wp-block-group.is-layout-flex.is-nowrap,
.wp-block-buttons.is-layout-flex.is-nowrap { flex-wrap: nowrap; }
/* 子を縮められるようにしないと 414px 以下ではみ出す */
.wp-block-group.is-layout-flex.is-nowrap { gap: 24px; }
.wp-block-group.is-layout-flex.is-nowrap > * { min-width: 0; }
/* gap が 24px だと .vk_post の min-width: 280px で 991px 前後に 2 列が 1 列に落ちるので、この箱の中だけ外す */
@media (min-width: 768px) { .wp-block-group.is-layout-flex.is-nowrap .vk_post { min-width: 0; } }

.wp-block-columns { display: flex; flex-wrap: wrap; gap: 24px; align-items: flex-start; }
/* :where() で強さ 0。個別の margin-bottom に負けるのが前提 */
:where(.wp-block-columns) { margin-bottom: 1.75em; }
/* flow・constrained の子の下の余白は 0（見出しも含む。本番の WP と同じ）。
 * 段組みの下や、グループ・カバーの最後の要素の下に余白が余分に残るのを防ぐ */
.entry-body :is(.is-layout-flow, .is-layout-constrained) > :last-child,
.entry-body :is(.is-layout-flow, .is-layout-constrained) > .wp-block-columns { margin-bottom: 0; }
.wp-block-columns.are-vertically-aligned-center { align-items: center; }
.wp-block-column { flex: 1 1 0; min-width: 0; word-break: break-word; }
.wp-block-columns.is-layout-flex > .wp-block-column { flex: 1; }
.wp-block-column.is-layout-flow > * + * { margin-top: 0; }
.wp-block-columns.vk-cols--reverse { flex-direction: row-reverse; }
/* 782px 以上は折り返さない（本番は !important の nowrap）。インラインの flex-basis の合計が 100% を超えて、全幅で縦積みになるのを防ぐ。
 * 切り替えは 768px（本番は 782px。サイトのほかの指定に合わせた） */
@media (min-width: 768px) {
  .wp-block-columns { flex-wrap: nowrap; }
}
@media (max-width: 767px) {
  .wp-block-columns { flex-direction: column; }
  .wp-block-columns.vk-cols--reverse { flex-direction: column; }
}

.wp-block-columns > .wp-block-column { flex-basis: 0; }

.wp-block-group.is-layout-flex > .wp-block-image { margin: 0; }
.wp-block-group.is-layout-flex > .wp-block-image.aligncenter { margin-inline: auto; }

/* .entry-body 配下に限るのは、ヘッダー・フッターの見出しを巻き込まないため。:where() で強さ 0,0,1（本番と同じ）にして、
 * .vk_post .vk_post_title などの個別の指定が本番と同じ順で勝つようにする */
:where(.entry-body) :is(h1, h2, h3, h4, h5, h6) { margin: 0 0 1em; }
:where(.entry-body) :is(p, ul, ol, dl, table, figure) + :is(h1, h2, h3, h4, h5, h6) { margin-top: 2em; }
:where(.entry-body) figure + :is(h4, h5, h6) { margin-top: 1em; }
/* .entry-body > * + * { margin-top: 0 } に負けないよう強さを上げる。flow・constrained の中では下の規則で 0 に戻す */
.entry-body > :is(p, ul, ol, dl, table, figure) + :is(h1, h2, h3, h4, h5, h6) { margin-top: 2em; }
.entry-body > figure + :is(h4, h5, h6) { margin-top: 1em; }
:is(.is-layout-flow, .is-layout-constrained) > :is(p, ul, ol, dl, table, figure) + :is(h1, h2, h3, h4, h5, h6) { margin-top: 0; }
.wp-block-heading { font-weight: 700; }
.vk_heading { display: block; }
.is-style-vk-heading-plain .vk_heading_title { font-weight: 700; }
:is(.is-style-vk-heading-plain, .is-style-vk-heading-double_black, .is-style-vk-heading-double_bottomborder_black,
  .is-style-vk-heading-solid_black, .is-style-vk-heading-solid_bottomborder_black, .is-style-vk-heading-dotted_bottomborder_black):not(.has-text-align-center, .has-text-align-right) { text-align: left; }
:is(.is-style-vk-heading-double_black, .is-style-vk-heading-double_bottomborder_black, .is-style-vk-heading-solid_black,
  .is-style-vk-heading-solid_bottomborder_black, .is-style-vk-heading-dotted_bottomborder_black) { position: relative; padding: 0.6em 0 0.5em; }
.is-style-vk-heading-solid_black { border-top: 1px solid #333; border-bottom: 1px solid #333; }
.is-style-vk-heading-double_black { border-top: 3px double #333; border-bottom: 3px double #333; }
.is-style-vk-heading-solid_bottomborder_black { border-bottom: 1px solid #333; }
.is-style-vk-heading-double_bottomborder_black { border-bottom: 3px double #333; }
.is-style-vk-heading-dotted_bottomborder_black { border-bottom: 1px dotted #111; }
.is-style-vk-heading-plain { position: relative; display: block; }
.is-style-vk-heading-plain[class*="has-background"] { padding: 0.6em 0.7em 0.5em; }
.is-style-vk-heading-both_ends { display: flex; align-items: center; text-align: center; position: relative; }
/* 疑似要素は border-box。content-box だと height: 100% に上下の線が足されて、括弧が 2px はみ出す */
.is-style-vk-heading-both_ends::before,
.is-style-vk-heading-both_ends::after { content: ''; flex-grow: 1; box-sizing: border-box; border-bottom: 1px solid #333; }
.is-style-vk-heading-both_ends::before { margin-right: 1em; }
.is-style-vk-heading-both_ends::after { margin-left: 1em; }
.is-style-vk-heading-brackets_black { position: relative; padding: 0.7em; text-align: center; }
.is-style-vk-heading-brackets_black::before,
.is-style-vk-heading-brackets_black::after { content: ''; position: absolute; top: 0; width: 12px; height: 100%; display: inline-block; box-sizing: border-box; border-top: 1px solid #333; border-bottom: 1px solid #333; }
.is-style-vk-heading-brackets_black::before { left: 0; border-left: 1px solid #333; }
.is-style-vk-heading-brackets_black::after { right: 0; border-right: 1px solid #333; }
/* 飾りのある見出しの下は 1.2em。WP のレイアウトの直下だけ 1em（本番もそうなる） */
:is(.is-style-vk-heading-solid_bottomborder_black, .is-style-vk-heading-double_bottomborder_black,
  .is-style-vk-heading-solid_black, .is-style-vk-heading-double_black, .is-style-vk-heading-dotted_bottomborder_black,
  .is-style-vk-heading-both_ends, .is-style-vk-heading-brackets_black, .is-style-vk-heading-background_fill_lightgray) { margin-bottom: 1.2em; }
body :is(.is-layout-flow, .is-layout-constrained) > :is(h1, h2, h3, h4, h5, h6),
[class*="wp-container-"] > :is(h1, h2, h3, h4, h5, h6) { margin-bottom: 1em; }
/* 色は指定しない。ここで指定すると、同じ強さの has-*-color に勝ってしまう */
.vk_heading_subtext { display: block; margin-top: 0.4rem; }
/* .entry-body p (0,1,1) の margin-bottom に負けないよう強さを合わせる */
.entry-body p.vk_heading_subtext { margin-bottom: 0; }
.vk-heading-subtext-en { }
.vk-heading-key-visual { font-size: clamp(1.8rem, 5vw, 3.2rem); line-height: 1.3; }
.vk-headding-lp { font-size: 1.8rem; margin-bottom: 2rem; }

.vk_spacer { display: block; }
.vk_spacer-type-margin-top:not(.vk_spacer-type-height) { display: block; height: 0; }
.vk_spacer-type-height { display: block; }
.vk_block-margin-0--height { height: 0; }
.vk_block-margin-xs--height { height: var(--wp-margin-xs); }
.vk_block-margin-sm--height { height: var(--wp-margin-sm); }
.vk_block-margin-md--height { height: var(--wp-margin-md); }
.vk_block-margin-lg--height { height: var(--wp-margin-lg); }
.vk_block-margin-xl--height { height: var(--wp-margin-xl); }
.vk_block-margin-0--margin-top { margin-top: 0 !important; }
.vk_block-margin-xs--margin-top { margin-top: var(--wp-margin-xs) !important; }
.vk_block-margin-sm--margin-top { margin-top: var(--wp-margin-sm) !important; }
.vk_block-margin-md--margin-top { margin-top: var(--wp-margin-md) !important; }
.vk_block-margin-lg--margin-top { margin-top: var(--wp-margin-lg) !important; }
.vk_block-margin-xl--margin-top { margin-top: var(--wp-margin-xl) !important; }
.vk_block-margin-0--margin-bottom { margin-bottom: 0 !important; }
.vk_block-margin-xs--margin-bottom { margin-bottom: var(--wp-margin-xs) !important; }
.vk_block-margin-sm--margin-bottom { margin-bottom: var(--wp-margin-sm) !important; }
.vk_block-margin-md--margin-bottom { margin-bottom: var(--wp-margin-md) !important; }
.vk_block-margin-lg--margin-bottom { margin-bottom: var(--wp-margin-lg) !important; }
.vk_block-margin-xl--margin-bottom { margin-bottom: var(--wp-margin-xl) !important; }
.vk_spacer-display-pc { display: block; }
.vk_spacer-display-tablet { display: none; }
.vk_spacer-display-mobile { display: none; }
@media (max-width: 991px) {
  .vk_spacer-display-pc { display: none; }
  .vk_spacer-display-tablet { display: block; }
}
@media (max-width: 575px) {
  .vk_spacer-display-tablet { display: none; }
  .vk_spacer-display-mobile { display: block; }
}

.wp-block-cover {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 300px;
  padding: 1em;
  overflow: hidden;
  color: #fff;
}
.wp-block-cover.is-light { color: #000; }
.wp-block-cover__background {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.wp-block-cover__background.has-background-dim { opacity: 0.5; background-color: #000; }
.wp-block-cover__background.has-luminous-vivid-orange-background-color { background-color: #ff6900; }
.wp-block-cover__background.has-vk-color-primary-background-color { background-color: var(--wp-color-primary); }
.wp-block-cover__background.has-vk-color-primary-vivid-background-color { background-color: var(--wp-color-primary-vivid); }
.wp-block-cover__background.has-luminous-vivid-amber-background-color { background-color: #fcb900; }
.wp-block-cover__background.has-white-background-color { background-color: #fff; }
.wp-block-cover__background.has-black-background-color { background-color: #000; }
.wp-block-cover__background.has-background-dim.has-background-dim-0 { opacity: 0; }
.wp-block-cover__background.has-background-dim.has-background-dim-10 { opacity: 0.1; }
.wp-block-cover__background.has-background-dim.has-background-dim-20 { opacity: 0.2; }
.wp-block-cover__background.has-background-dim.has-background-dim-30 { opacity: 0.3; }
.wp-block-cover__background.has-background-dim.has-background-dim-40 { opacity: 0.4; }
.wp-block-cover__background.has-background-dim.has-background-dim-50 { opacity: 0.5; }
.wp-block-cover__background.has-background-dim.has-background-dim-60 { opacity: 0.6; }
.wp-block-cover__background.has-background-dim.has-background-dim-70 { opacity: 0.7; }
.wp-block-cover__background.has-background-dim.has-background-dim-80 { opacity: 0.8; }
.wp-block-cover__background.has-background-dim.has-background-dim-90 { opacity: 0.9; }
.wp-block-cover__background.has-background-dim.has-background-dim-100 { opacity: 1; }
.wp-block-cover__image-background {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.wp-block-cover__inner-container {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: var(--wp-content-max);
  margin: 0 auto;
}
/* 画像つきの帯は、暗い膜を画像の上に重ねる。無いと画像が膜を隠し、白い文字が読みにくい。膜の直後が中身の帯は対象外 */
body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background + .wp-block-cover__inner-container)) .wp-block-cover__background,
body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background + .wp-block-cover__inner-container)) .wp-block-cover__inner-container { z-index: 1; }
body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background + .wp-block-cover__inner-container)) .wp-block-cover__image-background { z-index: 0; }

.vk_button {
  box-sizing: border-box;
  margin-top: 0;
  margin-bottom: 5px;
  text-align: center;
}
.vk_button.vk_button-align-left { text-align: left; }
.vk_button.vk_button-align-center { text-align: center; }
.vk_button.vk_button-align-right { text-align: right; }
.vk_button.vk_button-align-block { display: block; }
.vk_button.vk_button-align-block .vk_button_link { width: 100%; }
.vk_button.vk_button-align-wide {
  display: block;
  margin-left: auto;
  margin-right: auto;
  max-width: 70%;
}
.vk_button.vk_button-align-wide .vk_button_btn,
.vk_button.vk_button-align-wide .btn { display: block; }
a.vk_button_link { text-decoration: none; }
.vk_button .vk_button_link {
  min-width: 100px;
  min-height: 25px;
  box-sizing: border-box;
}
:where(.wp-block-button__link) { border-radius: 9999px; box-shadow: none; padding: calc(0.667em + 2px) calc(1.333em + 2px); text-decoration: none; }
.wp-block-button__link {
  align-content: center;
  border-width: 0;
  box-sizing: border-box;
  cursor: pointer;
  display: inline-block;
  font-family: inherit;
  font-size: 1rem;
  font-style: inherit;
  font-weight: inherit;
  height: 100%;
  letter-spacing: inherit;
  line-height: normal; /* .entry-body の 1.7 を引き継がない */
  text-align: center;
  text-decoration: none;
  text-transform: inherit;
  transition: 0.1s ease-in;
  word-break: break-word;
}
.wp-block-button__link:hover { text-decoration: none; filter: brightness(1.1) saturate(2); }
/* .entry-body a (0,1,1) に負けないよう .entry-body を付ける */
.entry-body .wp-block-button .wp-block-button__link { background-color: var(--wp-color-primary); }
.entry-body .wp-block-button__link,
.entry-body .wp-block-button__link:hover { color: #fff; }
/* 本番は !important。.entry-body a:hover にも負けないようにする */
.wp-block-button__link.has-white-color { color: #fff !important; }
.wp-block-button__link.has-luminous-vivid-orange-color { color: #ff6900 !important; }
.wp-block-button__link.has-white-background-color { background-color: #fff !important; }
.wp-block-button__link.has-vk-color-primary-vivid-background-color { background-color: var(--wp-color-primary-vivid) !important; }
.wp-block-buttons.has-custom-font-size .wp-block-button__link { font-size: inherit; }
.vk_button_link.btn {
  display: inline-block;
  font-weight: 400;
  text-align: center;
  vertical-align: middle;
  white-space: inherit;
  user-select: text;
  border: 1px solid transparent;
  padding: 0.8rem 1.5rem;
  font-size: 16px;
  line-height: 1.5;
  border-radius: 100px;
  box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.12);
  transition: box-shadow 0.3s ease 0s, transform 0.3s ease 0s, opacity 0.3s ease 0s;
}
@media (prefers-reduced-motion: reduce) {
  .vk_button_link.btn { transition: none; }
  .vk_button_link.btn:hover { transform: none; }
}
.vk_button_link.btn:hover { box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.12); transform: translateY(0.1875em); }
.vk_button-color-custom a:hover { opacity: 0.8; box-shadow: 0 0 0 0.2rem rgba(171, 184, 195, 0.25); }
.vk_button .vk_button_link.btn.btn-lg { font-size: 20px; }
.vk_button .vk_button_link.btn.btn-sm { font-size: 14px; }
.vk_button_link.btn-block { display: block; width: 100%; }
@media (max-width: 575px) {
  .vk_button .vk_button_link-type-text { font-size: 14px; }
}
.vk_button .vk_button_link-type-text { box-shadow: none; padding: 0; transition: 0.3s; line-height: normal; }
.vk_button:has(.vk_button_link-type-text) { line-height: normal; }
.vk_button .vk_button_link-type-text:hover { background: none; box-shadow: none; letter-spacing: 0.15rem; }
@media (prefers-reduced-motion: reduce) {
  .vk_button .vk_button_link-type-text { transition: none; }
}
/* CSS リセットの a { color } が勝ってボタン文字が黒くなることがあるため、.btn との組み合わせで色を明示する */
.vk_button_link.btn { background-color: var(--wp-color-primary); color: #fff; }
.vk_button_link.has-vk-color-primary-background-color { background-color: var(--wp-color-primary); color: #fff; }
.vk_button_link.has-luminous-vivid-orange-background-color,
.vk_button_link.has-background.has-luminous-vivid-orange-background-color { background-color: #ff6900; color: #fff; }
.vk_button_link.has-vk-color-primary-vivid-background-color { background-color: var(--wp-color-primary-vivid); color: #fff; }
.vk_button_link.has-white-background-color { background-color: #fff; }
.vk_button_link.has-vk-color-primary-color,
.vk_button_link.has-text-color.has-vk-color-primary-color { color: var(--wp-color-primary); }
.vk_button_link.has-luminous-vivid-orange-color { color: #ff6900; }
.vk_button_link.has-white-color { color: #fff; }
.vk_button_link.has-black-color { color: #000; }
.vk_button_link_caption {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.vk_button .vk_button_link_before { margin-right: 0.7rem; }
.vk_button .vk_button_link_after { margin-left: 0.7rem; }
.vk_button .vk_button_link_caption .vk_button_link_after { margin-right: 0; }
.vk_button .vk_button_link_subCaption {
  display: block;
  overflow: hidden;
  margin: 0;
  font-size: 80%;
}
.vk-button-min-width .vk_button_link.btn { min-width: 18rem; }
@media (max-width: 575px) {
  .vk-button-min-width .vk_button_link.btn { min-width: 252px; }
}

/* フォントは使わず、同じ形の SVG (public/images/icons/fa-*.svg) を CSS mask で <i class="fas fa-..."> に当てる。
 * 相対 URL は CSS ファイル基準で解決されるので、staging の base パスでも動く */
/*! Icons: Font Awesome Free 6.1.0 by @fontawesome (https://fontawesome.com)
 *   License: CC BY 4.0 (https://fontawesome.com/license/free) */
i.fa-arrow-circle-right,
i.fa-arrow-circle-down,
i.fa-chevron-right,
i.fa-user,
i.fa-envelope,
i.fa-print,
i.fa-map-location-dot,
i.fa-upload,
i.fa-window-maximize,
i.fa-building,
i.fa-turn-up,
i.fa-link,
i.fa-calendar {
  display: inline-block;
  flex-shrink: 0;
  height: 1em;
  line-height: 1;
  font-style: normal;
  vertical-align: -0.125em;
  background-color: currentColor;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}
/* 強制カラー（Windows のハイコントラストなど）では背景色が消えるため、文字色で塗る */
@media (forced-colors: active) {
  i.fa-arrow-circle-right,
  i.fa-arrow-circle-down,
  i.fa-chevron-right,
  i.fa-user,
  i.fa-envelope,
  i.fa-print,
  i.fa-map-location-dot,
  i.fa-upload,
  i.fa-window-maximize,
  i.fa-building,
  i.fa-turn-up,
  i.fa-link,
  i.fa-calendar {
    forced-color-adjust: none;
    background-color: CanvasText;
  }
}
i.fa-arrow-circle-right { width: 1em; -webkit-mask-image: url(../images/icons/fa-arrow-circle-right.svg); mask-image: url(../images/icons/fa-arrow-circle-right.svg); }
i.fa-arrow-circle-down { width: 1em; -webkit-mask-image: url(../images/icons/fa-arrow-circle-down.svg); mask-image: url(../images/icons/fa-arrow-circle-down.svg); }
i.fa-chevron-right { width: 0.625em; -webkit-mask-image: url(../images/icons/fa-chevron-right.svg); mask-image: url(../images/icons/fa-chevron-right.svg); }
i.fa-user { width: 0.875em; -webkit-mask-image: url(../images/icons/fa-user.svg); mask-image: url(../images/icons/fa-user.svg); }
i.fa-envelope { width: 1em; -webkit-mask-image: url(../images/icons/fa-envelope.svg); mask-image: url(../images/icons/fa-envelope.svg); }
i.fa-print { width: 1em; -webkit-mask-image: url(../images/icons/fa-print.svg); mask-image: url(../images/icons/fa-print.svg); }
i.fa-map-location-dot { width: 1.125em; -webkit-mask-image: url(../images/icons/fa-map-location-dot.svg); mask-image: url(../images/icons/fa-map-location-dot.svg); }
i.fa-upload { width: 1em; -webkit-mask-image: url(../images/icons/fa-upload.svg); mask-image: url(../images/icons/fa-upload.svg); }
i.fa-window-maximize { width: 1em; -webkit-mask-image: url(../images/icons/fa-window-maximize.svg); mask-image: url(../images/icons/fa-window-maximize.svg); }
/* fa-building は本番で使っている regular（線）の形。fa-solid fa-building を使うときは別の SVG が要る */
i.fa-building { width: 0.75em; -webkit-mask-image: url(../images/icons/fa-building.svg); mask-image: url(../images/icons/fa-building.svg); }
i.fa-turn-up { width: 0.75em; -webkit-mask-image: url(../images/icons/fa-turn-up.svg); mask-image: url(../images/icons/fa-turn-up.svg); }
i.fa-calendar { width: 0.875em; -webkit-mask-image: url(../images/icons/fa-calendar.svg); mask-image: url(../images/icons/fa-calendar.svg); }
i.fa-link { width: 1.25em; -webkit-mask-image: url(../images/icons/fa-link.svg); mask-image: url(../images/icons/fa-link.svg); }

@media (max-width: 991px) {
  .vk_icon { margin-bottom: 1.5em; }
}
.wp-block-vk-blocks-icon .vk_icon_frame { line-height: 1; }
.wp-block-vk-blocks-icon .vk_icon_border { display: inline-block; position: relative; width: 80px; height: 80px; border-radius: 50%; }
.wp-block-vk-blocks-icon .vk_icon_link { display: inline-block; }
.wp-block-vk-blocks-icon .vk_icon_link:hover { opacity: 0.85; }
.wp-block-vk-blocks-icon .vk_icon_font { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-size: 36px; }
.wp-block-vk-blocks-icon .is-style-outline .vk_icon_border { background-color: transparent; border: 1px solid; }
.wp-block-vk-blocks-icon .is-style-outline .vk_icon_border:not(.has-text-color) { color: #337ab7; }
.wp-block-vk-blocks-icon .is-style-noline .vk_icon_border:not(.has-text-color) { color: #337ab7; }
.wp-block-vk-blocks-icon .vk_icon_frame.text-center { text-align: center; }
.wp-block-vk-blocks-icon .vk_icon_align_center { text-align: center; }
.wp-block-vk-blocks-icon .vk_icon_align_right { text-align: right; }

:where(figure) { margin: 0 0 1em; }
figure.wp-block-image { margin: 0 0 1em; }
figure.wp-block-image img { display: block; max-width: 100%; height: auto; border-radius: 2px; }
figure.wp-block-image.aligncenter { display: flex; justify-content: center; }
figure.wp-block-image.size-full img {
  /* size-full でも width を上書きしない。ロゴ列の <img width height> を元のサイズのまま使うため、max-width: 100% / height: auto に留める */
  max-width: 100%;
  height: auto;
}
figure.wp-block-image.is-resized img { width: auto; }

.wp-block-vk-blocks-outer.vk_outer { position: relative; }
.vk_outer-paddingVertical-use { padding-top: 1.5em; padding-bottom: 1.5em; }
@media (min-width: 576px) { .vk_outer-paddingVertical-use { padding-top: 2em; padding-bottom: 2em; } }
@media (min-width: 768px) { .vk_outer-paddingVertical-use { padding-top: 2.5em; padding-bottom: 2.5em; } }
@media (min-width: 992px) { .vk_outer-paddingVertical-use { padding-top: 3em; padding-bottom: 3em; } }
.vk_outer.alignfull { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); width: 100vw; }
.vk_outer-width-full { width: 100%; }
.vk_outer-paddingLR-none > div > .vk_outer_container { padding-left: 0; padding-right: 0; }
.vk_outer.vk_outer-paddingVertical-none,
.wp-block-vk-blocks-outer.vk_outer.vk_outer-paddingVertical-none { padding-top: 0; padding-bottom: 0; }
.vk_outer_container {
  position: relative;
  z-index: 1;
  max-width: var(--wp-content-max);
  margin: 0 auto;
  padding: 0 15px;
  box-sizing: border-box;
}
.vk_outer-background-area {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.vk_outer-background-area.has-background-dim { opacity: 0.5; }
.wp-block-vk-blocks-outer.vk_outer .vk_outer-background-area.has-background-dim-0 { opacity: 0; }
.wp-block-vk-blocks-outer.vk_outer .vk_outer-background-area.has-background-dim-1 { opacity: 0.1; }
.wp-block-vk-blocks-outer.vk_outer .vk_outer-background-area.has-background-dim-2 { opacity: 0.2; }
.wp-block-vk-blocks-outer.vk_outer .vk_outer-background-area.has-background-dim-3 { opacity: 0.3; }
.wp-block-vk-blocks-outer.vk_outer .vk_outer-background-area.has-background-dim-4 { opacity: 0.4; }
.wp-block-vk-blocks-outer.vk_outer .vk_outer-background-area.has-background-dim-5 { opacity: 0.5; }
.wp-block-vk-blocks-outer.vk_outer .vk_outer-background-area.has-background-dim-6 { opacity: 0.6; }
.wp-block-vk-blocks-outer.vk_outer .vk_outer-background-area.has-background-dim-7 { opacity: 0.7; }
.wp-block-vk-blocks-outer.vk_outer .vk_outer-background-area.has-background-dim-8 { opacity: 0.8; }
.wp-block-vk-blocks-outer.vk_outer .vk_outer-background-area.has-background-dim-9 { opacity: 0.9; }
.wp-block-vk-blocks-outer.vk_outer .vk_outer-background-area.has-background-dim-10 { opacity: 1; }

.vk_gridColumn_item_inner {
  line-height: 1.7;
  border-radius: 5px;
}
.vk_gridColumn_item_inner.has-background-color {
  border-radius: 5px;
}
.vk_gridColumn_item_inner p {
  line-height: 1.7;
  margin: 0 0 1.5rem;
}
.vk_gridColumn_item_inner .vk_heading_title {
  margin: 0 0 1.25rem;
}
.wp-block-vk-blocks-grid-column-item .vk_gridColumn_item_inner {
  height: 100%;
}

/* Bootstrap の grid を最小限で再現する。.vk_gridColumn は padding 0 で、row の -15px マージンで両サイドにはみ出す */
.vk_gridColumn {
  padding-left: 0 !important;
  padding-right: 0 !important;
  max-width: 1110px;
  margin-left: auto;
  margin-right: auto;
}
.vk_gridColumn .row {
  display: flex;
  flex-wrap: wrap;
  margin-left: -15px;
  margin-right: -15px;
}
.vk_gridColumn_item {
  padding-left: 15px;
  padding-right: 15px;
  box-sizing: border-box;
  width: 100%;
}
.col-1 { width: 8.3333%; } .col-2 { width: 16.6667%; } .col-3 { width: 25%; }
.col-4 { width: 33.3333%; } .col-5 { width: 41.6667%; } .col-6 { width: 50%; }
.col-7 { width: 58.3333%; } .col-8 { width: 66.6667%; } .col-9 { width: 75%; }
.col-10 { width: 83.3333%; } .col-11 { width: 91.6667%; } .col-12 { width: 100%; }
@media (min-width: 576px) {
  .col-sm-1 { width: 8.3333%; } .col-sm-2 { width: 16.6667%; } .col-sm-3 { width: 25%; }
  .col-sm-4 { width: 33.3333%; } .col-sm-5 { width: 41.6667%; } .col-sm-6 { width: 50%; }
  .col-sm-7 { width: 58.3333%; } .col-sm-8 { width: 66.6667%; } .col-sm-9 { width: 75%; }
  .col-sm-10 { width: 83.3333%; } .col-sm-11 { width: 91.6667%; } .col-sm-12 { width: 100%; }
}
@media (min-width: 768px) {
  .col-md-1 { width: 8.3333%; } .col-md-2 { width: 16.6667%; } .col-md-3 { width: 25%; }
  .col-md-4 { width: 33.3333%; } .col-md-5 { width: 41.6667%; } .col-md-6 { width: 50%; }
  .col-md-7 { width: 58.3333%; } .col-md-8 { width: 66.6667%; } .col-md-9 { width: 75%; }
  .col-md-10 { width: 83.3333%; } .col-md-11 { width: 91.6667%; } .col-md-12 { width: 100%; }
}
@media (min-width: 992px) {
  .col-lg-1 { width: 8.3333%; } .col-lg-2 { width: 16.6667%; } .col-lg-3 { width: 25%; }
  .col-lg-4 { width: 33.3333%; } .col-lg-5 { width: 41.6667%; } .col-lg-6 { width: 50%; }
  .col-lg-7 { width: 58.3333%; } .col-lg-8 { width: 66.6667%; } .col-lg-9 { width: 75%; }
  .col-lg-10 { width: 83.3333%; } .col-lg-11 { width: 91.6667%; } .col-lg-12 { width: 100%; }
}
@media (min-width: 1200px) {
  .col-xl-1 { width: 8.3333%; } .col-xl-2 { width: 16.6667%; } .col-xl-3 { width: 25%; }
  .col-xl-4 { width: 33.3333%; } .col-xl-5 { width: 41.6667%; } .col-xl-6 { width: 50%; }
  .col-xl-7 { width: 58.3333%; } .col-xl-8 { width: 66.6667%; } .col-xl-9 { width: 75%; }
  .col-xl-10 { width: 83.3333%; } .col-xl-11 { width: 91.6667%; } .col-xl-12 { width: 100%; }
}
@media (min-width: 1400px) {
  .col-xxl-1 { width: 8.3333%; } .col-xxl-2 { width: 16.6667%; } .col-xxl-3 { width: 25%; }
  .col-xxl-4 { width: 33.3333%; } .col-xxl-5 { width: 41.6667%; } .col-xxl-6 { width: 50%; }
  .col-xxl-7 { width: 58.3333%; } .col-xxl-8 { width: 66.6667%; } .col-xxl-9 { width: 75%; }
  .col-xxl-10 { width: 83.3333%; } .col-xxl-11 { width: 91.6667%; } .col-xxl-12 { width: 100%; }
}

.vk_gridcolcard {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
  margin: 1.5rem 0;
}
@media (max-width: 781px) { .vk_gridcolcard { grid-template-columns: 1fr; } }
.vk_gridcolcard_item {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--wp-color-border);
  border-radius: 8px;
  overflow: hidden;
}
.vk_gridcolcard_item_container { display: flex; flex-direction: column; height: 100%; }
.vk_gridcolcard_item_body { flex: 1; }
.vk_gridcolcard_item_body_inner { padding: 0; }
.vk_gridcolcard_item_footer { padding: 0 1.25rem 1.25rem; }

/* 親に grid を当てると WP 側の per-item ::before height トリックと衝突するため、flex と Bootstrap 風の margin: 0 -15px で並べる */
.vk_posts {
  display: flex;
  flex-wrap: wrap;
  margin: 0 -15px;
  padding: 0;
  clear: both;
}
.vk_posts > .vk_post {
  flex: 0 0 calc(50% - 30px);
  max-width: calc(50% - 30px);
  margin: 0 15px 30px;
  min-width: 280px;
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--wp-color-border);
  border-radius: 8px;
  overflow: hidden;
  color: inherit;
  text-decoration: none;
  transition: box-shadow 0.15s;
}
.vk_posts .vk_post.postListText {
  border: none;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 0;
  background: transparent;
  padding: 1rem 0 0.9rem;
  line-height: normal;
  margin: 0 15px;
  flex: 0 0 calc(100% - 30px);
  max-width: calc(100% - 30px);
  min-width: 0;
  display: block;
  overflow: hidden;
}
.vk_posts .postListText_date {
  float: left;
  display: block;
  font-size: 0.9rem;
  color: var(--wp-color-text-light);
  min-width: 115px;
  margin-right: 1em;
  white-space: nowrap;
}
.vk_posts .postListText_title {
  display: block;
  overflow: hidden;
  font-size: 1rem;
  line-height: 1.6;
  margin: 0;
  padding: 0.2rem 0 0;
  clear: both;
}
@media (min-width: 992px) {
  .vk_posts .postListText_title { padding-top: 0; clear: none; }
}
.vk_posts .postListText_title a { color: var(--wp-color-text); text-decoration: none; }
.vk_posts .postListText_title a:hover { color: var(--color-link-hover); text-decoration: none; }
/* 「新着」マークの span は public/js/new-mark.js が足す */
.vk_post_title_new { margin-left: 0.4em; font-size: 0.8em; white-space: nowrap; color: red; }
/* タイトルは h5 なので、見出しの rem 指定に負けないよう px で指定する。本番の 1200px 以上 21px は 992px 以上にした */
.vk_post .vk_post_title { font-size: 14px; margin-bottom: 0; }
.vk_post .vk_post_excerpt { font-size: 12px; }
.vk_post .vk_post_btn { font-size: 12px; }
@media (min-width: 576px) {
  .entry-body > .vk_posts > .vk_post-col-sm-12 .vk_post_title { font-size: 16px; }
  .entry-body > .vk_posts > .vk_post-col-sm-12 .vk_post_excerpt { font-size: 14px; }
}
@media (min-width: 768px) {
  .entry-body > .vk_posts > .vk_post-col-md-12 .vk_post_title { font-size: 18px; }
  .entry-body > .vk_posts > .vk_post-col-md-12 .vk_post_excerpt { font-size: 14px; }
}
@media (min-width: 992px) {
  .entry-body > .vk_posts > .vk_post-col-lg-12 .vk_post_title { font-size: 21px; }
  .entry-body > .vk_posts > .vk_post-col-lg-12 .vk_post_excerpt { font-size: 14px; }
}
/* 上の .vk_posts > .vk_post（枠線の 2 列カード）に勝つよう強さを上げる */
.vk_posts > .vk_post.vk_card_item {
  position: relative;
  flex: 0 1 auto;
  min-width: 0;
  max-width: 100%;
  width: calc(100% - 30px);
  margin: 0 15px 30px;
  padding: 0;
  box-sizing: border-box;
  border: 0;
  border-radius: 5px;
  background: #fff;
  box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.12);
  transition: 0.3s;
}
.vk_posts > .vk_post.vk_card_item:hover {
  box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.12);
  transform: translateY(0.1875em);
}
@media (prefers-reduced-motion: reduce) {
  .vk_posts > .vk_post.vk_card_item { transition: none; }
  .vk_posts > .vk_post.vk_card_item:hover { transform: none; }
}
.vk_posts > .vk_post.vk_card_item.vk_post-col-xs-2 { width: calc(16.66% - 30px); }
.vk_posts > .vk_post.vk_card_item.vk_post-col-xs-3 { width: calc(25% - 30px); }
.vk_posts > .vk_post.vk_card_item.vk_post-col-xs-4 { width: calc(33.3% - 30px); }
.vk_posts > .vk_post.vk_card_item.vk_post-col-xs-6 { width: calc(50% - 30px); }
.vk_posts > .vk_post.vk_card_item.vk_post-col-xs-12 { width: calc(100% - 30px); }
@media (min-width: 576px) {
  .vk_posts > .vk_post.vk_card_item.vk_post-col-sm-2 { width: calc(16.66% - 30px); }
  .vk_posts > .vk_post.vk_card_item.vk_post-col-sm-3 { width: calc(25% - 30px); }
  .vk_posts > .vk_post.vk_card_item.vk_post-col-sm-4 { width: calc(33.3% - 30px); }
  .vk_posts > .vk_post.vk_card_item.vk_post-col-sm-6 { width: calc(50% - 30px); }
  .vk_posts > .vk_post.vk_card_item.vk_post-col-sm-12 { width: calc(100% - 30px); }
}
@media (min-width: 768px) {
  .vk_posts > .vk_post.vk_card_item.vk_post-col-md-2 { width: calc(16.66% - 30px); }
  .vk_posts > .vk_post.vk_card_item.vk_post-col-md-3 { width: calc(25% - 30px); }
  .vk_posts > .vk_post.vk_card_item.vk_post-col-md-4 { width: calc(33.3% - 30px); }
  .vk_posts > .vk_post.vk_card_item.vk_post-col-md-6 { width: calc(50% - 30px); }
  .vk_posts > .vk_post.vk_card_item.vk_post-col-md-12 { width: calc(100% - 30px); }
}
@media (min-width: 992px) {
  .vk_posts > .vk_post.vk_card_item.vk_post-col-lg-2 { width: calc(16.66% - 30px); }
  .vk_posts > .vk_post.vk_card_item.vk_post-col-lg-3 { width: calc(25% - 30px); }
  .vk_posts > .vk_post.vk_card_item.vk_post-col-lg-4 { width: calc(33.3% - 30px); }
  .vk_posts > .vk_post.vk_card_item.vk_post-col-lg-6 { width: calc(50% - 30px); }
  .vk_posts > .vk_post.vk_card_item.vk_post-col-lg-12 { width: calc(100% - 30px); }
  /* /maps/ のカード (lg-6 xl-3) だけ 992px 以上で xl の値にする。lg-6 の後に置く */
  .vk_posts > .vk_post.vk_card_item.vk_post-col-xl-3 { width: calc(25% - 30px); }
}
@media (max-width: 575px) {
  .vk_posts > .vk_post.vk_card_item.vk_post-col-xs-12 { margin-bottom: 20px; }
}
@media (min-width: 576px) and (max-width: 767px) {
  .vk_posts > .vk_post.vk_card_item.vk_post-col-sm-12 { margin-bottom: 20px; }
}
@media (min-width: 768px) and (max-width: 991px) {
  .vk_posts > .vk_post.vk_card_item.vk_post-col-md-12 { margin-bottom: 20px; }
}
@media (min-width: 992px) {
  .vk_posts > .vk_post.vk_card_item.vk_post-col-lg-12 { margin-bottom: 20px; }
}
.vk_card_item .vk_post_imgOuter {
  position: relative;
  background-size: cover;
  background-position: center 50%;
  border-bottom: 1px solid var(--wp-color-border);
}
.vk_card_item .vk_post_imgOuter::before { content: ""; display: block; padding-top: 62%; }
.vk_card_item .vk_post_imgOuter a { height: 100%; }
.vk_card_item .vk_post_imgOuter > a::after { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0); transition-duration: 0.3s; }
.vk_card_item .vk_post_imgOuter .card-img-overlay { position: absolute; inset: 0; padding: 1.25rem; border-radius: calc(-1px + 0.25rem); }
/* 下の 65px は .vk_post-btn-display のボタンの置き場所 */
.vk_card_item .vk_post_body { flex: 1 1 auto; min-height: 1px; padding: 1.25rem; }
.vk_card_item.vk_post-btn-display .vk_post_body { position: relative; height: 100%; padding-bottom: 65px; }
.vk_card_item .vk_post_title { margin: 0; font-size: 16px; }
.vk_card_item .vk_post_title a, .vk_posts > .vk_post.vk_card_item a { color: inherit; text-decoration: none; }
.vk_card_item .vk_post_excerpt { margin: 0.8rem 0; font-size: 14px; line-height: 1.6; opacity: 0.8; }
body .container :is(.is-layout-flow, .is-layout-constrained) p:where(.vk_post_excerpt):where(:not(:last-child)) { margin-bottom: 1.5rem; }
.vk_card_item.vk_post-btn-display .card-text:nth-last-child(2) { margin-bottom: 0; }
.vk_card_item.vk_post-btn-display .vk_post_btnOuter { position: absolute; bottom: 1.25rem; width: calc(100% - 2.5rem); }
.vk_posts > .vk_post.vk_card_item a.vk_post_btn {
  display: inline-block;
  padding: 0.375rem 1rem;
  border: 1px solid var(--wp-color-primary-dark);
  border-radius: 100px;
  background-color: var(--wp-color-primary);
  color: #fff;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
  text-align: center;
  text-decoration: none;
  vertical-align: middle;
  white-space: nowrap;
  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
.vk_posts > .vk_post.vk_card_item.card-yaizu a.vk_post_btn { display: none; } /* 本番でもこのカードのボタンは非表示 */
.vk_posts > .vk_post.vk_card_item a.vk_post_btn:hover { background-color: var(--wp-color-primary-vivid); border-color: var(--wp-color-primary); }
@media (prefers-reduced-motion: reduce) {
  .vk_posts > .vk_post.vk_card_item a.vk_post_btn { transition: none; }
}

/* 上の .vk_posts > .vk_post に勝つよう .vk_posts-layout-card で絞って上書きする。横長 (layout-card-horizontal) と .vk_card_item には影響しない */
.vk_posts-layout-card > .vk_post.card {
  position: relative;
  flex: 0 1 auto;
  min-width: 0;
  max-width: 100%;
  width: calc(100% - 30px);
  margin: 0 15px 30px;
  padding: 0;
  box-sizing: border-box;
  border: 0;
  border-radius: 5px;
  box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.12);
  transition: 0.3s;
}
.vk_posts-layout-card > .vk_post.card:hover {
  box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.12);
  transform: translateY(0.1875em);
}
@media (prefers-reduced-motion: reduce) {
  .vk_posts-layout-card > .vk_post.card { transition: none; }
  .vk_posts-layout-card > .vk_post.card:hover { transform: none; }
}
.vk_posts-layout-card > .vk_post.card.vk_post-col-xs-2 { width: calc(16.66% - 30px); }
.vk_posts-layout-card > .vk_post.card.vk_post-col-xs-3 { width: calc(25% - 30px); }
.vk_posts-layout-card > .vk_post.card.vk_post-col-xs-4 { width: calc(33.3% - 30px); }
.vk_posts-layout-card > .vk_post.card.vk_post-col-xs-6 { width: calc(50% - 30px); }
.vk_posts-layout-card > .vk_post.card.vk_post-col-xs-12 { width: calc(100% - 30px); }
@media (max-width: 575px) {
  .vk_posts-layout-card > .vk_post.card.vk_post-col-xs-12 { margin-bottom: 20px; }
}
@media (min-width: 576px) {
  .vk_posts-layout-card > .vk_post.card.vk_post-col-sm-2 { width: calc(16.66% - 30px); }
  .vk_posts-layout-card > .vk_post.card.vk_post-col-sm-3 { width: calc(25% - 30px); }
  .vk_posts-layout-card > .vk_post.card.vk_post-col-sm-4 { width: calc(33.3% - 30px); }
  .vk_posts-layout-card > .vk_post.card.vk_post-col-sm-6 { width: calc(50% - 30px); }
  .vk_posts-layout-card > .vk_post.card.vk_post-col-sm-12 { width: calc(100% - 30px); }
}
@media (min-width: 576px) and (max-width: 767px) {
  .vk_posts-layout-card > .vk_post.card.vk_post-col-sm-12 { margin-bottom: 20px; }
}
@media (min-width: 768px) {
  .vk_posts-layout-card > .vk_post.card.vk_post-col-md-2 { width: calc(16.66% - 30px); }
  .vk_posts-layout-card > .vk_post.card.vk_post-col-md-3 { width: calc(25% - 30px); }
  .vk_posts-layout-card > .vk_post.card.vk_post-col-md-4 { width: calc(33.3% - 30px); }
  .vk_posts-layout-card > .vk_post.card.vk_post-col-md-6 { width: calc(50% - 30px); }
  .vk_posts-layout-card > .vk_post.card.vk_post-col-md-12 { width: calc(100% - 30px); }
}
@media (min-width: 768px) and (max-width: 991px) {
  .vk_posts-layout-card > .vk_post.card.vk_post-col-md-12 { margin-bottom: 20px; }
}
@media (min-width: 992px) {
  .vk_posts-layout-card > .vk_post.card.vk_post-col-lg-2 { width: calc(16.66% - 30px); }
  .vk_posts-layout-card > .vk_post.card.vk_post-col-lg-3 { width: calc(25% - 30px); }
  .vk_posts-layout-card > .vk_post.card.vk_post-col-lg-4 { width: calc(33.3% - 30px); }
  .vk_posts-layout-card > .vk_post.card.vk_post-col-lg-6 { width: calc(50% - 30px); }
  .vk_posts-layout-card > .vk_post.card.vk_post-col-lg-12 { width: calc(100% - 30px); margin-bottom: 20px; }
}
/* <img> は画面外に逃がし、背景画像で見せる */
.vk_posts-layout-card .vk_post_imgOuter {
  position: relative;
  min-height: 0;
  line-height: normal;
  background-size: cover;
  background-position: center 50%;
  border-bottom: 1px solid var(--wp-color-border);
}
.vk_posts-layout-card .vk_post_imgOuter::before { content: ""; display: block; padding-top: 62%; }
.vk_posts-layout-card .vk_post_imgOuter .card-img-overlay { position: absolute; inset: 0; padding: 1.25rem; border-radius: 3px; }
.vk_posts-layout-card .vk_post_imgOuter_img { position: absolute; left: -9999px; }
.vk_posts-layout-card .vk_post_imgOuter_singleTermLabel {
  position: absolute;
  top: 5px;
  right: 5px;
  z-index: 100;
  display: block;
  padding: 0.1em 1em;
  border-radius: 100px;
  font-size: 10px;
  line-height: normal;
}
.vk_posts-layout-card .vk_post_body { box-sizing: border-box; min-height: 1px; padding: 1.25rem; }
.vk_posts-layout-card .vk_post_title a { color: inherit; text-decoration: none; }
.vk_posts-layout-card .vk_post_date { margin-top: 0.4rem; font-size: 11px; line-height: normal; color: var(--wp-color-text-light); }

/* 上の .vk_posts > .vk_post（縦並び）に勝つよう .card-horizontal で絞って上書きする */
.vk_posts .vk_post.card-horizontal {
  position: relative;
  flex: 0 1 auto;
  min-width: 0;
  max-width: 100%;
  width: calc(100% - 30px);
  margin: 0 15px 15px;
  padding: 0;
  box-sizing: border-box;
  border: 0;
  border-radius: 5px;
  box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.12);
  transition: 0.3s;
}
.vk_posts .vk_post.card-horizontal:hover {
  box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.12);
  transform: translateY(0.1875em);
}
@media (prefers-reduced-motion: reduce) {
  .vk_posts .vk_post.card-horizontal { transition: none; }
  .vk_posts .vk_post.card-horizontal:hover { transform: none; }
}
.vk_posts .vk_post.card-horizontal.vk_post-col-xs-12 { width: calc(100% - 30px); }
@media (min-width: 576px) {
  .vk_posts .vk_post.card-horizontal.vk_post-col-sm-6 { width: calc(50% - 30px); margin-bottom: 30px; }
  .vk_posts .vk_post.card-horizontal.vk_post-col-sm-12 { width: calc(100% - 30px); margin-bottom: 15px; }
}
@media (min-width: 768px) {
  .vk_posts .vk_post.card-horizontal.vk_post-col-md-6 { width: calc(50% - 30px); margin-bottom: 30px; }
  .vk_posts .vk_post.card-horizontal.vk_post-col-md-12 { width: calc(100% - 30px); margin-bottom: 15px; }
}
@media (min-width: 992px) {
  .vk_posts .vk_post.card-horizontal.vk_post-col-lg-6 { width: calc(50% - 30px); margin-bottom: 30px; }
  .vk_posts .vk_post.card-horizontal.vk_post-col-lg-12 { width: calc(100% - 30px); margin-bottom: 15px; }
}
.card-horizontal .row {
  display: flex;
  flex-wrap: wrap;
  margin: 0;
  height: 100%;
}
.card-horizontal .col-5,
.card-horizontal .col-7 {
  position: relative;
  box-sizing: border-box;
  padding: 0;
  min-height: 1px;
}
.card-horizontal .col-5 { flex: 0 0 41.6667%; max-width: 41.6667%; }
.card-horizontal .col-7 { flex: 0 0 58.3333%; max-width: 58.3333%; }
/* <img> は画面外に逃がし（高さだけ残る）、背景画像で切り抜く */
.card-horizontal .vk_post_imgOuter {
  position: relative;
  height: 100%;
  line-height: normal;
  background-size: cover;
  background-position: center 50%;
  border: 0;
  border-right: 1px solid var(--wp-color-border);
}
.card-horizontal .vk_post_imgOuter .card-img-overlay { position: absolute; inset: 0; }
/* 見えない <img> が列の幅いっぱいに伸び、カードの最小の高さを決める */
.card-horizontal .vk_post_imgOuter_img { display: inline; position: relative; left: -9999px; width: 100%; height: auto; }
.card-horizontal .card-body {
  position: relative;
  box-sizing: border-box;
  height: 100%;
  padding: 1.25rem 1.25rem 1.5em;
}
.card-horizontal.vk_post-btn-display .card-body { padding-bottom: 65px; }
.card-horizontal .vk_post_title { margin: 0; }
.card-horizontal .vk_post_date { margin-top: 0.4rem; font-size: 11px; line-height: normal; color: var(--wp-color-text-light); }
.card-horizontal.vk_post-btn-display .card-text:nth-last-child(2) { margin-bottom: 0; }
.card-horizontal .vk_post_title a,
.card-horizontal .vk_post_excerpt { color: inherit; text-decoration: none; }
.card-horizontal .vk_post_excerpt { margin: 0.8rem 0; line-height: 1.6; opacity: 0.8; }
.card-horizontal .vk_post_btnOuter {
  position: absolute;
  right: 1.25rem;
  bottom: 1.25rem;
  width: calc(100% - 2.5rem);
  margin: 0;
  text-align: right;
}
.card-horizontal .vk_post_btn {
  display: inline-block;
  padding: 0.25rem 1rem;
  border: 1px solid var(--wp-color-primary-dark);
  border-radius: 100px;
  line-height: 1.5;
  background-color: var(--wp-color-primary);
  color: #fff;
  text-decoration: none;
  white-space: nowrap;
}
/* calc の 16px は本番の --vk-size-text の値。移行版に VK の変数はない */
.vk_step,
body .container .is-layout-flow > .vk_step { margin: 2em auto; }
/* /smartmap/ の重なるカード（constrained のグループ）の最初の子がステップなので、上の余白を 0 にする */
.is-layout-constrained > .vk_step:first-child { margin-top: 0; }
.vk_step .vk_step_item { position: relative; padding: 0 0 0 calc(16px * 4.5); margin: 0 auto; }
.vk_step .vk_step_item h3:first-of-type,
.vk_step .vk_step_item h4:first-of-type { padding-top: calc(16px * 0.5); margin-top: 0; }
.vk_step .vk_step_item_content::after { border: 1px solid transparent; content: ""; display: block; clear: both; }
.vk_step .vk_step_item_content > :last-child { margin-bottom: var(--wp-margin-md); }
.vk_step .vk_step_item_content h1,
.vk_step .vk_step_item_content h2,
.vk_step .vk_step_item_content h3,
.vk_step .vk_step_item_content h4,
.vk_step .vk_step_item_content h5,
.vk_step .vk_step_item_content h6 { margin-left: unset; margin-right: unset; }
.vk_step .vk_step_item_content > p:first-child { margin-bottom: 0.3em; line-height: 1; color: #666; }
.vk_step .vk_step_item .vk_step_item_caption { margin-bottom: 0.5em; color: #666; }
.vk_step .vk_step_item .vk_step_item_dot {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  box-sizing: border-box;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  padding: 9px 0;
  text-align: center;
  /* Roboto は入れていないので、サイトの文字 (Noto Sans JP) に落とす。無いと OS 既定の細い文字になる */
  font-family: Roboto, "Noto Sans JP Variable", "Noto Sans JP", sans-serif;
  font-size: 1.2rem;
}
.vk_step .vk_step_item .vk_step_item_dot_num { line-height: calc(16px * 1.2); }
.vk_step .vk_step_item .vk_step_item_dot.vk_step_item_style-default { color: #fff; }
.vk_step .vk_step_item .vk_step_item_dot.vk_step_item_style-default:not(.has-background) { background-color: #337ab7; }
.vk_step .vk_step_item .vk_step_item_dot.vk_step_item_style-outlined { border: 2px solid; }
.vk_step .vk_step_item .vk_step_item_dot.vk_step_item_style-outlined:not(.has-text-color) { color: #337ab7; }
.vk_step .vk_step_item .vk_step_item_dot_caption { font-size: calc(16px * 0.5); line-height: calc(16px * 0.875); }
.vk_step_item_lineStyle-default::before { content: ""; width: 3px; background: rgba(0, 0, 0, 0.15); display: block; position: absolute; top: 54px; left: 23px; bottom: 4px; }

ul.is-style-vk-check-mark,
ol.is-style-vk-check-mark { padding-inline-start: 2em; }
ul.is-style-vk-check-mark li,
ol.is-style-vk-check-mark li {
  list-style: none;
  position: relative;
  margin: calc(16px * 0.8) 0;
  line-height: calc(16px * 1.65);
}
ul.is-style-vk-check-mark li::before,
ol.is-style-vk-check-mark li::before {
  content: "";
  position: absolute;
  top: 0;
  left: -1.5em;
  width: 0.875em;
  height: calc(16px * 1.65);
  background-color: currentColor;
  -webkit-mask: url(../images/icons/fa-check.svg) no-repeat center / 100% 1em;
  mask: url(../images/icons/fa-check.svg) no-repeat center / 100% 1em;
}
@media (forced-colors: active) {
  ul.is-style-vk-check-mark li::before,
  ol.is-style-vk-check-mark li::before { forced-color-adjust: none; background-color: CanvasText; }
}

.vk-block-top-over-lg { margin: -14rem auto 0; z-index: 1; position: relative; }
.vk-block-top-over-md { margin: -7rem auto 0; z-index: 1; position: relative; }
.vk-block-top-over-sm { margin: -3.5rem auto 0; z-index: 1; position: relative; }
.vk-size-radius { border-radius: 5px; }

html :where(.has-border-color) { border-style: solid; }
/* 外枠ブロックは has-border-color が付いても線を引かない（本番と同じ） */
.wp-block-vk-blocks-outer.vk_outer.has-border-color { border-style: none; }
.has-cyan-bluish-gray-border-color { border-color: #abb8c3 !important; }
.has-luminous-vivid-amber-border-color { border-color: #fcb900 !important; }
.has-luminous-vivid-orange-border-color { border-color: #ff6900 !important; }
/* .wp-block-cover.aligncenter の中の文字は中央揃えにしない（上の .aligncenter は画像向け） */
.wp-block-cover.aligncenter { text-align: start; }

figure.wp-block-embed { margin: 0 0 1em; }
.wp-block-embed { overflow-wrap: break-word; }
.wp-block-embed :where(figcaption) { margin-bottom: 1em; margin-top: 0.5em; }
.wp-block-embed iframe { max-width: 100%; }
.wp-block-embed__wrapper { position: relative; }
.blog-card { border: 1px solid rgba(0, 0, 0, 0.12); border-radius: 5px; display: flex; flex-flow: wrap-reverse; }
.blog-card-image-outer, .blog-card-body-outer { padding: 1.5rem; }
@media (min-width: 576px) {
  .blog-card-image-outer { width: 33.3333%; }
}
.blog-card-body-outer { padding-top: 0; }
@media (min-width: 576px) {
  .blog-card-body-outer { padding: 1.5rem; width: 66.6667%; }
}
.blog-card-title { font-size: 1.125rem; }
.blog-card-title a { color: #333; }
.blog-card-image-frame { border-radius: 5px; border: 1px solid rgba(0, 0, 0, 0.12); display: block; overflow: hidden; }
.blog-card-image-src { display: block; }
.blog-card-site-title { line-height: normal; }
.blog-card-site-title a { display: flex; align-items: center; }
.blog-card-site-title a img { margin-right: 10px; }

.wp-block-table { overflow-x: auto; }
.wp-block-table table { border-collapse: collapse; width: 100%; }
.wp-block-table .has-fixed-layout { table-layout: fixed; width: 100%; }
.wp-block-table .has-fixed-layout td, .wp-block-table .has-fixed-layout th { word-break: break-word; }
.wp-block-table thead { border-bottom: 3px solid; }
.wp-block-table td, .wp-block-table th { border: 1px solid; padding: 0.5em; }
.wp-block-table.is-style-stripes { background-color: initial; border-collapse: inherit; border-spacing: 0; }
.wp-block-table.is-style-stripes tbody tr:nth-child(2n+1) { background-color: #f0f0f0; }
.wp-block-table.is-style-stripes td, .wp-block-table.is-style-stripes th { border-color: transparent; }
.wp-block-table.is-style-stripes { border-bottom: 1px solid #f0f0f0; }
.wp-block-table table[style*="border-style"] td, .wp-block-table table[style*="border-style"] th,
.wp-block-table table[style*="border-style"] tr, .wp-block-table table[style*="border-style"] > * { border-style: inherit; }
.wp-block-table table[style*="border-width"] td, .wp-block-table table[style*="border-width"] th,
.wp-block-table table[style*="border-width"] tr, .wp-block-table table[style*="border-width"] > * { border-style: inherit; border-width: inherit; }
.wp-block-table { margin: 0 0 1.5rem; border-color: rgba(0, 0, 0, 0.06); line-height: normal; }
.wp-block-table:where(:not([class*="font-size"])) { font-size: 0.875rem; }
.wp-block-table :is(table, thead, tbody, tfoot, th, td) { border-color: inherit; }
.wp-block-table thead th.has-text-align-right { text-align: center; }
/* 表の中のリストは .entry-body ul・li より強さを上げ、本番の既定値に合わせる */
.entry-body .wp-block-table :is(ul, ol) { margin-top: 1em; padding-left: 1.5em; }
.entry-body .wp-block-table li { margin: 0.5em 0; }
.wp-block-table thead th { font-weight: bold; }
.wp-block-table.is-style-vk-table-border-top-bottom table, .wp-block-table.is-style-vk-table-border-top-bottom th, .wp-block-table.is-style-vk-table-border-top-bottom td { border-left: none; border-right: none; }
.wp-block-table.is-style-vk-table-border table:where(:not(.has-border-color)) th, .wp-block-table.is-style-vk-table-border table:where(:not(.has-border-color)) td { border: 1px solid rgba(0, 0, 0, 0.06); }
.wp-block-table.is-style-vk-table-border-stripes tbody tr:nth-child(2n+1) { background-color: #f0f0f0; }
.wp-block-table.is-style-vk-table-border-stripes table:where(:not(.has-border-color)) th, .wp-block-table.is-style-vk-table-border-stripes table:where(:not(.has-border-color)) td { border: 1px solid rgba(0, 0, 0, 0.06); }

.wp-block-spacer { display: block; height: 1rem; }

/* hr の margin は本番も指定なし（ブラウザ既定）。2rem を付けると style のないものに余分な余白が付き、0 にすると既定の .5em まで消える */
.wp-block-separator { border: 0; border-top: 2px solid rgba(0, 0, 0, 0.06); margin-top: 0.5em; margin-bottom: 0.5em; }
:is(.is-layout-flow, .is-layout-constrained) > .wp-block-separator { margin-top: 0; margin-bottom: 0; }

.vk-bg-offset { position: relative; padding: 0; overflow: hidden; }
.wp-block-group.vk-bg-offset > .vk-bg-offset-bg,
.vk-bg-offset > .vk-bg-offset-bg {
  position: absolute;
  inset: 0;
  display: block;
  min-height: 0;
  padding: 0;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  z-index: 0;
}
.vk-bg-offset > *:not(.vk-bg-offset-bg) { position: relative; z-index: 1; }

.vk_inline-font-size { font-size: inherit; }

.veu_qaItem { margin: 1.25rem 0; padding: 1rem 1.5rem; border: 1px solid var(--wp-color-border); border-radius: 6px; }
.veu_qaItem dt { font-weight: 700; margin-bottom: 0.5rem; }
.veu_qaItem dd { margin: 0; color: var(--wp-color-text-light); }

.wp-block-latest-posts__list,
ul.wp-block-latest-posts { list-style: none; padding: 0; margin: 0; }
.wp-block-latest-posts__list > li,
ul.wp-block-latest-posts > li {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 1.5rem;
  align-items: baseline;
  padding: 0.9rem 0;
  border-bottom: 1px solid var(--wp-color-border);
  font-size: 0.95rem;
}
.wp-block-latest-posts__post-date,
.wp-block-latest-posts__list li time { color: var(--wp-color-text-light); font-size: 0.85rem; }
.wp-block-latest-posts__list a { color: inherit; text-decoration: none; }
.wp-block-latest-posts__list a:hover { text-decoration: underline; }

/* .entry-body の 1.7・#333 を戻す。geonicdb.astro の <style> にも同じ規則がある。リンクの色は #86 で見直す */
.feedzy-rss { margin-bottom: 30px !important; line-height: normal; color: #000; }
.feedzy-rss ul { margin: 0 !important; padding: 0; display: flex; flex-wrap: wrap; clear: both; list-style: none; }
.feedzy-rss ul li { display: inline-block; width: 100%; margin: 0 !important; padding: 10px 0 !important; }
.feedzy-rss .rss_item { margin: 0 15px !important; }
.feedzy-rss ul li a { margin-top: 10px; text-decoration: none; color: var(--color-link); }
.feedzy-rss ul li a:hover { color: var(--color-link-hover); }
.feedzy-rss .rss_item .rss_content small { margin-top: 5px; font-size: 0.7em !important; }
.feedzy-rss .rss_item .rss_image { display: none; } /* 本番でも画像は出ない */

/* Markdown の記事の blockquote には広げないよう、WP の引用ブロック (.wp-block-quote) だけに当てる */
.wp-block-quote { margin: 0; padding: 1em 1.5em; border-left: 1px solid var(--wp-color-primary); background-color: rgba(0, 0, 0, 0.02); }

.vk_custom_css_1 { margin-bottom: 20px; }
.vk_custom_css_1 a, .vk_custom_css_1 a:hover { color: #e85a19; }
.vk_custom_css_1 a::before {
  content: '';
  display: inline-block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 6px 0 6px 10px;
  border-color: transparent transparent transparent currentColor;
  margin-right: 8px;
  vertical-align: middle;
}

.vk_heading_title { margin-top: 0; }
.vk-heading-subtext-border .vk_heading_title { font-size: calc(28px + 4 * (100vw - 576px) / 624); }
.vk-heading-subtext-border .vk_heading_subtext { letter-spacing: 0.05rem; }

/* 枠は 992px 以上で 1140px（1200px の切り替えは入れない）。--wp-content-inner は枠の左右 15px を除いた中身の幅 */
:root { --wp-content-inner: calc(100vw - 30px); }
@media (min-width: 576px) { :root { --wp-content-max: 540px; --wp-content-inner: 510px; } }
@media (min-width: 768px) { :root { --wp-content-max: 720px; --wp-content-inner: 690px; } }
@media (min-width: 992px) { :root { --wp-content-max: 1140px; --wp-content-inner: 1110px; } }

/* 992px 以上で、本番の 1200px 以上の値（3.5rem / 4rem）を使う。上の .site-body { padding: 0 } を上書きする */
.site-body { padding: 2rem 0; }
@media (min-width: 768px) { .site-body { padding: 2.5rem 0; } }
@media (min-width: 992px) { .site-body { padding: 3.5rem 0 4rem; } }
.site-body.site-body--padding-vertical--off { padding-top: 0; padding-bottom: 0; }
@media (max-width: 991px) { .main-section { margin-bottom: 2rem; } }
.main-section.main-section--margin-vertical--off { margin-top: 0; margin-bottom: 0; }

/* 上の .alignwide（90vw）を上書きし、枠と画面端の中間まで広げる */
.alignwide { width: calc(100% + (100vw - 100%) / 2); max-width: 100vw; margin-left: calc((100% - 100vw) / 4); margin-right: calc((100% - 100vw) / 4); }

.alignfull div[class*=__inner-container],
.alignwide div[class*=__inner-container],
:is(.alignfull, .alignwide) > :is(div[class*=wp-container-], div[class*=wp-block-], div[class*=vk_], h1, h2, h3, h4, h5, h6):where(:not(.alignfull, .alignwide, .wp-block-cover__background, .wp-block-cover__image-background, .wp-block-column, .vk_outer)) {
  max-width: var(--wp-content-inner);
  margin-left: auto;
  margin-right: auto;
}
/* 全幅のグループの子も同じ。上の指定では箱が 30px 広くなるため、本番と同じ箱に揃える */
.wp-block-group.alignfull.is-layout-constrained > :where(:not(.alignfull, .alignwide)) { max-width: var(--wp-content-inner); padding-left: 0; padding-right: 0; }
/* max-width と margin: auto で、枠が 30px 広がらないようにする（margin: 0 -15px に勝たせる） */
.wp-block-group.is-layout-constrained > .vk_posts { max-width: var(--wp-content-inner); margin-left: auto; margin-right: auto; }
/* 全幅でない constrained のグループは左右の余白を持たない（上の max-width・左右 15px は枠がない前提）。枠線つきのスタイルだけ別 */
.wp-block-group.is-layout-constrained:where(:not(.alignfull)) { max-width: none; padding-left: 0; padding-right: 0; }
.wp-block-group:is(.is-style-vk-group-solid, .is-style-vk-group-solid-roundcorner, .is-style-vk-group-dotted) { padding: 1.8em; }
.wp-block-group.is-style-vk-group-solid { border: solid 3px; }
.wp-block-group.is-style-vk-group-solid-roundcorner { border: solid 3px; border-radius: 8px; }
.wp-block-group.is-style-vk-group-dotted { border: dotted 1px; }
/* 上の .wp-block-separator の margin が .alignfull の広げ方を打ち消すので戻す */
.wp-block-separator.alignfull { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }

/* 本番の .vk_outer_container は幅の上限も左右の余白も持たず、中身の幅は Outer の paddingLR-* で決まる。上の指定を打ち消す */
.vk_outer_container { max-width: none; padding-left: 0; padding-right: 0; }
/* 上の .vk_outer-width-full { width: 100% } を戻す */
.vk_outer-width-full { width: auto; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
.vk_outer-width-full.vk_outer-paddingLR-none { padding-left: calc(50vw - 50%); padding-right: calc(50vw - 50%); }
.vk_outer-width-full.vk_outer-paddingLR-none > div > .vk_outer_container { max-width: var(--wp-content-max); padding-left: 15px; padding-right: 15px; }
/* 上の .wp-block-vk-blocks-outer.vk_outer の padding に勝つよう .vk_outer を重ねる */
.vk_outer.vk_outer-paddingLR-use { padding-left: 1.5em; padding-right: 1.5em; }
@media (min-width: 576px) { .vk_outer.vk_outer-paddingLR-use { padding-left: 2em; padding-right: 2em; } }
@media (min-width: 768px) { .vk_outer.vk_outer-paddingLR-use { padding-left: 2.5em; padding-right: 2.5em; } }
@media (min-width: 992px) { .vk_outer.vk_outer-paddingLR-use { padding-left: 3.5em; padding-right: 3.5em; } }
.vk_outer.vk_outer-paddingLR-zero { padding-left: 0; padding-right: 0; }
.vk_outer_separator svg { display: block; max-height: 100px; position: absolute; left: 0; width: 100%; pointer-events: none; }
.vk_outer_separator-position-upper svg { top: 0; transform: rotate(180deg); }
.vk_outer_separator-position-lower svg { bottom: 0; }

.wp-block-group.vk-bg-offset > .vk-bg-offset-bg,
.vk-bg-offset > .vk-bg-offset-bg {
  width: calc(100vw - var(--vk-width-bg-offset, 0px));
  max-width: calc(100vw - var(--vk-width-bg-offset, 0px));
}
.wp-block-group.vk-bg-offset > .vk-bg-offset-bg.vk-bg-offset-bg--left { margin-left: var(--vk-width-bg-offset, 0px); }
.wp-block-group.vk-bg-offset > .vk-bg-offset-bg.vk-bg-offset-bg--right { margin-right: var(--vk-width-bg-offset, 0px); }
/* constrained の中では、本番は子の左右 margin: auto !important が勝つので、背景はずらさず中央に置かれる */
.wp-block-group.vk-bg-offset.is-layout-constrained > .vk-bg-offset-bg.vk-bg-offset-bg { margin-left: auto; margin-right: auto; }
.vk-bg-offset-bg--5 { --vk-width-bg-offset: 5vw; }
.vk-bg-offset-bg--10 { --vk-width-bg-offset: 10vw; }
.vk-bg-offset-bg--15 { --vk-width-bg-offset: 15vw; }
.vk-bg-offset-bg--20 { --vk-width-bg-offset: 20vw; }
.vk-bg-offset-bg--25 { --vk-width-bg-offset: 25vw; }
.vk-bg-offset-bg--30 { --vk-width-bg-offset: 30vw; }
.vk-bg-offset-bg--35 { --vk-width-bg-offset: 35vw; }
.vk-bg-offset-bg--40 { --vk-width-bg-offset: 40vw; }
.vk-bg-offset-bg--45 { --vk-width-bg-offset: 45vw; }
@media (max-width: 575px) { .vk-bg-offset-bg.vk-bg-offset-bg--no-offset-mobile { --vk-width-bg-offset: 0px; } }
@media (max-width: 991px) { .vk-bg-offset-bg.vk-bg-offset-bg--no-offset-tablet { --vk-width-bg-offset: 0px; } }
.wp-block-group:is(.alignfull, .alignwide).vk-bg-offset > .vk_outer > div > .vk_outer_container,
.wp-block-group:is(.alignfull, .alignwide).vk-bg-offset > div[class*=__inner-container] { max-width: calc(var(--wp-content-inner) - 30px); }
@media (min-width: 992px) {
  .wp-block-group:is(.alignfull, .alignwide).vk-bg-offset > .vk_outer > div > .vk_outer_container,
  .wp-block-group:is(.alignfull, .alignwide).vk-bg-offset > div[class*=__inner-container] { max-width: var(--wp-content-inner); }
}

/* 枠に収めたことで、長い URL やキャプションつきの中央寄せ画像が枠からはみ出す（html の overflow-x: clip で切れる）ので折り返す */
.entry-body { overflow-wrap: break-word; }
figure.wp-block-image.aligncenter:has(> figcaption) { flex-direction: column; align-items: center; }

.vk-heading-subtext-border { position: relative; text-align: center; }
.vk-heading-subtext-border .vk_heading_subtext {
  position: relative;
  display: inline-block;
  margin-top: 0;
  margin-bottom: 0;
  padding-left: 70px;
  padding-right: 70px;
  letter-spacing: 0.05rem;
  white-space: nowrap;
}
.vk-heading-subtext-border .vk_heading_subtext::before,
.vk-heading-subtext-border .vk_heading_subtext::after {
  content: "";
  position: absolute;
  top: 50%;
  bottom: 0;
  display: inline-block;
  width: 50px;
  height: 1px;
  background-color: currentcolor;
}
.vk-heading-subtext-border .vk_heading_subtext::before { left: 0; }
.vk-heading-subtext-border .vk_heading_subtext::after { right: 0; }
.vk-heading-subtext-border.vk-heading-subtext-border-color-wh .vk_heading_subtext::before,
.vk-heading-subtext-border.vk-heading-subtext-border-color-wh .vk_heading_subtext::after { background-color: #fff; }

/* 上の .wp-block-cover（300px・hidden）を上書きする */
.wp-block-cover { min-height: 430px; overflow: clip; }
.wp-block-cover .wp-block-cover__image-background { width: 100%; height: 100%; max-width: none; max-height: none; margin: 0; padding: 0; }

.vk-cols--fit.wp-block-columns { gap: 0; margin-top: 0; margin-bottom: 0; justify-content: space-between; }
.vk-cols--fit.wp-block-columns > .wp-block-column :last-child { margin-bottom: 0; }
.vk-cols--fit.wp-block-columns > .wp-block-column > .wp-block-cover { margin-top: 0; }
.vk-cols--fit.vk-cols--grid > .wp-block-column { flex: 1 1 50%; box-sizing: border-box; }
/* 本番は 600px 未満でだけ縦積み。上の 767px 以下の縦積みを打ち消す */
@media (min-width: 576px) {
  .wp-block-columns.vk-cols--fit { flex-direction: row; flex-wrap: nowrap; }
  .wp-block-columns.vk-cols--fit.vk-cols--reverse { flex-direction: row-reverse; }
  .vk-cols--fit.vk-cols--grid.vk-cols--grid--alignfull > .wp-block-column:nth-child(2) > .wp-block-cover {
    margin-right: calc(100% - 50vw);
    width: 50vw;
  }
  .vk-cols--fit.vk-cols--grid.vk-cols--grid--alignfull.vk-cols--reverse > .wp-block-column { margin-left: 0; margin-right: 0; }
  .vk-cols--fit.vk-cols--grid.vk-cols--grid--alignfull.vk-cols--reverse > .wp-block-column:nth-child(2) > .wp-block-cover {
    margin-left: calc(100% - 50vw);
    margin-right: 0;
  }
}
@media (max-width: 575px) {
  /* 本番の指定どおり !important にする。列に付く左右の余白の指定に勝たせる */
  .vk-cols--fit.wp-block-columns:not(.has-background) > .wp-block-column:not(.has-background) { padding-left: 0 !important; padding-right: 0 !important; }
  .vk-cols--fit.vk-cols--grid.vk-cols--grid--alignfull > .wp-block-column:nth-child(2) > .wp-block-cover {
    width: 100vw;
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
  }
  .vk-cols--fit.vk-cols--grid > .wp-block-column { flex: 0 0 auto; width: 100%; }
}

/* .wp-block-gallery に限って移す。本番の .is-layout-flex の指定はほかの .is-layout-flex に響くため。
 * 3 列は WP コアの 600px のまま（サイトのブレークポイントの例外）。576px にすると 576〜599px で本番と違う列数になる */
.wp-block-gallery { --wp--style--block-gap: 0.5em; }
.wp-block-gallery.wp-block-gallery-1 { --wp--style--unstable-gallery-gap: var(--wp--style--block-gap, 0.5em); gap: var(--wp--style--block-gap, 0.5em); }
.wp-block-gallery.is-layout-flex { display: flex; flex-wrap: wrap; align-items: center; }
figure.wp-block-gallery.has-nested-images { align-items: normal; }
.wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image) { margin: 0; width: calc(50% - var(--wp--style--unstable-gallery-gap, 16px) / 2); }
.wp-block-gallery.has-nested-images figure.wp-block-image { box-sizing: border-box; display: flex; flex-direction: column; flex-grow: 1; justify-content: center; max-width: 100%; position: relative; }
.wp-block-gallery.has-nested-images figure.wp-block-image img { display: block; height: auto; width: auto; max-width: 100% !important; }
.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) { align-self: inherit; }
.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) a,
.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) img { flex: 1 0 0%; height: 100%; object-fit: cover; width: 100%; }
@media (min-width: 600px) {
  .wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image) { width: calc(33.33% - var(--wp--style--unstable-gallery-gap, 16px) * 0.66667); }
}

.veu_contentAddSection { display: block; clear: both; overflow: hidden; margin-top: 2rem; margin-bottom: 2rem; }
.media { display: flex; align-items: flex-start; }
.media-body { flex: 1 1 0%; }
.relatedPosts_title { margin-bottom: 1rem; }
/* .entry-body 全体が 1.7 の簡略化なので、本番で normal の aside の中だけ戻す */
.entry-body .veu_relatedPosts { line-height: normal; }
/* 本番の画像は inline のまま。BaseLayout の img { display: block } を戻す */
.veu_relatedPosts img { display: inline; }
.veu_relatedPosts a { color: var(--wp-color-text); text-decoration: none; }
.veu_relatedPosts .relatedPosts_title { font-size: 1.5rem; }
.veu_relatedPosts > .row { display: flex; margin: 0 -3% 0 0; flex-wrap: wrap; }
.veu_relatedPosts .relatedPosts_item { float: none; margin-right: 2.9%; padding-right: 0; padding-left: 0; width: 47%; border-bottom: solid 1px rgba(0, 0, 0, 0.06); flex: initial; }
.veu_relatedPosts .relatedPosts_item > .media:first-child { border: none; }
.veu_relatedPosts .relatedPosts_item > .media { display: flex; padding: 1em 0 0.8em; margin-top: 0; border: none; }
.veu_relatedPosts .relatedPosts_item > .media .media-body { font-size: 0.75rem; }
.veu_relatedPosts .relatedPosts_item > .media .postList_thumbnail { width: 80px; min-width: 80px; padding-right: 15px; margin-bottom: 0; }
.veu_relatedPosts .relatedPosts_item > .media .postList_thumbnail img { border: 1px solid rgba(0, 0, 0, 0.06); max-width: 100%; height: auto; object-fit: contain; }
.veu_relatedPosts .relatedPosts_item > .media .media-heading { font-size: 0.875rem; margin-bottom: 0.5rem; }
.veu_relatedPosts .relatedPosts_item:nth-child(1) { border-top: solid 1px rgba(0, 0, 0, 0.06); }
.veu_relatedPosts .relatedPosts_item:nth-child(2) { border-top: solid 1px rgba(0, 0, 0, 0.06); }
.veu_relatedPosts .media-date i { margin-right: 0.4em; }
/* 768px の段は本番どおり max-width: 768px（767/768 の切り替えの例外） */
@media (max-width: 768px) {
  .veu_relatedPosts .relatedPosts_item { max-width: 100%; display: block; width: 100%; }
  .veu_relatedPosts .relatedPosts_item:nth-child(2) { border-top: none; }
}
