/* 玄信会東京支部：デザイン調整（Stinger PRO2 の上に重ねる） */
:root {
  --ink: #1d1d1f;
  --muted: #6b6b70;
  --paper: #f5f2ec;
  --card: #ffffff;
  --line: #e4dfd5;
  --accent: #a3201a;      /* 朱 */
  --accent-dark: #7e1814;
  --header: #14161a;
  --radius: 10px;
  --serif: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "Noto Serif JP", "MS PMincho", serif;
}

body {
  background: var(--paper) !important;
  color: var(--ink);
  line-height: 1.95;
  letter-spacing: .02em;
  -webkit-font-smoothing: antialiased;
}

/* 全体の幅：左右に余白をとる */
.wrapper { background: transparent !important; }
.content-w, .headbox {
  max-width: 1120px;
  margin-left: auto;
  margin-right: auto;
}
.content-w { padding: 28px 20px 40px; box-sizing: border-box; }

/* ヘッダー */
header.st-headwide, header { background: var(--card); border-bottom: 1px solid var(--line); }
.header-l, .st-text-logo { text-align: center; width: 100%; }
.sitename, .sitename a { font-family: var(--serif); font-weight: 700; letter-spacing: .12em; color: var(--ink) !important; font-size: 1.7rem; }
.descr, h1.descr { font-size: .78rem; color: var(--muted); letter-spacing: .2em; margin-bottom: 4px; }

