/* =========================
  税理士サイト：追従ヘッダー 完成版（これだけ）
  - ロゴもメニューも追従（fixed）
  - FVに被らない（押し下げ統一）
  - ドロップダウンが切れない（overflow可視）
  - 白帯の縦幅は変数で調整
  - hover遅延なし（transition/ delay殺す）
========================= */

/* ★調整はここだけ（3つ） */
:root{
  --hdrH: 72px;     /* ① 白いヘッダー帯の高さ（70〜90） */
  --logoH: 56px;    /* ② ロゴ最大高さ（50〜64） */
  --navPad: 6px;    /* ③ メニュー上下余白（4〜10） */
  --adminH: 0px;    /* 管理バー高さ（自動で切替） */
}

/* 管理バー分（ログイン中だけ） */
body.admin-bar{ --adminH: 32px; }
@media (max-width: 782px){
  body.admin-bar{ --adminH: 46px; }
}

/* 1) ヘッダー固定 */
header#site-header{
  position: fixed;
  left: 0;
  right: 0;
  top: var(--adminH);
  z-index: 99999;
  background: #fff;
  box-shadow: 0 2px 10px rgba(0,0,0,.08);

  height: var(--hdrH);
  min-height: var(--hdrH);
}

/* 2) テーマ側の「上余白（二重）」を止める */
#content,
#main,
.siteContent,
.site-content{
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* 3) 固定ヘッダー分だけ “1回だけ” 全体を下げる（被り対策の本体） */

body{
  padding-top: var(--hdrH) !important;
}


/* 4) ヘッダー内部を縦中央に整える */
header#site-header #site-header-container{
  height: 100% !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  display: flex;
  align-items: center;
}

/* 5) ロゴがスクロールで消える挙動を強制上書き */
header#site-header .site-header-logo,
header#site-header .siteHeader__logo,
header#site-header .site-branding,
header#site-header .header-logo,
header#site-header a.custom-logo-link,
header#site-header img.custom-logo{
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}

/* ロゴサイズ */
header#site-header img.custom-logo,
header#site-header .custom-logo-link img,
header#site-header .site-header-logo img,
header#site-header .header-logo img{
  max-height: var(--logoH) !important;
  height: auto !important;
  width: auto !important;
  display: block !important;
}

/* メニューの縦余白 */
header#site-header nav a,
header#site-header .global-nav a,
header#site-header .site-header-nav a,
header#site-header .menu a{
  padding-top: var(--navPad) !important;
  padding-bottom: var(--navPad) !important;
  line-height: 1.1 !important;
}

/* =========================
   ドロップダウン：切れない・見える・即反応
========================= */

/* 親側で切らない（重要） */
header#site-header,
header#site-header #site-header-container,
header#site-header .site-header--layout--nav-float,
header#site-header .container{
  overflow: visible !important;
}

/* 子メニュー */
header#site-header .sub-menu{
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  background: #fff !important;
  z-index: 100000 !important;

  transition: none !important;
  transition-delay: 0s !important;
  animation: none !important;
}

/* 縦に並ぶ保証 */
header#site-header .sub-menu > li{
  display: block !important;
  width: 100%;
}

/* 文字色を強制 */
header#site-header .sub-menu a{
  color: #333 !important;
  opacity: 1 !important;
  visibility: visible !important;
  text-shadow: none !important;

  transition: none !important;
  transition-delay: 0s !important;
}

/* hover色 */
header#site-header .sub-menu a:hover{
  color: #fff !important;
  background: #2f78b7 !important;
}

/* =========================
  SPでは nav-float を完全に使わない
  → 通常ヘッダー＋☰ に戻す（追従なし）
========================= */
@media (max-width: 991px){

  /* nav-float を無効化 */
  header#site-header.site-header--layout--nav-float{
    position: static !important;
    transform: none !important;
  }

}
/* SP：ヘッダー追従しないので、押し下げ余白を消す */
@media (max-width: 991px){
  body{
    padding-top: 0 !important;
  }
}
/* TOP：FV直下CTAをピタ付けで右寄せ */
.home .wp-block-group.top-cta{
  margin-top: -56px !important; /* ← ここが肝 */
  padding-top: 0 !important;

  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
  gap: 16px !important;
}

