/*===============================
reform
================================*/
#reform {
 padding: 80px 0;
 background: #fff;
}
.bold {
 font-weight: bold;
}
.reform-mainvisual img {
 width: 100%;
 height: auto;
 margin-bottom: 80px;
}

.reform-features {
 display: flex;
 flex-direction: column;
 gap: 80px;
}

.reform-feature-title {
 color: #584c42;
 font-size: 1.75em;
 font-weight: bold;
 text-align: center;
 margin-bottom: 30px;
 position: relative;
}
@media screen and (min-width: 768px) {
 .reform-feature-title {
  color: #584c42;
  font-size: 2em;
  font-weight: bold;
  text-align: center;
  margin-bottom: 30px;
  position: relative;
 }
}

.reform-title-underline {
 display: block;
 margin: 8px auto 0;
 width: 300px;
 height: auto;
}

.reform-feature-body {
 display: flex;
 flex-direction: row;
 align-items: flex-start;
 gap: 50px;
}
@media screen and (min-width: 768px) {
 .reform-feature-body {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 60px;
 }
}
.feature-text {
 flex: 1;
 font-size: 16px;
 line-height: 1.8;
 display: flex;
 flex-direction: column;
 gap: 20px;
}
@media screen and (min-width: 768px) {
 .feature-text {
  flex: 1;
  font-size: 17px;
  line-height: 1.8;
  display: flex;
  flex-direction: column;
  gap: 20px;
 }
}
.feature-text p {
 width: 100%;
}
@media screen and (min-width: 768px) {
 .feature-text p {
  width: 90%;
 }
}
.feature-image {
 flex: 1;
}

.feature-image img {
 width: 100%;
 height: auto;
}

/* レスポンシブ対応 */
@media screen and (max-width: 768px) {
 .reform-feature-body {
  flex-direction: column;
 }
}
/* ===============================
リフォームメニューリンク
================================ */
.reform-menu-nav {
 background: #fff;
 padding-bottom: 60px;
 text-align: center;
}

.reform-menu-title {
 font-size: 2em;
 text-align: center;
 color: #51443b;
 margin-bottom: 30px;
}

.reform-menu-list {
 display: flex;
 flex-wrap: nowrap;
 justify-content: space-between;
 gap: 20px;
 padding: 0;
 list-style: none;
}

.reform-menu-list li a {
 display: inline-block;
 background: #51443b;
 color: #fff;
 font-size: 14px;
 padding: 10px 18px;
 border-radius: 2px;
 text-decoration: none;
 transition: background 0.3s;
 width: 270px;
 text-align: center;
}

.reform-menu-list li a:hover {
 background: #77695e;
}

/* モバイル対応 */
@media screen and (max-width: 768px) {
 .reform-menu-list {
  flex-direction: column;
  gap: 15px;
 }

 .reform-menu-list li a {
  width: 100%;
  margin: 0 auto;
 }
}
/* ===============================
インスペクション料金表
================================ */
.inspection-pricing {
 background: #fff;
 padding: 50px 0 40px;
}
@media screen and (min-width: 768px) {
 .inspection-pricing {
  background: #fff;
  padding: 60px 0 40px;
 }
}
.inspection-table {
 width: 100%;
 border-collapse: collapse;
 margin-bottom: 40px;
 font-size: 15px;
}

.inspection-table th,
.inspection-table td {
 border: 1px solid #ddd;
 padding: 16px 0px;
 text-align: center;
 width: 50%;
}
@media screen and (min-width: 768px) {
 .inspection-table th,
 .inspection-table td {
  border: 1px solid #ddd;
  padding: 16px;
  text-align: center;
  width: 50%;
 }
}
.inspection-table td {
 background: #fcf7f1;
}

.inspection-table th {
 background: #faebdd;
 font-weight: bold;
}

.cancel-note {
 margin-bottom: 20px;
 font-size: 16px;
 color: #333;
 line-height: 1.8;
}
@media screen and (min-width: 768px) {
 .cancel-note {
  margin-bottom: 20px;
  font-size: 17px;
  color: #333;
  line-height: 1.8;
 }
}
/* ===============================
リフォームの流れ：縦バー＋横並びステップ構成
================================ */