/* グローバルメニュー：中央揃え＋「｜」区切り */
.st-menubox, .st-menuwide, nav.smanone { background: var(--header) !important; border: none; max-width: none !important; width: 100% !important; margin: 0 !important; }
.st-menubox nav { max-width: 1120px; margin: 0 auto !important; }
nav.smanone ul, .st-menuwide ul, .st-menubox ul {
  display: flex !important; flex-wrap: wrap; justify-content: center; align-items: center;
  max-width: 1120px; margin: 0 auto !important; padding: 0 !important; list-style: none;
}
nav.smanone ul li, .st-menuwide ul li, .st-menubox ul li {
  float: none !important; width: auto !important; flex: 0 0 auto; border: none !important; background: transparent !important; position: relative;
}
nav.smanone ul li + li::before, .st-menubox ul li + li::before {
  content: "｜"; color: rgba(255,255,255,.35); position: absolute; left: -.5em; top: 50%; transform: translateY(-50%); pointer-events: none;
}
nav.smanone ul li a, .st-menubox ul li a {
  color: #f2efe8 !important; background: transparent !important; padding: 14px 26px !important; font-size: .95rem;
  letter-spacing: .08em; transition: color .2s, background .2s; border: none !important; display: block; text-align: center;
}
nav.smanone ul li a:hover, .st-menubox ul li a:hover { color: #fff !important; background: rgba(255,255,255,.08) !important; }

/* 本文カード */
.content, .contentInner, #st-page, .post, article { }
.contentInner > .post, #st-page.post, .kanren dl, .mainbox {
  background: var(--card);
}
div.contentInner main, main {
  background: var(--card); border-radius: var(--radius); padding: 28px 32px; box-shadow: 0 1px 3px rgba(0,0,0,.06);
}
.entry-title, h1.entry-title { font-family: var(--serif); font-size: 1.7rem; line-height: 1.5; letter-spacing: .06em; padding-bottom: .5em; border-bottom: 2px solid var(--accent); margin: .4em 0 1em; }
.entry-content h2, .post h2 { font-family: var(--serif); font-size: 1.35rem; border: none !important; border-left: 5px solid var(--accent) !important; background: #faf7f1 !important; padding: .6em .9em !important; margin: 2.2em 0 1em; color: var(--ink) !important; }
.entry-content h3, .post h3 { font-family: var(--serif); font-size: 1.15rem; border: none !important; border-bottom: 1px solid var(--line) !important; padding: .3em 0 .4em !important; margin: 1.8em 0 .8em; color: var(--ink) !important; background: transparent !important; }
.entry-content a { color: var(--accent); text-underline-offset: 3px; }
.entry-content a:hover { color: var(--accent-dark); }
.entry-content img { border-radius: 6px; max-width: 100%; height: auto; }
.entry-content table { border-collapse: collapse; width: 100%; }
.entry-content th, .entry-content td { border: 1px solid var(--line); padding: .6em .8em; }
.entry-content th { background: #faf7f1; }
.yellowbox { background: #fbf6e9 !important; border: 1px solid #e9dcb8 !important; border-radius: var(--radius); padding: 1em 1.2em !important; }

/* ボタン */
.st-mybtn, .wp-block-button__link, a.st-btn-default {
  background: var(--accent) !important; border-radius: 999px !important; box-shadow: 0 2px 6px rgba(163,32,26,.25); transition: transform .15s, box-shadow .15s, background .15s;
}
.st-mybtn:hover, .wp-block-button__link:hover { background: var(--accent-dark) !important; transform: translateY(-1px); box-shadow: 0 4px 10px rgba(163,32,26,.3); }

/* 記事一覧 */
.kanren { border: none; }
.kanren dl { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 14px; margin-bottom: 14px; transition: box-shadow .2s, transform .2s; }
.kanren dl:hover { box-shadow: 0 6px 16px rgba(0,0,0,.08); transform: translateY(-2px); }
.kanren dt img { border-radius: 6px; }
.kanren h3 a, .kanren dd h3 a { font-family: var(--serif); color: var(--ink); font-weight: 700; }
.blog_info, .blog_info p { color: var(--muted); font-size: .8rem; }

/* サイドバー */
.side { }
.side .search, .side > div, .side aside > div { background: var(--card); border-radius: var(--radius); box-shadow: 0 1px 3px rgba(0,0,0,.06); padding: 18px; margin-bottom: 18px; }
.st-widgets-title, .side h4.menu_underh2 { font-family: var(--serif); font-size: 1rem; border-bottom: 2px solid var(--accent); padding-bottom: .4em; margin-bottom: .8em; background: transparent !important; color: var(--ink) !important; }

/* フッター：白地に黒字 */
footer, #footer, #footer-in { background: #fff !important; color: var(--ink) !important; }
footer { margin-top: 40px; border-top: 1px solid var(--line); }
#footer { padding: 24px 0 18px; }
footer a, #footer a, .footermenust a, .footer-description a { color: var(--ink) !important; background: transparent !important; text-decoration: none; }
footer a:hover { color: var(--accent) !important; }
.footerlogo, h3.footerlogo { font-family: var(--serif); color: var(--ink) !important; letter-spacing: .1em; text-align: center; }
.footer-description, .footer-description a { color: var(--muted) !important; text-align: center; font-size: .8rem; }
.footermenubox ul, .footermenust { display: flex !important; flex-wrap: wrap; justify-content: center; list-style: none; padding: 0; margin: 0 0 14px; }
.footermenust li { float: none !important; border: none !important; }
.footermenust li + li::before { content: "｜"; color: var(--line); }
.footermenust li { display: inline-flex; align-items: center; }
.footermenust a { padding: 4px 14px !important; font-size: .9rem; }

/* スマホ */
@media (max-width: 768px) {
  .content-w { padding: 14px 10px 30px; }
  main, div.contentInner main { padding: 18px 16px; }
  .sitename, .sitename a { font-size: 1.3rem; }
  nav.smanone ul li a, .st-menubox ul li a { padding: 12px 14px !important; font-size: .85rem; }
}

/* メニューの高さをテーマ固定値から解放 */
nav.smanone, nav.smanone ul, nav.smanone ul li, nav.smanone ul li a, nav.smanone .menu-item-label {
  height: auto !important; min-height: 0 !important; overflow: visible !important; line-height: 1.5 !important;
}
nav.smanone ul li a { padding: 12px 26px !important; }

/* Googleフォーム埋め込み */
.gform-wrap { margin: 1.5em 0; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; background: #fff; }
.gform-wrap iframe { display: block; width: 100%; min-height: 1500px; border: 0; }

/* YouTube埋め込み（16:9） */
.yt-wrap { position: relative; width: 100%; aspect-ratio: 16 / 9; margin: 1.2em 0; border-radius: var(--radius); overflow: hidden; background: #000; }
.yt-wrap iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
