/* ============================================================
 * 菊池行政書士事務所 共通オーバーライド CSS
 * 目的:
 *   1) ヘッダー上部の黒帯（信頼帯：肩書 / 行政書士会番号 / 営業時間）
 *   2) LP共通フッター（連絡先・SNS・Copyright）
 *   3) LP用 お問い合わせバナー
 *   4) 既存フッター内 Copyright の日本語化（フッターは js で書き換える）
 * ============================================================ */

/* ===== 1) ヘッダー上部の黒帯 ===== */
.kikuchi-notice {
  background: #1a1a1a;
  color: #fff;
  padding: 7px 24px;
  text-align: center;
  font-size: 12px;
  letter-spacing: 0.05em;
  font-family: 'Noto Sans JP', 'Yu Gothic', sans-serif;
  line-height: 1.6;
  position: relative;
  z-index: 200;
}
.kikuchi-notice__inner {
  max-width: 1200px;
  margin: 0 auto;
}
.kikuchi-notice strong {
  color: #FBBA00;
  font-weight: 700;
}
.kikuchi-notice .sep {
  display: inline-block;
  width: 1px;
  height: 11px;
  background: #555;
  margin: 0 14px;
  vertical-align: middle;
}
@media (max-width: 768px) {
  .kikuchi-notice {
    font-size: 10px;
    padding: 5px 12px;
  }
  .kikuchi-notice .sep {
    display: inline-block;
    margin: 0 8px;
  }
  .kikuchi-notice .item-hours {
    display: none;
  }
}

/* ===== 2) LP用 お問い合わせバナー ===== */
.kikuchi-lp-cta {
  position: relative;
  background: linear-gradient(135deg, #990A2C 0%, #7A0822 100%);
  color: #fff;
  padding: 80px 24px;
  text-align: center;
  margin: 80px 0 0;
  border-top: 5px solid #FBBA00;
  border-bottom: 5px solid #FBBA00;
  overflow: hidden;
  font-family: 'Noto Sans JP', 'Yu Gothic', sans-serif;
}
.kikuchi-lp-cta::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 75% 50%, rgba(251, 186, 0, 0.14), transparent 65%);
  pointer-events: none;
}
.kikuchi-lp-cta__inner {
  position: relative;
  max-width: 820px;
  margin: 0 auto;
}
.kikuchi-lp-cta__pre {
  color: #FBBA00;
  font-size: 13px;
  letter-spacing: 0.3em;
  font-style: italic;
  font-weight: 600;
  margin: 0 0 10px;
  font-family: 'Cormorant Garamond', serif;
}
.kikuchi-lp-cta__title {
  font-size: 30px;
  font-family: 'Noto Serif JP', 'Yu Mincho', serif;
  font-weight: 700;
  margin: 0 0 18px;
  letter-spacing: 0.04em;
  line-height: 1.5;
}
.kikuchi-lp-cta__title em {
  color: #FBBA00;
  font-style: normal;
}
.kikuchi-lp-cta__lead {
  font-size: 15px;
  margin: 0 0 36px;
  line-height: 2;
  color: #f5e6c8;
}
.kikuchi-lp-cta__btns {
  display: flex;
  justify-content: center;
  gap: 18px;
  flex-wrap: wrap;
}
.kikuchi-lp-cta__btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 18px 34px;
  font-size: 16px;
  font-weight: 700;
  border-radius: 4px;
  text-decoration: none;
  letter-spacing: 0.05em;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  min-width: 220px;
  justify-content: center;
}
.kikuchi-lp-cta__btn--tel {
  background: #fff;
  color: #990A2C;
  border: 2px solid #fff;
}
.kikuchi-lp-cta__btn--mail {
  background: #FBBA00;
  color: #1a1a1a;
}
.kikuchi-lp-cta__btn--line {
  background: #06C755;
  color: #fff;
}
.kikuchi-lp-cta__btn:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.3);
}
.kikuchi-lp-cta__small {
  margin-top: 22px;
  font-size: 12px;
  color: #f5e6c8;
  letter-spacing: 0.05em;
}
@media (max-width: 768px) {
  .kikuchi-lp-cta { padding: 56px 18px; margin-top: 60px; }
  .kikuchi-lp-cta__title { font-size: 21px; }
  .kikuchi-lp-cta__lead { font-size: 13px; line-height: 1.85; }
  .kikuchi-lp-cta__btn {
    font-size: 14px;
    padding: 14px 22px;
    min-width: 180px;
  }
  .kikuchi-lp-cta__btns { gap: 12px; }
}

