@import url('https://fonts.googleapis.com/css2?family=LINE+Seed+JP:wght@100;400;700&display=swap');

/* --- 基本設定 --- */
html {
  overflow-y: scroll;
  font-size: 62.5%; /* 1rem = 10px 換算 */
}

body {
  font-family: 'LINE Seed JP', sans-serif !important;
  font-weight: 400;
  font-size: 1.6rem; /* 標準的な 16px */
  line-height: 1.75;
  color: #333;
  
  /* 【重要】フォントのジャキジャキ（尖り）を滑らかにする設定 */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-synthesis: none; /* ブラウザによる自動の太字合成を禁止 */
}

/* --- 見出し：H1とH2のサイズを統一・強化 --- */
h1, h2, h3, h4, .display-1, .display-2, .display-3, .display-4, dt, th {
  font-weight: 700 !important;
  line-height: 1.4;
  margin-bottom: 0.6em;
  font-synthesis: none; /* 見出しの尖り防止 */
}

/* H1とH2を共通の3.6rem（36px相当）に設定 */
h1, .display-1,
h2, .display-2 { 
  font-size: 3.6rem; 
} 

h3, .display-3 { font-size: 2.2rem; } 
h4, .display-4 { font-size: 1.8rem; } 

/* スマホ表示でのサイズ調整 */
@media (max-width: 767px) {
  h1, .display-1,
  h2, .display-2 { 
    font-size: 2.8rem; 
  }
  h3, .display-3 { font-size: 2.0rem; }
  h4, .display-4 { font-size: 1.8rem; }
  body { font-size: 1.5rem; } 
}

/* --- 段落 --- */
p {
  text-align: justify;
  text-justify: inter-ideograph;
  margin-bottom: 1.6em;
}

/* --- パンくず --- */
.breadcrumb {
  background: transparent;
  padding: 0;
  font-size: 1.4rem;
}

.breadcrumb > li + li:before {
  content: " / " !important;
  color: #ccc;
  font-weight: normal;
}

/* --- ヘッダーナビゲーション（横並び） --- */
.text-right ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  justify-content: flex-end;
}

.text-right ul li {
  margin-left: 2.4rem;
}

.text-right ul li a {
  text-decoration: none;
  color: #333;
  font-size: 1.5rem;
  font-weight: 700;
  font-synthesis: none;
  transition: color 0.3s;
}

.text-right ul li a:hover {
  color: #ff8f00;
}

/* --- ボタン --- */
.btn {
  font-size: 1.6rem;
  font-weight: 700;
  font-synthesis: none;
  padding: 0.8em 2em;
}

/* --- アイコン --- */
.fa-home, .fa-clipboard-list, .fa-comments {
  font-size: 2.8rem !important;
  margin-bottom: 8px;
}

.fa-directions {
  font-size: 2.4rem !important;
  margin-right: 6px;
}

.fa-phone-square {
  margin-right: 10px;
}

/* --- お問い合わせフォーム（共通） --- */
.cform, .cform02 {
  width: 100%;
  margin: auto;
}

.cform th, .cform02 th {
  background-color: #f9f9f9;
  border-bottom: solid 1px #d6d6d6;
  padding: 15px 10px;
  font-weight: 700;
  font-synthesis: none;
  vertical-align: middle;
}

.cform td, .cform02 td {
  line-height: 1.5;
  border-bottom: solid 1px #d6d6d6;
  padding: 15px 10px;
}

.cform [type=submit], .cform02 [type=submit] {
  display: inline-block;
  font-size: 1.6rem;
  font-weight: 700;
  font-synthesis: none;
  padding: 15px 50px;
  background: #ff8f00;
  color: #FFF;
  border: none;
  border-bottom: solid 4px #B17C00;
  border-radius: 4px;
  transition: all 0.3s;
  cursor: pointer;
}

.cform [type=submit]:hover, .cform02 [type=submit]:hover {
  background: #ffa733;
  transform: translateY(2px);
  border-bottom-width: 2px;
}

.cform textarea, .cform input[type=text], .cform input[type=email],
.cform02 textarea, .cform02 input[type=text], .cform02 input[type=email] {
  width: 100%;
  padding: 8px;
  border: 1px solid #ccc;
  border-radius: 3px;
}

/* フォームのモバイル表示 */
@media only screen and (max-width: 767px) {
  .cform th, .cform td, .cform02 th, .cform02 td {
    width: 100% !important;
    display: block;
    border-top: none;
    padding: 10px 5px;
  }
}

/* --- その他パーツ --- */
.submit-btn input {
  background: #00142c;
  width: 60%;
  max-width: 550px;
  min-width: 220px;
  margin: 30px auto;
  display: block;
  border: 1px #00142c solid;
  text-align: center;
  padding: 12px;
  color: #fff;
  font-size: 1.6rem;
  font-synthesis: none;
  transition: all 0.4s ease;
}

