/*
 Theme Name: Astra Child
 Template: astra
 Version: 1.0.0
*/

/* 全体余白 → 施工事例投稿ページだけに限定 */
body.single-works {
  padding: 0 0 150px 0; /* 上下のみ余白に変更（下だけなら 0 0 150px 0） */
  box-sizing: border-box;
}


/* メインカルーセル（画像本体） */
.acf-carousel-main {
  max-width: 100%;
  margin: 0 auto;
}

.acf-carousel-main .slide {
  height: 50vh; /* PCでは画面の半分の高さに固定 */
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
}

.acf-carousel-main .slide img {
  max-height: 100%;
  width: auto;
  object-fit: contain;
  object-position: center;
}

/* サムネイルナビゲーション */
.acf-carousel-nav {
  margin-top: 20px;
  max-width: 100%;
  overflow: hidden;
}

.acf-carousel-nav .slide {
  height: 80px;
  margin: 0 5px;
  opacity: 0.5;
  cursor: pointer;
  transition: opacity 0.3s ease;
  display: flex;
  justify-content: center;
  align-items: center;
}

.acf-carousel-nav .slide img {
  height: 100%;
  width: auto;
  object-fit: contain;
}

.acf-carousel-nav .slick-current {
  opacity: 1;
}

/* 見出し調整 */
h1, h2 {
  margin-top: 40px;
  font-size: 1.5em;
}


.latest-news-block {
  margin-bottom: 40px;
}
.latest-news-header h2 {
  font-size: 28px;
  font-weight: bold;
  display: inline-block;
  margin-right: 1em;
}
.latest-news-header span {
  font-size: 14px;
  color: #333;
}
.latest-news-list {
  list-style: none;
  padding: 0;
  margin: 1em 0;
}
.latest-news-list li {
  margin-bottom: 8px;
  font-size: 15px;
}
.latest-news-list .date {
  color: #999;
  margin-right: 10px;
}
.news-button-wrap {
  text-align: right;
  margin-top: 20px;
}
.news-button {
  display: inline-flex;
  align-items: center;
  font-weight: bold;
  text-decoration: none;
  color: #000;
}
.news-button span {
  display: inline-block;
  border: 1px solid #8b714f;
  color: #8b714f;
  width: 24px;
  height: 24px;
  text-align: center;
  line-height: 22px;
  border-radius: 50%;
  margin-right: 6px;
}

/* --- PC用LINEボタン --- */
.line-button-pc {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 9999;
  display: block;
}

.line-button-pc img {
  width: 200px;
  height: auto;
}

/* --- スマホ用LINEボタン --- */
.line-button-sp {
  position: fixed;
  bottom: 20px;
  right: 0px;
  z-index: 9999;
  display: none;
}

.line-button-sp img {
  width: 120px;
  height: auto;
}

/* --- レスポンシブ切り替え --- */
@media screen and (max-width: 767px) {
  .line-button-pc {
    display: none;
  }
  .line-button-sp {
    display: block;
  }
}

/* LINEバナー（PC＆スマホでサイズ切り替え） */
.line-banner {
    width: 120px;   /* デフォルトサイズ */
    height: auto;
}

/* LINEバナー強制リサイズ */
img[src*="line"] {
    width: 200px ;
    height: auto ;
}

/* スマホは1/2サイズ */
@media screen and (max-width: 767px) {
    img[src*="line"] {
        width: 70px !important;
    }
}


/* ヘッダー初期状態（透過背景＋白文字） */
.header-main {
  background-color: transparent !important;
  transition: background-color 0.3s ease;
}

.header-main a,
.header-main .elementor-heading-title,
.header-main .elementor-icon,
.header-main .elementor-widget-container {
  color: #fff !important; /* 文字色を白 */
  transition: color 0.3s ease;
}


/* ===== インタビュー記事 ===== */
/* ===== 前/一覧/次 ナビ ===== */
.single-interview .iv-postnav{
  max-width: var(--iv-hero-w);
  width: min(92vw, var(--iv-hero-w));
  margin: 64px auto 0;
  padding: 24px 0;
  display: grid;
  grid-template-columns: 1fr auto 1fr; /* 左｜中央｜右 */
  align-items: center;
  gap: 12px;
  border-top: 1px solid #e5e7eb; /* 上に細い区切り */
}

.single-interview .iv-postnav__item { line-height: 1; }

.single-interview .iv-postnav__prev   { text-align: left; }
.single-interview .iv-postnav__archive{ text-align: center; }
.single-interview .iv-postnav__next   { text-align: right; }