.reform-flow-step {
 background: #fff;
 padding-bottom: 80px;
}
.step02 {
 padding-bottom: 80px;
}
/* 左：縦棒バー＋右：ステップ群全体 */
.step-flow-flex {
 display: flex;
 gap: 40px;
 flex-wrap: nowrap;
 align-items: stretch;
}

/* 左側：固定縦バー画像 */
.step-left-bar {
}
.step-left-bar img {
 width: 100%;
 max-height: 800px;
 display: block;
}

/* 右側：ステップ群を縦に並べる */
.step-right-content {
 flex: 1;
 display: flex;
 flex-direction: column;
 gap: 40px; /* ステップ間の縦スペース */
}

/* ステップ1単位（横並び） */
.step-row {
 display: flex;
 align-items: flex-start;
 gap: 40px;
}

/* ステップ名＋矢印（縦並び） */
.step-label {
 display: flex;
 flex-direction: column;
 align-items: center;
 flex: 0 0 160px; /* 固定幅：ステップ名エリア */
}

/* 緑背景のステップタイトル */
.step-title-box {
 background-color: #3b8d40;
 color: #fff;
 font-size: 18px;
 font-weight: bold;
 padding: 15px 25px;
 border-radius: 6px;
 box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
 text-align: center;
 white-space: nowrap;
 width: 600px;
}
.step-title-box.step-orange {
 background-color: #e88822;
 border-radius: 50px;
}
/* ステップ矢印（画像） */
.step-arrow {
 width: 24px;
 margin: 12px 0 0;
}

/* 解説テキスト（右側） */
.step-description {
 flex: 1;
}
.step-description p {
 font-size: 17px;
 line-height: 1.8;
 color: #3a2d27;
 margin: 0;
}
/* ステップ内の赤い注意ボックス */
.step-note-red {
 background-color: #d9534f;
 color: #fff !important;
 font-weight: bold;
 text-align: center;
 padding: 5px 14px;
 border-radius: 4px;
 margin-top: 15px !important;
 font-size: 15px;
}

.step-note-caption {
 color: #c1443c !important;
 font-size: 14px;
 margin-top: 0;
}

/* ===============================
レスポンシブ対応（スマホ）
================================ */
@media screen and (max-width: 768px) {
 .reform-flow-step {
  padding-bottom: 40px; /* スマホではやや余裕を */
 }

 .step-flow-flex {
  flex-direction: column;
  gap: 30px;
 }

 .step-left-bar {
  display: none; /* バー非表示（縦にするため） */
 }

 .step-right-content {
  width: 100%;
 }

 .step-row {
  flex-direction: column;
  gap: 20px;
  align-items: center;
 }

 .step-label {
  flex: none;
  gap: 15px;
 }

 .step-title-box {
  font-size: 16px;
  padding: 10px 16px;
  max-width: 350px;
  white-space: normal;
 }

 .step-title-box.step-orange {
  font-size: 16px;
  padding: 10px 16px;
  border-radius: 30px;
 }

 .step-arrow {
  width: 20px;
  margin: 8px 0;
 }

 .step-description {
  width: 90%;
 }

 .step-description p {
  font-size: 16px;
  line-height: 1.8;
 }

 .step-note-red {
  font-size: 14px;
  padding: 5px 10px;
 }

 .step-note-caption {
  font-size: 13px;
  margin-top: 6px;
 }

 .step02 {
  padding-bottom: 80px;
 }
}

/* ===============================
faq（アコーディオン形式対応）
================================ */
.faq-toggle-icon {
 font-size: 1.2em;
 color: #3a2d27;
 margin-right: 10px;
 flex-shrink: 0;
 transition: transform 0.3s ease;
}

/* 全体の枠 */
.faq-boxs {
 border: 1px solid #ccc;
 border-radius: 8px;
 padding: 20px;
 margin-bottom: 32px;
 background-color: #fff;
}
@media screen and (min-width: 768px) {
 .faq-boxs {
  padding: 30px 40px;
 }
}

.faq-box {
 padding-bottom: 30px;
 cursor: pointer;
}
@media screen and (min-width: 768px) {
 .faq-box {
  padding-bottom: 50px;
 }
}