/* ===== 3) LP共通フッター ===== */
.kikuchi-lp-footer {
  background: #1a1a1a;
  color: #ccc;
  padding: 60px 24px 28px;
  font-family: 'Noto Sans JP', 'Yu Gothic', sans-serif;
  text-align: center;
  border-top: 4px solid #FBBA00;
}
.kikuchi-lp-footer__inner {
  max-width: 880px;
  margin: 0 auto;
}
.kikuchi-lp-footer__brand {
  font-size: 22px;
  color: #FBBA00;
  font-family: 'Noto Serif JP', 'Yu Mincho', serif;
  font-weight: 700;
  margin: 0 0 12px;
  letter-spacing: 0.06em;
}
.kikuchi-lp-footer__lead {
  font-size: 13px;
  color: #ccc;
  line-height: 1.95;
  margin: 0 0 28px;
}
.kikuchi-lp-footer__contact {
  display: flex;
  justify-content: center;
  gap: 32px;
  flex-wrap: wrap;
  margin: 0 0 24px;
  font-size: 14px;
  color: #fff;
}
.kikuchi-lp-footer__contact a {
  color: #fff;
  text-decoration: none;
  border-bottom: 1px dotted rgba(255, 255, 255, 0.3);
  padding-bottom: 1px;
  transition: color 0.2s;
}
.kikuchi-lp-footer__contact a:hover {
  color: #FBBA00;
}
.kikuchi-lp-footer__sns {
  margin: 24px 0 6px;
  font-size: 13px;
}
.kikuchi-lp-footer__sns a {
  color: #FBBA00;
  text-decoration: none;
  margin: 0 14px;
  font-weight: 600;
  border-bottom: 1px solid rgba(251, 186, 0, 0.3);
  padding-bottom: 1px;
}
.kikuchi-lp-footer__nav {
  margin: 28px 0 18px;
  font-size: 12px;
}
.kikuchi-lp-footer__nav a {
  color: #999;
  text-decoration: none;
  margin: 0 10px;
  letter-spacing: 0.04em;
}
.kikuchi-lp-footer__nav a:hover {
  color: #FBBA00;
}
.kikuchi-lp-footer__copyright {
  margin-top: 28px;
  padding-top: 20px;
  border-top: 1px solid #333;
  font-size: 11px;
  color: #888;
  letter-spacing: 0.04em;
  line-height: 1.7;
}
@media (max-width: 768px) {
  .kikuchi-lp-footer { padding: 48px 18px 20px; }
  .kikuchi-lp-footer__contact {
    flex-direction: column;
    gap: 10px;
    font-size: 13px;
  }
  .kikuchi-lp-footer__nav a {
    display: inline-block;
    margin: 4px 8px;
  }
}

/* ============================================================
 * 旧サイト本文反映用 追加コンポーネント
 * ============================================================ */

/* ===== 比較表（永住 vs 帰化 など） ===== */
.kikuchi-compare {
  width: 100%;
  border-collapse: collapse;
  margin: 32px 0;
  font-family: 'Noto Sans JP', sans-serif;
  background: #fff;
  border: 2px solid #1a1a1a;
}
.kikuchi-compare th,
.kikuchi-compare td {
  padding: 16px 18px;
  text-align: left;
  border: 1px solid #e5e0d8;
  font-size: 14px;
  line-height: 1.85;
  vertical-align: top;
}
.kikuchi-compare thead th {
  background: linear-gradient(135deg, #990A2C, #7A0822);
  color: #fff;
  font-family: 'Noto Serif JP', serif;
  font-weight: 700;
  font-size: 15px;
  text-align: center;
}
.kikuchi-compare tbody th {
  background: #f8f5f2;
  font-weight: 700;
  color: #1a1a1a;
  width: 28%;
  font-size: 14px;
}
.kikuchi-compare tbody tr:nth-child(even) td {
  background: #fafaf7;
}
@media (max-width: 720px) {
  .kikuchi-compare,
  .kikuchi-compare thead,
  .kikuchi-compare tbody,
  .kikuchi-compare tr,
  .kikuchi-compare th,
  .kikuchi-compare td { display: block; width: 100%; }
  .kikuchi-compare tbody th { background: #1a1a1a; color: #FBBA00; }
}

/* ===== 必要書類タブ（法人 / 個人 切替） ===== */
.kikuchi-doc-tabs {
  margin: 32px 0;
  font-family: 'Noto Sans JP', sans-serif;
}
.kikuchi-doc-tabs__group {
  background: #f8f5f2;
  border-left: 4px solid #990A2C;
  padding: 22px 24px;
  margin: 0 0 18px;
  border-radius: 0 4px 4px 0;
}
.kikuchi-doc-tabs__group h4 {
  font-family: 'Noto Serif JP', serif;
  font-size: 16px;
  color: #990A2C;
  font-weight: 700;
  margin: 0 0 14px;
  letter-spacing: 0.05em;
}
.kikuchi-doc-tabs__group ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 8px 18px;
}
.kikuchi-doc-tabs__group li {
  position: relative;
  padding: 6px 0 6px 22px;
  font-size: 14px;
  line-height: 1.7;
  color: #333;
}
.kikuchi-doc-tabs__group li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: #FBBA00;
  font-weight: 700;
}

/* ===== 採用注意点ボックス ===== */
.kikuchi-warn-box {
  background: linear-gradient(135deg, #fff8e6, #fef3d6);
  border: 2px solid #FBBA00;
  border-left: 6px solid #990A2C;
  padding: 28px 32px;
  margin: 32px 0;
  border-radius: 4px;
  position: relative;
  font-family: 'Noto Sans JP', sans-serif;
}
.kikuchi-warn-box::before {
  content: "⚠";
  position: absolute;
  top: 18px;
  right: 24px;
  font-size: 32px;
  color: #990A2C;
  opacity: 0.5;
}
.kikuchi-warn-box h4 {
  font-family: 'Noto Serif JP', serif;
  font-size: 17px;
  color: #990A2C;
  font-weight: 700;
  margin: 0 0 12px;
  letter-spacing: 0.04em;
}
.kikuchi-warn-box p,
.kikuchi-warn-box li {
  font-size: 14px;
  line-height: 1.95;
  color: #5a4018;
}
.kikuchi-warn-box ul { margin: 8px 0 0 22px; padding: 0; }

/* ===== 業種カテゴリカード（4種カード並び） ===== */
.kikuchi-cat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 20px;
  margin: 32px 0;
}
.kikuchi-cat-card {
  background: #fff;
  border: 1px solid #e5e0d8;
  border-top: 4px solid #990A2C;
  padding: 28px 24px;
  transition: transform 0.2s, box-shadow 0.2s;
}
.kikuchi-cat-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 28px rgba(153, 10, 44, 0.14);
}
.kikuchi-cat-card__no {
  display: inline-block;
  background: #FBBA00;
  color: #1a1a1a;
  font-family: 'Cormorant Garamond', serif;
  font-size: 13px;
  font-weight: 700;
  padding: 3px 10px;
  letter-spacing: 0.1em;
  margin: 0 0 12px;
}
.kikuchi-cat-card h4 {
  font-family: 'Noto Serif JP', serif;
  font-size: 18px;
  color: #1a1a1a;
  margin: 0 0 12px;
  font-weight: 700;
  line-height: 1.45;
}
.kikuchi-cat-card p {
  font-size: 13.5px;
  line-height: 1.85;
  color: #555;
  margin: 0;
}