/* CTA内の余白を完全に殺す */
.home .wp-block-group.top-cta > *{
  margin: 0 !important;
}
/* === PC：CTAの引き上げをやめて、かぶりを解消 === */
@media (min-width: 782px){
  .home .wp-block-group.top-cta{
    margin-top: 0 !important;   /* ← マイナスを無効化 */
  }
}

/* SP：top-cta をPCと同じく横並び */
@media (max-width: 781px){
  .home .wp-block-group.top-cta{
    margin-top: -24px !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    flex-wrap: nowrap !important;   /* ★横並び固定 */
    gap: 12px !important;
  }

  /* 中の要素（ボタンやCTA）を横幅に収める */
  .home .wp-block-group.top-cta > *{
    flex: 0 0 auto;
  }
}

/* =========================
   TOP About（安定版：中央揃え）
========================= */

/* かたまりを文字幅にして、中央揃えの基準にする */
body.home .wp-block-group.top-about-wrap{
  display: inline-block !important;
  width: fit-content !important;

  /* 「Aboutの文字幅の真ん中」に下の文字が来る */
  text-align: center !important;

  /* 右に寄せたいならここ（数値だけ調整） */
  margin-left: 80px !important;

  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding: 0 !important;
}

/* About */
body.home .top-about{
  font-size: 64px;
  font-weight: 700;
  color: #C4D5E9;
  line-height: 1;
  margin: 0 0 6px !important;  /* ← 近づけるならここ */
}

/* 当事務所について */
body.home .top-about__title{
  font-size: 16px;
  font-weight: 700;
  color: #0049A0;
  margin: 0 !important;        /* ← 見出しのデフォ余白を殺す */
  padding: 0 !important;
}
/* Aboutの幅を基準にする（ここが肝） */
body.home .top-about{
  display: inline-block !important; /* ← About自体を文字幅にする */
}

/* タイトルを「Aboutの中央」に合わせる */
body.home .top-about__title{
  display: table !important;        /* 文字幅になる */
  margin: 0 auto !important;        /* 親の中で中央 */
}
/* SP */
@media (max-width: 781px){
  body.home .top-about{ font-size: 40px; }
  body.home .wp-block-group.top-about-wrap{ margin-left: 20px !important; } /* 必要なら調整 */
}
/* SP：当事務所について だけ小さくする */
@media (max-width: 781px){
  body.home .top-about__title{
    font-size: 13px;   /* ← 12〜14pxで微調整OK */
  }
}
/* About 本文（共通：中央配置・SP含む） */
body.home p.top-about__text{
  max-width: 720px;
  width: 100%;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: left !important;
  box-sizing: border-box;
}

/* PCのみ：少し右に寄せる */
@media (min-width: 782px){
  body.home p.top-about__text{
    padding-left: 100px; /* ← PCだけ効く */
  }
}
/* 投稿ページ：ヘッダー直後の青帯(page-header)だけ消す */
body.single-post header#site_header + .page-header{
  display: none !important;
}
/* ブログ一覧（アーカイブ）＆投稿詳細：上部の青帯(page-header)を非表示 */
body.archive .page-header,
body.single-post .page-header {
  display: none !important;
}

/* 青帯が消えたあと、パンくずの上余白が気になる場合の保険 */
body.archive #breadcrumb,
body.single-post #breadcrumb{
  margin-top: 0 !important;
}
/* 投稿ページ：更新日・投稿者を非表示（投稿日は残す） */
body.single-post .entry-meta .updated,
body.single-post time.updated,
body.single-post .post-date--updated,
body.single-post .fa-redo,
body.single-post .fa-sync,
body.single-post .byline,
body.single-post .author,
body.single-post .post-author,
body.single-post .vk_post_author {
  display: none !important;
}
/* 投稿ページ：コメント欄をまるごと非表示 */
body.single-post #comments,
body.single-post .comments-area,
body.single-post .comment-respond,
body.single-post .comment-form,
body.single-post .comment-list {
  display: none !important;
}
/* 「最新の投稿」ブロック：全体を中央寄せ */
.wp-block-latest-posts{
  text-align: center !important;
  padding-left: 0 !important;
  list-style: none !important;
}

/* 投稿タイトルを中央寄せ */
.wp-block-latest-posts li{
  text-align: center !important;
}

/* 日付も中央寄せ */
.wp-block-latest-posts__post-date{
  display: block;
  text-align: center !important;
}
.top-service-cards p.has-large-font-size {
  font-size: 1.2em !important;
  line-height: 1.65;
}
/* =========================
   TOP：サービス3枚
   画像全体クリック + hover強め
   ========================= */

