/*
Theme Name: Lightning Child
Template: lightning
Version: 2.0 "Editorial Indigo"
*/

/* ================= Tokens ================= */
:root{
  --accent:#2563EB;           /* アクセント：やや落ち着いた青 */
  --accent-ink:#1E3A8A;       /* アクセント文字用の濃紺 */
  --ink:#1F2937;              /* 本文：黒より少しグレー（slate-800） */
  --muted:#6B7280;            /* 補助文字：控えめなグレー */
  --bg:#FFFFFF;               /* 背景：完全な白 */
  --bg-soft:#F9FAFB;          /* ブロック背景：ごく薄いグレー */
  --line:#E5E7EB;             /* 区切り線：明るいグレー */
  --radius:12px;
  --measure:72ch;
}
/* @media (prefers-color-scheme: dark){
  :root{
    --ink:#E5E7EB;
    --muted:#9CA3AF;
    --bg:#111827;
    --bg-soft:#1F2937;
    --line:#374151;
    --accent:#60A5FA;
    --accent-ink:#C7D2FE;
  }
} */



/* ================ Base / Layout ================= */
.single .entry-content,
.single .entry-body,
.single .vk_post .entry-content,
.page .entry-content,
.page .entry-body{
  color:var(--ink);
  background:var(--bg);
  line-height:1.85;
  font-size:clamp(16px,1.7vw,18px);
  letter-spacing:.01em;
  max-width:var(--measure);
  margin-inline:auto;
  padding:clamp(16px,3vw,28px);
  overflow-wrap:anywhere;
}
p{ margin:1.1em 0; }

/* ================ Lead（冒頭要約：バッジ＋枠なし） ================= */
.c-lead{
  font-size:clamp(18px,2vw,20px);
  line-height:1.9;
  background:var(--bg-soft);
  border-left:6px solid var(--accent);
  border-radius:var(--radius);
  padding:1rem 1.2rem;
  color:var(--ink);
  position:relative;
  margin:0 0 1.5rem;
}
.c-lead::before{
  content:"POINT";
  position:absolute;
  top:-12px;
  left:12px;
  font:700 12px/1 system-ui, "Noto Sans JP", sans-serif;
  color:#fff;
  background:var(--accent);
  padding:.25em .6em;
  border-radius:999px;
}

/* 幅ユーティリティ */
.l-narrow{ max-width:min(72ch,100%); margin-inline:auto; }

/* ================ Headings（下線×キャップ） ================= */
h2.wp-block-heading{
  margin:2.2em 0 .9em;
  font-size:clamp(22px,2.4vw,28px);
  font-weight:800;
  letter-spacing:.015em;
  position:relative;
  padding-bottom:.35em;
  color:var(--ink);
  /* 下線は2色レイヤー（上：アクセント細線 / 下：薄いベース） */
  background:
    linear-gradient(var(--accent),var(--accent)) left bottom/64px 3px no-repeat,
    linear-gradient(var(--line),var(--line)) left bottom/100% 1px no-repeat;
}
h3.wp-block-heading{
  margin:1.6em 0 .6em;
  font-size:clamp(18px,2vw,22px);
  font-weight:700;
  color:var(--ink);
  padding-bottom:.25em;
  background:linear-gradient(var(--line),var(--line)) left bottom/100% 1px no-repeat;
}

/* セクション導入の小見出し（任意） */
.section-kicker{
  display:inline-block;
  color:var(--accent-ink);
  background:color-mix(in oklab, var(--accent) 16%, transparent);
  font:700 12px/1.6 system-ui, -apple-system, "Noto Sans JP", sans-serif;
  padding:.25em .55em; border-radius:999px;
  letter-spacing:.06em;
  margin-bottom:.3em;
}

/* ================ Lists / Quote ================= */
ul,ol{ margin:1em 0 1.2em; padding-left:1.2em; }
li{ margin:.45em 0; }

.entry-content blockquote, .wp-block-quote{
  margin:1.6em 0;
  padding:1.1em 1.2em 1.1em 1.1em;
  border-left:4px solid var(--accent);
  background:var(--bg-soft);
  border-radius:10px;
}
.entry-content blockquote p{ margin:.6em 0; }
.entry-content blockquote cite{
  display:block; color:var(--muted); font-size:.9em; margin-top:.6em;
}

