/*==============
2025リニューアル新ヘッダー
==============*/


.hb-header-new-wrapper {
  background: #e4f4f4; /* ヘッダーの水色背景 */
  border-bottom: 1px solid #dddddd;
}

.hb-header-new {
  max-width: 1100px;
  margin: 0 auto;
  padding: 24px 20px 10px;
}

/* 上段：ロゴ中央＋SNS右寄せ */
.hb-header-new .hb-top-row {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
}

.hb-header-new .hb-logo img {
  height: auto;
  display: block;
  margin: 0 auto;
}


.hb-header-new .hb-sns {
  list-style: none;
  margin: 0;
  padding: 0;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  gap: 12px;
}

.hb-header-new .hb-sns li {
  display: block;
}

.hb-header-new .hb-sns img {
  width: 20px;
  height: 20px;
  display: block;
}

/* 下段：メニュー中央寄せ・横並び */
.hb-header-new-wrapper + #nav {
  background: #e4f4f4; /* 上と同じ色でつなげる */
  border-top: none;
}

.hb-header-new-wrapper + #nav .nav-inner {
  width: auto;
  max-width: 1100px;
  margin: 0 auto;
  text-align: center;
}

.hb-header-new-wrapper + #nav .nav-menu {
  display: inline-flex;
  gap: 32px;
}

.hb-header-new-wrapper + #nav .nav-menu li a {
  padding: 10px 0;
}

/* スマホ時の調整（既存のトグルを前提に、SNSを隠す） */

@media (max-width: 767px) {

  .hb-header-new {
    padding: 16px 12px 6px;
  }

  .hb-header-new .hb-top-row {
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .hb-header-new .hb-sns {
    display: none;
  }

  /* ★ロゴボックスを中央に */
  .hb-header-new .hb-logo {
    margin: 0 auto;
    text-align: center;
    flex: 0 0 auto;
  }

  /* ★画像はその中で適切に中央揃え */
  .hb-header-new .hb-logo img {
    max-width: 100px;
    display: block;
    margin: 0 auto;
  }



  #hb-nav {
    display: none;     /* 初期状態で隠す */
    width: 100%;
  }

  #hb-nav .nav-inner {
    width: 100%;
  }

  #hb-nav .nav-menu {
    display: block;
  }

  #hb-nav .nav-menu li a {
    display: block;
    padding: 10px 16px;
    text-align: left;
  }
}
/* SNSリスト全体で縦位置センター揃え */
.hb-header-new .hb-sns {
  display: flex;
  gap: 12px;
  align-items: center;   /* 追加 */
}

/* li の行高をゼロにして高さ差を消す */
.hb-header-new .hb-sns li {
  display: block;
  line-height: 0;
}

/* 念のため img の余計なマージンを潰す */
.hb-header-new .hb-sns img {
  width: 20px;
  height: 20px;
  display: block;
  margin: 0;
}
/* SNSアイコン部分は必ず同じ見た目にする */
.hb-header-new .hb-sns a {
  display: inline-block;
  text-decoration: none;
  border: none;
  line-height: 0;
}


/*==============
2025リニューアル新ヘッダーここまで
==============*/

/* =================================================
   グローバルナビ- PC/SPで責務分離
   ================================================= */

/* ---- ベース（PC/SP共通） ---- */
#hb-nav{
  background: #e4f4f4;
  padding: 0;
  border-top: 1px solid #d6e5e5;
}

#hb-nav .hb-nav-inner{
  max-width: 1100px;
  margin: 0 auto;
}

#hb-nav .hb-nav-menu{
  list-style: none;
  margin: 0;
  padding: 0;
}

#hb-nav .hb-nav-menu > li{
  position: relative;
}

#hb-nav .hb-nav-menu li a{
  position: relative;
  border-bottom: none;
  text-decoration: none !important;
  padding-bottom: 6px; /* 下線の逃げ */
}

/* 色：トップレベル */
#hb-nav .hb-nav-menu > li > a{ color: #4A3819; }
#hb-nav .hb-nav-menu > li > a:hover{ color: #967B60; }

/* 色：サブメニュー */
#hb-nav .hb-nav-menu .sub-menu li a{ color: #4A3819; }
#hb-nav .hb-nav-menu .sub-menu li a:hover{
  background: #FFF;
  color: #4A3819;
}

/* 下線（共通：ホバー・カレント時のみ） */
#hb-nav .hb-nav-menu li a::after{
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 2px;
  background: #359EA4;
  transform: scaleX(0);
  transform-origin: left;
  opacity: 0;
  transition: transform 0.2s ease, opacity 0.2s ease;
}

#hb-nav .hb-nav-menu li a:hover::after,
#hb-nav .hb-nav-menu .current_page_item > a::after,
#hb-nav .hb-nav-menu .current-menu-item > a::after,
#hb-nav .hb-nav-menu .current-menu-ancestor > a::after{
  transform: scaleX(1);
  opacity: 1;
}

/* サブメニュー（共通：初期は閉じる） */
#hb-nav .hb-nav-menu .sub-menu{
  display: none;
  margin: 0;
  padding: 0;
  list-style: none;
}

/* ---- PC（768px以上） ---- */
@media (min-width: 768px){

  #hb-nav .hb-nav-menu{
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 40px;
    font-size: 16px;
  }

  /* PC：トップレベルはガタつき防止（PC内へ隔離） */
  #hb-nav .hb-nav-menu > li > a{
    display: inline-block;
    min-width: 78px;
    text-align: center;
    white-space: nowrap;
  }

  /* PC：サブメニューは浮かせる */
  #hb-nav .hb-nav-menu .sub-menu{
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    background: #e4f4f4;
    box-shadow: 0 4px 10px rgba(0,0,0,0.06);
    z-index: 10000;
    min-width: 200px;
  }

  #hb-nav .hb-nav-menu .sub-menu li a{
    display: block;
    padding: 8px 15px;
    font-size: 16px;
    white-space: nowrap;
  }

  /* PC：hoverで開く */
  #hb-nav .hb-nav-menu li:hover > .sub-menu{
    display: block;
  }

  /* PC：SP用トグルは出さない */
  #hb-nav .hb-nav-menu > li.menu-item-has-children .toggle-sub{
    display: none;
  }
}

/* ---- SP（767px以下） ---- */
@media (max-width: 767px){

  /* SP：ナビは全画面（JSの開閉に任せる。displayは触らない） */
  #hb-nav{
    position: fixed;
    inset: 0;
    z-index: 10040;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    background: rgba(228, 244, 244, 0.9);
    padding: 0 0 16px;
    max-width: none;

  }

  /* 中身だけ操作可能 */
  #hb-nav .hb-nav-inner{
    max-width: none;
    margin: 0;
    padding: 0;
  }

  #hb-nav .hb-nav-menu{
    display: block;
    margin: 0;
    padding: 0;
    text-align: left;
    font-size: 18px;
  }

  /* SP：親メニュー */
  #hb-nav .hb-nav-menu > li > a{
    display: block;
    padding: 14px 0;
    padding-left: 15%;
    line-height: 1.8;
  }

  /* SP：サブメニュー */
  #hb-nav .hb-nav-menu .sub-menu{
    position: static;
    transform: none;
    box-shadow: none;
    background: transparent;
    padding: 0 0 0 20%;
    min-width: auto;
  }

  #hb-nav .hb-nav-menu li.submenu-open > .sub-menu{
    display: block;
    background: #EEFAFA;
  }

  #hb-nav .hb-nav-menu .sub-menu li a{
    display: block;
    padding: 8px 0;
    padding-left: 4%;
    font-size: 16px;
    line-height: 1.7;
    white-space: normal;
  }

  /* SP：トグル（閉▼ / 開▲） */
  #hb-nav .hb-nav-menu > li.menu-item-has-children{ position: relative; }

  #hb-nav .hb-nav-menu > li.menu-item-has-children .toggle-sub{
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%) rotate(0deg);
    transform-origin: center;
    font-size: 16px;
    cursor: pointer;
    padding: 10px;
    transition: transform 0.15s ease;
  }

  #hb-nav .hb-nav-menu > li.submenu-open > .toggle-sub{
    transform: translateY(-50%) rotate(180deg);
  }

  /* SP：SNSは非表示（既存踏襲） */
  .hb-header-new .hb-sns{ display: none; }


  /* トグルの入れ物ごと最前面に固定 */
  .toggle{
    position: fixed;
    top: 16px;
    right: 16px;
    z-index: 10080;   /* #hb-nav(10040)より必ず上 */
    width: 40px;
    height: 40px;
  }

  /* 画像側は親に追従。z-indexは親で管理 */
  .toggle .menu-toggle{
    position: absolute;
    inset: 0;
    width: 40px;
    height: 40px;
    display: block;
    opacity: 1;
    filter: none;
  }
}



