@charset "UTF-8";

/*!
Theme Name: Cocoon Child
Description: Cocoon専用の子テーマ
Theme URI: https://wp-cocoon.com/
Author: わいひら
Author URI: https://nelog.jp/
Template:   cocoon-master
Version:    1.1.3
*/

/************************************
** 子テーマ用のスタイルを書く
************************************/
/*必要ならばここにコードを書く*/

/* 見出しリセット */
/* 見出し2 */
.article h2{
background:none;
padding: 0;
}

/* 見出し3 */
.article h3{
border-top:none;
border-bottom:none;
border-left:none;
border-right:none;
padding: 0;
}

/* 見出し4 */
.article h4{
border-top:none;
border-bottom:none;
padding: 0;
}

/* 見出し5 */
.article h5{
border-bottom:none;
padding: 0;
}

/* 見出し6 */
.article h6{
border-bottom:none;
padding: 0;
}

/*　見出しH2~H6の変更　*/
.article h2 {
  margin: 50px 0 25px;
  padding-left: 20px;
  border-left: 5px solid #003366;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.5;
  color: #222222;
}

.article h3 {
  margin: 35px 0 15px;
  padding-bottom: 6px;
  border-bottom: 2px solid #d6e3ee;
  font-size: 1.3rem;
  font-weight: 700;
  line-height: 1.5;
  color: #003366;
}

.article h4 {
  margin: 30px 0 10px;
  font-size: 1.1rem;
  font-weight: 700;
  line-height: 1.5;
  color: #003366;
}

.article h5 {
color: #e95506; /*文字の色を変更*/
margin-top: 40px;
border-bottom: solid 2px #e95506; /*線の色を変更*/
}
.article h6 {
color: #003366; /*文字の色を変更*/
margin-top: 40px;
border-bottom: solid 2px #003366; /*線の色を変更*/
}

/*******************************
* 目次
********************************/
.toc {
    border: 1px solid #666;
    font-size: 0.9em;
    line-height: 1.5;
    padding: 0;
    margin-bottom: 1em;
    display: table;
    margin-left: auto;
    margin-right: auto;
}
.toc-title {
    background: #666; /*目次タイトルの背景色*/
    color: #fff; /*目次タイトルの文字色*/
    font-size: 1.1em;
    text-align: center;
    padding: 6px 16px;
}
.toc-title::before {
    font-family: FontAwesome;
    content: '\f0ca'; /*目次タイトルのアイコン*/
    margin-right: 0.5em;
}
.toc-content {
    padding: 8px;
}
.toc ul li a, .toc ol li a {
    display: block;
    border-bottom: 1px dashed #666; /*h3以下の下側ボーダー*/
    margin-left: -20px;
    padding-left: 20px;
}
.toc ul.toc-list>li, .toc ol.toc-list>li {
    margin-top: 1em;
}
.toc ul.toc-list>li>a, .toc ol.toc-list>li>a {
    border-bottom: 2px solid #666; /*h2の下側ボーダー*/
    font-weight: bold;
}

/*******************************
* 固定ページ記事タイトル非表示
********************************/
.type-page h1,
.type-page 
.post-meta{
  display:none;
}

/*******************************
* 固定ページ日付非表示
********************************/
.post-2 .date-tags,
.post-3 .date-tags,
.post-10 .date-tags {
display: none;
}
/************************************
** レスポンシブデザイン用のメディアクエリ
************************************/
/*1023px以下*/
@media screen and (max-width: 1023px){
  /*必要ならばここにコードを書く*/
}

/*834px以下*/
@media screen and (max-width: 834px){
  /*必要ならばここにコードを書く*/
}

/*480px以下*/
@media screen and (max-width: 480px){
  /*必要ならばここにコードを書く*/
}

/************************************
****　ヘッダーロゴ
************************************/
@media screen and (max-width: 1023px){
.container {
margin-top:50px;
}
}
.logo-image {
padding:0;
margin-left:1em;/*ロゴ画像が左に詰まってしまう場合は、ここの数字を0.1刻みで大きくしてみてください*/
margin-top:1em;
margin-bottom:1em;
max-height:200px;/*大きなロゴ画像を使いたい方は、ここの数字を大きくしてみてください*/
}
.logo {/*ロゴ画像を中央に配置したい方は、以下3行を削除*/
text-align: left;
}
.logo-header img {
box-shadow: none!important;
}
/************************************
**ヘッダー　モバイル表示
************************************/
@media (max-width:1023px){
.header-container {
display:none;
}
img.site-logo-image{
max-height:80px;
padding:2px 0 0 5px;
box-shadow:none;
}
.mobile-header-menu-buttons {/*ヘッダー背景色を変えるときはここを変更*/
background: #fff;
}
}