/* ===== モデルケース（流れ説明） ===== */
.kikuchi-modelcase {
  background: #f8f5f2;
  padding: 36px 32px;
  margin: 32px 0;
  border-top: 4px solid #FBBA00;
  font-family: 'Noto Sans JP', sans-serif;
}
.kikuchi-modelcase h4 {
  font-family: 'Noto Serif JP', serif;
  font-size: 18px;
  color: #990A2C;
  font-weight: 700;
  margin: 0 0 18px;
  letter-spacing: 0.04em;
}
.kikuchi-modelcase ol {
  list-style: none;
  padding: 0;
  margin: 0;
  counter-reset: model-step;
}
.kikuchi-modelcase ol > li {
  counter-increment: model-step;
  position: relative;
  padding: 14px 0 14px 56px;
  border-bottom: 1px dashed #ccc;
  font-size: 14px;
  line-height: 1.85;
  color: #333;
}
.kikuchi-modelcase ol > li:last-child { border-bottom: none; }
.kikuchi-modelcase ol > li::before {
  content: "STEP " counter(model-step, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: 14px;
  font-family: 'Cormorant Garamond', serif;
  font-size: 12px;
  font-weight: 700;
  color: #990A2C;
  letter-spacing: 0.1em;
  background: #fff;
  padding: 2px 6px;
  border: 1px solid #990A2C;
}

/* ===== その他取扱業務リンク集 ===== */
.kikuchi-other-works {
  margin: 36px 0;
  padding: 28px;
  background: #fafaf7;
  border: 1px dashed #c8baa1;
  border-radius: 4px;
}
.kikuchi-other-works h3 {
  font-family: 'Noto Serif JP', serif;
  font-size: 17px;
  color: #1a1a1a;
  margin: 0 0 14px;
  font-weight: 700;
}
.kikuchi-other-works ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 6px 16px;
}
.kikuchi-other-works li {
  position: relative;
  padding: 4px 0 4px 18px;
  font-size: 13.5px;
  line-height: 1.7;
}
.kikuchi-other-works li::before {
  content: "▸";
  position: absolute;
  left: 0;
  color: #990A2C;
}
.kikuchi-other-works a {
  color: #444;
  text-decoration: none;
  border-bottom: 1px dotted transparent;
}
.kikuchi-other-works a:hover {
  color: #990A2C;
  border-bottom-color: #FBBA00;
}

/* ===== 解決事例カード（旧「このような問題を解決しております」） ===== */
.kikuchi-case-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
  margin: 32px 0;
}
.kikuchi-case-list__item {
  background: #fff;
  border: 1px solid #e5e0d8;
  border-left: 4px solid #990A2C;
  padding: 22px 24px;
  font-family: 'Noto Sans JP', sans-serif;
}
.kikuchi-case-list__item h4 {
  font-family: 'Noto Serif JP', serif;
  font-size: 15.5px;
  color: #990A2C;
  margin: 0 0 10px;
  font-weight: 700;
  line-height: 1.55;
}
.kikuchi-case-list__item p {
  font-size: 13.5px;
  line-height: 1.85;
  color: #444;
  margin: 0;
}

/* ============================================================
 * 全ページ共通 レスポンシブ強化（SP/タブレット）
 * 完璧なSP表示のため：はみ出し防止・可読性・タップ領域・改行制御
 * ============================================================ */

/* グローバル：横はみ出し完全防止 */
html, body {
  overflow-x: hidden !important;
  max-width: 100vw;
}
* { box-sizing: border-box; }
img, video, iframe, svg { max-width: 100%; height: auto; }
table { max-width: 100%; }

/* 日本語の改行制御：単語途中で切れない */
body, p, h1, h2, h3, h4, h5, h6, li, dt, dd, span, a {
  word-break: keep-all;
  overflow-wrap: anywhere;
  line-break: strict;
}