/* ==========================
   新グローバルナビここまで
 共通レイアウトのベースここから
========================== */
.hb-front {
  font-family: "M PLUS 1p", sans-serif;
}

/*文字を内側に入れる*/
@media (max-width: 768px) {
  .hb-inner {
    padding-left: 20px;
    padding-right: 20px;
    box-sizing: border-box;
  }
}


/* デフォルト：非表示（スマホ含む） */
.br-pc {
  display: none;
}

/* PCだけ改行を有効にする */
@media (min-width: 769px) {
  .br-pc {
    display: block;  
  }
}

/*スマホの時だけ改行*/
.br-sp {
    display: none;
}

@media (max-width: 768px) {
    .br-sp {
        display: block;
    }
}

/* ヘッダーとナビ間の線を完全に消す（最終保証） */
.hb-header-new-wrapper,
#hb-nav {
  border: none !important;
}

/* ===== hero エリア ===== */

.hb-hero {
  position: relative;
  min-height: 600px;
  background-color: #E4F4F4; /* 上下の水色とつなぐベース色 */
  overflow: hidden;
}

/* 背景写真：ここに画像URLを入れる */
.hb-hero__bg {
  position: absolute;
  inset: 10px 0 50px 150px; 
	/* 上下左の水色帯を残す感じでトリミング */
  background-image: url("../images/20210420-029 1.jpg"); 
  background-size: cover;
  background-position: center;
}

/* =========================
   ヒーロー：白い箱＋コピー（PC）
   要件：
   ・白い箱の左端 = 画面左端
   ・文字の左端 = コンテンツ幅 1100px の左端
   ・文字から箱右端まで ≒ 120px
   ========================= */

.hb-hero__overlay {
  position: absolute;
  left: 0;
  top: 45%;                     /* 縦位置はここで調整してOK */
  transform: translateY(-50%);  /* 中央付近に持ってくる */

  background-color: rgba(255, 255, 255, 0.82);
  display: inline-block;        /* 中身の幅だけの箱になる */

  z-index: 2;
}

/* 中のテキストブロック */
.hb-hero__copy {
  margin: 0;

  /* 文字の左端 = PC最小幅768pxの左端 */
  margin-left: calc((100vw - 768px) / 2);

  /* 右側余白 ≒ 120px、左側は 0 */
  padding: 40px 120px 40px 0;

  font-family: "Noto Serif JP", serif;
  font-size: 30px;
  line-height: 1.9;
  color: #4B391A;
  text-align: left;
}



/* =========================
   スマホ用ヒーロー調整
   ========================= */
@media (max-width: 768px) {

  /* ヒーロー全体の高さ */
  .hb-hero {
    min-height: 420px;
  }

 /* 背景画像：左余白70px、SP用画像に差し替え */
  .hb-hero__bg {
    position: absolute;
    inset: 10px 0 20px 70px;  /* 上10 / 右0 / 下20 / 左70 */
    background-image: url("../images/top_sp.jpg"); 
    background-size: cover;
    background-position: center;
  }


  /* 白い箱：左端は画面にフィット、右側に余白を残す */
  .hb-hero__overlay {
    position: absolute;
    left: 0;
    right: 30px;              /* ここが「右側の余白」。増減で調整可 */
    top: 50%;                 /* 写真の高さの中央付近 */
    transform: translateY(-50%);
    margin: 0;
    padding: 0;
    background-color: rgba(255, 255, 255, 0.82);
    display: block;
    z-index: 2;
  }

 /* テキスト*/
  .hb-hero__copy {
    margin: 0;
    padding: 25px 10px 25px 16px; 
    font-size: 18px; 
    line-height: 1.8;
    text-align: left;
  }
}


/* =====
 * 右側のフローティング丸ボタン（PC）
 * 全ページ共通
 * ===== */

.hb-floating-ctas {
  position: fixed;
  right: 24px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 1000;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* リンクとしての見た目を完全固定（親テーマの a:hover 下線を無効化） */
.hb-floating-ctas__item,
.hb-floating-ctas__item:link,
.hb-floating-ctas__item:visited,
.hb-floating-ctas__item:hover,
.hb-floating-ctas__item:active,
.hb-floating-ctas__item:focus {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px;

  font-size: 18px;
  font-weight: 700;
  line-height: 1.3;
  text-align: center;

  color: #ffffff !important;

  /* 下線系を全部殺す（親テーマが強くても勝つように） */
  text-decoration: none !important;
  text-decoration-line: none !important;
  text-decoration-thickness: initial !important;
  text-underline-offset: initial !important;
  border-bottom: 0 !important;                 /* 下線を border-bottom で作ってるテーマ対策 */
  box-shadow: none !important;                 /* 影で線っぽくしてる対策 */
}

/* 子要素・疑似要素にも下線が付くケース対策 */
.hb-floating-ctas__item *,
.hb-floating-ctas__item::before,
.hb-floating-ctas__item::after {
  color: inherit !important;
  text-decoration: none !important;
  text-decoration-line: none !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
}

/* 色指定 */
.hb-floating-ctas__item--green { background-color: #00B900; }
.hb-floating-ctas__item--brown { background-color: #967B60; }
.hb-floating-ctas__item--blue  { background-color: #3EA2B0; }

/* ホバー時の視覚変化 */
/* クリック領域の上にオーバーレイを載せる準備 */
.hb-floating-ctas__item {
  position: relative;
  overflow: hidden; /* 丸の外に膜がはみ出さないように */
}

/* オーバーレイ本体（通常は透明） */
.hb-floating-ctas__item::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.18); /* ←ここが濃さ（まずは 0.18） */
  opacity: 0;
  transition: opacity 0.15s ease;
  pointer-events: none;
}

/* 文字を膜より前面に */
.hb-floating-ctas__item > * {
  position: relative;
  z-index: 1;
}

/* hover時に膜を出す（opacityは触らない） */
.hb-floating-ctas__item:hover {
  opacity: 1; /* 既存の 0.9 をやめる */
}

.hb-floating-ctas__item:hover::after {
  opacity: 1;
}


/* =====
 * SP：下部固定の横並びバー（丸思想を完全排除）
 * ===== */
@media screen and (max-width: 768px) {

  body {
    padding-bottom: 60px;
  }

  .hb-floating-ctas {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    top: auto;
    transform: none;

    height: 60px;
    width: 100%;

    display: flex;
    flex-direction: row;
    align-items: stretch;

    background-color: #ffffff;
    box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.15);
    z-index: 1000;
  }

  /* SP用：帯ボタン */
  .hb-floating-ctas__item {
    flex: 1 1 0;
    width: auto !important;
    height: auto !important;          /* ← 高さ固定を捨てる */
    min-height: 60px;

    border-radius: 0 !important;
    overflow: visible !important;
    aspect-ratio: auto !important;   /* ← 正円化を完全解除 */

    padding: 0;
    margin: 0;

    font-size: 16px;
    line-height: 1.2;

    display: flex;
    align-items: center;
    justify-content: center;
  }

  /* 疑似要素を完全無効化（ここ重要） */
  .hb-floating-ctas__item::before,
  .hb-floating-ctas__item::after {
    content: none !important;
    display: none !important;
  }
	

  .hb-floating-ctas {
    gap: 1px;                 /* ← 白い隙間の正体 */
    background-color: #ffffff;
  }
  .hb-floating-ctas__item {
    margin: 0;
  }


}

/* ===== 
 * フローティング丸ボタンここまで
 * サブコピー～NEWSエリアここから
 *  ===== */
/* 白背景テキストセクション */
.top-intro {
  background-color: #ffffff;
  padding: 80px 20px;
}

.top-intro__inner {
  max-width: 960px;
  margin: 0 auto;
  text-align: center;
  line-height: 2;
	font-size: 16px;
}


/* NEWS セクション背景 */
.top-news {
  position: relative;
  background-image: url("../images/news-bg.jpg"); 
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: 80px 40px;
}


.top-news__overlay {
  display: flex;
  justify-content: center;
}

.top-news__inner {
  max-width: 800px;
  width: 100%;
  background-color: rgba(255, 255, 255, 0.8);
  padding: 40px 40px 32px;
}


/* NEWS リスト */
.top-news__list {
  border-top: 1px solid #d0d0d0;
}

.top-news__item {
  border-bottom: 1px solid #d0d0d0;
}

.top-news__link {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 0;
  text-decoration: none;
  color: #333333;
}

.top-news__item-title {
  font-size: 16px;
  line-height: 1.6;
  flex: 1;
}

.top-news__item-date {
  font-size: 12px;
  margin-left: 24px;
  white-space: nowrap;
}


/* TOPページ NEWS 背景オーバーレイを強制適用 */
.hb-front .top-news {
  position: relative;
  overflow: hidden;
}

.hb-front .top-news::before {
  content: '';
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.35) !important; /* ←暗さはここで調整 */
  z-index: 1;
}