.single-interview .iv-postnav a{
  color: #111;
  font-weight: 700;
  text-decoration: none;
}
.single-interview .iv-postnav a:hover{
  text-decoration: underline;
}

/* 端に小さな矢印を付ける（画像のイメージに合わせて） */
.single-interview .iv-postnav__prev  a::before{ content: "◀"; margin-right: .45em; }
.single-interview .iv-postnav__next  a::after { content: "▶"; margin-left:  .45em; }

/* 先頭/末尾でリンクが無いときの見た目 */
.single-interview .iv-postnav__disabled{
  opacity: .35;
  pointer-events: none;
  user-select: none;
  font-weight: 700;
  color: #444;
}

/* SP（横並び→縦積みにしたい場合はコメントアウトを外して） */
/*
@media (max-width: 640px){
  .single-interview .iv-postnav{
    grid-template-columns: 1fr;
    gap: 10px;
    text-align: center;
  }
  .single-interview .iv-postnav__prev,
  .single-interview .iv-postnav__next{ text-align: center; }
}
*/



/* ── ブログ本文の h2 を“明朝＋点線の下線”に ───────────────── */
body.single-blog .entry-content h2 {
  font-family: "Noto Serif JP","Yu Mincho","游明朝",
               "Hiragino Mincho ProN","Hiragino Mincho Pro",
               "HGS明朝E","ＭＳ Ｐ明朝", serif;  /* 明朝系 */
  font-weight: 600;                                /* お好みで 500〜700 */
  font-size: clamp(20px, 2.4vw, 28px);            /* 画面幅に応じて可変 */
  letter-spacing: .06em;
  line-height: 1.6;
  margin: 56px 0 18px;                             /* 上下の余白 */
  padding-bottom: 14px;                            /* 線との距離 */
  border-bottom: 2px dotted #bfbfbf;               /* 点線の下線 */
}

/* h3 も似せたい場合（任意） */
body.single-blog .entry-content h3 {
  font-family: "Noto Serif JP","Yu Mincho","游明朝",
               "Hiragino Mincho ProN","Hiragino Mincho Pro",
               "HGS明朝E","ＭＳ Ｐ明朝", serif;
  font-weight: 600;
  font-size: clamp(18px, 2vw, 22px);
  margin: 40px 0 14px;
  padding-bottom: 10px;
  border-bottom: 1px dotted #cfcfcf;
}

/* =========================
   Blog Single : ヘッダー帯
   ========================= */
body.single-blog{
  /* 記事の箱幅（好みで調整） */
  --bl-max: 1040px;
  --bl-inner: min(92vw, var(--bl-max));
}

/* 水色の全幅帯 */
.single-blog .bl-head{
  background:#EEF6F7;
  padding: 34px 0 36px;
}

/* 帯の中身（中央寄せ） */
.single-blog .bl-head__inner{
  width: var(--bl-inner);
  margin: 0 auto;
}

/* パンくず（任意調整） */
.single-blog .bl-breadcrumb{ 
  margin: 2px 0 10px;
  font-size: 12px;
  color:#6a6a6a;
}

/* ラベル（例：ブログ／資金計画など） */
.single-blog .bl-eyebrow{
  display:inline-block;
  padding: 6px 12px;
  border:1px solid #BFD0D5;
  background:#fff;
  border-radius: 2px;
  color:#466066;
  font-size: 13px;
  letter-spacing:.12em;
  margin: 2px 0 12px;
}

/* タイトル：明朝、大きめ */
.single-blog .bl-title{
  margin: 0;
  font-family:"Noto Serif JP","Yu Mincho","游明朝","Hiragino Mincho ProN",
              "Hiragino Mincho Pro","HGS明朝E","ＭＳ Ｐ明朝",serif;
  font-weight:700;
  letter-spacing:.06em;
  line-height:1.5;
  font-size: clamp(24px, 3.6vw, 42px);
  color:#222;
}

/* メタ（日付・読了目安・カテゴリ） */
.single-blog .bl-meta{
  list-style:none;
  padding:0;
  margin: 14px 0 0;
  display:flex;
  flex-wrap:wrap;
  gap: 14px 18px;
  font-size:14px;
  color:#666;
}
.single-blog .bl-meta li{margin:0;}

/* 読了目安の前にアイコン（好みで） */
.single-blog .bl-meta__read::before{ content:"⏱ "; }

/* カテゴリのチップ */
.single-blog .bl-meta__cats .chip{
  display:inline-block;
  padding: 3px 10px;
  background:#f2f6f7;
  border:1px solid #dbe6ea;
  border-radius:999px;
  font-size:12px;
  color:#46565b;
  margin-right:6px;
}