/* 質問部分 */
.faq-question {
 margin-bottom: 16px;
}

.faq-q-wrap {
 display: flex;
 align-items: baseline;
 gap: 8px;
 margin-bottom: 8px;
}

/* Qマーク */
.faq-q {
 font-weight: bold;
 font-size: 1.5em;
 color: #3a2d27;
 flex-shrink: 0;
 line-height: 1.8;
}

.q-text {
 font-size: 1.5em;
 font-weight: bold;
 color: #3a2d27;
 margin: 0;
 line-height: 1.8;
}

.faq-line {
 width: 100%;
 max-width: 1200px;
 height: auto;
 display: block;
}

/* 回答部分（初期は非表示） */
.faq-answer {
 display: none;
 flex-direction: column;
 gap: 12px;
 animation: fadeIn 0.3s ease-in-out;
}
.faq-box.active .faq-answer {
 display: flex;
}

@media screen and (min-width: 768px) {
 .faq-answer {
  flex-direction: row;
 }
}

/* Aラベルとテキスト */
.answer {
 display: flex;
 flex-direction: row;
 gap: 12px;
}
.faq-a {
 font-weight: bold;
 font-size: 17px;
 color: #3a2d27;
 flex-shrink: 0;
 line-height: 1.8;
}
.faq-text {
 font-size: 17px;
 line-height: 1.8;
 color: #3a2d27;
 margin: 0;
}

/* アニメーション */
@keyframes fadeIn {
 from {
  opacity: 0;
  transform: translateY(-5px);
 }
 to {
  opacity: 1;
  transform: translateY(0);
 }
}

/* スマホ対応 */
@media screen and (max-width: 768px) {
 .q-text {
  font-size: 16px;
 }
 .faq-a {
  font-size: 15px;
 }
 .faq-text {
  font-size: 15px;
 }
}

/* カテゴリボタン全体を横並びにする */
.btn-category-group {
 display: flex;
 flex-wrap: wrap;
 gap: 20px;
 justify-content: center;
 padding-top: 0px;
 margin-bottom: 20px;
}
@media screen and (min-width: 768px) {
 .btn-category-group {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  justify-content: center;
  padding-top: 40px;
  margin-bottom: 40px;
 }
}
/* 各ボタンラッパーの余白を調整 */
.btn-category-group .btn {
 width: auto;
}
/* タグ一覧ラッパー */
/* タグ一覧コンテナ（最大6列×2段） */
.works-tag-nav {
 display: flex;
 flex-wrap: wrap;
 gap: 12px 15px;
 justify-content: center;
 max-width: 800px; /* 6個×幅120px + gap 5px相当 */
 margin: 0 auto 60px;
}

/* タグピル */
.tag-pill {
 flex: 0 0 calc((100% - 5 * 16px) / 6); /* 6分割・gap考慮 */
 background-color: #c7b39e;
 color: #fff;
 padding: 4px 10px;
 border-radius: 999px;
 font-size: 13px;
 font-weight: bold;
 text-align: center;
 white-space: nowrap;
 text-decoration: none;
 transition: background-color 0.3s ease;
}

/* ホバー */
.tag-pill:hover {
 background-color: #b39b86;
}

/* レスポンシブ：スマホでは3列 */
@media screen and (max-width: 768px) {
 .tag-pill {
  flex: 0 0 calc((100% - 2 * 16px) / 3);
 }
}
/* === メタ情報（記事番号とカテゴリバッジ） === */
.archive-product .reform-meta {
 display: flex;
 justify-content: space-between;
 align-items: center;
 margin-bottom: 10px;
}
.archive-product .reform-meta02 {
 padding: 10px 20px;
}

.reform-number {
 font-weight: bold;
 color: #fff;
 font-size: 14px;
}

/* キャッチコピー */
.reform-title {
 font-size: 16px;
 font-weight: bold;
 color: #fff;
 margin-bottom: 10px;
 line-height: 1.6;
}

/* 抜粋文 */
.reform-excerpt {
 font-size: 16px;
 color: #fff;
 line-height: 1.8;
}

/* カテゴリバッジ色（共通定義） */
.category-badge {
 font-size: 12px;
 font-weight: bold;
 color: #fff;
 padding: 2px 8px;
 border-radius: 3px;
}

