:root {
  /* キャラシート下部の淡いブルー、アイスグレー、くすみピンクから採用 */
  --osg-bg: #ffffff;
  --osg-primary: #789bc3;
  --osg-primary-dark: #557da8;
  --osg-secondary: #d9e6f3;
  --osg-secondary-light: #eef4fa;
  --osg-text: #354a61;
  --osg-accent: #e8cfcf;
  --osg-warm: #f8f3ed;

  /* SWELLで使われる基本色も子テーマから上書き */
  --color_main: var(--osg-primary);
  --color_link: var(--osg-primary-dark);
  --color_text: var(--osg-text);
  --color_bg: var(--osg-bg);
  --color_gray: var(--osg-secondary-light);
  --color_htag: var(--osg-primary-dark);
  --color_main_thin: var(--osg-secondary);
  --color_main_weak: var(--osg-secondary-light);
}

body,
#body_wrap {
  background: var(--osg-bg);
  color: var(--osg-text);
}

a {
  color: var(--osg-primary-dark);
}

a:hover {
  color: var(--osg-primary);
}

::selection {
  background: var(--osg-secondary);
  color: var(--osg-text);
}

.l-header,
.l-header__inner,
.c-gnavWrap {
  background: #fff;
}

.c-gnav > li.-active > a,
.c-gnav > li > a:hover {
  color: var(--osg-primary-dark);
}

.c-btn,
.wp-block-button__link,
input[type="submit"],
button[type="submit"] {
  background: var(--osg-primary);
  border-color: var(--osg-primary);
  color: #fff;
}

.c-btn:hover,
.wp-block-button__link:hover,
input[type="submit"]:hover,
button[type="submit"]:hover {
  background: var(--osg-primary-dark);
  border-color: var(--osg-primary-dark);
  color: #fff;
}

/* 記事見出し：白背景の中でも内容の切り替わりが分かる淡いブルー */
.post_content h2,
.entry-content h2,
.wp-block-post-content h2 {
  margin-top: 2.4em;
  padding: .65em .85em;
  border: 0;
  border-left: 5px solid var(--osg-primary);
  border-radius: 0 8px 8px 0;
  background: var(--osg-secondary-light);
  color: var(--osg-primary-dark);
}

.post_content h3,
.entry-content h3,
.wp-block-post-content h3 {
  margin-top: 2em;
  padding-left: .7em;
  border-left: 3px solid var(--osg-primary);
  color: var(--osg-primary-dark);
}

.post_content h4,
.entry-content h4,
.wp-block-post-content h4 {
  color: var(--osg-text);
}

/* 表：比較・判断表は横スクロールしても読みやすく */
.post_content .wp-block-table,
.entry-content .wp-block-table,
.wp-block-post-content .wp-block-table {
  border: 1px solid var(--osg-secondary);
  border-radius: 8px;
}

.post_content table,
.entry-content table,
.wp-block-post-content table {
  border-color: var(--osg-secondary);
}

.post_content th,
.entry-content th,
.wp-block-post-content th {
  background: var(--osg-secondary-light) !important;
  border-color: var(--osg-secondary) !important;
  color: var(--osg-primary-dark) !important;
}

.post_content td,
.entry-content td,
.wp-block-post-content td {
  border-color: var(--osg-secondary);
}

/* 注意書き・引用：強く警告しすぎず、本文から自然に区切る */
.post_content blockquote,
.entry-content blockquote,
.wp-block-post-content blockquote {
  border-left-color: var(--osg-accent);
  background: var(--osg-warm);
  color: var(--osg-text);
}

/* マーカー：本文を邪魔しない、淡いブルーとくすみピンク */
.swl-marker,
.mark_blue,
.mark_green,
.mark_yellow {
  background: linear-gradient(transparent 58%, var(--osg-secondary) 58%) !important;
  color: inherit !important;
}

.mark_orange,
.mark_pink,
.mark_red {
  background: linear-gradient(transparent 58%, #f3dfe0 58%) !important;
  color: inherit !important;
}

/* キャプション付きボックス・FAQ：背景を白に保ち、枠と見出しをブルーで統一 */
.cap_box,
.swell-block-faq .swell-block-faq__item,
.is-style-note_box,
.is-style-stitch {
  border-color: var(--osg-secondary) !important;
}

.cap_box_ttl,
.swell-block-faq .faq_q {
  background: var(--osg-secondary-light) !important;
  color: var(--osg-primary-dark) !important;
}

.cap_box_content,
.swell-block-faq .faq_a {
  background: #fff !important;
  border-color: var(--osg-secondary) !important;
  color: var(--osg-text);
}

.swell-block-faq .faq_q::before {
  color: var(--osg-primary) !important;
}

.swell-block-faq .faq_a::before {
  color: var(--osg-accent) !important;
}

.osg-decision-card,
.osg-note,
.osg-warning,
.osg-source-list {
  margin: 1.5rem 0;
  padding: 1.1rem 1.2rem;
  border-radius: 12px;
}

.osg-decision-card,
.osg-note {
  border: 1px solid var(--osg-secondary);
  background: var(--osg-bg);
}

.osg-warning {
  border-left: 4px solid var(--osg-accent);
  background: var(--osg-warm);
}

.osg-source-list {
  background: var(--osg-secondary-light);
  font-size: .9rem;
}

.osg-source-list a {
  color: var(--osg-primary-dark);
}

.osg-compare-table {
  display: block;
  max-width: 100%;
  overflow-x: auto;
}

.osg-compare-table th {
  background: var(--osg-secondary);
  white-space: nowrap;
}

@media (max-width: 599px) {
  .osg-decision-card,
  .osg-note,
  .osg-warning,
  .osg-source-list {
    padding: .9rem;
  }
}