/* ヒーロー（アイキャッチ） */
.single-blog .bl-hero{
  width: var(--bl-inner);
  margin: 36px auto 0;
  overflow:hidden;
  border-radius: 0; /* 角丸が要らなければ 0 のまま */
}

/* =========================================
   本文と見出し（h2は点線＋明朝）
   ========================================= */
.single-blog .bl-article{
  width: var(--bl-inner);
  margin: 40px auto 80px;
  line-height: 2;
  color:#222;
}
.single-blog .bl-article h2{
  font-family:"Noto Serif JP","Yu Mincho","游明朝","Hiragino Mincho ProN",
              "Hiragino Mincho Pro","HGS明朝E","ＭＳ Ｐ明朝",serif;
  font-weight:600;
  font-size: clamp(20px, 2.2vw, 26px);
  margin: 56px 0 16px;
  padding-bottom: 14px;
  border-bottom: 1px dotted #cfcfcf; /* ←点線 */
  letter-spacing:.02em;
}

/* 目次ボックス（JSで生成される #js-toc に合わせて） */
.single-blog .bl-toc{
  width: var(--bl-inner);
  margin: 22px auto 28px;
  background:#f8fbfc;
  border:1px solid #e6eef1;
  border-radius:8px;
  padding:16px 18px;
}
.single-blog .bl-toc > .toc-title{
  font-weight:700;
  margin-bottom:8px;
  font-size:14px;
  color:#334;
}
.single-blog .bl-toc ul{
  margin:0;
  padding-left: 1.1em;
}
.single-blog .bl-toc a{
  text-decoration:none;
  color:#2560aa;
}
.single-blog .bl-toc a:hover{ text-decoration:underline; }

/* スマホ時：入力フォーカスで拡大しないよう最小16pxに */
@media (max-width: 767.98px){
  input, select, textarea { font-size: 16px !important; }
}


/* ===== 画像カルーセルの安全リセット（PC/スマホ共通） ===== */
#kenburns-carousel,
#kenburns-carousel .elementor-image-carousel,
#kenburns-carousel .elementor-image-carousel-wrapper,
#kenburns-carousel .swiper,
#kenburns-carousel .swiper-container,
#kenburns-carousel .swiper-wrapper,
#kenburns-carousel .swiper-slide{
  height: auto !important;
  padding: 0 !important;
}

#kenburns-carousel .swiper-slide img,
#kenburns-carousel .swiper-slide .swiper-slide-image{
  width: 100% !important;
  height: auto !important;
  display: block !important;
  object-fit: contain;   /* いったん“トリミング無し”で復旧 */
}


/* ===== ニュースの設定 ===== */

/* コンテナ幅：理想ページの読み幅に */
.c-container{max-width:980px;margin:0 auto;padding:0 16px}