/* ===== タブレット 1024px ===== */
@media (max-width: 1024px) {
  .container, .l-inner, .c-content-wrap, .lp-sec__inner {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
}

/* ===== SP ハンバーガーメニュー（768px以下） ===== */
@media (max-width: 768px) {
  /* ハンバーガーボタン表示 */
  .header__hamburger {
    display: flex !important;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 44px;
    height: 44px;
    padding: 0;
    background: transparent;
    border: none;
    cursor: pointer;
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1001;
  }
  .header__hamburger span {
    display: block;
    width: 24px;
    height: 2px;
    background: #1a1a1a;
    margin: 0 auto;
    transition: transform 0.25s, opacity 0.2s;
  }
  .header__hamburger.is-active span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }
  .header__hamburger.is-active span:nth-child(2) {
    opacity: 0;
  }
  .header__hamburger.is-active span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }

  /* ヘッダー本体：高さ最適化、ハンバーガー分の余白 */
  header.header, .header {
    padding: 12px 16px !important;
    min-height: 60px !important;
    position: relative;
    display: flex !important;
    align-items: center;
    justify-content: flex-start;
  }
  .header__logo {
    margin: 0 !important;
    padding: 0 !important;
    max-width: calc(100% - 60px);
  }
  /* ロゴのaがタップターゲットrule(a{min-height:44px})で44px箱になりimgが上寄りに見える問題を中央化 (2026-07-03) */
  .header__logo a {
    display: flex !important;
    align-items: center !important;
  }
  .header__logo img {
    max-width: 200px !important;
    height: auto !important;
    width: auto !important;
  }

  /* ナビメニュー：右からスライドイン */
  .header__nav-wrap {
    position: fixed !important;
    top: 0;
    right: -100%;
    width: 85%;
    max-width: 360px;
    height: 100vh;
    height: 100dvh;
    background: #FBBA00 !important;
    z-index: 1000;
    overflow-y: auto;
    transition: right 0.3s ease-in-out;
    padding: 80px 24px 40px !important;
    box-shadow: -4px 0 20px rgba(0,0,0,0.15);
    display: block !important;
  }
  body.menu-open .header__nav-wrap {
    right: 0;
  }
  body.menu-open {
    overflow: hidden;
  }
  body.menu-open::after {
    content: '';
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.5);
    z-index: 999;
  }

  /* ナビリスト：縦並び */
  .header-nav__list {
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  .header-nav__list > li {
    width: 100% !important;
    border-bottom: 1px solid rgba(0,0,0,0.15);
  }
  .header-nav__list > li > a {
    display: flex !important;
    flex-direction: column;
    padding: 14px 8px !important;
    color: #1a1a1a !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    text-decoration: none;
  }
  .header-nav__list .en {
    display: block !important;
    font-size: 11px !important;
    color: #990A2C !important;
    letter-spacing: 0.15em;
    margin-bottom: 2px;
    font-style: italic;
  }
  .header-nav__list li.sp { display: list-item !important; }

  /* サブメニュー（kikuchi-submenu）も縦展開 */
  .header-nav__list .kikuchi-submenu {
    position: static !important;
    display: block !important;
    background: rgba(0,0,0,0.1) !important;
    box-shadow: none !important;
    border: none !important;
    margin: 0 0 8px !important;
    padding: 4px 0 !important;
    width: auto !important;
    min-width: 0 !important;
  }
  .header-nav__list .kikuchi-submenu li { width: 100%; }
  .header-nav__list .kikuchi-submenu a {
    color: #1a1a1a !important;
    background: transparent !important;
    padding: 10px 18px !important;
    font-size: 13.5px !important;
    border-bottom: none !important;
  }

  /* ヘッダー連絡先（電話・メール）はメニュー内の最後に */
  .header-contact {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    margin-top: 24px !important;
    padding-top: 18px !important;
    border-top: 2px solid rgba(0,0,0,0.2) !important;
  }
  .header-contact__tel.pc { display: none !important; }
  .header-contact__tel.hamburger {
    display: block !important;
    text-align: center;
    background: #fff;
    border-radius: 6px;
    padding: 12px !important;
  }
  .header-contact__tel.hamburger a {
    display: block;
    color: #990A2C !important;
    text-decoration: none;
  }
  .header-contact__tel.hamburger .num {
    display: block !important;
    font-size: 22px !important;
    font-weight: 700;
  }
  .header-contact__tel.hamburger .note {
    display: block;
    font-size: 11px !important;
    color: #1a1a1a !important;
    margin-top: 4px;
  }
  .header-contact__mail a {
    display: block !important;
    text-align: center;
    background: #990A2C !important;
    color: #fff !important;
    padding: 14px !important;
    border-radius: 6px;
    font-size: 15px !important;
  }
  .header-contact__mail a .icon { filter: brightness(0) invert(1) !important; }
}