/************************************
****　モバイル表示　ヘッダーメニュー・検索アイコン
************************************/
.mobile-menu-buttons{
height:50px;
box-shadow: none;
}
.mobile-menu-buttons > li {
padding-top:0;
}
.menu-button{
margin: auto;
}
.mobile-menu-buttons .menu-button:hover{
background-color:white;
}
span.fas.fa-search::before{
color:#90C31F;/*検索マーク色変更はこちら*/
margin-left:1em;
}
span.fas.fa-bars::before{
color:#90C31F;/*ハンバーガーメニュー色変更はこちら*/
margin-right:1em;
}
.navi-menu-caption.menu-caption,.home-menu-caption.menu-caption,.search-menu-caption.menu-caption,.top-menu-caption.menu-caption,.sidebar-menu-caption.menu-caption{
display:none;
}

.logo-header {
  text-align: center;
}

.logo-header img {
  display: inline-block;
}

/* 第1セクション全体 */
.loan-clear-section {
  background: #fff;
  padding: 40px 5%;
  line-height: 1.8;
  font-size: 16px;
}

/* トラブルボックス */
.trouble-box {
  background: #f5f8ff;
  border-left: 4px solid #1A5AC5;
  padding: 15px 15px 10px;
  margin: 25px 0;
  border-radius: 6px;
}

.trouble-box .trouble-title {
  font-weight: bold;
  color: #1A5AC5;
  margin-bottom: 10px;
}

.trouble-box ul {
  margin: 0;
  padding-left: 1.2em;
}

.trouble-box li {
  list-style: disc;
  margin-bottom: 6px;
}

/* CTAボタン */
.sp-cta-btn a {
  display: block;
  width: 90%;
  margin: 30px auto 10px;
  background-color: #06C755; /* LINEグリーン */
  color: #fff;
  text-align: center;
  font-weight: bold;
  font-size: 1.1rem;
  border-radius: 8px;
  padding: 14px 0;
  text-decoration: none;
  box-shadow: 0 3px 6px rgba(0,0,0,0.2);
  transition: opacity 0.3s ease;
}

.sp-cta-btn a:hover {
  opacity: 0.9;
}

/* 第2セクション全体 */
.need-cancel-section {
  background: #f9fbff;
  padding: 40px 5%;
  line-height: 1.8;
  font-size: 16px;
}

/* ケースリスト */
.cancel-cases {
  list-style: none;
  margin: 25px 0;
  padding: 0;
}

