@charset "UTF-8";
/* ==========================================================
   good-h.jp 下層ページ共通スキン (gh2-sub)
   トップ(front-page.css)とデザイン言語を統一
   ========================================================== */

/* ---------- ページヘッダー（p-cover）: 写真カバー → 濃色パネル ---------- */
.p-cover {
  position: relative;
  background: #2b2019 !important;
  min-height: 240px !important;
  height: auto !important;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.p-cover img,
.p-cover video,
.p-cover .p-cover__bg,
.p-cover__header { display: none !important; }
.p-cover::before {
  content: ""; position: absolute; right: -120px; top: -120px; width: 380px; height: 380px;
  border-radius: 50%; background: rgba(232, 118, 46, 0.14);
}
.p-cover::after {
  content: ""; position: absolute; left: 30%; bottom: -160px; width: 300px; height: 300px;
  border-radius: 50%; background: rgba(232, 118, 46, 0.07);
}
.p-cover__inner {
  position: relative !important; z-index: 2;
  inset: auto !important; transform: none !important;
  display: flex; flex-direction: column; align-items: center;
  padding: 72px 24px !important;
  width: 100%;
}
.p-cover__inner > * { position: static !important; transform: none !important; }
/* DOM順: title(英) → sub(日) なので英ラベルが上に来る */
/* 日本語（sub）を主タイトルに */
.p-cover__sub {
  color: #fff !important;
  font-size: 34px !important;
  font-weight: 700;
  letter-spacing: 0.08em;
  margin: 0 !important;
}
/* 英語（title）を小さなラベルに */
.p-cover__title {
  color: #e8762e !important;
  font-size: 13px !important;
  font-weight: 700;
  letter-spacing: 0.24em;
  margin: 0 0 10px !important;
}

/* カバーへの白ボックス食い込み（負マージン）を解除 */
.p-cover + .l-contents__inner,
.l-contents .l-contents__inner { margin-top: 0 !important; }
.l-contents__inner { padding-top: 8px; }

/* サイドバーのないシンプルな本文ページ（プライバシーポリシー・採用・
   インタビュー等）: グリッド全幅の白ボックスが間延びするので、
   読みやすい幅に絞って余白を詰めたカードに */
.l-contents--no-border .l-contents__inner {
  max-width: 880px !important;
  margin-top: 40px !important;
  margin-bottom: 40px !important;
  padding: 48px 40px !important;
  border-radius: 20px;
  box-shadow: 0 4px 24px rgba(60, 40, 20, 0.06);
}
@media (max-width: 900px) {
  .l-contents--no-border .l-contents__inner {
    margin-top: 24px !important;
    padding: 32px 24px !important; border-radius: 0;
  }
}

/* ---------- アーカイブ見出し ---------- */
.p-archive-header { padding-top: 56px; }
.p-archive-header__title {
  font-size: 30px !important;
  color: #2e2620 !important;
  letter-spacing: 0.05em;
  line-height: 1.6;
}
.p-archive-header__desc { color: #6b5d52 !important; }

/* ---------- 本文見出し（entry body）: オレンジアクセント ---------- */
.p-entry__body h2 {
  border: none !important;
  background: transparent !important;
  padding: 0 0 14px !important;
  margin-top: 64px;
  position: relative;
  color: #2e2620 !important;
  letter-spacing: 0.05em;
}
.p-entry__body > h2:first-child,
.p-entry__body h2:first-child { margin-top: 0 !important; }
.p-entry__body h2::after {
  content: ""; position: absolute; left: 0; bottom: 0;
  width: 48px; height: 3px; border-radius: 2px; background: #e8762e;
}
.p-entry__body h3 {
  border: none !important;
  background: transparent !important;
  border-left: 4px solid #e8762e !important;
  padding: 2px 0 2px 14px !important;
  color: #2e2620 !important;
}

/* ---------- 一覧カード（p-article05 等）: gh2カードに統一 ---------- */
.p-article05 {
  border-radius: 16px !important;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(60, 40, 20, 0.08);
  background: #fff;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.p-article05:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(60, 40, 20, 0.16);
}
.p-article05__title { color: #2e2620 !important; }
.p-article05__sub { color: #e8762e !important; font-weight: 700; }
.p-article05__link { color: #e8762e !important; font-weight: 700; }

/* ---------- テーブル（会社概要・料金表など） ---------- */
.p-entry__body table {
  width: 100% !important; border-collapse: collapse !important;
  margin: 24px 0 !important; overflow: hidden; border-radius: 12px;
  box-shadow: 0 4px 16px rgba(60, 40, 20, 0.06);
}
.p-entry__body .wp-block-table { overflow-x: auto; margin: 32px 0; }
.p-entry__body table th {
  background: #2b2019 !important;
  color: #fff !important;
  border-color: #3a2e26 !important;
  font-weight: 700; padding: 12px 16px !important;
}
.p-entry__body table td {
  border: none !important; border-bottom: 1px solid #f0e7db !important;
  padding: 12px 16px !important; background: #fff;
}
.p-entry__body table tr:last-child td { border-bottom: none !important; }
.p-entry__body table tr:nth-child(even) td { background: #faf3ea; }

/* ---------- ページネーション・パンくず微調整 ---------- */
.c-pagination a:hover { background: #e8762e !important; color: #fff !important; }

@media (max-width: 900px) {
  .p-cover { min-height: 180px !important; }
  .p-cover__inner { padding: 48px 20px !important; }
  .p-cover__sub { font-size: 24px !important; }
  .p-archive-header__title { font-size: 22px !important; }
}

/* ---------- 404 ---------- */
.gh2-404 {
  background: #2b2019; position: relative; overflow: hidden;
  display: flex; align-items: center; justify-content: center;
  min-height: 480px; text-align: center;
}
.gh2-404::before {
  content: ""; position: absolute; right: -120px; top: -120px; width: 380px; height: 380px;
  border-radius: 50%; background: rgba(232, 118, 46, 0.14);
}
.gh2-404__inner { position: relative; z-index: 2; padding: 80px 24px; max-width: 720px; }
.gh2-404__code {
  color: #e8762e; font-size: 72px; font-weight: 700; letter-spacing: 0.1em;
  line-height: 1; margin: 0 0 16px;
}
.gh2-404__title { color: #fff !important; font-size: 26px; margin: 0 0 16px; }
.gh2-404__desc { color: rgba(255,255,255,0.85); font-size: 14px; line-height: 2; margin: 0 0 32px; }
.gh2-404__actions { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; margin-bottom: 28px; }
.gh2-404__btn {
  display: inline-block; padding: 13px 28px; border-radius: 10px;
  background: rgba(255,255,255,0.1); color: #fff !important;
  border: 1px solid rgba(255,255,255,0.35); font-weight: 700; font-size: 14px;
  text-decoration: none; transition: background 0.2s ease, transform 0.2s ease;
}
.gh2-404__btn:hover { background: rgba(255,255,255,0.2); transform: translateY(-2px); }
.gh2-404__btn--primary { background: #e8762e; border-color: #e8762e; }
.gh2-404__btn--primary:hover { background: #c95f1a; }
.gh2-404__tel { color: rgba(255,255,255,0.75); font-size: 13px; }
.gh2-404__tel a { color: #e8762e !important; font-weight: 700; font-size: 17px; }

/* ---------- フッター化粧直し ---------- */
.l-footer { border-top: 1px solid #f0e7db; }
.l-footer .p-info { padding-top: 56px; }
.p-footer-nav a { font-size: 13px; letter-spacing: 0.04em; }
.p-copyright { letter-spacing: 0.03em; }

/* ==========================================================
   画像なし（テーマ標準プレースホルダー gif）の救済
   内装工事全般カテゴリに実写真が未設定 → 実写真をCSS側で補完
   ========================================================== */
.p-article09__img:has(img[src$="590x430.gif"]),
.p-article05__img:has(img[src$="590x430.gif"]) {
  background: linear-gradient(135deg, #efe4d6 0%, #f7ede0 100%);
  position: relative;
}
.p-article09__img:has(img[src$="590x430.gif"])::after,
.p-article05__img:has(img[src$="590x430.gif"])::after {
  content: "GOOD HOUSE";
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  color: #c9b8a4; font-size: 13px; font-weight: 700; letter-spacing: 0.18em;
}
.p-article09__img img[src$="590x430.gif"],
.p-article05__img img[src$="590x430.gif"] { display: none !important; }
/* 内装工事全般カテゴリは実際の施工写真（内装リフォーム工事ページと同一素材）に差し替え */
.p-article09:has(a[href*="e5-86-85e8-a3-85e3-83-aae3-83-95e3-82-a9e3-83-bce3-83-a0e5-b7-a5e4-ba-8b"]) .p-article09__img,
.p-article09:has(a[href*="%e5%86%85%e8%a3%85%e3%83%aa%e3%83%95%e3%82%a9%e3%83%bc%e3%83%a0%e5%b7%a5%e4%ba%8b"]) .p-article09__img {
  background-image: url("https://good-h.jp/wp-content/uploads/2025/09/iStock-1981927274-740x440.jpg");
  background-size: cover; background-position: center;
}
.p-article09:has(a[href*="%e5%86%85%e8%a3%85%e3%83%aa%e3%83%95%e3%82%a9%e3%83%bc%e3%83%a0%e5%b7%a5%e4%ba%8b"]) .p-article09__img::after {
  content: none;
}

/* ==========================================================
   事業案内アーカイブ（p-article09 ジグザグ一覧）
   ========================================================== */
.p-article09 {
  display: flex; align-items: stretch; gap: 40px;
  padding: 40px 0; border-bottom: 1px solid #f0e7db;
}
.p-article09--rev { flex-direction: row-reverse; }
.p-article09 > a {
  display: flex; align-items: stretch; gap: 40px; width: 100%; text-decoration: none;
}
.p-article09--rev > a { flex-direction: row-reverse; }
.p-article09__img {
  flex: 0 0 42%; border-radius: 16px; overflow: hidden;
  box-shadow: 0 8px 28px rgba(60, 40, 20, 0.12);
}
.p-article09__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.p-article09__content { flex: 1; display: flex; flex-direction: column; justify-content: center; }
.p-article09__title { font-size: 24px !important; color: #2e2620 !important; margin: 0 0 8px; }
.p-article09__sub { color: #e8762e !important; font-weight: 700; font-size: 13px; margin: 0 0 14px; }
.p-article09__link {
  align-self: flex-start; margin-top: 18px; color: #e8762e !important; font-weight: 700; font-size: 13px;
}
.p-article09__link::after { content: " →"; }
@media (max-width: 900px) {
  .p-article09, .p-article09 > a, .p-article09--rev, .p-article09--rev > a { flex-direction: column; gap: 20px; }
  .p-article09__img { flex: none; height: 220px; }
}

/* ==========================================================
   サービス詳細（single-service）: ページヘッダー・タブ・本文
   ========================================================== */
.l-contents__inner:has(.p-page-header) {
  grid-template-areas: "header header" "sidebar main" !important;
}
.p-page-header {
  grid-column: 1 / -1 !important;
  width: 100% !important; max-width: none !important; flex: none !important;
  box-sizing: border-box !important;
  background: #2b2019; position: relative; overflow: hidden;
  padding: 56px 40px !important; border-radius: 0 0 24px 24px;
  margin-bottom: 32px;
}
.p-page-header::before {
  content: ""; position: absolute; right: -100px; top: -100px; width: 300px; height: 300px;
  border-radius: 50%; background: rgba(232, 118, 46, 0.16);
}
.p-page-header__title { color: #fff !important; position: relative; z-index: 1; letter-spacing: 0.06em; }
.p-page-header__sub { color: rgba(255,255,255,0.75) !important; position: relative; z-index: 1; }
.p-list {
  grid-column: 1 / -1 !important;
  margin: -8px 0 40px !important;
  display: flex !important; flex-wrap: wrap !important; gap: 4px !important;
  overflow: visible !important; width: auto !important; white-space: normal !important;
  border-bottom: 1px solid #ece1d2 !important;
}
.p-list__item { float: none !important; display: block !important; }
.p-list__item a {
  display: inline-block; position: relative;
  padding: 4px 18px 17px; margin-bottom: -1px;
  background: none !important; border: none !important; box-shadow: none !important;
  color: #948573 !important;
  font-size: 14px; font-weight: 700; letter-spacing: 0.03em;
  transition: color 0.2s ease;
}
.p-list__item a::after {
  content: ""; position: absolute; left: 18px; right: 18px; bottom: 0;
  height: 2px; border-radius: 2px 2px 0 0; background: transparent;
  transition: background 0.2s ease;
}
.p-list__item a:hover { color: #2e2620 !important; }
.p-list__item a:hover::after { background: #e5d5c0; }
.p-list__item.is-current a { color: #e8762e !important; }
.p-list__item.is-current a::after { background: #e8762e; }
.p-list__item a::before { display: none !important; content: none !important; }

/* p-page-header__title と文言が重複するため非表示（同じカテゴリ名を2段で出していた） */
.p-headline--lg { display: none !important; }
.p-service-entry__title { color: #2e2620 !important; font-size: 26px; }
.p-service-entry__img img,
.p-entry__body figure img,
.p-entry__body p > img { border-radius: 14px; box-shadow: 0 6px 20px rgba(60, 40, 20, 0.1); }

/* ==========================================================
   会社案内（single-company）: ヒーロー風ヘッダー
   ========================================================== */
.p-company-header {
  position: relative; display: flex; align-items: center; gap: 40px;
  background: #2b2019; border-radius: 20px; overflow: hidden;
  padding: 48px; margin-bottom: 40px;
}
.p-company-header::before {
  content: ""; position: absolute; right: -80px; top: -100px; width: 280px; height: 280px;
  border-radius: 50%; background: rgba(232, 118, 46, 0.16);
}
.p-company-header__content { position: relative; z-index: 1; flex: 1; }
.p-company-header__title { color: #fff !important; font-size: 26px; margin: 0 0 8px; }
.p-company-header__sub { color: rgba(255,255,255,0.75) !important; font-size: 14px; }
.p-company-header__img {
  position: relative; z-index: 1; flex: 0 0 40%; border-radius: 14px; overflow: hidden;
  box-shadow: 0 10px 30px rgba(0,0,0,0.3);
}
.p-company-header__img img { width: 100%; display: block; }
@media (max-width: 900px) {
  .p-company-header { flex-direction: column; padding: 32px 24px; text-align: center; }
  .p-company-header__img { flex: none; width: 100%; }
}

/* ==========================================================
   実績紹介（single-works）: 施工前・施工後バッジ
   ========================================================== */
.p-works-entry__title { color: #2e2620 !important; font-size: 26px; }
.p-works-entry .p-entry__body table {
  border: none !important; box-shadow: none !important; margin: 32px 0;
}
.p-works-entry .p-entry__body table td {
  border: none !important; background: transparent !important; padding: 0 8px !important;
  vertical-align: top; position: relative;
}
.p-works-entry .p-entry__body table tr:nth-child(even) td { background: transparent !important; }
.p-works-entry .p-entry__body table img { border-radius: 12px; box-shadow: 0 6px 20px rgba(60,40,20,0.12); width: 100%; }
.p-works-entry .p-entry__body table tr td:first-child img { border-top: 6px solid #9b8b7a !important; }
.p-works-entry .p-entry__body table tr td:last-child img { border-top: 6px solid #e8762e !important; }

/* ==========================================================
   まめ知識（category-acminiblog 等）: 記事カード
   ========================================================== */
.p-blog__title {
  font-size: 24px !important; color: #2e2620 !important; letter-spacing: 0.04em;
  margin-bottom: 32px;
}
.p-blog__list {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 28px !important;
}
.p-blog__list-item {
  width: 100% !important; margin: 0 !important; opacity: 1 !important;
}
.p-article01 {
  border-radius: 16px; overflow: hidden; background: #fff;
  box-shadow: 0 4px 20px rgba(60,40,20,0.08);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.p-article01:hover { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(60,40,20,0.16); }
.p-article01__img img { transition: transform 0.4s ease; }
.p-article01:hover .p-article01__img img { transform: scale(1.05); }
.p-article01__title { color: #2e2620 !important; font-size: 16px; }
.p-article01__excerpt { color: #6b5d52 !important; font-size: 13px; }

/* ==========================================================
   お問い合わせフォーム（Contact Form 7）
   ========================================================== */
.wpcf7-form label { color: #2e2620; }
.wpcf7-form input[type="radio"] + span,
.wpcf7-form input[type="checkbox"] + span { color: #2e2620; }
.wpcf7-form input[type="text"],
.wpcf7-form input[type="tel"],
.wpcf7-form input[type="email"],
.wpcf7-form textarea,
.wpcf7-form select {
  border: 1px solid #e5dccd !important; border-radius: 8px !important;
  padding: 10px 14px !important;
}
.wpcf7-form input[type="text"]:focus,
.wpcf7-form input[type="tel"]:focus,
.wpcf7-form input[type="email"]:focus,
.wpcf7-form textarea:focus { border-color: #e8762e !important; outline: none; }
.wpcf7-form input[type="submit"] {
  background: #e8762e !important; color: #fff !important; border: none !important;
  border-radius: 999px !important; padding: 14px 48px !important; font-weight: 700 !important;
  transition: background 0.2s ease, transform 0.2s ease;
}
.wpcf7-form input[type="submit"]:hover { background: #c95f1a !important; transform: translateY(-2px); }

/* ==========================================================
   投稿本文用の汎用コンポーネント（wp-adminの記事に直接貼って使う）
   ========================================================== */

/* ---- gh2-price-table: 型番/畳数/価格の比較表 ---- */
.gh2-price-table { width: 100%; border-collapse: collapse; margin: 32px 0; overflow: hidden; border-radius: 12px; box-shadow: 0 4px 16px rgba(60, 40, 20, 0.06); }
.gh2-price-table th, .gh2-price-table td { padding: 14px 16px; text-align: left; border-bottom: 1px solid #f0e7db; }
.gh2-price-table th { background: #2b2019; color: #fff; font-weight: 700; font-size: 14px; }
.gh2-price-table tr:last-child td { border-bottom: none; }
.gh2-price-table tr:nth-child(even) td { background: #faf3ea; }
.gh2-price-table td.gh2-price-table__size { font-weight: 700; color: #2e2620; white-space: nowrap; }
.gh2-price-table td.gh2-price-table__price { color: #e8762e; font-weight: 700; font-size: 17px; white-space: nowrap; }
.gh2-price-table__note { font-size: 12px; color: #948573; }
.gh2-price-table-wrap { overflow-x: auto; margin: 32px 0; }
.gh2-price-table-wrap .gh2-price-table { margin: 0; min-width: 560px; }
@media (max-width: 600px) {
  .gh2-price-table th, .gh2-price-table td { padding: 10px 12px; font-size: 13px; }
}

/* ---- gh2-steps: 注文フローなどの縦ステップ ---- */
.gh2-steps { list-style: none !important; margin: 32px 0 !important; padding: 0 !important; counter-reset: gh2-step; }
.gh2-steps li { list-style: none !important; }
.gh2-steps li {
  counter-increment: gh2-step; position: relative;
  padding: 4px 0 28px 52px; margin: 0;
}
.gh2-steps li::before {
  content: counter(gh2-step); position: absolute; left: 0; top: 0;
  width: 34px; height: 34px; border-radius: 50%; background: #e8762e; color: #fff;
  font-weight: 700; font-size: 15px; display: flex; align-items: center; justify-content: center;
}
.gh2-steps li::after {
  content: ""; position: absolute; left: 16px; top: 34px; bottom: 4px; width: 2px;
  background: #f0e7db;
}
.gh2-steps li:last-child::after { display: none; }
.gh2-steps li:last-child { padding-bottom: 0; }
.gh2-steps__title { display: block; font-weight: 700; font-size: 16px; color: #2e2620; margin-bottom: 4px; }
.gh2-steps__desc { display: block; font-size: 14px; color: #6b5d52; line-height: 1.8; }