/* ===== SP 768px以下 全般 ===== */
@media (max-width: 768px) {
  /* 文字サイズ最小14px保証（可読性） */
  body { font-size: 15px !important; line-height: 1.85; }
  p { font-size: 14px !important; line-height: 1.9 !important; }
  h1, .c-mv__ttl, .lp-mv__ttl { font-size: 24px !important; line-height: 1.5 !important; }
  h2, .lp-sec__ttl, .c-sec-ttl__ja { font-size: 21px !important; line-height: 1.55 !important; }
  h3 { font-size: 17px !important; line-height: 1.55 !important; }
  h4 { font-size: 15px !important; line-height: 1.6 !important; }

  /* リンク・ボタンのタップ領域（44x44px推奨） */
  a, button { min-height: 44px; }
  .lp-cta__btn, .kikuchi-lp-cta__btn,
  .header-contact__mail a, .header-cta {
    padding: 14px 22px !important;
    font-size: 15px !important;
    min-width: 44px;
  }

  /* セクション余白の最適化（詰めすぎ・空きすぎ防止） */
  section { padding: 50px 18px !important; }
  .lp-sec, .lp-sec--bg { padding: 50px 18px !important; }
  .lp-sec__head { margin-bottom: 30px !important; }
  .lp-mv { padding: 60px 18px 50px !important; }

  /* グリッドを1カラムに */
  .kikuchi-cat-grid,
  .kikuchi-case-list,
  .lp-points,
  .lp-strengths,
  .service-grid,
  .points-grid,
  [style*="grid-template-columns:repeat(auto-fit"],
  [style*="grid-template-columns:repeat(3"],
  [style*="grid-template-columns: repeat(3"],
  [style*="grid-template-columns:repeat(4"] {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }
  .kikuchi-cat-card,
  .lp-point,
  .lp-strength {
    padding: 24px 20px !important;
  }

  /* 巨大なinline幅指定をリセット */
  [style*="width:1200px"], [style*="width:1100px"], [style*="width:1000px"],
  [style*="width:900px"], [style*="width:880px"], [style*="width:800px"] {
    width: 100% !important;
    max-width: 100% !important;
  }
  [style*="max-width:1200px"], [style*="max-width:1100px"], [style*="max-width:1000px"],
  [style*="max-width:900px"], [style*="max-width:880px"], [style*="max-width:800px"] {
    max-width: 100% !important;
  }

  /* テーブルは横スクロール */
  table {
    display: block;
    overflow-x: auto;
    white-space: nowrap;
    -webkit-overflow-scrolling: touch;
  }
  /* 比較表・料金表は縦スタック */
  .kikuchi-compare,
  .kikuchi-compare thead,
  .kikuchi-compare tbody,
  .kikuchi-compare tr,
  .lp-price, .lp-price tbody, .lp-price tr {
    display: block !important;
    width: 100% !important;
    white-space: normal !important;
  }
  .kikuchi-compare th, .kikuchi-compare td,
  .lp-price th, .lp-price td {
    display: block !important;
    width: 100% !important;
    border-right: none !important;
    padding: 10px 12px !important;
    font-size: 13.5px !important;
    line-height: 1.7 !important;
  }
  .kikuchi-compare thead { display: none !important; }

  /* 数字バッジ・円形要素のSP適応 */
  .kikuchi-cat-card__no, .lp-point__no { font-size: 22px !important; }

  /* MV/hero内の中央寄せテキスト */
  .lp-mv__ttl, .c-mv__ttl {
    word-break: keep-all;
    overflow-wrap: anywhere;
    padding: 0 8px;
  }

  /* CTA系の3ボタンを縦並びに */
  .kikuchi-lp-cta__btns, .lp-cta__btns {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 10px !important;
  }
  .kikuchi-lp-cta__btn, .lp-cta__btn {
    width: 100% !important;
    min-width: 0 !important;
    justify-content: center !important;
  }

  /* TOPの「5つの円」(POINT 01-04)バッジ：2列に */
  .kikuchi-mv-badges {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 14px !important;
    padding: 0 8px;
    justify-items: center;
  }
  .kikuchi-mv-badges .mv-badge__ring {
    width: 110px !important;
    height: 110px !important;
  }

  /* footer内のグリッドを縦に */
  .footer-grid, .footer-head, .kikuchi-lp-footer__inner {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
    text-align: center;
  }
  .kikuchi-lp-footer__contact {
    flex-direction: column !important;
    gap: 8px !important;
    font-size: 13.5px !important;
  }

  /* about-greeting レイアウト */
  .kikuchi-greeting__layout {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
    text-align: center;
  }
  .kikuchi-greeting__layout figure { max-width: 220px; margin: 0 auto !important; }

  /* インライン margin/padding 大きすぎる箇所の調整 */
  [style*="padding:80px"], [style*="padding:90px"], [style*="padding:100px"], [style*="padding:120px"] {
    padding: 50px 18px !important;
  }
  [style*="margin:40px 0"], [style*="margin:50px 0"], [style*="margin:60px 0"] {
    margin: 30px 0 !important;
  }

  /* form */
  input[type="text"], input[type="email"], input[type="tel"], textarea {
    font-size: 16px !important; /* iOS Safari ズーム防止 */
    width: 100% !important;
    padding: 12px 14px !important;
  }

  /* 大きすぎるinline font-size を強制縮小 */
  [style*="font-size:42px"], [style*="font-size:46px"], [style*="font-size:48px"] { font-size: 26px !important; }
  [style*="font-size:38px"], [style*="font-size:40px"] { font-size: 22px !important; }
  [style*="font-size:32px"], [style*="font-size:36px"] { font-size: 20px !important; }
  [style*="font-size:28px"], [style*="font-size:30px"] { font-size: 19px !important; }

  /* 業務一覧（service/index など）2列 */
  .c-sites--services, .c-sites {
    grid-template-columns: 1fr !important;
  }

  /* LP「ご依頼の流れ」縦並び */
  .lp-flow {
    grid-template-columns: 1fr !important;
  }
  .lp-flow__item {
    grid-template-columns: 50px 1fr !important;
    padding: 16px 18px !important;
    gap: 12px !important;
  }
  .lp-flow__no {
    width: 36px !important;
    height: 36px !important;
    font-size: 16px !important;
  }
  .lp-flow__txt { font-size: 14px !important; }

  /* problem の事例カード */
  .p-cases__list, .solution-slider__track {
    grid-template-columns: 1fr !important;
    overflow-x: auto;
  }
  .solution-card { min-width: 260px; }

  /* faq アコーディオン */
  .kikuchi-faq__item summary, .lp-faq summary {
    padding: 14px 16px !important;
    font-size: 14px !important;
  }
  .kikuchi-faq__item .kikuchi-faq__body, .lp-faq__body {
    padding: 0 16px 16px !important;
    font-size: 14px !important;
  }
}