/* coverを土台に */
.top-service-cards .wp-block-cover{
  position: relative;
  overflow: hidden;
  cursor: pointer;
}

/* 透明リンクを全面に */
.top-service-cards .wp-block-cover .card-link{
  position: absolute;
  inset: 0;
  z-index: 10;
}

/* 中の文字やボタンはリンクより上に（クリックもできるように） */
.top-service-cards .wp-block-cover__inner-container{
  position: relative;
  z-index: 20;
}

/* 画像：少しアップ＋hoverでさらにアップ＆光らせる */
.top-service-cards .wp-block-cover img{
  transform: scale(1.06);
  transition: transform .35s ease, filter .35s ease;
  will-change: transform, filter;
}

.top-service-cards .wp-block-cover:hover img{
  transform: scale(1.14);
  filter: brightness(1.22) contrast(1.05) saturate(1.20);
}

/* さらに「光ってる感」を足す：白い膜をふわっと重ねる */
.top-service-cards .wp-block-cover::after{
  content:"";
  position:absolute;
  inset:0;
  background: rgba(255,255,255,.00);
  transition: background .35s ease;
  z-index: 5; /* 画像の上、文字の下 */
  pointer-events:none;
}
.top-service-cards .wp-block-cover:hover::after{
  background: rgba(255,255,255,.14);
}
/* Access：SPでもボタン2つを横並び固定 */
.wp-block-columns.access-buttons{
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 12px !important;
  justify-content: center !important;
  align-items: center !important;
}

/* 2つの子カラムを半分ずつに */
.wp-block-columns.access-buttons > .wp-block-column{
  flex: 0 0 calc(50% - 6px) !important;
  width: calc(50% - 6px) !important;
  margin: 0 !important;
}

/* ボタンをカラム幅いっぱいに（見た目がPC寄りになる） */
.wp-block-columns.access-buttons .wp-block-button,
.wp-block-columns.access-buttons .wp-block-button__link{
  width: 100% !important;
  box-sizing: border-box !important;
  margin: 0 !important;
}
/* 固定ページ：上部の青帯（page-header）を消す */
body.page .page-header{
  display: none !important;
}

/* 消したあと、パンくずの余白を詰める */
body.page #breadcrumb{
  margin-top: 0 !important;
}
/* ポリシーテキスト：ブロックは中央、文字は左揃え */
.policy_text{
  width: fit-content;        /* 文字幅に合わせる */
  margin: 0 auto;            /* ブロックを中央へ */
  text-align: left;          /* 文字は左揃え */
  
  font-family: 
    "Yu Mincho",
    "游明朝",
    "Hiragino Mincho ProN",
    "ヒラギノ明朝 ProN",
    "Noto Serif JP",
    serif;
  
  line-height: 2;            /* 読みやすさ */
}
/* =========================
   下層：代表あいさつ（Aboutと全く同仕様：明朝指定なし）
========================= */

/* かたまりを文字幅にして、中央揃えの基準にする */
.greeting-wrap{
  display: inline-block !important;
  width: fit-content !important;
  text-align: center !important;

  /* 右に寄せたいならここ（数値だけ調整） */
  margin-left: 80px !important;

  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding: 0 !important;
}

/* 英字 */
.greeting-en{
  font-size: 64px;
  font-weight: 700;
  color: #C4D5E9;
  line-height: 1;
  margin: 0 0 6px !important;
  display: inline-block !important; /* ← 文字幅にする（肝） */
}

/* 小見出し */
.greeting-title{
  font-size: 16px;
  font-weight: 700;
  color: #0049A0;
  margin: 0 !important;
  padding: 0 !important;

  display: table !important;        /* 文字幅になる */
  margin: 0 auto !important;        /* 親の中で中央 */
}

/* SP */
@media (max-width: 781px){
  .greeting-en{ font-size: 40px; }
  .greeting-wrap{ margin-left: 20px !important; }
}
@media (max-width: 781px){
  .greeting-title{ font-size: 13px; }
}

/* 本文（About本文と同じ） */
p.greeting-text{
  max-width: 720px;
  width: 100%;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: left !important;
  box-sizing: border-box;
}