/* ================ Links ================= */
.entry-content a{
  color:var(--accent);
  text-decoration:underline;
  text-underline-offset:.2em;
  text-decoration-thickness:1.5px;
}
.entry-content a:hover{ text-decoration-thickness:2px; }

/* ================ Figures / Media ================= */
.entry-content img{ max-width:100%; height:auto; border-radius:10px; }
.entry-content .wp-block-image, .entry-content figure{ margin:1.4em 0; }
.entry-content figcaption{ color:var(--muted); font-size:.92em; margin-top:.5em; text-align:center; }

/* ================ Tables（紙面風） ================= */
.entry-content .wp-block-table,
.entry-content table{
  width:100%;
  border-collapse:separate; border-spacing:0;
  border:1px solid var(--line);
  border-radius:12px;
  overflow:hidden;
  background:var(--bg);
}
.entry-content table thead th{
  background:linear-gradient(180deg, var(--bg-soft), transparent);
  font-weight:700;
  border-bottom:1px solid var(--line);
}
.entry-content table th, .entry-content table td{
  padding:.9em 1em;
  border-bottom:1px solid var(--line);
  vertical-align:top;
}
.entry-content table tbody tr:hover{
  background:color-mix(in oklab, var(--bg-soft) 60%, transparent);
}
.entry-content .wp-block-table{ overflow-x:auto; -webkit-overflow-scrolling:touch; }