/* ===== SP 480px以下（小型スマホ） ===== */
@media (max-width: 480px) {
  body { font-size: 14px !important; }
  p { font-size: 13.5px !important; }
  h1, .c-mv__ttl, .lp-mv__ttl { font-size: 21px !important; }
  h2, .lp-sec__ttl { font-size: 18px !important; }
  h3 { font-size: 16px !important; }

  /* MV padding 微調整 */
  .lp-mv, .c-mv { padding: 50px 14px 40px !important; }

  /* TOP MVの「5つの円」を2列キープ（はみ出し防止） */
  .kikuchi-mv-badges .mv-badge__ring {
    width: 90px !important;
    height: 90px !important;
  }
  .kikuchi-mv-badges .mv-badge__title {
    font-size: 10px !important;
  }
  .kikuchi-mv-badges .mv-badge__caption {
    font-size: 8px !important;
  }
}

/* ===== ヘッダー全体：CONTACTゴールドで統一（全ページ共通） ===== */
/* ヘッダー全体をゴールドbgに */
header.header,
.header {
  background: #FBBA00 !important;
}

/* ナビ：黒文字（ゴールドbg上で可読性◎） */
.header-nav__list > li > a {
  color: #1a1a1a !important;
  transition: color 0.2s ease;
}
.header-nav__list > li > a:hover {
  color: #990A2C !important;
}

/* ナビ英字（Service / About 等）：AS Roma深紅 */
.header-nav__list .en {
  color: #990A2C !important;
  font-weight: 700 !important;
}
.header-nav__list > li > a:hover .en {
  color: #fff !important;
}

/* 電話番号：深紅のまま可読性◎（ゴールド×深紅のAS Roma配色） */
.header-contact__tel.pc a {
  color: #990A2C !important;
  font-weight: 700 !important;
  font-size: 22px !important;
}
.header-contact__tel.pc .note {
  color: #1a1a1a !important;
  font-weight: 600 !important;
}

/* CONTACTボタン：ヘッダーと同色ゴールド + 深紅文字で一体化 */
.header-contact__mail a {
  background: #FBBA00 !important;
  color: #990A2C !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  border: none !important;
  transition: background 0.2s ease, color 0.2s ease, transform 0.15s ease !important;
}
.header-contact__mail a:hover {
  background: #990A2C !important;
  color: #fff !important;
  transform: translateY(-1px);
}
.header-contact__mail a .icon {
  filter: brightness(0) saturate(100%) invert(13%) sepia(85%) saturate(3500%) hue-rotate(335deg) brightness(85%) contrast(110%) !important;
}
.header-contact__mail a:hover .icon {
  filter: brightness(0) invert(1) !important;
}

/* サブメニュー（kikuchi-submenu）はゴールドの上で被るので白bgに調整 */
.kikuchi-submenu {
  background: #1a1a1a !important;
}
.kikuchi-submenu a {
  color: #fff !important;
}

/* ===== ヘッダー電話番号エリア：菊池ブランド色適用 ===== */
.header-contact__tel.pc {
  text-align: right;
}
.header-contact__tel.pc a {
  color: #990A2C !important;
  font-weight: 700 !important;
  font-size: 22px !important;
  letter-spacing: 0.02em;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  text-decoration: none;
  line-height: 1.2;
}
.header-contact__tel.pc a .icon {
  width: 18px;
  height: auto;
  flex-shrink: 0;
}
.header-contact__tel.pc .note {
  display: block;
  color: #666 !important;
  font-size: 11px !important;
  letter-spacing: 0.04em;
  margin-top: 4px;
  font-family: 'Noto Sans JP', sans-serif;
}

/* ===== about/index 「事務所について」見出し 線かぶり修正 ===== */
.about-greeting-profile__ttl {
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
  font-family: 'Noto Serif JP', 'Yu Mincho', serif !important;
  font-weight: 600 !important;
}
.about-greeting-profile__ttl::after {
  position: static !important;
  top: auto !important;
  left: auto !important;
  flex: 1 !important;
  background: #818283 !important;
  height: 1px !important;
  width: auto !important;
  content: "" !important;
}


/* ===== 代表写真差し替え (2026-05-12) ===== */
img[src*="assets/img/representative.png"] {
  content: url("https://teamtest.xsrv.jp/kikuchi/wp-content/uploads/2026/05/representative_new.png") !important;
}


/* ===== ヘッダーナビ 7項目構成 (2026-05-12) ===== */
/* Solution/Price/Flow を非表示 */
html body .header-nav__list > li:has(a[href$="/problem/"]),
html body .header-nav__list > li:has(a[href$="/price/"]),
html body .header-nav__list > li:has(a[href$="/flow/"]),
html body .header-nav__list > li:has(a[href$="problem/index.html"]),
html body .header-nav__list > li:has(a[href$="price/index.html"]),
html body .header-nav__list > li:has(a[href$="flow/index.html"]) {
  display: none !important;
}
/* Privacy Policy を非表示 (FAQページと揃える) */
html body .header-nav__list > li:has(a[href$="/privacy/"]),
html body .header-nav__list > li:has(a[href$="privacy/index.html"]) {
  display: none !important;
}
/* TOP を PC でも表示 */
html body .header-nav__list > li.sp {
  display: list-item !important;
  height: 100% !important;
}
/* ナビ7項目で収めるレイアウト調整 */
html body .header-nav__list > li > a {
  font-size: 13px !important;
  padding: 0 10px !important;
  letter-spacing: 0.04em !important;
}
html body .header-nav__list .en {
  font-size: 16px !important;
}
/* ロゴエリア圧縮 */
html body .header__logo img { width: 150px !important; height: auto !important; }
html body .header-contact__tel.pc a { font-size: 18px !important; letter-spacing: 0.01em !important; }
html body .header-contact__tel.pc .note { font-size: 11px !important; }
html body .header-contact__mail a { padding: 0 16px !important; font-size: 13px !important; }
/* 全体パディング詰め */
html body .header { padding-left: 16px !important; padding-right: 0 !important; }