/* PCのみ：少し右に寄せる */
@media (min-width: 782px){
  p.greeting-text{
    padding-left: 100px;
  }
}
/* 代表あいさつ本文：読み幅を中央に絞る（文字は左揃え） */
body.page-id-34 .entry-body p.has-text-align-left{
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
  text-align: left;
}
/* 署名全体（右下配置の微調整） */
body.page-id-34 p.has-text-align-right{
  max-width: 720px;
  margin: 32px auto 0;
  text-align: right;
}

/* 名前だけ大きく・フォント変更 */
body.page-id-34 .sign-name{
  font-family: "Yu Mincho", "游明朝", "Noto Serif JP", serif;
  font-size: 22px;      /* ← 好みで調整 */
  font-weight: 600;
  color: #555555;
  margin-left: 10px;    /* 肩書きとの間 */
  white-space: nowrap; /* 改行防止 */
}
/* service-title：左に #D8EEF9 の丸（確実に出る版） */
.wp-block-heading.service-title{
  position: relative !important;
  z-index: 0 !important;          /* ← これが超重要：重なり基準を作る */
  overflow: visible !important;    /* ← はみ出しても切られない */
  isolation: isolate !important;   /* ← 背面に落ちて消えるのを防ぐ */
}

.wp-block-heading.service-title::before{
  content: "" !important;
  position: absolute !important;
  left: -14px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 38px !important;
  height: 38px !important;
  border-radius: 50% !important;
  background: #D8EEF9 !important;
  z-index: -1 !important;          /* 文字の後ろ */
}
/* パンくず（全ページ）を非表示 */
#breadcrumb,
.breadcrumb{
  display: none !important;
}
/* パンくず削除後に残る site-body の上余白を消す */
.site-body{
  padding-top: 0 !important;
}
/* TOPだけ：SPでCTAが被らないように上余白を戻す */
@media (max-width: 781px){
  body.home .site-body{
    padding-top: 56px !important;  /* ← 40〜72で微調整OK */
  }
}
/* =========================
   Contact Form 7：2カラム整形（PC）＋崩れ防止
========================= */

/* フォーム全体の横伸びを止める */
.wpcf7{
  max-width: 980px;
  margin: 0 auto;
}
.wpcf7 *{
  box-sizing: border-box;
}

/* 1行（ラベル左／入力右） */
.wpcf7 .cf7-row{
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 18px;
  align-items: start;
  padding: 22px 0;
  border-top: 1px solid rgba(0,0,0,.08);
}
.wpcf7 .cf7-row:first-child{
  border-top: 0;
}

/* 左ラベル */
.wpcf7 .cf7-label{
  font-weight: 700;
  line-height: 1.4;
}

/* 必須バッジ */
.wpcf7 .cf7-badge{
  display: inline-block;
  margin-left: 10px;
  padding: 3px 10px;
  font-size: 12px;
  font-weight: 700;
  color: #fff;
  background: #d64545;
  border-radius: 4px;
  vertical-align: middle;
}

/* 右側：入力 */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 textarea,
.wpcf7 select{
  width: 100%;
  max-width: 620px;          /* ← 横に伸びすぎ防止 */
  padding: 14px 14px;
  border: 1px solid rgba(0,0,0,.18);
  border-radius: 6px;
  font-size: 16px;
  background: #fff;
}
.wpcf7 textarea{
  min-height: 180px;
  resize: vertical;
}

/* チェックボックスを縦並び＆読みやすく */
.wpcf7 .wpcf7-list-item{
  display: block;
  margin: 0 0 10px 0;
}
.wpcf7 .wpcf7-list-item label{
  cursor: pointer;
}
.wpcf7 input[type="checkbox"]{
  transform: translateY(2px);
  margin-right: 10px;
}

/* 送信ボタン */
.wpcf7 input[type="submit"]{
  display: inline-block;
  padding: 14px 34px;
  border-radius: 800px;
  border: 0;
  font-weight: 700;
  cursor: pointer;
}

/* SPは1カラムに落とす */
@media (max-width: 781px){
  .wpcf7 .cf7-row{
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .wpcf7 input[type="text"],
  .wpcf7 input[type="email"],
  .wpcf7 input[type="tel"],
  .wpcf7 textarea,
  .wpcf7 select{
    max-width: 100%;
  }
}
/* サービスカード：本文だけ少し右へ（PC/SP共通） */
.service-card__text > p:nth-of-type(2){
  position: relative;
  left: 22px; /* ← ここを微調整（12〜20pxくらい） */
}