/* 中身はオーバーレイより手前に */
.hb-front .top-news__overlay,
.hb-front .top-news__inner {
  position: relative;
  z-index: 2;
}



/* スマホ */
@media (max-width: 767px) {
  .top-intro {
 padding: 30px 16px;
  }

.hb-front .top-intro__inner p {
    margin-left: auto;
    margin-right: auto;
	    font-size: 16px;
  }


  .top-news {
    padding: 60px 16px;
  }

  .top-news__inner {
    max-width: 90%;
    padding: 32px 20px 24px;
  }


  .top-news__link {
    flex-direction: column;
    align-items: flex-start;
  }

  .top-news__item-date {
    margin-left: 0;
    margin-top: 4px;
  }
}

/* ===== 
*見出しフォント
 ===== */
.hb-front h1,
.hb-front h2,
.hb-front h3,
.hb-front h4,
.hb-front h5,
.hb-front h6 {
  font-family: "Noto Serif JP", serif !important;
  font-weight: 700;
}


/* ===== 
 * こんな不安を整理できます 
 * ===== */


.hb-front .hb-concerns {
  background-color: #ffffff;
  padding: 80px 20px;
}

/* ベージュのボックス */
.hb-front .hb-concerns__box {
  max-width: 700px;
  margin: 0 auto;
  background-color: #F7F4F1;
  padding: 48px 56px;
}

/* リスト */
.hb-front .hb-concerns__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.hb-front .hb-concerns__item {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  font-size: 20px;
  line-height: 1.8;
  color: #4B391A;
}

.hb-front .hb-concerns__item + .hb-concerns__item {
  margin-top: 12px;
}

/* SVGアイコン */
.hb-front .hb-concerns__icon {
  flex: 0 0 auto;
  margin-top: 4px;
}

.hb-front .hb-concerns__icon-svg {
  width: 32px;
  height: 32px;
  display: block;
}

.hb-front .hb-concerns__icon-svg circle {
  fill: #78C9CE;
}

.hb-front .hb-concerns__icon-svg polyline {
  fill: none;
  stroke: #ffffff;
  stroke-width: 2.4;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.hb-front .hb-concerns__text {
  display: block;
}

/* スマホ */
@media (max-width: 768px) {
  .hb-front .hb-concerns {
    padding: 60px 16px;
  }

  .hb-front .hb-concerns__box {
    max-width: 95%;
    padding: 32px 20px;
  }

  .hb-front .hb-concerns__item {
    font-size: 16px;
    line-height: 1.8;
    gap: 12px;
  }

  .hb-front .hb-concerns__icon-svg {
    width: 24px;
    height: 24px;
  }
}


/* ===== VOICE セクション ===== */
.hb-front .hb-voice {
  background-color: #ffffff;
  padding: 80px 20px;
}

.hb-front .hb-voice__lead {
  margin-top: 50px;
	text-align: center;
  font-size: 16px;
  line-height: 1.8;
  color: #4B391A;
}

/* 画像グリッド PC: 4×2 */
.hb-front .hb-voice__grid {
  max-width: 960px;
  margin: 40px auto 32px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.hb-front .hb-voice__item {
  position: relative;
  overflow: hidden;
}

.hb-front .hb-voice__img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  aspect-ratio: 3 / 2; /* 横長 3:2 */
}

/* ボタン */
.hb-front .hb-voice__btn-wrap {
  text-align: center;
}

.hb-front .hb-voice__btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 20px;
  border: 1px solid #4B391A;
  color: #4B391A;
  text-decoration: none;
  font-size: 16px;
  border-radius: 4px;
  transition: 0.2s;
}

.hb-front .hb-voice__btn::after {
  content: "";
  width: 6px;
  height: 6px;
  border-right: 1.8px solid #4B391A;
  border-bottom: 1.8px solid #4B391A;
  transform: rotate(-45deg);
  margin-left: 4px;
  display: inline-block;
}


/* スマホ: 2×4 に変更 */
@media (max-width: 768px) {
  .hb-front .hb-voice {
    padding: 60px 16px;
  }

  .hb-front .hb-voice__lead {
    font-size: 16px;
  }

  .hb-front .hb-voice__grid {
    max-width: 100%;
    margin: 32px auto 24px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }
}


/* ===== 
ハウスブリッジの家づくりサポート
===== */
.hb-front .hb-support {
  background-color: #E4F4F4;
  padding: 80px 20px;
}

/* 丸アイコン行（PC: 6個横並び） */
.hb-front .hb-support__icons-row {
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  justify-content: center;
  gap: 24px;
  flex-wrap: nowrap;
}

.hb-front .hb-support__icon {
  width: 130px;
  height: 130px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #ffffff;
  font-size: 18px;
  line-height: 1.5;
  font-weight: 700;
}