/* カテゴリ色ごとに変更 */
.badge-brown {
 background-color: #7a2c1f;
}
.badge-green {
 background-color: #a45b3a;
}
.badge-orange {
 background-color: #c78a47;
}
.badge-pink {
 background-color: #e3b06e;
}
.archive-product .pagination {
 display: flex;
 justify-content: center;
 flex-wrap: wrap;
 gap: 6px;
 margin-top: 60px;
}

.archive-product .pagination .page-numbers {
 display: inline-block;
 padding: 8px 16px;
 margin: 0 4px;
 font-size: 14px;
 font-weight: bold;
 color: #51443b;
 background-color: #f5f3ea;
 border: 1px solid #dcd1c4;
 border-radius: 4px;
 text-decoration: none;
 transition: all 0.3s ease;
}

.archive-product .pagination .page-numbers:hover {
 background-color: #a45b3a;
 color: #fff;
 border-color: #a45b3a;
}

.archive-product .pagination .page-numbers.current {
 background-color: #51443b;
 color: #fff;
 border-color: #51443b;
 pointer-events: none;
}
.pagination .screen-reader-text {
 display: none;
}
/* ===============================
single-product 固有セレクタ群

================================ */
.single-product .reform-card02 {
 width: 100%;
 background: #eee;
 padding: 10px;
 box-sizing: border-box;
 position: relative;
 display: flex;
 flex-direction: column;
}
/* レスポンシブ（スマホ対応） */
@media screen and (min-width: 768px) {
 .single-product .reform-card02 {
  width: 100%;
  background: #eee;
  padding: 30px;
  box-sizing: border-box;
  position: relative;
  display: flex;
  flex-direction: column;
 }
}
.single-product .reform-card02.brown {
 background: repeating-linear-gradient(
  to bottom,
  #51443b,
  #51443b 2px,
  #4a3a2e 2px,
  #4a3a2e 4px
 );
}
/* アクティブページネーション */
.single-product .pagination .current {
 background-color: #51443b;
 color: #fff;
 pointer-events: none;
 cursor: default;
}
.single-product .white {
 background-color: #fff;
 padding: 20px;
}
@media screen and (min-width: 768px) {
 .single-product .white {
  background-color: #fff;
  padding: 50px 60px;
 }
}
.single-product .reform-caption02 {
 text-align: center;
}
.single-product .reform-title-underline {
 display: block;
 margin: 8px auto 0;
 width: 800px;
 height: auto;
}
/* タイトルブロック */
.single-product .reform-detail-header {
 text-align: center;
 margin-bottom: 40px;
}

/* 番号 */
.single-product .reform-caption-wrap {
 display: flex;
 justify-content: flex-start;
 align-items: center;
 margin-bottom: 10px;
 position: relative;
}
@media screen and (min-width: 768px) {
 .single-product .reform-caption-wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 10px;
  position: relative;
 }
}
.single-product .reform-id {
 font-size: 18px;
 font-weight: bold;
 color: #51443b;
 text-align: center;
}

/* バッジ */
.single-product .reform-caption-wrap .category-badge {
 position: absolute;
 right: 0;
 top: 0;
 font-size: 14px;
 padding: 2px 8px;
 border-radius: 3px;
 color: #fff;
 white-space: nowrap;
}

/* タイトル */
.single-product .reform-caption {
 text-align: center;
 font-size: 1.8em;
 font-weight: bold;
 margin-bottom: 10px;
 display: inline-block;
 position: relative;
}

/* メタ情報 */
.single-product .reform-meta {
 text-align: center;
 font-size: 16px;
 color: #51443b;
 margin-top: 20px;
}
.single-product .reform-meta span {
 margin: 0 10px;
}

/* 汎用ボックス（ご要望／ポイント／声） */
.single-product .works-box {
 border: 1px solid #aaa;
 padding: 15px 10px;
 border-radius: 10px;
 margin-bottom: 40px;
}
@media screen and (min-width: 768px) {
 .single-product .works-box {
  border: 1px solid #aaa;
  padding: 30px 90px;
  border-radius: 10px;
  margin-bottom: 40px;
 }
}
.single-product .works-box.gray {
 background: #f7f7f7;
}
.single-product .works-box.beige {
 background: #fdf8ed;
}
.single-product .works-box.pink {
 background: #fbeaea;
}