/* ================ Utility boxes（情報・注意・要点） ================= */
.note,.warning,.point{
  padding:1em 1.1em; border-radius:12px; margin:1.2em 0;
  border:1px solid var(--line); background:var(--bg-soft);
}
.note::before,.warning::before,.point::before{
  display:block; font-weight:700; margin-bottom:.35em; letter-spacing:.03em;
}
.note::before{ content:"INFO"; color:#0ea5e9; }
.warning::before{ content:"CAUTION"; color:#ef4444; }
.point::before{ content:"KEY POINT"; color:var(--accent); }

/* チェックリスト（行頭ドットの代わりにチェック） */
.entry-content .checklist{ list-style:none; padding-left:0; }
.entry-content .checklist li{ position:relative; padding-left:1.6em; margin:.5em 0; }
.entry-content .checklist li::before{
  content:"✓"; position:absolute; left:.2em; top:.05em; font-weight:900; color:var(--accent);
}

/* ================ TOC（目次：紙面の囲み風） ================= */
.toc{
  border:1px solid var(--line);
  background:var(--bg-soft);
  border-radius:12px;
  padding:1em 1.1em;
  margin:1.6em 0;
}
.toc .toc__title{ font-weight:800; letter-spacing:.02em; margin:0 0 .5em; color:var(--accent-ink); }
.toc ul,.toc ol{ margin:0; padding-left:1.1em; }

/* ================ Meta / Chips（最小） ================= */
.post-meta{
  display:flex; flex-wrap:wrap; gap:.6em 1.2em;
  color:var(--muted); font-size:.92em;
  border-bottom:1px solid var(--line);
  padding-bottom:.6em; margin-bottom:1em;
}
.tax-chips{ display:flex; flex-wrap:wrap; gap:.5em; margin-top:1em; }
.tax-chips a{
  display:inline-flex;
  align-items: center;
  line-height: 1.2;
  gap:.35em;
  padding:.3em .65em;
  border:1px solid var(--line); border-radius:999px;
  text-decoration:none; font-size:.92em; color:var(--ink);
  background:var(--bg-soft);
}

/* lightningカテゴリチップ非表示*/
.entry-footer,
.post-footer-meta,
.vk_post .post-meta-data {
  display: none !important;
}


/* ================ Code ================= */
.entry-content pre, .entry-content code, .wp-block-code{
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
}
.entry-content pre, .wp-block-code{
  background:#0b2530; color:#e6f6ff; padding:1em 1.2em; border-radius:12px; overflow:auto; margin:1.6em 0;
}
.entry-content code{ background:rgba(99,102,241,.12); padding:.15em .35em; border-radius:6px; }

/* ================ Small utils ================= */
hr{ border:none; border-top:1px solid var(--line); margin:2em 0; }
.references{ border-top:1px solid var(--line); margin-top:2em; padding-top:1.1em; }
.references a{ text-decoration:none; }
.references a:hover{ text-decoration:underline; }

/* ================ Category theme (使うときだけ) ================= */
.theme-construction-license{ --accent:#1D4ED8; --accent-ink:#172554; }
.theme-immigration{ --accent:#0EA5E9; --accent-ink:#082f49; }
.theme-business-license{ --accent:#F59E0B; --accent-ink:#7c2d12; }
.theme-traffic-claim{ --accent:#EF4444; --accent-ink:#7f1d1d; }
.theme-business-support{ --accent:#22C55E; --accent-ink:#064e3b; }
.theme-column{ --accent:#4F46E5; --accent-ink:#1e1b4b; }

/* ================ Print ================= */
@media print{
  .toc,.tax-chips{ display:none !important; }
  a{ color:#000 !important; text-decoration:none !important; }
}


/* お問い合わせフォームセクション -->*/
/* セクション全体 */
.consult-section {
  max-width: 860px;
  margin: 0 auto 3rem;
  padding: 0 1rem;
}
.consult-section > h2 {
  font-size: clamp(1.4rem, 2.5vw, 1.8rem);
  margin: 0 0 1.25rem;
  font-weight: 700;
  border-left: 6px solid #2f80ed;
  padding-left: .75rem;
}

/* カード（縦並び） */
.consult-card {
  background: #fff;
  border: 1px solid #e6e8ef;
  border-radius: 14px;
  padding: 1.25rem;
  margin-bottom: 1rem;
  box-shadow: 0 4px 10px rgba(0,0,0,.04);
}
.consult-card__title {
  font-size: clamp(1.1rem, 2.2vw, 1.35rem);
  margin: 0 0 .35rem;
  font-weight: 700;
}
.consult-card__lead {
  margin: 0 0 .9rem;
  color: #333;
  line-height: 1.7;
}

/* LINE QR */
.line-qr {
  text-align: center;
  margin: .5rem 0 1rem;
}
.line-qr img {
  width: min(260px, 70%);
  height: auto;
  border-radius: 12px;
  border: 1px solid #e6e8ef;
}
.line-qr__note {
  font-size: .92rem;
  color: #666;
  margin-top: .5rem;
}

/* ボタン */
.consult-actions {
  text-align: center;
  margin-top: .5rem;
}
.btn {
  display: inline-block;
  padding: .9rem 1.1rem;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 700;
  line-height: 1;
  min-width: 240px;
  text-align: center;
  transition: transform .06s ease, box-shadow .2s ease, opacity .2s ease;
  box-shadow: 0 6px 16px rgba(0,0,0,.08);
}
.btn:hover { transform: translateY(-1px); }
.btn:active { transform: translateY(0); }

/* ブランド色（LINE/予約） */
.btn-line {
  background: #06c755; color: #fff;
}
.btn-line:hover { opacity: .95; }

.btn-reserve {
  background: #2f80ed; color: #fff;
}
.btn-reserve:hover { opacity: .95; }

/* 区切り「または」 */
.consult-sep {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .75rem;
  margin: 1.25rem 0;
  color: #777;
}
.consult-sep::before,
.consult-sep::after {
  content: "";
  height: 1px;
  background: #e2e4ea;
  flex: 1;
}
.consult-sep span {
  font-size: .95rem;
}

/* <--お問い合わせフォームセクション */

@media (min-width: 992px){
  /* ヘッダー下にうっすらバー */
  .site-header, header[role="banner"]{
    box-shadow:0 1px 0 #e5e7eb;
    background:#fff;
  }
  header nav .menu > li > a{
    display:inline-block; padding:1rem .9rem; text-decoration:none;
    color:#1f2937; font-weight:600; position:relative;
  }
  header nav .menu > li > a::after{
    content:""; position:absolute; left:0; bottom:0; height:3px; width:0;
    background:#2563eb; transition:width .22s ease;
  }
  header nav .menu > li:hover > a::after,
  header nav .menu > li.current-menu-item > a::after,
  header nav .menu > li.current-menu-ancestor > a::after{ width:100%; }
}
/* タッチ領域UP＆区切り */
@media (max-width: 991.98px){
  .vk-mobile-nav, .vk-menu-acc, .drawer-nav{ /* Lightningの環境に合わせてどれか当たります */
    background:#ffffff;
    border-top:1px solid #e5e7eb;
  }
  .vk-mobile-nav .menu > li > a,
  .drawer-nav .menu > li > a{
    display:block; padding:1rem; border-bottom:1px solid #f1f5f9;
    color:#1f2937; text-decoration:none; font-weight:600;
  }
  .vk-mobile-nav .menu .sub-menu a,
  .drawer-nav .menu .sub-menu a{
    padding:.8rem 1rem .8rem 1.6rem; font-weight:500;
  }
  /* フォーカス可視化（アクセシビリティ） */
  .menu a:focus-visible{ outline:3px solid #93c5fd; outline-offset:2px; }
}


/*事務所概要*/
/* ======= 事務所概要テーブル（モダンカード風） ======= */
.wp-block-table.office-summary {
  width: 100%;
  border-collapse: collapse;
  border: none;
  margin: 2em 0;
  background: #ffffff;
  box-shadow: 0 2px 10px rgba(0,0,0,0.15);
  border-radius: 8px;
  overflow: hidden;
  font-size: 16px;
  line-height: 1.8;
}

/* 各行 */
.wp-block-table.office-summary tr {
  border-bottom: 1px solid #e7edf3;
}
.wp-block-table.office-summary tr:last-child {
  border-bottom: none;
}

/* 左列（項目名） */
.wp-block-table.office-summary td:first-child {
  width: 35%;
  background: #f5f9fc;
  color: #2a4b6f;
  font-weight: 600;
  padding: 16px 20px;
  border-right: 1px solid #e0e7ef;
  vertical-align: middle;
	word-break: break-all;      /* 長い英数字を途中で折り返す */
  overflow-wrap: anywhere;    /* さらに念のため */
}

/* 右列（内容） */
.wp-block-table.office-summary td:last-child {
  width: 65%;
  padding: 16px 24px;
  color: #333;
  vertical-align: middle;
	word-break: break-all;      /* 長い英数字を途中で折り返す */
  overflow-wrap: anywhere;    /* さらに念のため */
}

/* テーブル境界リセット */
.wp-block-table.office-summary td {
  border: none;
 }

/* ===== スマホ最適化：2列維持・余白縮小・背景を軽く ===== */
@media (max-width: 768px){
  .wp-block-table.office-summary{
    box-shadow:0 1px 6px rgba(0,0,0,0.04);
    border-radius:6px;
    font-size:15px;
    line-height:1.7;
    margin:1.25em 0;
  }
  /* テーブルのまま表示（ブロック化しない） */
  .wp-block-table.office-summary tr{ display:table-row; }
  .wp-block-table.office-summary td{ display:table-cell; padding:10px 12px; }

  /* 左列は背景を薄く・幅少し広げる */
  .wp-block-table.office-summary td:first-child{
    width:40%;
    min-width:8em;
    background:#f7fbff;     /* うっすら */
    border-right:none;       /* 線がうるさければ無し */
    font-weight:600;
    padding:10px 12px;
    word-break: break-all;     /* ラベルの改行を抑える */
  }
  .wp-block-table.office-summary td:last-child{
    width:60%;
    padding:10px 12px;
  }

  /* 行間を詰め、区切り線もやや薄く */
  .wp-block-table.office-summary tr{
    border-bottom:1px solid #eef3f7;
  }
}

/* さらに狭い端末 */
@media (max-width: 420px){
  .wp-block-table.office-summary td:first-child{ width:44%; }
  .wp-block-table.office-summary td:last-child{ width:56%; }
}

/* --- Area Map Block --- */
.area-map {
  position: relative;
  padding: 2.5rem 1.5rem;
  background:
    radial-gradient(circle at 20% 10%, rgba(0,0,0,0.03) 0 120px, transparent 130px) no-repeat,
    linear-gradient(90deg, rgba(0,0,0,0.04) 1px, transparent 1px) 0 0/28px 28px,
    linear-gradient(0deg, rgba(0,0,0,0.04) 1px, transparent 1px) 0 0/28px 28px;
  border-radius: 16px;
}

.area-map h2 {
  font-size: clamp(1.4rem, 1.1rem + 1vw, 1.8rem);
  margin: 0 0 .75rem;
}

.area-lead {
  margin: 0 0 1.5rem;
  line-height: 1.8;
}

.area-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 1rem;
}

.area-card {
  grid-column: span 12;
  background: #fff;
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 14px;
  padding: 1.25rem 1.1rem 1.1rem 1.1rem;
  box-shadow: 0 6px 18px rgba(0,0,0,0.05);
  position: relative;
  overflow: hidden;
}

/* map-pin風のピクト */
.area-card::before {
  content: "📍";
  position: absolute;
  top: .65rem;
  right: .75rem;
  font-size: 1.2rem;
  opacity: .7;
}

.area-emphasis {
  border: 1px solid rgba(0, 128, 255, .25);
  box-shadow: 0 10px 22px rgba(0,128,255,.08);
  background: linear-gradient(180deg, rgba(0,128,255,.03), transparent 60%);
}

.area-title {
  margin: 0 0 .6rem;
  font-size: 1.05rem;
  font-weight: 700;
  padding-left: .75rem;
  border-left: 4px solid #0b6cff;
}

.area-list {
  list-style: none;
  margin: 0;
  padding: .2rem 0 0 .1rem;
  display: grid;
  grid-template-columns: 1fr;
  gap: .3rem .75rem;
}

/* 2～3列のカラム化（横幅広い時のみ） */
@media (min-width: 560px) {
  .area-card { grid-column: span 6; }
  .area-emphasis { grid-column: span 12; }
  .area-list--columns { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (min-width: 960px) {
  .area-card { grid-column: span 4; }
  .area-emphasis { grid-column: span 6; }
  .area-list--columns { grid-template-columns: repeat(3, minmax(0,1fr)); }
}

.area-list li {
  position: relative;
  padding-left: 1.1rem;
  line-height: 1.8;
}
.area-list li::before {
  content: "";
  position: absolute;
  left: 0.25rem;
  top: .72rem;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #0b6cff;
  opacity: .9;
}

.area-note {
  margin: .6rem 0 0;
  font-size: .9rem;
  color: #3a3a3a;
  opacity: .9;
}

.area-foot {
  margin-top: 1rem;
  font-size: .95rem;
  background: #fff;
  border: 1px dashed rgba(0,0,0,0.15);
  padding: .8rem 1rem;
  border-radius: 10px;
}

/* --- Area List Fix for Lightning --- */

/* 市町名リストの改行・縦並び崩れ修正 */
.area-list {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 0.3rem 0.75rem !important;
  font-feature-settings: "palt"; /* 約物間隔を調整 */
  white-space: normal !important;
  word-break: keep-all !important;
  line-height: 1.8;
}

.area-list--columns {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)) !important;
  gap: 0.4rem 1rem !important;
}

/* リスト内の点やピン位置を安定化 */
.area-list li {
  position: relative;
  padding-left: 1.1rem;
  text-align: left !important;
  font-size: 0.95rem;
  line-height: 1.8;
  white-space: nowrap;
}

.area-list li::before {
  content: "";
  position: absolute;
  left: 0.25rem;
  top: 0.75rem;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #0b6cff;
}

/* 各カードの幅調整（スマホでも崩れないように） */
@media (min-width: 560px) {
  .area-card {
    grid-column: span 6 !important;
  }
  .area-emphasis {
    grid-column: span 6 !important;
  }
}
@media (min-width: 960px) {
  .area-card {
    grid-column: span 4 !important;
  }
  .area-emphasis {
    grid-column: span 6 !important;
  }
  .area-list--columns {
    grid-template-columns: repeat(3, minmax(120px, 1fr)) !important;
  }
}

/* 最新の投稿ブロック（関連記事用）レイアウト修正 */
.wp-block-latest-posts.is-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}

/* 画像を枠内で統一表示 */
.wp-block-latest-posts__featured-image img {
  width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: 8px;
}

/* 各カードを独立させる */
.wp-block-latest-posts__post {
  background: var(--bg-soft);
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow: hidden;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.wp-block-latest-posts__post:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.08);
}

/* ---- 最新の投稿：カード全体をホバーで浮かせる ---- */
ul.wp-block-latest-posts.is-grid > li{
  background: var(--bg-soft);
  border: 1px solid var(--line);
  margin-bottom: 12px;
  border-radius: 12px;
  overflow: hidden;
  transition: transform .2s ease, box-shadow .2s ease;
}
ul.wp-block-latest-posts.is-grid > li:hover{
  transform: translateY(-3px);
  box-shadow: 0 8px 18px rgba(0,0,0,.10);
}

/* タイトルと日付のクリック/余白をカード内に揃える（任意） */
.wp-block-latest-posts__post-title{
  display: block;
  padding: .75rem 1rem .4rem;
  text-decoration: none;
  color: var(--ink);
  font-weight: 700;
}
.wp-block-latest-posts__post-date{
  padding: 0 1rem 1rem;
  color: var(--muted);
  font-size: .9em;
}

/* 最新の投稿ブロック（関連記事用）レイアウト修正　ここまで */