/* 色は後で微調整OK */
.hb-front .hb-support__icon--fund    { background-color: #DC923B; }
.hb-front .hb-support__icon--land    { background-color: #EAC400; }
.hb-front .hb-support__icon--loan    { background-color: #8EB84F; }
.hb-front .hb-support__icon--designer{ background-color: #67C1B9; }
.hb-front .hb-support__icon--build   { background-color: #6DAFD6; }
.hb-front .hb-support__icon--after   { background-color: #3B719B; }
.hb-front .hb-support__icon--second  { background-color: #9883B7; }

/* セカンドオピニオン丸（中央下） */
.hb-front .hb-support__icon-second {
  margin-top: 40px;
  display: flex;
  justify-content: center;
}

/* リード文 */
.hb-front .hb-support__lead {
  margin-top: 40px;
  text-align: center;
  font-size: 18px;
  line-height: 1.8;
  color: #4B391A;
}

/* 説明カード 6個（PC: 2列×3行） */
.hb-front .hb-support__cards {
  max-width: 1100px;
  margin: 48px auto 40px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 32px;
}

.hb-front .hb-support__card,
.hb-front .hb-support__second {
  background-color: #ffffff;
  border: 1px solid #E0D6C8;
}

/* 共通カードレイアウト（ベース） */
.hb-front .hb-support__card-inner,
.hb-front .hb-support__second-inner {
  display: flex;
  align-items: stretch;
}

.hb-front .hb-support__card-media,
.hb-front .hb-support__second-media {
  position: relative;
  flex: 0 0 36%;
  padding: 62px 24px 24px;
}

/* 本文＋リンク */
.hb-front .hb-support__card-body,
.hb-front .hb-support__second-body {
  flex: 1;
  padding: 24px 24px 24px 0;
}

/* カード内テキスト */
.hb-front .hb-support__card-text {
  font-size: 16px;
  line-height: 1.8;
  color: #4B391A;
  margin: 0 0 12px;
}

/* デフォルトのリンク（SP含む） */
.hb-front .hb-support__card-link {
  font-size: 14px;
  margin: 12px 0 0;
  text-align: left;
}

.hb-front .hb-support__card-link a {
  color: #8D4D28;
  text-decoration: none;
}

.hb-front .hb-support__card-link a:hover {
  text-decoration: underline;
}
/*-------PCだけの設定-------*/
@media (min-width: 769px) {

  /* セカンドオピニオンの画像幅（もともとの指定） */
  .hb-front .hb-support__second-media {
    flex: 0 0 26%;
  }

  /* カード全体をリンクの基準位置にする */
  .hb-front .hb-support__card-inner,
  .hb-front .hb-support__second-inner {
    position: relative;
    padding-bottom: 56px; /* 下にリンク分のスペースを空ける（必要に応じて調整） */
  }

  /* 本文カラムは普通のブロックでOK */
  .hb-front .hb-support__card-body,
  .hb-front .hb-support__second-body {
    padding: 24px 24px 24px 0;
  }

	  /*本文テキストの「開始位置」を上に引き上げる */
  .hb-front .hb-support__card-text {
    margin-top: 38px;  
  }

  /* ★PCだけ：リンクをカード全体の下中央に固定 */
  .hb-front .hb-support__card-link {
    position: absolute;
    left: 50%;
    bottom: 16px;
    transform: translateX(-50%);
    width: 100%;
    text-align: center;
    margin: 0; /* 上の margin-top は無効化 */
  }
}
/*-----------------------*/


/* カード内の丸アイコン（画像左上に重ねる） */
.hb-front .hb-support__card-icon {
  position: absolute;
  top: -10px;
  left: 10px;
	width: 90px;
  height: 90px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #ffffff;
  font-size: 15px;
  line-height: 1.5;
  font-weight: 700;
}

.hb-front .hb-support__card-icon--fund    { background-color: #DC923B; }
.hb-front .hb-support__card-icon--land    { background-color: #EAC400; }
.hb-front .hb-support__card-icon--loan    { background-color: #8EB84F; }
.hb-front .hb-support__card-icon--designer{ background-color: #67C1B9; }
.hb-front .hb-support__card-icon--build   { background-color: #6DAFD6; }
.hb-front .hb-support__card-icon--after   { background-color: #3B719B; }
.hb-front .hb-support__card-icon--second  { background-color: #9883B7; }

/* イラスト画像：横長トリミング（PCベース） */
.hb-front .hb-support__card-img {
  width: 100%;
  display: block;
  object-fit: cover;
  aspect-ratio: 3 / 2;
}

/* セカンドオピニオンカードは横幅いっぱい1つ */
.hb-front .hb-support__second {
  max-width: 1100px;
  margin: 0 auto;
}


/* =========
   スマホレイアウト（統合版）
   ========= */
@media (max-width: 768px) {

  /* 丸アイコン6個を3列×2行 */
  .hb-front .hb-support__icons-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    max-width: 95%;
    margin: 0 auto 32px;
    justify-items: center;
  }

  /* スマホの丸アイコンサイズ */
  .hb-front .hb-support__icons-row .hb-support__icon {
    width: 110px;
    height: 110px;
  }

  /* セカンドオピニオン丸は中央 */
  .hb-front .hb-support__icon-second {
    display: flex;
    justify-content: center;
    margin-bottom: 40px;
  }

  /* 説明カード 1列縦積み */
  .hb-front .hb-support__cards {
    grid-template-columns: 1fr;
    gap: 24px;
    margin: 40px auto 32px;
  }

  .hb-front .hb-support__card-inner,
  .hb-front .hb-support__second-inner {
    flex-direction: column;
  }

  /* カード内の画像エリアまわりの余白（最終値） */
  .hb-front .hb-support__card-media,
  .hb-front .hb-support__second-media {
    position: relative;
    padding: 8px;
  }

  /* テキストエリアの余白 */
  .hb-front .hb-support__card-body,
  .hb-front .hb-support__second-body {
    padding: 10px 25px 16px;
  }

  /* 丸アイコンの位置・サイズ（最終値） */
  .hb-front .hb-support__card-icon {
    top: -10px;
    left: 8px;
    width: 90px;
    height: 90px;
    font-size: 16px;
  }

  /* タイトルサイズ */
  .hb-front .hb-support__card-title {
    font-size: 20px;
    line-height: 1.6;
  }

  /* 画像位置調整 */
  .hb-front .hb-support__card-img {
    margin-top: 35px;
    margin-left: 5px;
    width: calc(100% - 5px);
    aspect-ratio: 3 / 2;
    object-fit: cover;
    display: block;
  }
}


/* =========================
   TOPページ タイポグラフィ基準
   ========================= */

/* PC共通 */
@media (min-width: 769px) {
  .hb-front {
    font-family: Noto Sans JP, sans-serif;
  }

  .hb-front p {
    font-size: 16px;
    line-height: 1.8;
		color: #4B391A;
  }

  /* h2 のデフォルト（セクション見出し想定） 
   *  → ヒーローコピーは除外する */
  .hb-front h2:not(.hb-hero__copy):not(.hb-architect__title) {
    margin: 0;
    padding: 0;
    border: none;
    margin-bottom: 0 !important;
    font-family: Noto Serif JP, serif;
    font-weight: 700;
    font-size: 32px;
    line-height: 1.4;
    color: #4B391A;
  }
	
	
  /* h3 基本ルール（カード内など） */
  .hb-front h3 {
    font-family: Noto Serif JP, serif;
    font-weight: 700;
    font-size: 22px;
    line-height: 1.5;
    color: #4B391A;
    margin-bottom: 20px;
  }
}

/*==================================
   共通コンポーネント：セクションタイトル
   ==================================*/

.section-title {
  text-align: center;
  margin-bottom: 40px;
}

.section-title__text {
  display: inline-block;
  letter-spacing: 0.08em;
}

.section-title__underline {
  display: block;
  width: 60px;
  height: 4px;
  margin: 8px auto 0;
  background-color: #78C9CE;
}

/* スマホ共通 */
@media (max-width: 768px) {
  .hb-front p {
    font-size: 16px;
    line-height: 1.9;
  }

  .hb-front .hb-support__card-text {
    font-size: 16px;
    line-height: 1.9;
  }

  /* h2（セクションタイトル系） */
  .hb-front h2 {
    font-size: 22px;
    line-height: 1.5;
		border: none;
		margin-bottom: 0 !important;
  }

  /* h3（カード内の小見出しなど） */
  .hb-front h3 {
    font-size: 20px;
    line-height: 1.6;
  }

  .section-title__text {
    font-size: 22px;
  }
}

/* ヒーローコピーのPC用最終指定 */
@media (min-width: 769px) {
  .hb-front h2.hb-hero__copy {
    margin: 0;
    margin-left: calc((100vw - 768px) / 2);  /* コンテンツ幅768px基準 */
    padding: 40px 120px 40px 0;              /* 右側余白 約120px */

    font-family: Noto Serif JP, serif;
    font-size: 30px;
    line-height: 1.9;
    color: #4B391A;
    text-align: left;
  }
}



/*==========================
  「設計施工セパレート方式」セクション
==========================*/

/* セクション全体：背景写真 + 白オーバーレイ */
.hb-separate {
  position: relative;
  padding: 120px 0;
  background: url("https://house-bridge.jp/wp/wp-content/uploads/2024/06/2023-06-17-184035.jpg")
              center/cover no-repeat;
  overflow: hidden;
}

/* 白オーバーレイ（透明度は好みで調整） */
.hb-separate::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.85); /* ← 0.75〜0.9 が薄写真としてちょうどいい */
  z-index: 0;
}

/* 中身を前面に出す */
.hb-separate > * {
  position: relative;
  z-index: 1;
}


/* 横幅制御＆中央寄せ */
.hb-separate__inner {
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 20px;
  box-sizing: border-box;
}

/* 見出し */
.hb-separate__title {
  margin: 0 0 32px;
  border-bottom: none;
  text-align: center;
}

/* 下テキスト */
.hb-separate__text {
  margin: 50px auto 0;
	max-width: 600px;
	
}

.hb-separate__heading {
  font-size: 20px;
  font-weight: 600;
  margin-bottom: 20px;
  text-align: center;
}

.hb-separate__para {
  line-height: 1.9;
  margin-bottom: 12px;
}

/*================================
  画像比較セクション 共通
================================*/

.hb-compare {
  padding: 60px 0;
}

.hb-compare__inner {
  max-width: 980px;
  margin: 0 auto;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 32px;
}

/* 各アイテムの基本形 */

.hb-compare__item {
  position: relative;
  display: block;
  transition:
    flex-basis 0.4s ease,
    max-width 0.4s ease,
    transform 0.4s ease,
    margin-top 0.4s ease;
}

.hb-compare__item-inner {
  position: relative;
  overflow: hidden;
  border-radius: 12px;
  background-color: #f5f5f5;
  border: 1px solid #564413;               /* 枠線 */
  box-shadow: 0 8px 16px rgba(0, 0, 0, .16); /* ドロップシャドウ */
}


.hb-compare__image {
  display: block;
  width: 100%;
  height: auto;
}

/* PCでの大小の差（横並び時） */

.hb-compare__item--large {
  flex: 0 0 68%;
  max-width: 500px;
	width: 60%;
  transform: scale(1.0);
  margin-top: 0;
}

.hb-compare__item--small {
  flex: 0 0 auto;
  max-width: 260px;
	width:30%;
  transform: scale(0.96);
  margin-top: 40px; /* PCでも小さい画像を下にずらす */
}

/* 小さいほうはタップ可能ぽく */

.hb-compare__item--clickable {
  cursor: pointer;
}

/* フォーカスリング（キーボード操作用） */

.hb-compare__item--clickable:focus-visible {
  outline: 2px solid #359ea4;
  outline-offset: 4px;
}

/*=========================
  三角矢印のスタイル
==========================*/

/* 形状そのもの（指定してくれた .arrow をそのまま利用） */
.arrow {
  display: inline-block;
  width: 58px;
  height: 80px;
  background: linear-gradient(40deg, #3ea2b0 0%, #b7eaea 100%);
  clip-path: polygon(
    0 63.8%,
    32.8% 63.8%,
    32.8% 0,
    67.2% 0,
    67.2% 63.8%,
    100% 63.8%,
    50% 100%
  );
}

/* 小さい画像の上に重ねる用の配置とアニメ */
.hb-compare__arrow {
  position: absolute;
  left: 50%;
  top: -40px;              /* 三角の底辺が少し画像にかかる位置 */
  transform: translateX(-50%);
  opacity: 0;
  pointer-events: none;
	z-index: 5; 
}

/* 上下にゆらゆらアニメーション */
@keyframes hb-compare-arrow-bounce {
  0% {
    top: -40px;
    opacity: 0.9;
  }
  50% {
    top: -48px;
    opacity: 1;
  }
  100% {
    top: -40px;
    opacity: 0.9;
  }
}

/* 「小さいほう」にだけ矢印を表示して動かす */

.hb-compare__item--small .hb-compare__arrow {
  opacity: 1;
  animation: hb-compare-arrow-bounce 1.2s infinite ease-in-out;
}

/* 大きいほうでは矢印非表示 */

.hb-compare__item--large .hb-compare__arrow {
  opacity: 0;
  animation: none;
}

/*==============================
  スマホレイアウト（縦並び）
==============================*/
@media screen and (max-width: 768px) {

  .hb-compare {
    padding: 32px 0;
  }

  .hb-compare__inner {
    max-width: 100%;
    flex-direction: column;
    gap: 24px;
    align-items: center;
  }

  .hb-compare__item {
    width: 100%;
    max-width: 100%;
    margin-top: 0;
    transform: none;
  }

  /* ▼ 大きいほう：画面の約95％まで広げる */
  .hb-compare__item--large .hb-compare__item-inner {
    width: 96vw;                         /* ここが「ほぼ全幅」 */
    max-width: 96vw;
    margin-left: calc(50% - 48vw);       /* 画面中央基準に揃える */
    margin-right: calc(50% - 48vw);
  }

  /* ▼ 小さいほう：グリッドで
     [画像] | [Tapで比較]
            | [矢印]
     という配置にする
  */
  .hb-compare__item--small {
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto;
    column-gap: 8px;
    align-items: center;
  }

  /* 左：小さい画像（2行ぶち抜き） */
  .hb-compare__item--small .hb-compare__item-inner {
    grid-column: 1;
    grid-row: 1 / span 2;
    width: 50vw;
    max-width: 50vw;
    margin: 0;
  }

  /* 右上：テキスト「Tapで比較」 */
  .hb-compare__item--small .hb-compare__label {
    position: static;        /* 絶対配置をやめる */
    opacity: 1;
    white-space: nowrap;
    transform: none;
    font-size: 24px;
    grid-column: 2;
    grid-row: 1;
    align-self: flex-end;
		margin-left: -100px; 
		margin-top: 8px;
  }

  /* 右下：横倒しの矢印（画像側に少しかぶせる） */
  .hb-compare__item--small .hb-compare__arrow {
    position: static;
    width: 50px;
    height: 60px;
		margin-top: -90px;
    grid-column: 2;
    grid-row: 2;
    transform: translateX(-100px) rotate(90deg); /* 左向き */
    animation: hb-compare-arrow-horizontal 1.1s infinite ease-in-out;
  }
}

/* 左右にフリフリするアニメ（左向き前提） */
@keyframes hb-compare-arrow-horizontal {
  0% {
    transform: translateX(-100px) rotate(90deg) ;
  }
  50% {
    transform: translateX(-105px) rotate(90deg); /* さらに画像に寄る */
  }
  100% {
    transform: translateX(-100px) rotate(90deg);
  }
}


/*==============================
/* ラベル共通スタイル （クリック！）
*==============================*/
/* ラベル */
.hb-compare__label {
  position: absolute;
  left: 50%;
  top: -76px;
  transform: translateX(-50%);
  font-family: 'Kaisei Decol', serif;
  color: #3ea2b0;
  text-align: center;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
}


/* PC用／SP用テキストをメディアクエリで出し分け */

.hb-compare__label--pc,
.hb-compare__label--sp {
  display: inline-block;
}

@media screen and (min-width: 769px) {
  .hb-compare__label--sp {
    display: none;
  }
  .hb-compare__label {
    font-size: 24px;
  }
}

@media screen and (max-width: 768px) {
  .hb-compare__label--pc {
    display: none;
  }
  .hb-compare__label {
    font-size: 20px;
  }
}

/* 小さい側にだけラベルを出す */

.hb-compare__item--small .hb-compare__label {
  opacity: 1;
}
.hb-compare__item--large .hb-compare__label {
  opacity: 0;
}


/*====================
  比較表セクション全体
====================*/
.hb-compare-section {
  padding: 80px 0;
}

.hb-compare-inner {
  max-width: 800px;
  margin: 0 auto;
  padding: 0 20px;
}

.hb-compare-title {
  text-align: center;
  margin: 0 0 40px;
}

/* テーブルレイアウト */
.hb-compare-table-wrapper {
  overflow-x: auto;            /* 横スクロール */
  -webkit-overflow-scrolling: touch;
}

.hb-compare-table {
  width: 100%;
  max-width: 100%;
  border-collapse: collapse;
  margin: 0 auto;
  table-layout: fixed;         /* 列幅を揃える */
}

/* セル */
.hb-compare-table th,
.hb-compare-table td {
  border: 1px solid #4B391A;
  padding: 16px 12px;
  text-align: center;
  vertical-align: middle;
  font-size: 0.95rem;
}

/* 見出し行・列を太字（nowrapは外す：長文で地獄になるため） */
.hb-compare-table thead th,
.hb-compare-table tbody th {
  font-weight: 700;
}

/* 文字を「増えすぎない」ように制限（デフォは3行まで） */
.hb-cell {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;       /* ←ここを 2〜4 で調整 */
  overflow: hidden;

  line-height: 1.4;
  overflow-wrap: anywhere;     /* 長い単語/記号で崩れない */
  word-break: break-word;
  hyphens: auto;
}

/* 見出しは2行までにしてスッキリ */
.hb-cell--head {
  -webkit-line-clamp: 2;
}

/* 行見出し（左列）は折り返し少なめに */
.hb-cell--rowhead {
  -webkit-line-clamp: 2;
}

/* PCでは非表示 */
.hb-compare__lead {
  display: none;
}

/* ハウスブリッジ列の背景色 */
.hb-compare-table thead th:nth-child(2) {
  background-color: #D1C0AF;
}
.hb-compare-table tbody td:nth-child(2) {
  background-color: #F7F4F1;
}

/*====================
  スマホ：横長にして必ず横スライド
====================*/
@media (max-width: 767px) {
  .hb-compare-section {
    padding: 60px 0;
  }

  .hb-compare-table th,
  .hb-compare-table td {
    padding: 12px 8px;
    font-size: 0.85rem;
  }

  .hb-compare__lead {
    display: block;
    margin: 4px 0 6px;
    text-align: center;
    font-size: 14px;
    color: #4B391A;
  }

  /* ここが「スマホでも横スクロールさせる」本体 */
  .hb-compare-table {
    min-width: 880px;          /* ←横長具合。840〜980くらいで調整 */
  }
}


/* =========================
   Q&A セクション共通
   ========================= */

.hb-qa {
  background-color: var(--hb-section-bg-light, #e5f4f4);
  padding: 50px 0;
}

.hb-qa__inner {
  max-width: 800px;
  margin: 0 auto;
  padding: 0 20px;
}


/* 見出しの上下ライン（画像のイメージ） */
.hb-qa__title::before,
.hb-qa__title::after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  height: 1px;
  background-color: #4b391a;
  opacity: 0.4;
}

.hb-qa__title::before {
  bottom: 20px;
  width: 140px;
}

.hb-qa__title::after {
  bottom: 16px;
  width: 260px;
}

/* リスト全体 */

.hb-qa__list {
  list-style: none;
  margin: 32px 0 0;
  padding: 0;
}

.hb-qa-item {
  border-bottom: 1px solid rgba(75, 57, 26, 0.4);
  padding: 24px 0;
}

/* 質問行 */

.hb-qa-item__question {
  display: grid;
  grid-template-columns: auto 1fr auto;
  column-gap: 24px;
  align-items: center;
  width: 100%;
  padding: 0;
  margin: 0;
  border: none;
  background: none;
  cursor: pointer;
  text-align: left;
}

.hb-qa-item__label {
  font-family: Noto Serif JP, serif;
  font-weight: 700;
  font-size: 20px;
  letter-spacing: 0.08em;
}

.hb-qa-item__label--q {
  color: #4b391a;
}

.hb-qa-item__label--a {
  color: #99825b;
}

.hb-qa-item__text {
  font-size: 16px;
  line-height: 1.8;
  color: #4b391a;
}

/* トグルアイコン（＋／−） */

.hb-qa-item__icon {
  position: relative;
  width: 24px;
  height: 24px;
}

.hb-qa-item__icon::before,
.hb-qa-item__icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 18px;
  height: 1px;
  background-color: #4b391a;
  transform: translate(-50%, -50%);
  transition: transform 0.25s ease, opacity 0.25s ease;
}

/* 縦線（＋のときだけ表示） */
.hb-qa-item__icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

/* 開いているときは − 表示にする */
.hb-qa-item.is-open .hb-qa-item__icon::after {
  opacity: 0;
}

/* 回答エリア */

.hb-qa-item__answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}

.hb-qa-item__answer-inner {
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 24px;
  padding-top: 16px;
}

.hb-qa-item__answer-text {
  margin: 0;
  font-size: 16px;
  line-height: 1.8;
  color: #4b391a;
}

/* =========================
   レスポンシブ
   ========================= */

@media (max-width: 768px) {
  .hb-qa {
    padding: 56px 0;
  }

  .hb-qa__title {
    font-size: 26px;
    padding-bottom: 24px;
  }

  .hb-qa__title::before {
    width: 110px;
    bottom: 16px;
  }

  .hb-qa__title::after {
    width: 200px;
    bottom: 12px;
  }

  .hb-qa-item {
    padding: 14px 0;
  }

  .hb-qa-item__question {
    grid-template-columns: auto 1fr auto;
    column-gap: 16px;
  }

  .hb-qa-item__label {
    font-size: 18px;
  }

  .hb-qa-item__text,
  .hb-qa-item__answer-text {
    font-size: 16px;
    line-height: 1.6;
  }

  .hb-qa-item__answer-inner {
    grid-template-columns: auto 1fr;
    column-gap: 16px;
    padding-top: 8px;
  }
}

/* Q&A：各質問ブロックの“ゆったり”を少し詰める */
.hb-qa-item{
  padding: 16px 0; /* 24px → 16px */
}

.hb-qa-item__text,
.hb-qa-item__answer-text{
  line-height: 1.6; /* 1.8 → 1.6 */
}

/* Qと本文の間、回答の上余白も少し詰める */
.hb-qa-item__question{
  column-gap: 16px; /* 24px → 16px */
}

.hb-qa-item__answer-inner{
  padding-top: 10px; /* 16px → 10px */
}

/*========
 * 施工例
 *=========*/

/* WORKS セクションのレイアウト */
.hb-front .hb-works {
  padding: 80px 0;
  background-color: #ffffff; /* 必要なら変更 */
}

.hb-front .hb-works__inner {
  max-width: 960px;
  margin: 0 auto;
}

.hb-front .hb-works__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px 32px;
}

.hb-front .hb-works__item {
  text-align: left;
}

.hb-front .hb-works__thumb img {
  display: block;
  width: 100%;
  height: auto;
}

.hb-front .hb-works__title {
  margin-top: 8px;
  font-size: 14px;
  line-height: 1.6;
  color: #4B391A;
}

/* サムネ画像を 3:2 に固定 */
.hb-front.hb-works .hb-works__thumb {
  position: relative;
  width: 100%;
  aspect-ratio: 3 / 2;
  overflow: hidden;
}

/* 画像を枠いっぱいにフィットさせる */
.hb-front.hb-works .hb-works__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}


/* スマホで2列または1列に落とす例 */
@media (max-width: 767px) {
  .hb-front .hb-works {
    padding: 48px 0;
  }

  .hb-front .hb-works__inner {
    padding: 0 16px;
  }

  .hb-front .hb-works__list {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }

  .hb-front .hb-works__title {
    font-size: 13px;
  }
}

/* ボタン共通化（VOICE／WORKS 共用） */
.hb-front .hb-btn-more-wrap,
.hb-front .hb-voice__btn-wrap,
.hb-front .hb-works__btn-wrap {
  text-align: center;
}

.hb-front .hb-btn-more,
.hb-front .hb-voice__btn,
.hb-front .hb-works__btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 20px;
  border: 1px solid #4B391A;
  color: #4B391A;
  text-decoration: none;
  font-size: 16px;
  border-radius: 4px;
  transition: 0.2s;
}

.hb-front .hb-btn-more::after,
.hb-front .hb-voice__btn::after,
.hb-front .hb-works__btn::after {
  content: "";
  width: 6px;
  height: 6px;
  border-right: 1.8px solid #4B391A;
  border-bottom: 1.8px solid #4B391A;
  transform: rotate(-45deg);
  margin-left: 4px;
  display: inline-block;
}

.hb-front .hb-btn-more:hover,
.hb-front .hb-voice__btn:hover,
.hb-front .hb-works__btn:hover {
  background-color: #4B391A;
  color: #ffffff;
}
/*スマホだけ上にマージン乗せる*/
@media screen and (max-width: 768px) {

  .hb-front .hb-btn-more-wrap,
  .hb-front .hb-voice__btn-wrap,
  .hb-front .hb-works__btn-wrap {
    margin-top: 10px;
  }

}




/*=========
 * 建築家ネットワークナビ
 * =========*/

/* セクション全体 */
.hb-front .hb-architect {
  background-color: #282836;
  padding: 80px 0;
}

/* コンテンツ幅 980px センタリング */
.hb-front .hb-architect__inner {
  max-width: 980px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
}

/* 左カラム（テキスト）6割 */
.hb-front .hb-architect__text {
  flex: 0 0 60%;
  max-width: 60%;
}

/* 右カラム（画像）4割 */
.hb-front .hb-architect__image {
  flex: 0 0 40%;
  max-width: 40%;
  text-align: right;
}
.hb-front .hb-architect__image img {
  max-width: 100%;
  height: auto;
  display: inline-block;
}

/* 設計コンペセクションのタイトル専用・最優先指定 */
.hb-front .hb-architect__title {
  font-size: 24px !important;
  color: #ffffff !important;
  margin: 0 0 50px !important;
  font-family: Noto Serif JP, serif;
  font-weight: 700;
  line-height: 1.6;
  border: none;
}

/* リード・本文 */
.hb-front .hb-architect__lead,
.hb-front .hb-architect__text-body {
  margin: 0 0 16px;
  font-size: 16px;
  line-height: 1.8;
  color: #ffffff;
}

/* リンク */
.hb-front .hb-architect__link-wrap {
  margin-top: 24px;
}

.hb-front .hb-architect__link {
  font-weight: 700;
  text-decoration: none;
  color: #ffffff;
  position: relative;
}

.hb-front .hb-architect__link:hover {
  text-decoration: underline;
}


/* レスポンシブ（SP想定・768px以下） */
@media (max-width: 768px) {
  .hb-front .hb-architect {
    padding: 50px 16px;
  }

  .hb-front .hb-architect__inner {
    display: block;
  }

  .hb-front .hb-architect__text {
    max-width: 100%;
    margin-bottom: 24px;
  }

  .hb-front .hb-architect__image {
    flex: none;
    max-width: 100%;
    width: 100%;
    text-align: center;
    margin: 0 auto;
  }

  .hb-front .hb-architect__title {
    font-size: 20px;
    line-height: 1.6;
  }
}


/* =========================
   3つの無料サポートセクション（HB）
   注意：sectionは「hb-front hb-support3」が同一要素
   ========================= */

/* section自体（.hb-front.hb-support3） */
.hb-front.hb-support3{
  position: relative;
  overflow: hidden;
  color: #ffffff;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  min-height: 650px;
}

/* overlay：背景画像の上、内容の下 */
.hb-front.hb-support3 .hb-support3__overlay{
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.50);
  z-index: 0;
}

/* 内容はoverlayより前 */
.hb-front.hb-support3 .hb-support3__inner{
  position: relative;
  z-index: 1;
  max-width: 1100px;
  margin: 0 auto;
  padding: 80px 20px 90px;
  box-sizing: border-box;
}

.hb-front.hb-support3 .hb-support3__title{
  margin: 0;
  text-align: center;
  font-family: "Noto Serif JP", serif;
  font-size: 32px;
  font-weight: 700;
  color: #ffffff;
}

/* ボックス周り */
.hb-front.hb-support3 .hb-support3__items{
  margin-top: 72px;
  display: flex;
  gap: 10px;
}

.hb-front.hb-support3 .hb-support3__item{
  position: relative;
  flex: 1;
  background: rgba(255, 255, 255, 0.8);
  padding: 64px 24px 32px;
  box-sizing: border-box;
  text-align: center;
  color: #4B391A;
}

/* 3つの無料サポート：タイトルは常に白（親テーマのh2に勝つ） */
.hb-front.hb-support3 h2.hb-support3__title{
  color: #fff !important;
}


/* 円アイコン共通 */
.hb-front.hb-support3 .hb-support3__icon{
  position: absolute;
  top: -60px;
  left: 50%;
  transform: translateX(-50%);
  width: 120px;
  height: 120px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-weight: 700;
  line-height: 1.4;
  font-size: 18px;
}

/* 円の中のリンク（クリック領域を安定化） */
.hb-front.hb-support3 .hb-support3__icon-link{
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  color: #ffffff;
  text-decoration: none;
}

/* 円の色バリエーション */
.hb-front.hb-support3 .hb-support3__icon--line{
  background-color: #00B900;
}
.hb-front.hb-support3 .hb-support3__icon--consult{
  background-color: #967B60;
}
.hb-front.hb-support3 .hb-support3__icon--seminar{
  background-color: #3EA2B0;
}

/* 本文 */
.hb-front.hb-support3 .hb-support3__body p{
  margin: 0 0 8px;
  font-size: 16px;
  line-height: 1.8;
  color: #4B391A; /* ← 白にしない */
}

/* ボタン */
.hb-front.hb-support3 .hb-support3__btn-wrap{
  margin-top: 48px;
  text-align: center;
}

.hb-front.hb-support3 .hb-support3__btn{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 15px;
  border: 1px solid #359EA4;
  background-color: #359EA4;
  color: #ffffff;
  text-decoration: none;
  font-size: 16px;
  border-radius: 4px;
  transition: 0.2s;
}

.hb-front.hb-support3 .hb-support3__btn::after{
  content: "";
  width: 6px;
  height: 6px;
  border-right: 1.8px solid currentColor;
  border-bottom: 1.8px solid currentColor;
  transform: rotate(-45deg);
  margin-left: 4px;
  display: inline-block;
}

.hb-front.hb-support3 .hb-support3__btn:hover{
  background-color: #ffffff;
  color: #359EA4;
}

/* =========================
   スマホ調整
   ========================= */

@media (max-width: 768px){
  /* セクション上下の余白 */
  .hb-front.hb-support3{
    margin-top: 0;
    padding-top: 0;
  }
	.hb-front.hb-support3{
    background-color: #000;   /* 何もない隙間が出ても白にならない保険 */
    display: flow-root;       /* 上下マージンの潰れ（干渉）を止める */
    margin-top: 0 !important;
  }

  .hb-front.hb-support3 .hb-support3__inner{
    padding: 32px 16px 56px;
  }

  /* タイトルとアイコンの距離を確保 */
  .hb-front.hb-support3 .hb-support3__title{
    font-size: 22px;
    margin-bottom: 44px;
  }

  /* 縦積み */
  .hb-front.hb-support3 .hb-support3__items{
    margin-top: 0;
    flex-direction: column;
    gap: 45px; /* 箱どうしの距離 */
  }

  /* 箱：上にアイコンが食い込むのでpadding-topを確保 */
  .hb-front.hb-support3 .hb-support3__item{
    padding: 44px 18px 22px; /* ← 上を減らしつつ干渉しない値 */
    margin-bottom: 0;        /* 既存の margin-bottom は干渉の原因になりやすい */
    text-align: center;      /* ④対策：箱内は中央 */
  }

  /* アイコンを小さくして干渉を減らす */
  .hb-front.hb-support3 .hb-support3__icon{
    width: 80px;
    height: 80px;
    top: -46px;       /* 箱の上辺に食い込みすぎない */
    font-size: 14px;  /* 文字がはみ出ない範囲 */
  }
 
	.hb-front.hb-support3 .hb-support3__items{
    margin-top: 72px !important; /* ここで〇ぶんのスペースを確保 */
  }

  /* ついでに、〇の飛び出し量を少し減らす（保険） */
  .hb-front.hb-support3 .hb-support3__icon{
    top: -40px !important;
  }
	
  /* アイコン内リンク：文字は折り返さない */
  .hb-front.hb-support3 .hb-support3__icon-link{
    white-space: nowrap;
  }

  /* 本文：中央寄せ固定 */
  .hb-front.hb-support3 .hb-support3__body{
    text-align: center;
  }
  .hb-front.hb-support3 .hb-support3__body p{
    font-size: 15px;
    line-height: 1.75;
    margin: 0 0 6px;
  }

  /* ボタン */
  .hb-front.hb-support3 .hb-support3__btn{
    width: 88%;
    justify-content: center;
    margin: 0 auto;
  }
}

/* =========================
   SP全体：セクション余白を強制的に圧縮
   ========================= */
@media (max-width: 768px) {

  /* hb-front 配下のセクション共通ルール */
  .hb-front section,
  .hb-compare-section,
  .hb-qa,
  .hb-separate {
    padding-top: 32px !important;   /* 上だけかなり詰める */
    padding-bottom: 40px !important;
    margin-top: 24px !important;    /* テーマ側の大きい margin を上書き */
    margin-bottom: 0 !important;
  }

  /* 最初のセクションだけは上マージン無し */
  .hb-front section:first-of-type {
    margin-top: 0 !important;
  }

  /* セクションタイトルの余白も軽くする */
  .section-title {
    margin-top: 0 !important;
    margin-bottom: 20px !important;
  }

  /* h2 自体に margin が入っているケースも潰しておく */
  .hb-front h2 {
    margin-top: 0 !important;
  }
}

/*上へ戻るボタンの位置を調整*/
#topcontrol {
    bottom: 65px !important;   
  }

/* =========================
   フッター
   ========================= */

.hb-footer {
  background-color: #E5F4F4;
  color: #4B391A;
  font-family: Noto Sans JP, sans-serif;
}

.hb-footer a {
  color: #4B391A;
  text-decoration: none;
}

.hb-footer a:hover {
  text-decoration: underline;
}

.hb-footer__inner {
 max-width: 700px;
  margin: 0 auto;
  padding: 20px 20px 20px;
  box-sizing: border-box;
}

/* 上部ロゴ・テキスト */
.hb-footer__head {
  text-align: center;
  margin-bottom: 40px;
}

.hb-footer__logo img {
  max-width: 220px;
  height: auto;
  display: inline-block;
  margin-bottom: 16px;
}

.hb-footer__catch {
  margin: 0 0 30px;
  font-size: 14px;
  line-height: 1.8;
}

.hb-footer__company p {
  margin: 0;
  font-size: 14px;
  line-height: 1.6;
}

/* 3カラムリンク */
.hb-footer__links {
  display: flex;
  gap: 20px;
  justify-content: center;
  margin-bottom: 32px;
}

.hb-footer__col {
  flex: 1;
  min-width: 0;
}

.hb-footer__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.hb-footer__list li {
  margin-bottom: 6px;
  font-size: 14px;
}

/* SNSアイコン */
.hb-footer__sns {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 16px;
  margin-bottom: 16px;
}

.hb-footer__sns img {
  display: block;
  width: 24px;
  height: 24px;
}

/* コピーライト */
.hb-footer__copy {
  margin: 0;
  text-align: center;
  font-size: 12px;
}


/* フッター 全体をセリフ体に */
.hb-footer {
  background-color: #E5F4F4;
  color: #4B391A;
  font-family: Noto Serif JP, serif;
}


/* スマホ調整 */
@media (max-width: 768px) {
  .hb-footer__inner {
    padding: 40px 16px 24px;
  }

  .hb-footer__links {
    flex-direction: column;
    gap: 24px;
  }

  .hb-footer__catch {
    font-size: 16px;
  }

  .hb-footer__list li {
    font-size: 16px;
  }
}





/* 会社情報のフォント調整 */
.hb-footer__company p {
  margin: 0;
  font-size: 22px;
  line-height: 1.6;
}

/* 一番下の営業時間の行だけ少し小さくする */
.hb-footer__company p:last-child {
  font-size: 14px;
}

@media (min-width: 769px){
	 .hb-footer__inner { max-width: 600px; margin: 0 auto; }
  .hb-footer__links{
    margin-left: 0;
    justify-content: center;
    align-items: flex-start;
    gap: 28px;              /* カラム間を少し広げる */
  }

  .hb-footer__inner{
    max-width: 900px;       /* 3カラムの箱を広げる */
    padding: 40px 20px 28px;
  }
}


/* =========================
   家づくり勉強会 固定ページ
   ========================= */

.hb-seminar-page {
  max-width: 980px;
  margin: 0 auto;
  padding: 60px 20px 80px;
  box-sizing: border-box;
  font-family: "Noto Sans JP", sans-serif;
  color: #4B391A;
}

/* タイトルコピー */

.hb-seminar-hero {
  max-width: 800px;
  margin: 0 auto 56px;
  text-align: center;
}

.hb-seminar-hero-title {
  margin: 0 0 16px;
  font-family: Noto Serif JP, serif;
  font-size: 28px;  
  line-height: 1.6;
}

.hb-seminar-hero-lead {
  margin: 0
  font-size: 16px;
  line-height: 1.9;
}

.hb-seminar-hero-image {
  margin: 0 0 60px; /* ここを好みで調整（まず24px） */
}


/* 各セミナーのカード */

.hb-seminar-section {
  display: flex;
  flex-direction: column;
  gap: 50px;
  margin-bottom: 70px;
}

.hb-seminar-card {
  position: relative;

  /* ここがポイント：丸ラベルの分だけ上に余白を作る */
  padding: 70px 20px 24px 20px;

  border-radius: 12px;
  background-color: #FFFFFF;
  border: 1px solid #E1D5C7;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.04);
}

.hb-seminar-card-label {
  position: absolute;
  top: -36px;          /* 食い込み量を少し減らす（好みで微調整OK） */
  left: 24px;
  width: 100px;
  height: 100px;
  border-radius: 50%;
  background-color: #3EA2B0;
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.3;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);

  z-index: 2;          /* 念のため前面固定 */
}


.hb-seminar-card-title {
  margin: 8px 0 12px;
  padding-bottom: 10px;
  font-family: "Noto Serif JP", serif;
  font-size: 20px;
  line-height: 1.7;
  border-bottom: 2px solid #D1C0AF;
}

.hb-seminar-card-lead {
  margin: 0 0 16px;
  font-size: 15px;
  line-height: 1.9;
}

/* ブロックごとの見出し */

.hb-seminar-block {
  margin-top: 12px;
}

.hb-seminar-block-title {
  margin: 0 0 4px;
  font-size: 14px;
  letter-spacing: 0.12em;
  text-transform: none;
  color: #99825B;
}

.hb-seminar-list {
  margin: 0 0 4px 1.2em;
  padding: 0;
  font-size: 14px;
  line-height: 1.9;
}

.hb-seminar-list li {
  margin-bottom: 2px;
}

/* 共通の効果・補足 */

.hb-seminar-summary,
.hb-seminar-follow {
  padding: 24px 20px;
  border-radius: 12px;
  background-color: #F7F4F1;
  border: 1px solid #D1C0AF;
  margin-bottom: 32px;
}

.hb-seminar-summary-title,
.hb-seminar-follow-title {
  margin: 0 0 12px;
  font-family: "Noto Serif JP", serif;
  font-size: 18px;
  border-left: 4px solid #99825B;
  padding-left: 10px;
}

.hb-seminar-summary-text,
.hb-seminar-follow-text {
  margin: 8px 0 8px;
  font-size: 14px;
  line-height: 1.9;
}

/* スマホ調整 */

@media (max-width: 767px) {
  .hb-seminar-page {
    padding: 40px 16px 56px;
  }

  .hb-seminar-hero-title {
    font-size: 22px;
  }

  .hb-seminar-card {
    padding: 56px 16px 22px 16px; /* SPも上を増やす */
  }

  .hb-seminar-card-label {
    width: 80px;
    height: 80px;
    font-size: 13px;
    top: -28px;
    left: 16px;
  }

  .hb-seminar-card-title {
    font-size: 18px;
  }
	  .hb-seminar-hero-image {
    margin-bottom: 30px; /* SPは少し詰めたいなら18px */
  }

}

/* 3つの勉強会ページ専用 ヒーロー画像 */
body.page-study-seminar.logged-in .head-img {
  background-image: url('../images/study_main.jpg') !important;
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
}

.page-study-seminar .head-img {
  background-image: url('../images/study_main.jpg') !important;
}



/*=========
 セカンドオピニオン固定ページ専用（スラッグ second_opinion）
=========*/

/* 共通：画像の基本スタイル（PC基準 300px・3:2） */
.page-second_opinion .aboutSec02 .second-opinion-img {
  width: 100%;
  max-width: 300px;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  display: block;
  margin-left: auto;
  margin-right: auto;
}

/* PC：画像右・テキスト左にする */
@media (min-width: 769px) {
  .page-second_opinion .aboutSec02 .profileBox {
    display: flex;
    flex-direction: row-reverse; /* 画像を右へ */
    align-items: flex-start;
  }

  .page-second_opinion .aboutSec02 .profileImg {
    margin-left: 40px; /* テキストとの間隔 */
    margin-right: 0;
    flex: 0 0 auto;
  }

  .page-second_opinion .aboutSec02 .profileTxt {
    flex: 1 1 auto;
  }
}

/* スマホ：見出し → 画像 → 本文 の縦積み ＋ 幅調整 */
@media (max-width: 768px) {
  .page-second_opinion .aboutSec02 .profileBox {
    display: block;
  }

  .page-second_opinion .aboutSec02 .profileImg {
    text-align: center;
    margin-bottom: 24px;
    float: none; /* テーマのfloatを打ち消し */
  }

  .page-second_opinion .aboutSec02 .profileTxt {
    float: none;
    width: 90%;              /* テキスト幅 90% */
    margin-left: auto;
    margin-right: auto;
  }

 /* SPは300px制限を解除して幅いっぱいにする */

  /* 画像コンテナ自体を中央寄せ */
  .page-second_opinion .aboutSec02 .profileImg {
    text-align: center !important;
  }

  /* 画像のサイズと自動中央寄せ */
  .page-second_opinion .aboutSec02 .profileImg img.second-opinion-img {
    width: 96vw !important;
    max-width: none !important;
    height: auto !important;
    display: inline-block !important; 
  }
}



/* セカンドオピニオン ヒーロー画像 */
body.page-second_opinion .head-img {
  background: url(../images/second_opinion.jpg)
              center top / cover no-repeat !important;
}



	/* スマホ用：ロゴを100pxに */
@media (max-width: 767px) {
  .hb-logo-fixed {
    width: 100px !important;
  }
}


/* 親テーマ(atms)のグロナビ背景画像を無効化（PC側） */
@media only screen and (min-width: 767px) {
  #hb-nav .hb-nav-menu li > a,
  #hb-nav .hb-nav-menu li.current-menu-item > a,
  #hb-nav .hb-nav-menu li.current_page_item > a {
    background-image: none !important;
    background: none !important;
  }
}