/* セクションタイトル */
.single-product .section-title {
 font-weight: bold;
 font-size: 18px;
 margin-bottom: 20px;
 text-align: center;
}

/* チェック付きリスト */
.single-product .works-request-list {
 list-style: none;
 padding-left: 0;
 margin: 0;
 font-size: 15px;
}
@media screen and (min-width: 768px) {
 .single-product .works-request-list {
  list-style: none;
  padding-left: 0;
  margin: 0;
  font-size: 17px;
 }
}
.single-product .works-request-list li {
 position: relative;
 padding-left: 28px;
 margin-bottom: 10px;
 line-height: 1.8;
}

/* 画像アイコンでチェックマークを表示 */
.single-product .works-request-list li::before {
 content: "";
 position: absolute;
 left: 0;
 top: 4px;
 width: 20px;
 height: 20px;
 background-image: url("https://reform-isis.com/wptest/wp-content/themes/theme-isis2025/assets/images/common/check.png");
 background-size: contain;
 background-repeat: no-repeat;
 background-position: center;
}
.single-product .works-point-text {
 line-height: 1.8;
 font-size: 15px;
}
@media screen and (min-width: 768px) {
 .single-product .works-point-text {
  line-height: 1.8;
  font-size: 17px;
 }
}
.single-product .works-point-text p {
 line-height: 1.8;
 font-size: 15px;
}
@media screen and (min-width: 768px) {
 .single-product .works-point-text p {
  line-height: 1.8;
  font-size: 17px;
 }
}
.single-product .works-voice-text {
 line-height: 1.8;
 font-size: 15px;
}
@media screen and (min-width: 768px) {
 .single-product .works-voice-text {
  line-height: 1.8;
  font-size: 17px;
 }
}
.single-product .works-voice-text p {
 line-height: 1.8;
 font-size: 15px;
}
@media screen and (min-width: 768px) {
 .single-product .works-voice-text p {
  line-height: 1.8;
  font-size: 17px;
 }
}
/* 画像ギャラリー */
.single-product .gallery-row {
 display: flex;
 flex-wrap: wrap;
 gap: 20px;
 justify-content: center;
 margin-bottom: 40px;
}
.single-product .gallery-row figure {
 width: 45%;
 text-align: center;
}
.single-product .gallery-row figure img {
 width: 75%;
 height: auto;
}

@media screen and (min-width: 768px) {
 .single-product .gallery-row figure img {
  width: 100%;
  height: auto;
 }
}
.single-product .gallery-row figcaption {
 font-size: 14px;
 margin-top: 10px;
 color: #555;
}

/* レスポンシブ（スマホ対応） */
@media screen and (max-width: 768px) {
 .single-product .gallery-row figure {
  width: 100%;
 }
}
/* 画像ギャラリー */
.single-product .gallery-high {
 display: flex;
 flex-wrap: wrap;
 gap: 20px;
 justify-content: center;
 margin-bottom: 40px;
}
.single-product .gallery-high figure {
 width: 80%;
 text-align: center;
}
.single-product .gallery-high figure img {
 width: 100%;
 height: auto;
}
.single-product .gallery-high figcaption {
 font-size: 14px;
 margin-top: 10px;
 color: #555;
}
@media screen and (min-width: 768px) {
 .single-product .gallery-high figcaption {
  font-size: 15px;
  margin-top: 10px;
  color: #555;
  text-align: center;
 }
}
@media screen and (min-width: 768px) {
 .single-product .gallery-high figure img {
  width: 80%;
  height: auto;
 }
}
/* レスポンシブ（スマホ対応） */
@media screen and (max-width: 768px) {
 .single-product .gallery-high figure {
  width: 100%;
 }
}
/* ==========================================================
 * 施工事例 絞り込みフォーム用スタイル
 * ファイル名: works-filter.css
 * 2025-06-19 完全版
 * ========================================================== */