/* --- 個別調整：工事部・不動産・65マーケット --- */
.partner-headline { line-height: 1.3; }
.construction-message { line-height: 1.6; }

.tel-number { font-size: 3.2rem; }
@media (max-width: 767px) { .tel-number { font-size: 2.4rem; } }

.message-bold {
  font-size: 2.2rem;
  font-weight: 700;
  line-height: 1.6;
  font-synthesis: none; /* 太字の尖り防止 */
  /* Windows環境での微細なアンチエイリアス補正 */
  text-shadow: 0 0 1px rgba(0,0,0,0.01);
}

.color-accent { color: #00142c; }

@media (max-width: 767px) {
  .message-bold { font-size: 1.8rem; }
}

.status-badge {
  display: inline-block;
  padding: 10px 25px;
  border: 2px solid #333;
  font-weight: 700;
  font-synthesis: none;
  font-size: 1.6rem;
  background-color: #fff;
  margin-bottom: 2rem;
}

/* --- テーブル項目の改行防止（最強設定） --- */
.tbl-r02, .65_table, .table {
  table-layout: auto !important;
  width: 100% !important;
}

.tbl-r02 th, 
.65_table th,
.table:not(.cform):not(.cform02) th {
  white-space: nowrap !important;
  width: 1% !important;
  min-width: 120px !important;
  display: table-cell !important;
  padding-right: 25px !important;
  vertical-align: top !important;
  font-weight: 700 !important;
  font-synthesis: none !important;
}

.tbl-r02 td, 
.65_table td,
.table:not(.cform):not(.cform02) td {
  width: auto !important;
  display: table-cell !important;
}

@media (max-width: 767px) {
  .tbl-r02 th, .65_table th {
    min-width: 100px !important;
    font-size: 1.3rem;
  }
}


/* 電話番号セクションの余白を詰める調整 */

/* 見出し直後の余白をリセット */
.text-center h2.pb-5 {
  margin-bottom: 0 !important;
  padding-bottom: 2rem !important; /* pb-5(3rem相当)から少し小さく調整 */
}

/* 電話番号ブロック自体の上下余白を最小化 */
.tel-number {
  font-size: 3.2rem;
  margin-top: 0 !important;     /* 上の余白をゼロに */
  margin-bottom: 0.5rem !important; /* 下の文字との間隔も少し詰める */
  line-height: 1.2 !important;  /* 行間の隙間を削る */
}

/* アイコンと数字の垂直位置を微調整 */
.tel-number a i {
  vertical-align: middle;
  margin-top: -4px; /* アイコンが少し浮いて見える場合の補正 */
}

@media (max-width: 767px) {
  .tel-number {
    font-size: 2.4rem;
  }
}


/* サイドバー見出しの調整 */
.sidebar-nav h3 {
  letter-spacing: 0.05em;
  color: #00142c; /* 不動産事業部で使っている濃紺をアクセントに */
  border-bottom: 2px solid #333 !important; /* 下線を少し太くして強調 */
}

/* サイドバー項目の文字サイズを少し調整 */
.sidebar-nav .list-group-item {
  font-size: 1.6rem !important; /* 本文と同じ16px相当に */
}




/* 事例カードのスタイル */
.case-card {
    transition: transform 0.3s ease;
    background: #fff;
}
.case-card:hover {
    transform: translateY(-5px);
}

/* 文字の尖り防止 */
.case-card h3, .case-card p, .case-card .badge {
    font-synthesis: none !important;
}

/* 画像の縦横混在対応：枠内に収める */
.img-wrapper img {
    transition: transform 0.5s ease;
}
.case-card:hover .img-wrapper img {
    transform: scale(1.05);
}

/* 成約済みの場合は少し薄くする演出 */
.case-card:has(.badge-secondary) {
    opacity: 0.8;
}



/* ギャラリーの画像コンテナ */
.img-container {
    transition: all 0.3s ease;
}
.case-photo-link:hover .img-container {
    filter: brightness(90%);
    transform: scale(1.02);
}

/* モバイル対応：スマホでは2列、PCでは3列 */
@media (max-width: 575.98px) {
    .case-photo-link .img-container {
        aspect-ratio: 1 / 1; /* スマホでは正方形で見やすく */
    }
}

/* 記事本文の太字調整 */
.entry-content b, .entry-content strong {
    font-weight: 700;
    font-synthesis: none;
}

/* 成約済みカードの特殊スタイル */
.case-card.sold-out {
    opacity: 0.75;
}
.case-card.sold-out img {
    filter: grayscale(40%); /* 少し色を沈める */
}
.case-card.sold-out:hover {
    opacity: 1; /* ホバー時はしっかり見せる */
}
.case-card.sold-out img:hover {
    filter: grayscale(0%);
}

/* カード全体のホバーエフェクト */
.case-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 10px 20px rgba(0,0,0,0.1) !important;
}

/* バッジの角を少し丸くし、文字の尖りを防止 */
.badge {
    border-radius: 4px;
    font-weight: 700;
}