@charset "UTF-8";

/*!
Theme Name: Cocoon Child(税理士法人ソランジ)
Description: 税理士法人ソランジのホームページ用 Cocoon 子テーマ
Theme URI: https://soranji.co.jp/
Author: 制作会社
Template: cocoon-master
Version: 1.4.0
Text Domain: cocoon-child-soranji
*/

/************************************
** 基本の色・文字
** 生成りの紙色を地に、紺と金で落ち着いた印象にする(参考:site/local/参考)
** 見出しは明朝、本文はゴシック。角は丸めず、影は使わない
************************************/
:root {
  --soranji-navy: #14213d;
  --soranji-navy-deep: #0d1730;
  --soranji-paper: #f7f4ee;
  --soranji-white: #ffffff;
  --soranji-gold: #a6802d;
  --soranji-gold-dark: #8e6e27;
  --soranji-ink: #1c1c1a;
  --soranji-ink-soft: #4a4a46;
  --soranji-rule: #dad3c1;
  --soranji-serif: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  --soranji-sans: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
}

body {
  color: var(--soranji-ink);
  background: var(--soranji-paper);
  font-family: var(--soranji-sans);
  line-height: 1.85;
  letter-spacing: 0.02em;
  -webkit-font-smoothing: antialiased;
}
.container, .content, .main, .article, .wrap { background: transparent; }
.header-container, .header, #header-container, .navi, #navi, .navi-in { background: var(--soranji-paper); }

.entry-content h2, .entry-content h3,
.article h2, .article h3,
.entry-title, .soranji-posts-title, .site-name-text {
  font-family: var(--soranji-serif);
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--soranji-navy);
}

/* Cocoonの見出し装飾をやめ、線で区切る控えめな形にする */
.article h2 {
  background: none;
  border: none;
  padding: 0;
  font-size: 1.7em;
  line-height: 1.5;
}
.article h2::after {
  content: "";
  display: block;
  width: 56px;
  height: 2px;
  background: var(--soranji-gold);
  margin-top: 0.7em;
}
.article h3 {
  border: none;
  background: none;
  padding: 0;
  font-size: 1.2em;
}

a { color: var(--soranji-navy); }
a:hover { color: var(--soranji-gold-dark); }

.main { border: none; padding-left: 0; padding-right: 0; }
.content-in { max-width: 1080px; }
.article { padding: 0 16px; }
.page .date-tags { display: none; }
.entry-title { font-size: 1.8em; }
.article .entry-title { padding-left: 0; padding-right: 0; }
/* コラム記事のアイキャッチ写真は横長の帯にする */
.single .eye-catch img { width: 100%; aspect-ratio: 21 / 8; object-fit: cover; filter: saturate(0.85); }

.soranji-lead { font-size: 1.05em; color: var(--soranji-ink-soft); }
.soranji-note { font-size: 13px; color: var(--soranji-ink-soft); }
.soranji-signature { text-align: right; line-height: 1.9; font-family: var(--soranji-serif); color: var(--soranji-navy); }
.entry-content p { color: var(--soranji-ink-soft); }

.entry-content .wp-block-image img { border-radius: 0; }
/* 下層ページ冒頭の写真は横長に切り取って控えめに見せる */
.page:not(.home) .entry-content > .wp-block-image:first-child img { width: 100%; aspect-ratio: 21 / 8; object-fit: cover; filter: saturate(0.85); }