/* ---------- 基本カラー & 変数 ---------- */
:root {
 --c-bg-main: #faf8f4; /* 全体背景ベージュ */
 --c-bg-card: #ffffff; /* ブロック背景白   */
 --c-border: #dcd7d0; /* 枠線薄ベージュ   */
 --c-text: #3a2d27; /* テキスト濃ブラウン */
 --c-accent: #c9941a; /* ボタン・チェック色 */
 --c-focus: #ffb347; /* キーボードフォーカス */

 --gap-xl: 48px;
 --gap-lg: 32px;
 --gap-md: 24px;
 --gap-sm: 16px;
 --gap-xs: 8px;

 --radius-sm: 4px;
 --radius-md: 6px;
 --radius-lg: 10px;

 --fs-sm: 0.875rem;
 --fs-md: 1rem;
 --fs-lg: 1.125rem;
}

/* ---------- フォーム全体 ---------- */
.works-filter {
 max-width: 1500px;
 margin: 20px 0;
 padding: var(--gap-lg) var(--gap-md) var(--gap-md);
 background: var(--c-bg-main);
 border: 1px solid var(--c-border);
 border-radius: var(--radius-lg);
 box-shadow: 0 3px 8px rgba(0, 0, 0, 0.05);
 font-size: var(--fs-md);
 color: var(--c-text);
 display: grid;
 grid-template-columns: repeat(3, 1fr);
 gap: 15px;
}

/* タブレット2カラム / スマホ1カラム */
@media (max-width: 1023px) {
 .works-filter {
  grid-template-columns: repeat(2, 1fr);
 }
}
@media (max-width: 639px) {
 .works-filter {
  grid-template-columns: 1fr;
  padding: 20px 10px;
 }
}

/* ---------- ブロックヘッダ ---------- */
.works-filter legend,
.works-filter > select {
 font-weight: 700;
 font-size: 15px;
}

.works-filter fieldset {
 border: 1px solid var(--c-border);
 border-radius: var(--radius-md);
 padding: var(--gap-sm) var(--gap-md) var(--gap-sm);
 background: var(--c-bg-card);
 display: flex;
 flex-wrap: wrap;
 gap: var(--gap-xs) var(--gap-sm);
 min-height: 56px;
}

/* ---------- セレクトボックス ---------- */
.works-filter select {
 appearance: none;
 width: 100%;
 font-size: var(--fs-md);
 padding: var(--gap-xs) var(--gap-md);
 border: 1px solid var(--c-border);
 border-radius: var(--radius-sm);
 background: #fff
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath fill='%233a2d27' d='M0 0l5 6 5-6H0z'/%3E%3C/svg%3E")
  no-repeat right 0.8rem center/10px 6px;
 cursor: pointer;
}

.works-filter select:focus {
 outline: 2px solid var(--c-focus);
 outline-offset: 1px;
}

/* ---------- カスタムチェックボックス ---------- */
.works-filter input[type="checkbox"] {
 position: absolute;
 opacity: 0;
}

.works-filter label {
 position: relative;
 padding-left: 26px;
 font-size: var(--fs-sm);
 line-height: 1.4;
 cursor: pointer;
 user-select: none;
}

.works-filter label::before {
 content: "";
 position: absolute;
 left: 0;
 top: 2px;
 width: 18px;
 height: 18px;
 background: #fff;
 border: 2px solid var(--c-border);
 border-radius: var(--radius-sm);
 transition: background 0.2s, border-color 0.2s;
}

.works-filter input[type="checkbox"]:checked + label::before {
 border-color: var(--c-accent);
 background: var(--c-accent);
}

.works-filter input[type="checkbox"]:checked + label::after {
 content: "";
 position: absolute;
 left: 5px;
 top: 10px;
 width: 6px;
 height: 3px;
 border-left: 2px solid #fff;
 border-bottom: 2px solid #fff;
 transform: rotate(-45deg);
}

.works-filter input[type="checkbox"]:focus + label::before {
 outline: 2px solid var(--c-focus);
 outline-offset: 2px;
}