@media (max-width: 1500px) {
  html body .header-nav__list > li > a {
    font-size: 11px !important;
    padding: 0 6px !important;
  }
  html body .header-nav__list .en { font-size: 13px !important; }
  html body .header-contact__tel.pc a { font-size: 15px !important; }
  html body .header-contact__tel.pc .note { font-size: 10px !important; }
}
@media (max-width: 1200px) {
  html body .header__logo img { width: 110px !important; }
  html body .header-nav__list > li > a {
    font-size: 10px !important;
    padding: 0 4px !important;
  }
}


/* ===== 業務カード 背景画像に薄い黒マスクを追加 (可読性向上) 2026-05-13 ===== */
.service-list-item {
  position: relative !important;
}
.service-list-item::before {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  background: rgba(0, 0, 0, 0.45) !important;
  pointer-events: none !important;
  z-index: 1 !important;
}
.service-list-item > .inner,
.service-list-item .service-list-item__wrap {
  position: relative !important;
  z-index: 2 !important;
}
.service-list-item .service-list-item__ttl .en,
.service-list-item .service-list-item__ttl .ja,
.service-list-item .service-list-item__desc {
  color: #fff !important;
  text-shadow: 0 1px 6px rgba(0,0,0,0.4);
}


/* ===== Aboutページ 3ボタンを横中央配置 2026-05-13 ===== */
.about-menu-list {
  justify-content: center !important;
  gap: 24px !important;
}
.about-menu-list__item:empty {
  display: none !important;
}


/* ===== モバイルメニュー時のオーバーレイ クリック貫通 2026-05-13 ===== */
body.menu-open::before,
body.menu-open::after {
  pointer-events: none !important;
}
/* メニュー閉じる用のクリック透過オーバーレイは別途用意するなら下記
body.menu-open .header__nav-wrap { pointer-events: auto !important; } */




/* ===== mobile-menu-mask-fix-20260513 ===== */
/* 全てモバイル限定で適用 */
@media (max-width: 1024px) {
  /* ハンバーガー開時の黒オーバーレイ消去 */
  body.menu-open::before,
  body.menu-open::after {
    background: transparent !important;
    display: none !important;
  }

  /* メニュー内 .pc 電話カードは重複なので非表示 */
  .header__nav-wrap .header-contact__tel.pc {
    display: none !important;
  }

  /* メニュー内 .hamburger 電話カード ブラッシュアップ */
  .header__nav-wrap .header-contact__tel.hamburger {
    display: none !important;
  }
  body.menu-open .header__nav-wrap .header-contact__tel.hamburger {
    display: block !important;
    margin: 24px 20px 12px !important;
    padding: 18px 16px !important;
    background: #fff !important;
    border-radius: 12px !important;
    box-shadow: 0 6px 20px rgba(0,0,0,0.18) !important;
    text-align: center !important;
    width: auto !important;
    height: auto !important;
  }
  .header__nav-wrap .header-contact__tel.hamburger a {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    color: #990A2C !important;
    text-decoration: none !important;
    line-height: 1.1 !important;
    width: 100% !important;
  }
  .header__nav-wrap .header-contact__tel.hamburger .num {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    font-size: 19px !important;
    font-weight: 800 !important;
    letter-spacing: 0.02em !important;
    color: #990A2C !important;
    width: 100% !important;
    text-align: center !important;
  }
  .header__nav-wrap .header-contact__tel.hamburger .num .icon {
    display: inline-block !important;
    width: 15px !important;
    height: 14px !important;
    background: url('https://teamtest.xsrv.jp/kikuchi/wp-content/themes/kikuchi-theme/assets/img/icon_phone_b.svg') center/contain no-repeat !important;
    filter: brightness(0) saturate(100%) invert(13%) sepia(85%) saturate(4500%) hue-rotate(335deg) brightness(85%) contrast(110%) !important;
    flex-shrink: 0 !important;
  }
  .header__nav-wrap .header-contact__tel.hamburger .note {
    display: block !important;
    margin-top: 6px !important;
    font-size: 12px !important;
    color: #555 !important;
    letter-spacing: 0.04em !important;
    line-height: 1.5 !important;
    font-weight: 500 !important;
  }

  /* メニュー内 CONTACT ボタン */
  .header__nav-wrap .header-contact__mail {
    display: none !important;
  }
  body.menu-open .header__nav-wrap .header-contact__mail {
    display: block !important;
    margin: 0 20px 20px !important;
    width: auto !important;
    height: auto !important;
  }
  .header__nav-wrap .header-contact__mail a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    width: 100% !important;
    height: auto !important;
    padding: 16px 20px !important;
    background: #990A2C !important;
    color: #fff !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em !important;
    text-decoration: none !important;
    border-radius: 999px !important;
    box-shadow: 0 6px 20px rgba(153,10,44,0.35) !important;
    transition: transform .15s ease, box-shadow .15s ease !important;
  }
  .header__nav-wrap .header-contact__mail a .icon {
    display: inline-block !important;
    width: 18px !important;
    height: 18px !important;
    background: url('https://teamtest.xsrv.jp/kikuchi/wp-content/themes/kikuchi-theme/assets/img/icon_mail.svg') center/contain no-repeat !important;
    filter: brightness(0) invert(1) !important;
  }
}