/************************************
** ヘッダー上部の帯
************************************/
.soranji-topbar {
  background: var(--soranji-navy);
  color: #e9e5da;
  font-size: 12px;
  letter-spacing: 0.06em;
}
.soranji-topbar-in {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 6px 16px;
}
.soranji-topbar-contact { display: flex; align-items: center; gap: 16px; }
.soranji-topbar-badge { color: #d9c08a; }
.soranji-topbar-button {
  color: #fff !important;
  text-decoration: none;
  border-bottom: 1px solid #d9c08a;
  padding-bottom: 1px;
}
.soranji-topbar-button:hover { color: #d9c08a !important; }

/* ヘッダー・グローバルナビ */
.header-container { border-bottom: 1px solid var(--soranji-rule); box-shadow: none; }
.site-name-text { font-size: 1.3em; color: var(--soranji-navy); }
.tagline { color: var(--soranji-ink-soft); }

/* ロゴの組み(マーク|社名/英字)。ヘッダーとフッターで共通 */
.soranji-brand { display: inline-flex; align-items: center; gap: 14px; vertical-align: middle; }
.soranji-brand-mark { width: auto; height: 46px; }
.soranji-brand-text { display: flex; flex-direction: column; padding-left: 14px; border-left: 1px solid var(--soranji-navy); line-height: 1.25; text-align: left; }
.soranji-brand-name { font-family: var(--soranji-serif); font-size: 22px; font-weight: 700; letter-spacing: 0.06em; color: var(--soranji-navy); white-space: nowrap; }
.soranji-brand-gap { display: inline-block; width: 0.35em; }
.soranji-brand-en { display: flex; align-items: center; gap: 0.7em; margin-top: 4px; font-family: var(--soranji-serif); font-size: 9px; font-weight: 500; letter-spacing: 0.18em; color: var(--soranji-navy); white-space: nowrap; }
.soranji-brand-en::before, .soranji-brand-en::after { content: ""; flex: 1; min-width: 8px; border-top: 1px solid currentColor; }
.logo-header .site-name-text { font-size: inherit; }
.header-container-in.hlt-top-menu .logo-header.logo-text { max-height: none; padding: 7px 0; }
.header-container-in .logo-header img.soranji-brand-mark { width: auto; height: 46px; max-height: none; }
@media screen and (max-width: 480px) {
  .header-container-in.hlt-top-menu .logo-header.logo-text { padding: 10px 0; }
  .logo-header .soranji-brand { gap: 10px; }
  .header-container-in .logo-header img.soranji-brand-mark { height: 38px; }
  .logo-header .soranji-brand-text { padding-left: 10px; }
  .logo-header .soranji-brand-name { font-size: 18px; }
  .logo-header .soranji-brand-en { font-size: 7.5px; }
}
.logo-header .site-name-text-link:hover .soranji-brand { opacity: 0.85; }
#navi .navi-in > ul > li { width: auto; }
#navi .navi-in > ul > li > a { padding: 0 1.1em; font-size: 0.95em; color: var(--soranji-ink); }
#navi .navi-in > ul > li.menu-item-has-children > a { padding-right: 1.6em; }
#navi .navi-in a:hover { background: transparent; color: var(--soranji-navy); box-shadow: inset 0 -1px 0 var(--soranji-gold); }
#navi .navi-in .sub-menu { background: var(--soranji-white); border: 1px solid var(--soranji-rule); }
#navi .navi-in .menu-contact > a { background: var(--soranji-navy); color: #fff; }
#navi .navi-in .menu-contact > a:hover { background: var(--soranji-navy-deep); color: #fff; box-shadow: none; }

/* パンくずリスト */
.breadcrumb { margin: 1.2em 16px; font-size: 12px; color: var(--soranji-ink-soft); }

/************************************
** ボタン
************************************/
.wp-block-button__link, .soranji-button {
  background: var(--soranji-navy);
  color: #fff;
  border-radius: 2px;
  padding: 0.95em 2.2em;
  font-size: 0.95em;
  font-weight: 500;
  text-decoration: none;
  display: inline-block;
  box-shadow: none;
}
.wp-block-button__link:hover, .soranji-button:hover { background: var(--soranji-navy-deep); color: #fff; }
.is-style-outline .wp-block-button__link {
  background: transparent;
  color: var(--soranji-navy);
  border: none;
  border-bottom: 1px solid var(--soranji-navy);
  border-radius: 0;
  padding: 0.3em 0;
}
.is-style-outline .wp-block-button__link:hover { background: transparent; color: var(--soranji-gold-dark); border-bottom-color: var(--soranji-gold); }

/************************************
** トップページ
************************************/
.home .entry-title,
.home .date-tags,
.home .breadcrumb {
  position: absolute !important;
  width: 1px; height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
.home .article { padding: 0; }
.home .main, .home .content-in, .home #main { padding-top: 0; margin-top: 0; }
.home .entry-content { margin-top: 0; }
/* トップの最初の欄(3つの柱)の上の余白を狭くする */
.home #content { margin-top: 0; }
.home .entry-content > .soranji-section:first-child { padding-top: 40px; }
@media screen and (max-width: 834px) {
  .home .entry-content > .soranji-section:first-child { padding-top: 28px; }
}

/* セクション:線で区切る */
.soranji-section {
  padding: 80px 16px;
  margin: 0 !important;
  border-bottom: 1px solid var(--soranji-rule);
}
.soranji-section-alt { background: transparent; }
.soranji-section > * { max-width: 1048px; margin-left: auto !important; margin-right: auto !important; }

.soranji-en-label,
.soranji-en {
  color: var(--soranji-gold);
  font-size: 12px;
  letter-spacing: 0.22em;
  font-weight: 500;
  margin-bottom: 0.4em !important;
}
.soranji-section h2 { margin-top: 0; margin-bottom: 1.4em; }

/* 強みの欄:紺の地にせず、紙の白で静かに見せる */
.soranji-section-strength { background: var(--soranji-white); }
.article .soranji-section-strength h3 {
  margin-top: 2.4em;
  padding-left: 0.9em;
  border-left: 2px solid var(--soranji-gold);
}

/* カード(3つの柱・その他の業務):枠線だけの平らな形 */
.soranji-cards { gap: 0 !important; border-top: 1px solid var(--soranji-rule); border-left: 1px solid var(--soranji-rule); }
.soranji-cards .wp-block-column {
  background: var(--soranji-white);
  border-right: 1px solid var(--soranji-rule);
  border-bottom: 1px solid var(--soranji-rule);
  padding-bottom: 28px;
}
.soranji-cards .wp-block-column > *:not(.wp-block-image) { padding-left: 28px; padding-right: 28px; }
.soranji-cards .wp-block-image { margin: 0 0 1.4em; }
.soranji-cards .wp-block-image img { aspect-ratio: 3 / 2; object-fit: cover; width: 100%; filter: saturate(0.85); }
.article .soranji-cards h3 { font-size: 1.3em; margin-top: 0.1em; }
.soranji-num {
  font-family: var(--soranji-serif);
  font-size: 1.5em;
  color: var(--soranji-gold);
  margin-bottom: 0 !important;
  line-height: 1.2;
}
.soranji-more { margin-top: 1.2em !important; }
.soranji-more a {
  text-decoration: none;
  color: var(--soranji-navy);
  border-bottom: 1px solid var(--soranji-navy);
  padding-bottom: 1px;
  font-size: 0.92em;
}
.soranji-more a:hover { color: var(--soranji-gold-dark); border-bottom-color: var(--soranji-gold); }

/* 無料診断の確認ポイント */
.soranji-free-points { gap: 0 !important; border-top: 1px solid var(--soranji-rule); border-left: 1px solid var(--soranji-rule); margin-bottom: 2.4em !important; }
.soranji-free-points .wp-block-column {
  background: var(--soranji-white);
  border-right: 1px solid var(--soranji-rule);
  border-bottom: 1px solid var(--soranji-rule);
  padding: 26px 28px;
}
.article .soranji-free-points h3 { margin-top: 0; font-size: 1.1em; }

/* ご依頼の流れ:番号(明朝・金)と点線で縦に並べる */
.entry-content ol.wp-block-list {
  list-style: none;
  counter-reset: soranji-step;
  padding: 0 !important;
  margin-left: 0;
}
.entry-content ol.wp-block-list > li {
  counter-increment: soranji-step;
  display: grid;
  grid-template-columns: 56px 1fr;
  column-gap: 22px;
  padding: 20px 0;
  border-top: 1px dashed var(--soranji-rule);
  color: var(--soranji-ink-soft);
  font-size: 0.95em;
  line-height: 1.8;
}
.entry-content ol.wp-block-list > li:first-child { border-top: none; }
.entry-content ol.wp-block-list > li::before {
  content: counter(soranji-step);
  grid-row: span 3;
  font-family: var(--soranji-serif);
  color: var(--soranji-gold);
  font-size: 1.6em;
  line-height: 1.2;
}
.entry-content ol.wp-block-list > li strong { color: var(--soranji-navy); font-weight: 600; font-size: 1.05em; }

/* 箇条書き:金の短い線を頭に付ける */
.entry-content ul.wp-block-list { list-style: none; padding-left: 0 !important; }
.entry-content ul.wp-block-list > li {
  position: relative;
  padding: 0.55em 0 0.55em 1.6em;
  border-bottom: 1px solid var(--soranji-rule);
  color: var(--soranji-ink-soft);
}
.entry-content ul.wp-block-list > li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 1.35em;
  width: 0.8em;
  height: 1px;
  background: var(--soranji-gold);
}

/************************************
** コラムの新着一覧
************************************/
.soranji-posts { max-width: 1048px; margin: 0 auto; padding: 72px 16px 8px; }
.soranji-posts-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  border-bottom: 1px solid var(--soranji-rule);
  margin-bottom: 0.5em;
}
.article .soranji-posts-title { margin: 0; padding: 0.3em 0 0.6em; }
.article .soranji-posts-title::after { display: none; }
.soranji-posts-more { font-size: 13px; text-decoration: none; padding-bottom: 0.8em; border-bottom: 1px solid var(--soranji-navy); }
.soranji-posts-list { list-style: none; padding: 0 !important; margin: 0; }
.soranji-posts-list li {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4em 1.2em;
  align-items: baseline;
  padding: 1.1em 0;
  border-bottom: 1px solid var(--soranji-rule);
}
.soranji-posts-list time { color: var(--soranji-ink-soft); font-size: 13px; }
.soranji-posts-cat {
  font-size: 11px;
  border: 1px solid var(--soranji-navy);
  color: var(--soranji-navy);
  border-radius: 2px;
  padding: 0 0.7em;
}
.soranji-posts-list a { text-decoration: none; color: var(--soranji-ink); }
.soranji-posts-list a:hover { color: var(--soranji-gold-dark); }

/************************************
** お問い合わせ誘導枠:紺の帯に金のボタン
************************************/
.soranji-cta {
  max-width: none;
  margin: 72px 0 0;
  padding: 64px 32px;
  background: var(--soranji-navy);
  color: #f1efe7;
  border: none;
  border-radius: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px 40px;
  text-align: left;
}
.soranji-cta-title { font-family: var(--soranji-serif); font-size: clamp(20px, 2.6vw, 26px); font-weight: 700; color: #fff; margin: 0 0 0.3em; flex: 1 1 100%; }
.soranji-cta-text { color: #c9cbd6; margin: 0; flex: 1 1 420px; }
.soranji-cta-actions { margin: 0; }
.soranji-cta .soranji-button { background: var(--soranji-gold); color: var(--soranji-navy-deep); font-weight: 700; padding: 1em 2.6em; }
.soranji-cta .soranji-button:hover { background: var(--soranji-gold-dark); color: #fff; }
.home .soranji-cta { margin-top: 0; }
.entry-content .soranji-cta .soranji-cta-title, .soranji-cta .soranji-cta-title { color: #fff; margin: 0 !important; }
.entry-content .soranji-cta .soranji-cta-text, .soranji-cta .soranji-cta-text { color: #c9cbd6; margin: 0 !important; }

/************************************
** 事務所概要・代表者紹介
************************************/
.soranji-table { width: 100%; border-collapse: collapse; border-top: 1px solid var(--soranji-rule); }
.soranji-table th, .soranji-table td {
  border: none;
  border-bottom: 1px solid var(--soranji-rule);
  padding: 1.1em 1em;
  text-align: left;
  vertical-align: top;
  background: transparent;
}
.soranji-table th { width: 26%; color: var(--soranji-navy); font-weight: 500; white-space: nowrap; }
.soranji-table tr:nth-of-type(2n+1) { background: transparent; }
.soranji-map iframe { width: 100%; height: 380px; border: 1px solid var(--soranji-rule); }

.soranji-staff {
  background: var(--soranji-white);
  border: 1px solid var(--soranji-rule);
  border-top: 2px solid var(--soranji-navy);
  padding: 32px;
  margin-bottom: 32px;
}
.soranji-staff-role { color: var(--soranji-gold); font-size: 0.88em; margin-bottom: 0.3em !important; }
.article .soranji-staff-name { border: none; padding: 0; margin: 0 0 1em; font-size: 1.6em; }
.article .soranji-staff-name::after { display: none; }
.soranji-staff-birth { font-family: var(--soranji-sans); font-size: 13px; font-weight: 400; color: var(--soranji-ink-soft); margin-left: 0.8em; letter-spacing: 0.05em; vertical-align: middle; }
.soranji-staff-kana { display: block; font-family: var(--soranji-sans); font-size: 12px; color: var(--soranji-ink-soft); font-weight: 400; letter-spacing: 0.12em; }
.soranji-staff-meta { display: grid; grid-template-columns: 9em 1fr; gap: 0; margin: 1.4em 0 0; font-size: 14px; border-top: 1px solid var(--soranji-rule); }
.soranji-staff-meta dt, .soranji-staff-meta dd { padding: 0.7em 0; border-bottom: 1px solid var(--soranji-rule); margin: 0; }
.soranji-staff-meta dt { color: var(--soranji-navy); font-weight: 500; }
/* 経歴(年表):左に年、右に内容。行ごとに線で区切る */
.soranji-staff-career { margin-top: 1.6em; }
.soranji-staff-career-title { color: var(--soranji-navy); font-family: var(--soranji-serif); font-size: 1.05em; font-weight: 600; letter-spacing: 0.08em; margin: 0 0 0.5em !important; }
.soranji-career { display: grid; grid-template-columns: 9em 1fr; margin: 0; font-size: 14px; border-top: 1px solid var(--soranji-rule); }
.soranji-career dt, .soranji-career dd { padding: 0.7em 0; border-bottom: 1px solid var(--soranji-rule); margin: 0; }
.soranji-career dt { color: var(--soranji-gold-dark); font-family: var(--soranji-serif); font-weight: 600; letter-spacing: 0.04em; white-space: nowrap; }

/************************************
** よくある質問(詳細ブロック):線で区切り、右に「+」
************************************/
.wp-block-details {
  background: transparent;
  border: none;
  border-top: 1px solid var(--soranji-rule);
  margin: 0;
  padding: 0;
}
.wp-block-details:last-of-type { border-bottom: 1px solid var(--soranji-rule); }
.wp-block-details summary {
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  padding: 1.3em 0;
  font-weight: 500;
  color: var(--soranji-ink);
  cursor: pointer;
}
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after {
  content: "+";
  font-family: var(--soranji-serif);
  color: var(--soranji-gold);
  font-size: 1.4em;
  line-height: 1;
  flex-shrink: 0;
  transition: transform 0.2s;
}
.wp-block-details[open] summary::after { transform: rotate(45deg); }
.wp-block-details > p { padding: 0 0 1.4em; margin: 0; color: var(--soranji-ink-soft); font-size: 0.95em; }

/************************************
** お問い合わせフォーム
************************************/
.soranji-form label { display: block; font-weight: 500; color: var(--soranji-navy); }
.soranji-form input[type="text"], .soranji-form input[type="email"], .soranji-form input[type="tel"],
.soranji-form input[type="number"], .soranji-form select, .soranji-form textarea {
  display: block;
  width: 100%;
  margin-top: 0.4em;
  font-weight: 400;
  border: 1px solid var(--soranji-rule);
  border-radius: 2px;
  padding: 0.7em;
  background: var(--soranji-white);
  box-sizing: border-box;
}
.soranji-form input:focus, .soranji-form select:focus, .soranji-form textarea:focus {
  outline: 2px solid var(--soranji-gold);
  outline-offset: 1px;
  border-color: var(--soranji-navy);
}
/* 年商:入力欄と「千万円」を横に並べる */
.soranji-input-unit { display: flex; align-items: center; gap: 0.6em; margin-top: 0.4em; }
.soranji-input-unit .wpcf7-form-control-wrap { flex: 0 1 14em; }
.soranji-input-unit input[type="number"] { margin-top: 0; width: 100%; }
.soranji-input-unit > span:last-child { font-weight: 400; white-space: nowrap; }
.soranji-help { display: block; font-size: 13px; color: var(--soranji-ink-soft); margin-top: 1.8em; }
.soranji-form .wpcf7-acceptance label { display: inline; font-weight: 400; color: var(--soranji-ink); }
.soranji-required {
  border: 1px solid #9b2c2c;
  color: #9b2c2c;
  font-size: 10px;
  padding: 0 6px;
  border-radius: 2px;
  margin-left: 0.7em;
  vertical-align: middle;
  font-weight: 400;
}
/* メールアドレスの確認:送信後の案内・リンク期限切れの案内 */
.soranji-confirm-notice {
  border: 1px solid var(--soranji-rule);
  border-top: 3px solid var(--soranji-gold);
  background: var(--soranji-white);
  padding: 1.6em 1.6em 0.4em;
  margin-bottom: 2em;
}
.soranji-confirm-notice:focus { outline: none; }
.soranji-confirm-notice p { margin: 0 0 1.2em; }
.soranji-confirm-notice-title { font-family: var(--soranji-serif); font-weight: 600; color: var(--soranji-navy); font-size: 1.1em; }
.soranji-confirm-notice--error { border-top-color: #9b2c2c; }
.soranji-confirm-notice--error .soranji-confirm-notice-title { color: #9b2c2c; }
@media screen and (max-width: 480px) {
  .soranji-confirm-notice { padding: 1.2em 1.2em 0.2em; }
}
.soranji-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
/* エラー表示が消えたときにボタンの位置がずれて押し損じないよう、エラー文は重ねて表示する */
.soranji-form .wpcf7-form-control-wrap { position: relative; display: block; }
.soranji-input-unit .wpcf7-form-control-wrap { display: block; }
.soranji-form .wpcf7-not-valid-tip { position: absolute; left: 0; top: 100%; margin-top: 2px; font-size: 12px; font-weight: 400; line-height: 1.4; white-space: nowrap; }
.soranji-form p { margin-bottom: 2em; }
.soranji-form .wpcf7-submit {
  background: var(--soranji-navy);
  color: #fff;
  border: none;
  border-radius: 2px;
  padding: 1em 3em;
  font-size: 1em;
  cursor: pointer;
  max-width: 100%;
  white-space: normal;
}
.soranji-form .wpcf7-submit:hover { background: var(--soranji-navy-deep); }
.soranji-form .wpcf7-submit:disabled { background: #b9b6ad; cursor: not-allowed; }

/************************************
** フッター:紙色の地に、細い線で区切る
************************************/
.footer { background: var(--soranji-paper) !important; color: var(--soranji-ink-soft) !important; border-top: 1px solid var(--soranji-rule); }
.footer a { color: var(--soranji-ink-soft) !important; }
.footer a:hover { color: var(--soranji-navy) !important; }
.footer-widgets > .footer-left { flex: 2 1 0%; }
.soranji-footer-info { font-size: 13px; line-height: 1.9; }
.soranji-footer-info .soranji-nw { white-space: nowrap; }
.soranji-footer-name { margin-bottom: 0.8em !important; line-height: 1; }
/* ページ本文の中の事務所情報(文字だけの社名) */
.soranji-footer-name-text { font-family: var(--soranji-serif); font-size: 18px; font-weight: 700; color: var(--soranji-navy); margin-bottom: 0 !important; letter-spacing: 0.06em; line-height: 1.6; }
.soranji-footer-name-en { font-size: 10px; letter-spacing: 0.2em; color: var(--soranji-ink-soft); }
.soranji-footer-name .soranji-brand-mark { height: 40px; }
.soranji-footer-name .soranji-brand-name { font-size: 19px; }
.footer-left .widget, .footer-mobile .widget { margin-bottom: 0; }
.soranji-footer-bottom { margin-top: 0; padding: 8px 8px 4px; text-align: center; }
.soranji-copyright { font-size: 12px; line-height: 1.9; margin: 0 !important; }
.navi-footer-in > .menu-footer li { border-color: var(--soranji-rule) !important; }

/************************************
** 404ページ
************************************/
.soranji-404 { text-align: center; padding: 48px 16px; }
.soranji-404-code { font-family: var(--soranji-serif); font-size: 64px; color: var(--soranji-gold); margin: 0; }
.soranji-404-links { list-style: none; padding: 0 !important; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 24px; }

:focus-visible { outline: 2px solid var(--soranji-gold); outline-offset: 2px; }

/************************************
** スマートフォン
************************************/
@media screen and (max-width: 834px) {
  .soranji-topbar-text { display: none; }
  .soranji-topbar-in { justify-content: center; }
  .soranji-section { padding: 56px 16px; }
  .soranji-cards, .soranji-free-points { border-left: none; }
  .soranji-cards .wp-block-column, .soranji-free-points .wp-block-column { border-left: 1px solid var(--soranji-rule); }
  /* カードの写真は、見出しの横に小さな正方形で出し、本文を読みやすくする */
  .soranji-cards .wp-block-column {
    display: grid;
    grid-template-columns: 88px 1fr;
    column-gap: 16px;
    align-items: center;
    padding: 20px 20px 22px !important;
  }
  .soranji-cards .wp-block-column > * { margin-top: 0; }
  .soranji-cards .wp-block-column > .wp-block-image { grid-column: 1; grid-row: 1 / span 2; margin: 0 !important; align-self: start; }
  .soranji-cards .wp-block-image img { width: 88px; height: 88px; aspect-ratio: 1 / 1; }
  .soranji-cards .wp-block-column > *:not(.wp-block-image) { grid-column: 2; padding-left: 0 !important; padding-right: 0 !important; }
  .soranji-cards .wp-block-column > p:not(.soranji-num) { grid-column: 1 / -1; margin-top: 0.9em; }
  .soranji-cards .soranji-num { font-size: 1.2em; align-self: end; }
  .article .soranji-cards h3 { font-size: 1.15em; margin: 0; align-self: start; }
  .soranji-cards .soranji-more { margin-top: 0.6em !important; }
  .article .soranji-cards-2 h3, .article .soranji-cards-3 h3 { grid-row: 1 / span 2; align-self: center; }
  /* 下層ページ冒頭の写真も、少し低めにする */
  .page:not(.home) .entry-content > .wp-block-image:first-child img { aspect-ratio: 3 / 1; }
  .single .eye-catch img { aspect-ratio: 3 / 1; }
  .soranji-table th, .soranji-table td { display: block; width: 100%; }
  .soranji-table th { border-bottom: none; padding-bottom: 0.2em; }
  .soranji-staff { padding: 24px 20px; }
  .soranji-staff-meta { grid-template-columns: 1fr; }
  .soranji-staff-meta dt { border-bottom: none; padding-bottom: 0; }
  .soranji-career { grid-template-columns: 1fr; }
  .soranji-career dt { border-bottom: none; padding-bottom: 0; }
  .soranji-career dt.is-empty { display: none; }
  .soranji-map iframe { height: 300px; }
  .soranji-cta { padding: 48px 20px; }
}

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; }
}