/* ---------- 送信ボタン ---------- */
.works-filter .search-btn {
 text-align: center;
 grid-column: 1 / -1;
 justify-self: center;
 min-width: 240px;
 padding: var(--gap-xs) var(--gap-lg);
 background: var(--c-accent);
 color: #fff;
 font-size: var(--fs-lg);
 font-weight: 700;
 border: none;
 border-radius: var(--radius-md);
 cursor: pointer;
 transition: opacity 0.25s, transform 0.15s;
}

.works-filter .search-btn:hover {
 opacity: 0.9;
 transform: translateY(-1px);
}
.works-filter .search-btn:active {
 transform: translateY(1px);
}
.works-filter .search-btn:focus {
 outline: 3px solid var(--c-focus);
 outline-offset: 2px;
}
/* ==========================================================
 * チェックボックス：checked 状態を描画（:has 対応ブラウザ向け）
 * ========================================================== */
.works-filter label:has(> input[type="checkbox"]:checked)::before {
 background: var(--c-accent);
 border-color: var(--c-accent);
}

.works-filter label:has(> input[type="checkbox"]:checked)::after {
 content: "";
 position: absolute;
 left: 5px;
 top: 10px;
 width: 6px;
 height: 3px;
 border-left: 2px solid #fff;
 border-bottom: 2px solid #fff;
 transform: rotate(-45deg);
}
/* ==========================================================
 * 施工事例フォーム：チェックボックス整列 & UI 改善
 * ========================================================== */

/* ---------- fieldset を 2 カラムレイアウトに ---------- */
.works-filter fieldset {
 display: grid;
 grid-template-columns: repeat(2, 1fr); /* ← 2 列均等 */
 gap: var(--gap-xs) var(--gap-sm); /* 行/列 ギャップ */
 padding: var(--gap-sm) var(--gap-md) var(--gap-md);
 min-height: 170px; /* 高さを固定でそろえる */
 box-sizing: border-box;
}

/* タブレット（1 カラム） */
@media (max-width: 767px) {
 .works-filter fieldset {
  grid-template-columns: repeat(2, 1fr);
  padding: 20px 10px;
  min-height: auto;
 }
}

/* ---------- ラベルをブロック化して行頭揃え ---------- */
.works-filter label {
 display: flex;
 align-items: flex-start;
 gap: 6px;
 font-size: var(--fs-sm);
 line-height: 1.6;
 padding-left: 0;
 position: relative;
}

/* ----- ネイティブチェックをそのまま利用 ----- */
.works-filter input[type="checkbox"] {
 appearance: none;
 width: 18px;
 height: 18px;
 border: 2px solid var(--c-border);
 border-radius: var(--radius-sm);
 display: inline-block;
 position: relative;
 cursor: pointer;
}

.works-filter input[type="checkbox"]:checked {
 background: var(--c-accent);
 border-color: var(--c-accent);
}

.works-filter input[type="checkbox"]:checked::after {
 content: "";
 position: absolute;
 left: 4px;
 top: 1px;
 width: 6px;
 height: 10px;
 border-right: 2px solid #fff;
 border-bottom: 2px solid #fff;
 transform: rotate(45deg);
}

.works-filter input[type="checkbox"]:focus {
 outline: 2px solid var(--c-focus);
 outline-offset: 2px;
}
/* ==========================================================
 * フィルターサマリー
 * ========================================================== */
.filter-summary {
 margin: var(--gap-lg) 0 var(--gap-md);
 font-size: var(--fs-sm);
 color: var(--c-text);
 border-top: 1px solid var(--c-border);
 border-bottom: 1px solid var(--c-border);
 padding: var(--gap-sm) 0;
}

.filter-summary__label {
 font-weight: 700;
 margin-right: var(--gap-xs);
}

.filter-chip {
 display: inline-block;
 margin-right: 5px;
 margin-bottom: var(--gap-xs);
 padding: 2px 8px;
 background: var(--c-bg-card);
 border: 1px solid var(--c-border);
 border-radius: var(--radius-sm);
 white-space: nowrap;
}
/* ======================================================
 * legend を常に横書き 1 行で表示させる
 * ====================================================== */
.works-filter legend {
 display: block; /* grid 内で幅を確保 */
 width: 100%; /* 列幅いっぱい使う */
 white-space: nowrap; /* 改行させない       */
 writing-mode: horizontal-tb; /* 念のため縦書き無効 */
}