/* パンくず（任意） */
.c-breadcrumb{font-size:12px;color:#666;margin:8px 0 14px}

/* タイポ・余白 */
.c-news__date{font-size:12px;color:#666;margin:4px 0 8px}
.c-news__title{font-size:clamp(22px,3.6vw,34px);line-height:1.35;margin:0 0 8px}
.c-news__subtitle{font-size:16px;color:#777;margin:0 0 10px}
.c-news__lead{margin:0 0 16px}
.c-news__content{margin:18px 0 24px}
.c-news__content p{margin:0 0 1.1em}

/* キービジュアルは読み幅に収める（全幅崩れ防止） */
.c-news__kv{margin:10px 0 22px}
.c-news__kv img{display:block;width:100%;height:auto;border-radius:4px}

/* 地図 */
.c-news__mapEmbed{margin:18px 0 26px}
.c-news__mapEmbed iframe{width:100%;max-width:100%}

/* 情報テーブル */
.c-news__info{margin-top:6px}
.c-newsTable{width:100%;border-collapse:collapse;margin:12px 0 26px}
.c-newsTable th,.c-newsTable td{border-top:1px solid #eee;padding:12px 10px;vertical-align:top}
.c-newsTable th{width:9.5em;background:#fafafa;color:#444;font-weight:600}

/* CTA・戻るボタン（中央寄せで統一） */
.c-news__ctaWrap{display:flex;gap:12px;justify-content:center;margin:22px 0 8px;flex-wrap:wrap}
.c-news__btn{display:inline-block;padding:12px 20px;border-radius:2px;text-decoration:none;line-height:1}
.c-news__btn--primary{border:1px solid #c9ac6a}
.c-news__btn--ghost{border:1px solid #ddd;background:#f7f7f7}

/* 本文内のハイライト（理想ページのオレンジ帯に近づける） */
.c-news__content mark{background:linear-gradient(transparent 60%, #FFE4B5 60%)}

/* ===== 見出しの帯（下線を点線で自動） ===== */
/* ── 見出し帯を“端から端まで” ───────────────────────── */
/* コンテンツ幅は保ちつつ、背景だけを全幅に伸ばすテクニック */
.c-news__heroBand{
  position: relative;
  background: #EEF6F7;        /* ご指定色 */
  padding: 18px 16px 20px;     /* 帯の上下左右の内側余白 */
  margin: 0 0 16px;
  border-radius: 0;            /* 角丸不要なら0のまま */
  /* ここがポイント：背景を全幅化（中身はコンテナ幅のまま） */
  box-shadow: 0 0 0 100vmax #EEF6F7;
  clip-path: inset(0 -100vmax);
}

/* タイトル・タグ・サブタイトルの並びはそのまま */
.c-news__title{
  margin: 6px 0 0;
  font-size: clamp(26px, 3.8vw, 38px);
  line-height: 1.35;
  font-weight: 800;
  color: #1a1f2a;
}
.c-news__tag{
  display:inline-block;
  background:#000; color:#fff; border:1px solid #000;
  padding:3px 10px; font-size:12px; line-height:1.8; border-radius:3px;
  margin-bottom:8px;
}
.c-news__subtitle{ margin:8px 0 0; color:#4a4a4a; font-size:16px; }

/* ── H2の上の余白を広めに ─────────────────────────── */
.c-news .c-news__content h2{
  margin: 56px 0 16px;         /* ← 上を広めに（56px） */
  padding-bottom: .55em;
  line-height: 1.35;
  font-size: clamp(20px,3.2vw,26px);
  font-weight: 700;
  font-family:
    "Yu Mincho","游明朝体","Hiragino Mincho ProN","Hiragino Mincho Pro",
    "Noto Serif JP","Sawarabi Mincho","MS PMincho",serif;
  position: relative;
}
.c-news .c-news__content h2::after{
  content: ""; position: absolute; left: 0; right: 0; bottom: 0;
  border-bottom: 1px dotted #d9d9d9;
}

/* 画像や地図の直後に来るH2が詰まって見える時の微調整（任意） */
.c-news__kv + .c-news__content h2,
.c-news__mapEmbed + .c-news__info h2 { margin-top: 64px; }

/* H3は装飾なしのまま */
.c-news .c-news__content h3{ padding-bottom:0; font-family:inherit; font-weight:600; }
.c-news .c-news__content h3::after{ content:none; }

/* ========== 情報テーブル ========== */
/* 行の縦位置を中央寄せ／余白も少し広めに */
.c-news .c-newsTable th,
.c-news .c-newsTable td{
  vertical-align: middle;        /* ← 中央寄せ */
  padding: 16px 14px;            /* 行の高さ感 */
  border-top: 1px solid #e9e9e9; /* 罫線を少し薄く */
}
.c-news .c-newsTable th{
  width: 10em;                   /* 見出し列の幅を安定させる */
  white-space: nowrap;           /* 1行で表示（改行しない） */
  background: #fafafa;
  font-weight: 700;
  color:#444;
}
/* セル内の段落余白の暴れを抑える */
.c-news .c-newsTable td p{ margin: 0; }
.c-news .c-newsTable tr:first-child th,
.c-news .c-newsTable tr:first-child td{ border-top: none; }

/* ========== CTAボタン ========== */
/* ボタンを中央に（既に中央ならそのままでOK） */
.c-news .c-news__ctaWrap{ justify-content:center; gap:16px; margin:28px 0 10px; }

/* アウトラインの1本線 + 矢印 + ホバーで黒反転 */
.c-news .c-news__btn{
  border: 1px solid #111;
  background: transparent;
  color: #111;
  font-weight: 500;
  letter-spacing: .02em;
  padding: 20px 30px;
  line-height: 1;
  border-radius: 2px;
  text-decoration: none;
  transition: background .2s ease, color .2s ease, transform .2s ease;
  position: relative;
}
.c-news .c-news__btn::after{
  content: "→";
  margin-left: .6em;
  transition: transform .2s ease;
}
.c-news .c-news__btn:hover{
  background:#111;
  color:#fff;
}
.c-news .c-news__btn:hover::after{
  transform: translateX(4px);
}

/* もし “申し込みする” を出さずに戻るボタンだけにしたい場合は
   主ボタンの見た目も同じアウトラインにそろえる */
.c-news .c-news__btn--primary{
  border-color:#111;
  color:#111;
  background:transparent;
}
.c-news .c-news__btn--primary:hover{
  background:#111; color:#fff;
}