/* ===== immigration-spacing-fix-20260513 ===== */
@media (max-width: 768px) {
  .application-list {
    margin-top: 24px !important;
    padding-top: 24px !important;
  }
  .application-service,
  .application-cat {
    padding-top: 32px !important;
  }
}


/* ===== application-list-global-responsive-20260513 ===== */
/* 全 service-* ページ共通: application-list を SP で 1列縦並びに */
@media (max-width: 768px) {
  .application-list__item:first-child {
    display: none !important;
  }
  .application-list__item {
    display: block !important;
    grid-template-columns: 1fr !important;
  }
  .application-list__item-ttl {
    padding: 16px 20px !important;
    font-size: 17px !important;
    text-align: center !important;
    background: #1a1a1a !important;
    color: #fff !important;
  }
  .application-list__item-desc {
    padding: 18px 20px 22px !important;
    line-height: 1.85 !important;
    font-size: 14.5px !important;
    background: #fff !important;
    color: #444 !important;
  }
  .application-list__list {
    border-radius: 12px !important;
    overflow: hidden !important;
    box-shadow: 0 6px 20px rgba(0,0,0,0.1) !important;
  }
  .application-support {
    display: none !important;
  }
  .application-list,
  .application-service,
  .application-cat {
    margin-top: 24px !important;
    padding-top: 24px !important;
  }
}

/* ===== gothic-everywhere-20260513 ===== */
/* 全ページ全要素をゴシック体に統一 */
html body,
html body * {
  font-family: "Noto Sans JP", "Yu Gothic", "Hiragino Kaku Gothic ProN", "Meiryo", "MS PGothic", sans-serif !important;
}
/* アイコンフォント類は除外 */
.fa, .fas, .far, .fab, .fal, .fad,
[class*="fa-"]:not(.fa-icon-bg),
.material-icons,
.dashicons,
.icon-font {
  font-family: inherit !important;
}



/* ===== footer-tel-fit-20260513 ===== */
/* フッター電話カードが幅に収まるようフォント縮小＋余白調整 */
.footer-contact__tel {
  min-width: 260px !important;
  padding: 14px 20px !important;
  box-sizing: border-box !important;
}
.footer-contact__tel .num {
  font-size: 24px !important;
  letter-spacing: 0.01em !important;
  white-space: nowrap !important;
}
.footer-contact__tel .note {
  font-size: 11px !important;
  white-space: nowrap !important;
}
@media (max-width: 1024px) {
  .footer-contact__tel .num {
    font-size: 22px !important;
  }
}
@media (max-width: 768px) {
  .footer-contact__tel {
    min-width: 0 !important;
    width: 100% !important;
  }
  .footer-contact__tel .num {
    font-size: 22px !important;
  }
}



/* ===== mv-90percent-20260513 ===== */
/* MV内の文字を約90%に縮小（h1とお任せdivのみピンポイント） */
.kikuchi-mv-overlay h1 {
  font-size: 30px !important;
}
.kikuchi-mv-overlay > div[style*="font-size:48px"] {
  font-size: 43px !important;
}
/* 上部キャプション「ibaraki.visa-nouchi 茨城県を中心に〜」 */
.kikuchi-mv-overlay > div[style*="font-size:14px"] {
  font-size: 12.5px !important;
}
/* 「菊池行政書士事務所 代表 菊池 俊洋」 */
.kikuchi-mv-overlay > div[style*="background:#990A2C"] {
  font-size: 12.5px !important;
}
@media (max-width: 1280px) {
  .kikuchi-mv-overlay h1 {
    font-size: 26px !important;
  }
  .kikuchi-mv-overlay > div[style*="font-size:48px"] {
    font-size: 38px !important;
  }
}


/* ===== mv-fit-content-20260513 ===== */
/* MV内 余白を縮めて全部画面内に収める */
@media (min-width: 1025px) {
  .kikuchi-mv-overlay {
    padding: 20px 24px !important;
  }
  .kikuchi-mv-overlay > div[style*="font-size:48px"] {
    margin-bottom: 18px !important;
  }
  .kikuchi-mv-overlay h1 {
    margin: 8px 0 8px !important;
  }
}

/* LPサブメニューのホバー文字色をTOPと統一（背景ボルドー＋文字ゴールド） */
.kikuchi-submenu > li > a:hover { background:#990A2C !important; color:#FBBA00 !important; }

/* LPサブメニューの整形をTOPと統一（高さ自動・暗箱フル表示） */
.kikuchi-submenu { height: auto !important; padding: 6px 0 !important; }
.kikuchi-submenu > li { height: auto !important; margin: 0 !important; width: 100% !important; display: block !important; position: static !important; }
.kikuchi-submenu > li > a { display: block !important; height: auto !important; background: transparent !important; padding: 11px 18px !important; color: #fff !important; font: 400 13px/1.4 "Noto Sans JP", sans-serif !important; letter-spacing: .02em !important; border-bottom: 1px solid #2e2e2e !important; transition: background .15s !important; }

/* LP MVをヘッダーに被らないよう調整（PCのみ・ヘッダーfixed 100px回避） */
@media (min-width: 768px) {
  .lp-mv { padding-top: 124px !important; }
}