.cancel-cases li {
  display: flex;
  align-items: flex-start;
  background: #fff;
  border: 1px solid #d8e4ff;
  border-radius: 8px;
  padding: 12px 15px;
  margin-bottom: 12px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

.cancel-cases .icon {
  font-size: 1.8rem;
  margin-right: 10px;
  flex-shrink: 0;
}

.cancel-cases .case-text strong {
  color: #1A5AC5;
}

.cancel-cases .case-text {
  font-size: 0.95rem;
}

/* CTAボタン（第1セクションと共通） */
.sp-cta-btn a {
  display: block;
  width: 90%;
  margin: 30px auto 10px;
  background-color: #06C755; /* LINEグリーン */
  color: #fff;
  text-align: center;
  font-weight: bold;
  font-size: 1.1rem;
  border-radius: 8px;
  padding: 14px 0;
  text-decoration: none;
  box-shadow: 0 3px 6px rgba(0,0,0,0.2);
  transition: opacity 0.3s ease;
}

.sp-cta-btn a:hover {
  opacity: 0.9;
}

.flow-section {
  background: #fff;
  padding: 40px 5%;
  line-height: 1.8;
  font-size: 16px;
}

.flow-steps {
  margin: 25px 0;
}

.step-item {
  display: flex;
  align-items: flex-start;
  background: #f5f8ff;
  border-left: 4px solid #1A5AC5;
  border-radius: 8px;
  padding: 15px;
  margin-bottom: 15px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

.step-icon {
  background: #1A5AC5;
  color: #fff;
  font-weight: bold;
  font-size: 1rem;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  text-align: center;
  line-height: 28px;
  margin-right: 10px;
  flex-shrink: 0;
}

.step-text {
  font-size: 0.95rem;
}

.step-text strong {
  color: #1A5AC5;
}

.sp-cta-btn a {
  display: block;
  width: 90%;
  margin: 30px auto 10px;
  background-color: #06C755;
  color: #fff;
  text-align: center;
  font-weight: bold;
  font-size: 1.1rem;
  border-radius: 8px;
  padding: 14px 0;
  text-decoration: none;
  box-shadow: 0 3px 6px rgba(0,0,0,0.2);
  transition: opacity 0.3s ease;
}

.sp-cta-btn a:hover {
  opacity: 0.9;
}

/* 第4セクション全体 */
.price-section {
  background: #f9fbff;
  padding: 40px 5% 24px;
  line-height: 1.8;
  font-size: 16px;
}

/* 料金カード（表の代替） */
.price-cards {
  display: grid;
  gap: 10px;
  margin: 18px 0 10px;
}

.price-card {
  background: #fff;
  border: 1px solid #dfe7ff;
  border-radius: 12px;
  padding: 12px 14px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.04);
}

.pc-title {
  font-size: 0.92rem;
  color: #1A5AC5;
  font-weight: 700;
  margin-bottom: 4px;
  line-height: 1.4;
}

.pc-value {
  font-size: 1.02rem;
  font-weight: 700;
  color: #111;
  line-height: 1.5;
}

/* 注意書き */
.price-notes ul {
  margin: 15px 0 20px;
  padding-left: 1.2em;
}

.price-notes li {
  list-style: disc;
  font-size: 0.9rem;
  color: #555;
  margin-bottom: 5px;
}

/* CTAボタン（LINE／フォーム） */
.sp-cta-btn a {
  display: block;
  width: 90%;
  margin: 20px auto 0;
  color: #fff;
  text-align: center;
  font-weight: bold;
  font-size: 1.1rem;
  border-radius: 8px;
  padding: 14px 0;
  text-decoration: none;
  box-shadow: 0 3px 6px rgba(0,0,0,0.2);
  transition: opacity 0.3s ease;
}

.sp-cta-btn a:hover {
  opacity: 0.9;
}

.sp-cta-btn a[href*="line.me"] {
  background-color: #06C755; /* LINEグリーン */
}

.sp-cta-btn.form a {
  background-color: #1A5AC5; /* ブルー系 */
}

/* 第5セクション 共通 */
.trust-section{
  background:#fff;
  padding:40px 5% 28px;
  line-height:1.8;
  font-size:16px;
}

.mt40{ margin-top:40px; }

/* FAQ（details） */
.faq-list details{
  background:#f5f8ff;
  border:1px solid #dfe7ff;
  border-radius:10px;
  padding:12px 14px;
  margin-bottom:10px;
}
.faq-list summary{
  font-weight:700;
  cursor:pointer;
  list-style:none;
}
.faq-list summary::-webkit-details-marker{ display:none; }
.faq-list summary::after{
  content:"＋";
  float:right;
  color:#1A5AC5;
  font-weight:700;
}
.faq-list details[open] summary::after{ content:"−"; }
.faq-a{
  margin-top:10px;
  padding-top:8px;
  border-top:1px dashed #cfe0ff;
  font-size:.95rem;
}

/* 司法書士プロフィール */
.profile-card{
  display:flex;
  gap:12px;
  background:#f9fbff;
  border:1px solid #dfe7ff;
  border-radius:12px;
  padding:14px;
  box-shadow:0 2px 4px rgba(0,0,0,.04);
  margin-top:10px;
}
.prof-img{
  width:92px;
  height:92px;
  border-radius:50%;
  overflow:hidden;
  flex-shrink:0;
  background:#fff;
  border:1px solid #e6eeff;
}
.prof-img img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.prof-body{ font-size:.95rem; }
.prof-name{ margin:0 0 6px; color:#111; }
.prof-points{
  margin:0 0 8px 1.1em;
  padding:0;
}
.prof-points li{ list-style:disc; }
.prof-note{ margin:0; color:#333; }

/* CTA（既存と統一） */
.sp-cta-btn a{
  display:block;
  width:90%;
  margin:20px auto 0;
  color:#fff;
  text-align:center;
  font-weight:bold;
  font-size:1.1rem;
  border-radius:8px;
  padding:14px 0;
  text-decoration:none;
  box-shadow:0 3px 6px rgba(0,0,0,.2);
  transition:opacity .3s ease;
}
.sp-cta-btn a:hover{ opacity:.9; }
.sp-cta-btn a[href*="line.me"]{ background:#06C755; }
.sp-cta-btn.form a{ background:#1A5AC5; }

/* スマホ最適（768px以下） */
@media (max-width:768px){
  .profile-card{ flex-direction:row; }
}

/* 第6セクション：事務所案内 */
.office-section {
  background: #f5f8ff;
  padding: 40px 5% 50px;
  line-height: 1.8;
  font-size: 16px;
}

/* 事務所情報ボックス */
.office-box {
  background: #fff;
  border: 1px solid #dfe7ff;
  border-radius: 12px;
  padding: 20px 18px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.05);
  max-width: 600px;
  margin: 0 auto;
}

.office-box dl {
  margin: 0;
}

.office-box dt {
  font-weight: bold;
  color: #1A5AC5;
  margin-top: 12px;
  font-size: 0.95rem;
}

.office-box dd {
  margin: 2px 0 8px 0;
  padding-left: 0;
  font-size: 0.95rem;
  color: #111;
}

.office-box a {
  color: #1A5AC5;
  text-decoration: underline;
  word-break: break-all;
}

.office-box a:hover {
  opacity: 0.8;
}

/* 最終セクション：お問い合わせフォーム */
.contact-section{
  background:#fff;
  padding:40px 5% 60px;
  line-height:1.8;
  font-size:16px;
}

.contact-section .lead{
  text-align:center;
  margin:0 auto 18px;
  color:#333;
  font-size:0.98rem;
}

/* 流れ（番号付きのカードリスト） */
.contact-steps{
  counter-reset: step;
  list-style:none;
  margin:18px 0 16px;
  padding:0;
  display:grid;
  gap:10px;
}
.contact-steps li{
  background:#f5f8ff;
  border:1px solid #dfe7ff;
  border-radius:10px;
  padding:12px 14px 12px 46px;
  position:relative;
  box-shadow:0 2px 4px rgba(0,0,0,.04);
  font-size:.95rem;
}
.contact-steps li::before{
  counter-increment: step;
  content: counter(step);
  position:absolute;
  left:12px; top:12px;
  width:24px; height:24px;
  border-radius:50%;
  background:#1A5AC5;
  color:#fff;
  font-weight:700;
  font-size:.9rem;
  display:flex;
  align-items:center; justify-content:center;
}
.contact-steps li strong{
  color:#1A5AC5;
}

/* 情報ボックス（安心訴求） */
.info-box{
  background:#eef6ff;
  border:1px solid #cfe0ff;
  border-radius:10px;
  padding:12px 14px;
  margin:14px 0;
  font-size:.95rem;
  box-shadow:0 2px 4px rgba(0,0,0,.03);
  text-align:center;
}
.info-box .em{
  display:block;
  font-weight:700;
  margin-bottom:2px;
}
.info-box .note{
  display:block;
  font-weight:700;
  color:#d13c3c; /* 赤系の下線強調の代替 */
  margin-bottom:4px;
}

/* アラート（送信できない場合） */
.alert-box{
  background:#fff6f5;
  border:1px solid #ffd4ce;
  border-radius:10px;
  padding:12px 14px;
  margin:14px 0 18px;
  font-size:.95rem;
}
.alert-box a{
  color:#1A5AC5;
  text-decoration:underline;
}

/* CF7の余白と幅を整える（テーマ差で崩れないように） */
.cf7-wrap{
  margin-top:14px;
}
.cf7-wrap form,
.cf7-wrap .wpcf7{
  width:100%;
}
.cf7-wrap .wpcf7-form p{
  margin-bottom:12px;
}
.cf7-wrap input[type="text"],
.cf7-wrap input[type="email"],
.cf7-wrap input[type="tel"],
.cf7-wrap textarea,
.cf7-wrap select{
  width:100%;
  border:1px solid #ccd8f2;
  border-radius:8px;
  padding:12px;
  font-size:16px;
  box-sizing:border-box;
}
.cf7-wrap input[type="submit"]{
  width:100%;
  background:#1A5AC5;
  color:#fff;
  font-weight:bold;
  border:none;
  border-radius:8px;
  padding:14px 0;
  box-shadow:0 3px 6px rgba(0,0,0,.2);
  cursor:pointer;
}
.cf7-wrap input[type="submit"]:hover{
  opacity:.9;
}

/* スマホ最適（念のため） */
@media (max-width:768px){
  .contact-section{ padding-bottom:80px; }
}

/* シンプルなアラートボックス（Cocoon装飾リセット） */
.alert-simple {
  background: #fff6f5;
  border: 1px solid #f5c7c0;
  border-radius: 8px;
  padding: 12px 16px;
  margin: 14px 0 18px;
  font-size: 0.95rem;
  color: #333;
  line-height: 1.6;
  box-shadow: 0 2px 4px rgba(0,0,0,0.03);
}

/* Cocoonの既存 alert-box スタイルを打ち消し */
.alert-box,
.alert-box::before,
.alert-box::after {
  all: unset;
}

/* 内部リンクのデザイン */
.alert-simple a {
  color: #1A5AC5;
  text-decoration: underline;
  word-break: break-all;
}

.alert-simple a:hover {
  opacity: 0.8;
}

/* ===== Sticky CTA Bar（スマホでも横2ボタン）===== */
:root{
  --cta-bg: #fff;
  --line-green: #06C755;
  --amber: #ffc107;
  --text-dark: #333;
}

.cta-sticky{
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  z-index: 2147483647;
  background: var(--cta-bg);
  box-shadow: 0 -4px 16px rgba(0,0,0,.12);
  padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
}

.cta-sticky__inner{
  max-width: 900px;
  margin: 0 auto;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
}

.cta-btn{
  flex: 1 1 50%;
  text-align: center;
  font-weight: 700;
  text-decoration: none;
  border-radius: 9999px;
  padding: 14px 0;
  font-size: 17px;
  line-height: 1;
  transition: opacity .2s ease;
}

.cta-btn:hover{ opacity:.9; }

.cta-btn--line{
  background: var(--line-green);
  color:#fff;
}

.cta-btn--mail{
  background: var(--amber);
  color: var(--text-dark);
}

/* ボタンが画面端までしっかり並ぶように */
@media (max-width: 600px){
  .cta-sticky__inner{
    flex-direction: row;     /* ← 縦ではなく横 */
    gap: 8px;
  }
  .cta-btn{
    font-size: 16px;
    padding: 16px 0;
  }
}

/* 本文が隠れないように下余白 */
body:not(.wp-admin){
  padding-bottom: 80px;
}

/* ===== 強制横並び版（スマホでも確実に2列）===== */
.cta-sticky__inner {
  display: flex !important;
  flex-direction: row !important;   /* ← 強制的に横並び */
  justify-content: center !important;
  align-items: center !important;
  gap: 8px !important;
  flex-wrap: nowrap !important;
}

.cta-btn {
  flex: 1 1 50% !important;
  width: 50% !important;
  text-align: center !important;
  box-sizing: border-box !important;
}

/* reCAPTCHAバッジをCTAバーの上に浮かせて重なり防止＆開きっぱなし防止 */
.grecaptcha-badge {
  position: fixed !important;
  bottom: 110px !important;   /* ← 追従バーの高さ＋少し余裕。90〜120で微調整OK */
  right: 12px !important;     /* ← 左側に出したい場合は left:12px; に変更 */
  left: auto !important;
  transform: none !important; /* ← 開きっぱなし防止の決め手 */
  z-index: 2147483647 !important;
  transition: none !important;
}

/* ===== reCAPTCHAバッジを安全に非表示（横スクロール防止）===== */
.grecaptcha-badge {
  display: none !important;
  visibility: hidden !important;
}

/* はみ出し防止：HTML全体を横スクロールさせない */
html, body {
  overflow-x: hidden !important;
  max-width: 100% !important;
}

/* CF7フォーム内に自動挿入される英語のreCAPTCHA文言だけ非表示 */
#contact,
#wpcf7-f*, /* フォームIDがわかれば #wpcf7-f123-o1 などに置換可 */
.wpcf7
{
  /* 何もしない：スコープ用 */
}

/* フォーム内で、Googleプライバシーポリシーへのリンクを含む行を隠す */
.wpcf7 form p:has(a[href*="policies.google.com/privacy"]),
.wpcf7 form div:has(a[href*="policies.google.com/privacy"]),
.wpcf7 form small:has(a[href*="policies.google.com/privacy"]) {
  display: none !important;
}

/* スマホでも reCAPTCHA 日本語クレジットを表示 */
footer p:has(a[href*="policies.google.com/privacy"]),
footer p:has(a[href*="policies.google.com/terms"]) {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* フッター内の文字をやや小さく整える */
footer p {
  font-size: 12px !important;
  line-height: 1.5;
  text-align: center;
}

/* reCAPTCHA 日本語クレジットを必ず表示（スマホでも） */
#recaptcha-credit{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  font-size:12px;
  line-height:1.6;
  color:#666;
  text-align:center;
  margin:16px auto 8px;   /* 下のCTAバーと被らないよう少し上に */
  padding:0 12px;
  max-width:1080px;
}

/* フッターや親要素で overflow/非表示に巻き込まれても見えるように */
#recaptcha-credit, #recaptcha-credit *{
  overflow:visible !important;
}

/* 万一テーマが footer 以下をスマホで display:none にしていても回避 */
@media (max-width: 782px){
  footer, .site-footer{ display:block !important; }
}

/* 横スクロール防止（念のため） */
html, body{ overflow-x:hidden; max-width:100%; }

/* 固定解除：通常のページ下部に表示（スクロールしたら出る） */
#recaptcha-credit {
  position: static !important; /* ← fixedを解除して通常フロー内へ */
  width: 100%;
  font-size: 12px;
  line-height: 1.6;
  color: #666;
  text-align: center;
  background: transparent;
  padding: 16px 12px 80px; /* ← 下に追従ボタン分の余白 */
  margin: 0;
}

/* 横スクロール防止 */
html, body {
  overflow-x: hidden;
  max-width: 100%;
}

/* 追従ボタンを最前面に固定（フッターより上に出す） */
#cta-sticky {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  z-index: 99999 !important; /* ← これがポイント！ */
}

/* ===== CF7のreCAPTCHA説明行や空きコンテナの余白を完全につぶす ===== */

/* よく使われるクラス名をまとめてゼロ化 */
.wpcf7 form .wpcf7-recaptcha-terms,
.wpcf7 form .grecaptcha-terms,
.wpcf7 form .recaptcha-terms,
.wpcf7 form .cf7-recaptcha-policy,
.wpcf7 form .wpcf7-form-control-wrap.recaptcha,
.wpcf7 form .wpcf7-form-control-wrap.g-recaptcha,
.wpcf7 form .g-recaptcha,
.wpcf7 form .grecaptcha-badge-parent {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

/* フォーム末尾の段落の余白をカット（送信ボタン直下の余白対策） */
.wpcf7 form > p:last-child,
.wpcf7 form > div:last-child {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* 念のため、フォーム全体の下マージンも縮める */
.wpcf7 {
  margin-bottom: 0 !important;
}

/* 送信ボタン行の下マージンが大きいテーマ向けの保険 */
.wpcf7-submit {
  margin-bottom: 0 !important;
}

/* ===== CF7のreCAPTCHAまわりで残る「空の箱」や末尾余白を完全につぶす ===== */

/* reCAPTCHA関連で使われやすい要素/ラッパを根こそぎ無効化 */
.wpcf7 form .wpcf7-recaptcha-terms,
.wpcf7 form .grecaptcha-terms,
.wpcf7 form .recaptcha-terms,
.wpcf7 form .cf7-recaptcha-policy,
.wpcf7 form .wpcf7-form-control-wrap.recaptcha,
.wpcf7 form .wpcf7-form-control-wrap.g-recaptcha,
.wpcf7 form .g-recaptcha,
.wpcf7 form .grecaptcha-badge-parent,
.wpcf7 form p:has(a[href*="policies.google.com/privacy"]),
.wpcf7 form div:has(a[href*="policies.google.com/privacy"]),
.wpcf7 form small:has(a[href*="policies.google.com/privacy"]) {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

/* 送信ボタン行の直下余白をゼロに */
.wpcf7 form > p:last-child,
.wpcf7 form > div:last-child {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* フォーム全体と記事末尾の不要な下余白もゼロに（保険） */
.wpcf7 { margin-bottom: 0 !important; }
.entry-content > *:last-child,
.content > *:last-child,
.main > *:last-child {
  margin-bottom: 0 !important;
}

/* CF7のレスポンス枠の余白をゼロに（空白帯の主犯） */
.wpcf7 form .wpcf7-response-output{
  margin: 0 !important;
  padding: 0 !important;
  min-height: 0 !important;
  border: 0 !important;
}

/* 送信ボタン行の直下余白も念のためカット */
.wpcf7 form > p:last-child,
.wpcf7 form > div:last-child{
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* スピナーや空の行で高さが出るテーマ向けの保険 */
.wpcf7 form .wpcf7-spinner{ display: none !important; }
.wpcf7 form p:empty, 
.wpcf7 form div:empty{ display:none !important; height:0 !important; margin:0 !important; padding:0 !important; }

/* === モバイルでヘッダー直下の謎の余白を消す === */
@media (max-width: 782px){
  /* 1) ヘッダー自身の下余白をゼロ */
  .site-header, header, .header, #header, .l-header{
    margin-bottom:0 !important;
    padding-bottom:0 !important;
  }
  /* 2) ロゴ画像のベースライン隙間をゼロ（行内→ブロック） */
  .header-logo img, .site-title img, .logo img{
    display:block !important;
  }
  /* 3) Sticky系プラグインのダミー要素（高さ確保ボックス）を無効化 */
  .sticky-wrapper,
  .my-sticky-menu-placeholder,
  .is-sticky + .sticky-placeholder{
    height:0 !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
  }
  /* 4) 本文先頭の要素の上マージンをゼロに */
  .entry-content > *:first-child,
  .content > *:first-child,
  .main > *:first-child{
    margin-top:0 !important;
  }
}

/* --- ヘッダー直下の謎の余白をゼロにする強制版 --- */

/* 1) Sticky系のプレースホルダーを無効化（代表的なID/クラスを網羅） */
#sticky-menu-sticky-wrapper,
.sticky-wrapper,
.mysticky-nav-placeholder,
#mysticky-nav-placeholder,
.mysticky-nav,
#my-sticky-menu,
.my-sticky-menu-placeholder,
#mysticky-nav,
#mysticky-menu,
.mysticky-menu-placeholder {
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

/* 2) ヘッダーの直後に来る最初の要素の上マージンを潰す（Cocoon想定の代表セレクタ） */
header + .content,
header + .main,
header + .entry-content,
.site-header + .content,
.site-header + .main,
.site-header + .entry-content,
#header + .content,
#header + .main,
#header + .entry-content {
  margin-top: 0 !important;
}

/* 3) ヒーロー（最初のセクション）側にも保険をかける */
.entry-content > *:first-child,
.content > *:first-child,
.main > *:first-child,
.l-content > *:first-child,
.section:first-child {
  margin-top: 0 !important;
}

/* 4) ロゴ画像のベースライン隙間対策（画像をブロック化） */
.site-title img,
.header-logo img,
.logo img {
  display: block !important;
}

/* 5) モバイルに確実適用（必要なら） */
@media (max-width: 782px){
  .site-header, header, .header, #header, .l-header{
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
  }
}

/* ===== ヘッダー直下の謎の余白をゼロに（強制版）===== */

/* 1) Sticky系の高さ確保ダミーを完全無効化（myStickymenu/mysticky-nav系を網羅） */
[id*="sticky"][id*="wrap"],
[id*="sticky"][id*="placeholder"],
[class*="sticky"][class*="wrap"],
[class*="sticky"][class*="placeholder"],
#mysticky-nav-placeholder,
.mysticky-nav-placeholder,
#my-sticky-menu,
.mysticky-nav,
.my-sticky-menu-placeholder,
.sticky-wrapper,
#sticky-menu-sticky-wrapper {
  display:block !important;
  height:0 !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
}

/* 2) ヘッダーの直後に来る要素の上マージン/パディングを全消し */
header + *,
.site-header + *,
#header + * {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* 3) 本文コンテナ側の上余白もゼロに（Cocoonで使われやすい名前を網羅） */
#content, .content, .l-content, .main, .wrap, .container, .entry-content {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* 4) Gutenberg最初のブロック（ヒーロー）が持つ上マージンをゼロに */
.entry-content > .wp-block-group:first-child,
.entry-content > .wp-block-cover:first-child,
.entry-content > .wp-block-image:first-child,
.entry-content > .wp-block-columns:first-child,
.entry-content > p:first-child,
.content > *:first-child,
.main > *:first-child {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* 5) ロゴ画像のベースライン隙間対策（imgをブロック化） */
.site-title img, .header-logo img, .logo img { display:block !important; }

/* 6) モバイルで確実適用 */
@media (max-width: 782px){
  .site-header, header, #header { margin-bottom:0 !important; padding-bottom:0 !important; }
}

/* 司法書士紹介（.profile-card）の見た目を整える */
.profile-card{
  display:flex;
  gap:16px;
  align-items:center;
  justify-content:flex-start;
  background:#fff;
  border-radius:14px;
  box-shadow:0 2px 10px rgba(0,0,0,.06);
  padding:16px 18px;
  max-width:900px;
  margin:16px auto;
}

/* 写真 */
.profile-card .prof-img{
  flex:0 0 auto;
}
.profile-card .prof-img img{
  display:block;
  width:110px;
  height:110px;
  border-radius:50%;
  object-fit:cover;
  box-shadow:0 1px 4px rgba(0,0,0,.08);
}

/* 本文側 */
.profile-card .prof-body{
  flex:1 1 auto;
  min-width:0;
}
.profile-card .prof-name{
  font-size:18px;
  font-weight:700;
  margin:0 0 6px;
  line-height:1.4;
  text-align: center;
}

/* 箇条書き：読みやすく詰めすぎない */
.profile-card .prof-points{
  list-style:disc;
  padding-left:1.15em;   /* ●の位置 */
  margin:0 0 8px;
}
.profile-card .prof-points li{
  margin:4px 0;
  line-height:1.6;
}

/* 説明文 */
.profile-card .prof-note{
  margin:0;
  line-height:1.8;
}

/* スマホ最適化 */
@media (max-width: 782px){
  .profile-card{
    flex-direction:column;       /* 写真→本文の縦並び */
    text-align:left;             /* 日本語は左揃えの方が読みやすい */
    gap:12px;
    padding:14px 16px;
    margin:12px auto;
  }
  .profile-card .prof-img img{
    width:96px; height:96px;
    margin:0 auto;               /* 写真中央 */
  }
  .profile-card .prof-name{
    font-size:17px;
  }
  .profile-card .prof-points{ margin-bottom:6px; }
}

/* 見出しの上余白を少し控えめに（.mt40が大きすぎる場合の調整） */
h2.mt40{ margin-top:24px !important; }

/* セクションの前後で無駄な空きが出るのを抑える（保険） */
.profile-card + *{ margin-top:16px; }

/* ===== 全H2を共通デザインで統一 ===== */
h2 {
  position: relative;
  padding: 15px 15px 10px 35px;
  border-radius: 5px;
  color: #ffffff;
  background-color: #003366;
  font-size: 1.5em;
  font-weight: 700;
  line-height: 1.4;
  margin: 2em 0 1.2em;
}

/* 左ライン（白） */
h2::after {
  position: absolute;
  content: '';
  top: 50%;
  left: 15px;
  transform: translateY(-50%);
  width: 5px;
  height: 25px;
  background-color: #ffffff;
  border-radius: 2px;
}

@media (max-width:1023px){
  /* ヘッダーバーを少し低くして、かぶりを防ぐ */
  .mobile-menu-buttons{
    height:70px !important;      /* ← 86pxから70px程度へ調整 */
    display:flex;
    align-items:center;
  }

  img.site-logo-image{
    max-height:64px !important;  /* ← バーより少し小さめに */
    padding:0 !important;
    margin:0 auto !important;
  }

  /* ファーストビュー画像の上に少し余白を追加 */
  .main-visual,
  .hero-section,
  .fv-section,
  .top-visual {
    margin-top:70px;   /* ← 画像の上端がヘッダーに隠れないよう調整 */
  }
}

#fbuilder .pbSubmit {
  display: none !important;
}

#fbuilder input[type="submit"] {
  display: none !important;
}

.sp-fixed-btn{
  display:none;
}

@media screen and (max-width:768px){

.sp-fixed-btn{
  display:block;
  position:fixed;
  bottom:0;
  left:0;
  width:100%;
  z-index:9999;
  padding-bottom: env(safe-area-inset-bottom);
}

.sp-fixed-btn a{
  display:block;
  background:#06c755;
  color:#fff;
  text-align:center;
  padding:16px;
  font-size:18px;
  font-weight:bold;
  text-decoration:none;
}

}