/*
Theme Name:AIDER child
Theme URI:https://tcd-theme.com/tcd115
Description:WordPressテーマ「AIDER」の子テーマ
Template:aider_tcd115
Author:TCD
Author URI:https://tcd-theme.com/
Version:1.0
*/

/* ===== 共通：タイポ＆カラー（やわらかめのトーン） ===== */
:root{
  --ink:#2c2c2c;
  --muted:#6d6d6d;
  --brand:#8c5a2f;         /* 既存ブラウン */
  --brand-weak:#fff4ec;    /* ふんわりベージュ */
  --line:#e9e2dc;
  --card-shadow:0 8px 24px rgba(0,0,0,.06);
}

/* ====== AIDERの“グレー帯タイトル”だけ隠す（ヘッダーは残す） ====== */
.post-type-archive-contractor .c-archive-header,
.single-contractor         .c-archive-header,
.post-type-archive-contractor .p-mv,
.single-contractor           .p-mv{
  display:none !important;
}
/* 帯分の余白も殺す */
.post-type-archive-contractor .l-contents,
.single-contractor .l-contents{
  padding-top:0 !important;
}

/* =========================================================
   Archive: contractor（cl-*）
   マークアップ：archive-contractor.php に対応
========================================================= */

/* ヒーロー（全幅の淡グラデ） */
.contractor-archive.-fancy .cl-hero{
  width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  background:
    radial-gradient(1200px 320px at 50% -40%, rgba(0,0,0,.06), rgba(0,0,0,0) 60%),
    linear-gradient(180deg,#fff 0,#fff 55%, #fff5ec 100%);
  padding:clamp(28px,6vw,60px) 0 clamp(12px,4vw,24px);
}
.contractor-archive.-fancy .cl-hero__inner{
  max-width:1200px; margin:0 auto;
  padding:0 max(20px,5vw);
}
.contractor-archive.-fancy .cl-eyebrow{
  font-size:12px; letter-spacing:.18em; color:var(--muted);
}
.contractor-archive.-fancy .cl-ttl{
  margin:.25em 0 .1em; color:var(--ink);
  font-weight:800; letter-spacing:.02em;
  font-size:clamp(24px,3.8vw,36px);
}
.contractor-archive.-fancy .cl-lead{
  margin:0; color:var(--muted);
  font-size:clamp(14px,1.7vw,16px);
}

/* フィルタ行 */
.contractor-archive.-fancy .cl-filter{
  margin: 0 0 18px;
}
.contractor-archive.-fancy .cl-filter__form{
  max-width:1200px; margin:-12px auto 0;  /* ヒーロー直下に寄せる */
  padding:12px max(20px,5vw);
  display:grid; gap:12px;
  grid-template-columns: 1.4fr 1fr 1fr auto;
}
@media (max-width: 900px){
  .contractor-archive.-fancy .cl-filter__form{
    grid-template-columns: 1fr 1fr;
  }
  .contractor-archive.-fancy .cl-btn{ grid-column: 1 / -1; }
}
.contractor-archive.-fancy .cl-input{
  height:46px; border:1px solid var(--line); border-radius:999px;
  background:#fff; padding:0 16px; font-size:14px;
}
.contractor-archive.-fancy .cl-select{
  display:flex; align-items:center; gap:10px;
}
.contractor-archive.-fancy .cl-select > span{
  color:var(--muted); font-size:12px;
}
.contractor-archive.-fancy .cl-select select{
  height:46px; min-width:220px;
  padding:0 36px 0 14px; border-radius:999px; border:1px solid var(--line); background:#fff;
  appearance:none; font-size:14px;
}
@media (min-width:901px){
  .contractor-archive.-fancy .cl-select select{ min-width:260px; }
}
.contractor-archive.-fancy .cl-btn{
  height:46px; padding:0 22px; border:none; cursor:pointer;
  border-radius:999px; background:var(--brand); color:#fff; font-weight:700; letter-spacing:.02em;
}
.contractor-archive.-fancy .cl-btn .i-chevron{
  display:inline-block; margin-left:.25em; transform:translateY(1px);
}
.contractor-archive.-fancy .cl-btn:hover .i-chevron{ transform:translate(2px,1px); transition:.15s ease; }

/* 一覧グリッド */
.contractor-archive.-fancy .cl-list{ padding:12px 0 72px; }
.contractor-archive.-fancy .cl-grid{
  max-width:1200px; margin:0 auto; padding:0 max(20px,5vw);
  display:grid; gap:22px; grid-template-columns:repeat(auto-fill, minmax(320px,1fr));
}

/* カード */
.contractor-archive.-fancy .cl-card{
  background:#fff; border:1px solid var(--line); border-radius:16px; overflow:hidden;
  box-shadow:var(--card-shadow);
  transition:transform .25s ease, box-shadow .25s ease;
}
.contractor-archive.-fancy .cl-card:hover{ transform:translateY(-2px); box-shadow:0 12px 28px rgba(0,0,0,.1); }
.contractor-archive.-fancy .cl-card__link{ display:block; color:inherit; text-decoration:none; }
.contractor-archive.-fancy .cl-card__media{ aspect-ratio:16/9; background:#f2f2f2; overflow:hidden; }
.contractor-archive.-fancy .cl-card__media img{ width:100%; height:100%; object-fit:cover; display:block; transition: transform .5s; }
.contractor-archive.-fancy .cl-card__link:hover .cl-card__media img{ transform:scale(1.03); }
.contractor-archive.-fancy .cl-card__noimg{ display:grid; place-items:center; height:100%; color:#9aa0a6; font-weight:600; }
.contractor-archive.-fancy .cl-card__body{ padding:16px 18px 18px; }
.contractor-archive.-fancy .cl-card__title{ margin:0 0 6px; font-weight:800; font-size:clamp(18px,1.9vw,20px); color:#3a2a21; letter-spacing:.02em; }
.contractor-archive.-fancy .cl-card__meta{ font-size:14px; color:var(--muted); }
.contractor-archive.-fancy .cl-card__chips{ display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.contractor-archive.-fancy .chip{
  display:inline-block; padding:6px 10px; border-radius:999px; font-size:12px;
  background:var(--brand-weak); color:var(--brand); border:1px solid #f0d8c8;
}

/* カード内CTA */
.contractor-archive.-fancy .cl-card__cta{ margin-top:14px; display:flex; gap:10px; flex-wrap:wrap; }
.contractor-archive.-fancy .btn{
  display:inline-flex; align-items:center; justify-content:center; white-space:nowrap;
  padding:10px 16px; border-radius:999px; font-weight:700; font-size:14px; text-decoration:none;
}
.contractor-archive.-fancy .btn.-solid{ background:var(--brand); color:#fff; border:1px solid var(--brand); }
.contractor-archive.-fancy .btn.-solid:hover{ opacity:.92; }
.contractor-archive.-fancy .btn.-ghost{ background:#fff; color:var(--brand); border:1px solid #e2d7cf; }
.contractor-archive.-fancy .btn.-ghost:hover{ border-color:var(--brand); }

/* ページャ */
.contractor-archive.-fancy .cl-pager{ display:flex; justify-content:center; margin:26px 0 60px; }
.contractor-archive.-fancy .cl-pager ul{ display:flex; gap:8px; list-style:none; margin:0; padding:0; }
.contractor-archive.-fancy .cl-pager a,
.contractor-archive.-fancy .cl-pager span{
  display:inline-flex; min-width:38px; height:38px; align-items:center; justify-content:center;
  border-radius:999px; border:1px solid var(--line); background:#fff; color:#6b4b35; text-decoration:none; padding:0 10px;
}
.contractor-archive.-fancy .cl-pager .current{ background:var(--brand); color:#fff; border-color:var(--brand); }

/* =========================================================
   Single: contractor（ct-*）
   マークアップ：single-contractor.php に対応
========================================================= */
.ct-wrap{ max-width:1200px; margin:0 auto; padding:48px max(20px,5vw); }
.ct-header{ margin-bottom:18px; }
.ct-title{ margin:0 0 10px; font-size:clamp(22px,3.2vw,34px); font-weight:800; }
.ct-badges{ display:flex; gap:8px; flex-wrap:wrap; }
.ct-badge{
  display:inline-block; padding:6px 10px; border-radius:999px; font-size:12px;
  background:var(--brand-weak); color:var(--brand); border:1px solid #f0d8c8;
}

.ct-grid{ display:grid; grid-template-columns: minmax(0,1fr) 360px; gap:28px; align-items:start; }
@media (max-width:960px){ .ct-grid{ grid-template-columns:1fr; } }

.ct-figure{ margin:0 0 16px; border-radius:16px; overflow:hidden; }
.ct-figure img{ width:100%; height:auto; display:block; }

.ct-content{ line-height:1.9; color:#333; }
.ct-content p{ margin:0 0 1em; }

.ct-aside{ position:sticky; top:88px; }
@media (max-width:960px){ .ct-aside{ position:static; } }
.ct-box{ border:1px solid var(--line); border-radius:14px; padding:18px; background:#fff; box-shadow:var(--card-shadow); }
.ct-box__title{ margin:0 0 10px; font-size:16px; font-weight:700; }
.ct-dl{ display:grid; grid-template-columns:120px 1fr; gap:8px 12px; margin:0; }
.ct-dl dt{ color:var(--muted); }
.ct-dl dd{ margin:0; }

.ct-ctaRow{ display:flex; gap:10px; flex-wrap:wrap; margin-top:16px; }
.ct-link{ color:var(--brand); text-decoration:underline; }
.ct-link:hover{ opacity:.85; }
.ct-linkBack{ margin-left:auto; align-self:center; color:var(--brand); text-decoration:underline; }
/* ==== Archive: 見出しデザイン（PARTNER LISTは非表示）==== */
.contractor-archive.-fancy .cl-eyebrow{ display:none !important; }

/* ①×②のいいとこ取り：太め見出し＋斜めストライプの帯＋中央ノッチ＆短い棒 */
.contractor-archive.-fancy .cl-ttl{
  position: relative;
  display:inline-block;
  padding: .6rem 0 .7rem;
  margin: 0 0 .25rem;
  color: #353535;
  font-weight: 800;
  font-size: clamp(24px,3.8vw,36px);
  letter-spacing: .02em;
  line-height: 1.25;
}
.contractor-archive.-fancy .cl-ttl::before{
  /* 斜めストライプの下地（①） */
  content:'';
  position:absolute;
  left:-6px;
  bottom:6px;
  width:100%;
  height:16px;
  transform:skew(-45deg);
  background-image: repeating-linear-gradient(90deg, transparent 0 6px, #dcddb3 6px 13px);
  z-index:-1;
  border-radius:4px;
}
.contractor-archive.-fancy .cl-ttl::after{
  /* 中央の小ノッチ＋短い棒（②のアレンジ） */
  content:'';
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  bottom:-6px;
  width:2px;
  height:18px;
  background-color:#8c5a2f; /* 既存ブラウン */
  border-radius:1px;
}

/* リードの行間を広めに */
.contractor-archive.-fancy .cl-lead{
  line-height: 1.9;
}

/* ==== Archive: フィルタの“ぎゅうぎゅう”解消 ==== */
.contractor-archive.-fancy .cl-filter__form{
  max-width:1200px;
  margin:-12px auto 0;
  padding:12px max(20px,5vw);
  display:grid;
  column-gap:16px;
  row-gap:12px;
  /* 検索：長め／エリア・特長：やや長め／ボタン：自動 */
  grid-template-columns: 1.6fr 1.1fr 1.1fr auto;
}
@media (max-width:1060px){
  .contractor-archive.-fancy .cl-filter__form{
    grid-template-columns: 1fr 1fr 1fr;
  }
  .contractor-archive.-fancy .cl-btn{ grid-column: 1 / -1; justify-self:end; }
}
@media (max-width:780px){
  .contractor-archive.-fancy .cl-filter__form{
    grid-template-columns: 1fr;
  }
  .contractor-archive.-fancy .cl-btn{ justify-self:stretch; }
}

/* 各入力をグリッド内で気持ちよく伸ばす */
.contractor-archive.-fancy .cl-input{ width:100%; }
.contractor-archive.-fancy .cl-select{ min-width:220px; width:100%; }
.contractor-archive.-fancy .cl-select select{
  width:100%; min-width:unset; height:46px;
  padding:0 36px 0 14px; border-radius:999px; border:1px solid var(--line); background:#fff;
  appearance:none; font-size:14px;
}

/* フィルタボタンの矢印の見た目（既存） */
.contractor-archive.-fancy .cl-btn .i-chevron{
  display:inline-block; margin-left:.25em; transform:translateY(1px);
}
.contractor-archive.-fancy .cl-btn:hover .i-chevron{ transform:translate(2px,1px); transition:.15s ease; }

/* ==== Archive: カード内CTAにも矢印を追加した時の見た目 ==== */
.contractor-archive.-fancy .btn .i-chevron{
  display:inline-block; margin-left:.35em; transform:translateY(1px);
}
.contractor-archive.-fancy .btn:hover .i-chevron{
  transform:translate(2px,1px);
  transition: transform .15s ease;
}
/* ============= Brand vars (安全に上書き) ============= */
:root{
  --brand: #8c5a2f;           /* LivLivブラウン */
  --ink:   #2f2b28;           /* 見出し用の濃いめ文字色 */
  --line:  #e9e1da;
}

/* ============= 見出し：title-34 をLivLiv向けに ============= */
/* マークアップ：<h1 class="title-34"><span>登録工務店</span></h1> */
.contractor-archive.-fancy h1.title-34{
  position: relative;
  display:block;
  box-sizing:border-box;
  margin: 22px auto 8px;
  padding: 10px 14px;
  max-width: 280px;                 /* 140px → 読み幅を少し広く */
  text-align: center;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 800;
  letter-spacing: .08em;            /* 0.1em → 少し詰めて上品に */
  font-size: clamp(22px, 3.6vw, 34px);
  color: var(--ink);
  line-height: 1.15;                /* キリッと */
}

/* 左上の45°アクセントをブラウン×細線で軽やかに */
.contractor-archive.-fancy .title-34::before{
  content:"";
  position:absolute;
  top: 2px;                          /* 0 → 微調整 */
  left: 0;
  width: 54px;                       /* 60 → やや小ぶり */
  height: 54px;
  rotate: 45deg;
  border-bottom: 2px solid var(--brand); /* 3px→2px / 色もブランド色へ */
  border-left:   2px solid var(--brand);
  opacity:.9;
  border-radius: 2px;
  z-index:-1;
}

/* 上下の細バー（クロス）を繊細に＆中央寄せ */
.contractor-archive.-fancy .title-34 > span::before,
.contractor-archive.-fancy .title-34 > span::after{
  content:"";
  position:absolute;
  left: 50%;
  width: 44px;                       /* 40 → 少し長く */
  height: 2px;
  background: var(--brand);
  transform: translateX(-50%);
  opacity:.85;
}
.contractor-archive.-fancy .title-34 > span::before{
  top: -6px;                         /* top:1px → 見出しの上に配置 */
  rotate: 0deg;
}
.contractor-archive.-fancy .title-34 > span::after{
  bottom: -8px;                      /* bottom:1px → 見出しの下に配置 */
  rotate: 0deg;
}

/* リード行間をゆったり */
.contractor-archive.-fancy .cl-lead{ line-height:1.9; }

/* ============= フィルタ：ラベル排版＆矢印調整 ============= */
/* ラベル（エリア／特長）の縦中央と文字詰めを整える */
.contractor-archive.-fancy .cl-select{
  display:flex;
  align-items:center;                /* ラベルとセレクトの中心線を揃える */
  gap: 10px;
}
.contractor-archive.-fancy .cl-select > span{
  font-size: 13px;
  letter-spacing: .06em;             /* 過度な広がりを抑える */
  color:#7a716a;
  line-height: 1;                    /* ベースラインをきっちり */
  transform: translateY(-.5px);      /* ほんの少し上げて視覚中心合わせ */
}

/* セレクトの中身も中央寄せを確実に */
.contractor-archive.-fancy .cl-select select{
  display:block;
  line-height: 46px;                 /* heightと揃えて上下センター */
}

/* 絞り込みボタン／CTAの「›」：サイズ＆中心線補正 */
.contractor-archive.-fancy .cl-btn .i-chevron,
.contractor-archive.-fancy .btn .i-chevron{
  font-size: 1.15em;                 /* 少しだけ大きく */
  display:inline-block;
  vertical-align: middle;            /* テキスト中心と揃える */
  transform: translateY(-.5px);      /* ほんの気持ち上に */
  margin-left: .3em;
}
.contractor-archive.-fancy .cl-btn:hover .i-chevron,
.contractor-archive.-fancy .btn:hover .i-chevron{
  transform: translate(2px, -.5px);  /* 水平スライドのみで美しく */
  transition: transform .15s ease;
}

/* サブリードの行間だけ少し広げる（既存の文言そのまま） */
.contractor-archive.-fancy .cl-lead{
  line-height: 1.9;
}

/* 「エリア」「特長」が2行に折れないよう固定 */
.contractor-archive.-fancy .cl-select{ white-space: nowrap; }
.contractor-archive.-fancy .cl-select > span{
  white-space: nowrap;
  line-height: 1;            /* ベースラインを揃える */
  transform: translateY(-.5px);
}

/* セレクト本体も縦中央をキープ（既存高さ想定：46px） */
.contractor-archive.-fancy .cl-select select{
  line-height: 46px;
}

/* 余裕がない画面幅での折返し防止のため、列配分を少し広めに */
@media (min-width: 901px){
  .contractor-archive.-fancy .cl-filter__form{
    grid-template-columns: 1.4fr 1.1fr 1.1fr auto;
  }
}

/* 「絞り込む ›」の矢印を文字中心に微調整（既存を上書きせず補正のみ） */
.contractor-archive.-fancy .cl-btn .i-chevron{
  font-size: 1.15em;
  vertical-align: middle;
  transform: translateY(-0.5px);
}
/* ==== Archive contractor：ヒーローを全幅画像に変更（URL版） ==== */
.contractor-archive.-fancy .cl-hero{
  width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);

  /* 背景画像 */
  background-image: url("/wp-content/uploads/2025/12/IMG_7316-e1764938112811.jpg");
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;

  background-color:transparent !important;
  box-shadow:none !important;

  /* ★ここで高さを確保する */
  min-height: 620px;  /* 好きな高さに調整してOK（360〜520pxくらいでお好み） */

  /* 見出しとの距離 */
  padding:clamp(48px,7vw,96px) 0 clamp(24px,5vw,48px);

  position:relative;
}

/* 白グラデはそのままでも、消してもOK */
.contractor-archive.-fancy .cl-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(
    180deg,
    rgba(255,255,255,.75) 0%,
    rgba(255,255,255,.55) 40%,
    rgba(255,255,255,.75) 100%
  );
  pointer-events:none;
  z-index:0;
}

.contractor-archive.-fancy .cl-hero__inner{
  position:relative;
  z-index:1;
}

/* ==== 見出し「登録工務店」：ご指定の background-clip:text 版 ==== */
.contractor-archive.-fancy .sample{
  font-size: clamp(23px, 5.2vw, 60px);
  text-align: center;
  line-height: 0.95em;
  font-weight: 800;
  color: transparent;
  background: rgba(0,0,0,1);
  text-shadow:
    0 0 0.1em rgba(255,255,255,0.05),
    0.01em 0.04em 0.03em rgba(255,255,255,0.4);
  -webkit-background-clip: text;
  background-clip: text;
  margin: 16px auto 8px; /* タイトル上下の余白だけ微調整 */
}

/* ==== 説明文の行間だけ広げる（文言はそのまま）==== */
.contractor-archive.-fancy .cl-lead{
  line-height: 1.9;
  margin-top: 6px;
}

/* ==== 検索（フィルタ）ブロックを少し下へ ==== */
.contractor-archive.-fancy .cl-filter{
  margin-top: clamp(18px, 3.2vw, 28px); /* ここで“下にずらす” */
}

/* （念のため）セレクトのラベルは1行固定＆縦位置の崩れ防止 */
.contractor-archive.-fancy .cl-select{ white-space: nowrap; }
.contractor-archive.-fancy .cl-select > span{
  line-height: 1;
  vertical-align: middle;
  transform: translateY(-.5px);
}
/* ========== 登録工務店ヒーロー微修正 ========== */
/* 見出し：下が切れるのを防ぐ（行高と下パディングを少し確保） */
.contractor-archive.-fancy .cl-hero { overflow: visible; }
.contractor-archive.-fancy .cl-ttl,
.contractor-archive.-fancy .sample { /* sample を見出しに使っている前提を両取り */
  line-height: 1.06;            /* ほんのり高めて下端の欠け防止 */
  padding-bottom: .18em;        /* 画線系の文字でも余裕を持たせる */
}

/* 見出しとリードを中央寄せ（タイトルに合わせて真ん中揃え） */
.contractor-archive.-fancy .cl-hero__inner { text-align: center; }
.contractor-archive.-fancy .cl-lead {
  max-width: 720px;
  margin: 10px auto 0;          /* 見出し直下で中央に */
  line-height: 1.9;             /* ご指定：行間ゆったり */
}

/* タイトル（sample 見出し）の微調整：わずかに太さを出しつつ欠け対策 */
.contractor-archive.-fancy .sample{
  -webkit-text-stroke: 0.03em rgba(0,0,0,1);
  text-shadow:
    0 0 0.1em rgba(255,255,255,0.05),
    0.01em 0.04em 0.03em rgba(255,255,255,0.40);
}

/* ========== 検索行は現状レイアウトのまま（見た目調整のみ） ========== */
/* 「エリア」「特長」のラベル＆セレクトの縦芯を揃える */
.contractor-archive.-fancy .cl-select span{
  line-height: 1;
  display: inline-flex;
  align-items: center;
  height: 46px;                 /* セレクトと同じ高さでベースライン一致 */
}
.contractor-archive.-fancy .cl-select select{
  vertical-align: middle;
}

/* 「絞り込む ›」の › が小さく/下がり気味に見えるのを補正 */
.contractor-archive.-fancy .cl-btn{
  padding: 0 28px;              /* ← 少し長めに（PC） */
  height: 46px;
  display: inline-flex;
  align-items: center;
  gap: .35em;
}
.contractor-archive.-fancy .cl-btn .i-chevron{
  font-size: .92em;             /* ほんの少しだけ小さめ */
  line-height: 1;
  transform: translateY(0);     /* 下がり補正をフラットに */
}
@media (max-width: 768px){
  .contractor-archive.-fancy .cl-btn{ padding: 0 22px; }
}

/* ========== カード内の2ボタンを“少し長め”＆左端の列に芯合わせ ========== */
.cl-card__cta{
  gap: 12px;
  justify-content: flex-start;  /* 左端起点を明確に */
}
.cl-card__cta .btn{
  min-width: 12.5em;            /* ← 少し長めに（PC） */
  padding: 11px 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .35em;
}
.cl-card__cta .btn .i-chevron{
  font-size: .92em;             /* 統一してやや小さめ */
  line-height: 1;
  transform: translateY(0);
}
@media (max-width: 768px){
  .cl-card__cta .btn{ min-width: 11.5em; }
}

/* バッジ（大分/漆喰など）とCTAの左端を同じ列に見せる（微ズレ吸収） */
.cl-card__body{
  padding-left: 18px;           /* 既存値の再宣言で左右の基準を固定 */
}
.cl-card__chips,
.cl-card__cta{ margin-left: 0; } /* 左端をカード本文の基準に合わせる */
/* ================= 差分：ご指定の最終調整 ================= */

/* 1) 見出し「登録工務店」：アウトラインを無しに（背景クリップは維持） */
.contractor-archive.-fancy .sample{
  -webkit-text-stroke: 0 !important;   /* アウトライン無効 */
  text-shadow: none !important;         /* 影も無しでフラットに */
  line-height: 1.06;                    /* 下端の欠け防止は維持 */
  padding-bottom: .18em;
}

/* 2) リード文をタイトル基準で中央揃え＆位置を少し下へ */
.contractor-archive.-fancy .cl-hero__inner{ text-align: center; }
.contractor-archive.-fancy .cl-lead{
  max-width: 720px;
  margin: 16px auto 0 !important;       /* ← “もう少し下に” */
  line-height: 1.9;                      /* 読みやすい行間を維持 */
}

/* 3) カード内の「資料請求」「この工務店に相談する」を少し左へ寄せる
      （バッジと同じ左端に芯合わせ） */
.contractor-archive.-fancy .cl-card__body{ padding-left: 16px; } /* 18→16pxで微調整 */
.contractor-archive.-fancy .cl-card__chips{ margin-left: 0; }
.contractor-archive.-fancy .cl-card__cta{
  margin-left: -2px;   /* ごく薄い左寄せの“ひと押し” */
  gap: 12px;
}
.contractor-archive.-fancy .cl-card__cta .btn{
  min-width: 12.5em;   /* 長さ調整はそのまま維持 */
  display: inline-flex; align-items:center; justify-content:center;
}
/* ボタン内の「›」は文字の中心線に合わせたまま */
.contractor-archive.-fancy .btn .i-chevron{
  font-size: 1.15em; vertical-align: middle; transform: translateY(-0.5px);
}
/* ==== 差分（最小変更）=============================== */
/* 見出し：ご指定の .sample はそのまま（変更なし） */

/* 1) リード文をもう少し下へ */
.contractor-archive.-fancy .cl-hero__inner{ text-align: center; }
.contractor-archive.-fancy .cl-lead{
  max-width: 720px;
  margin: 24px auto 0 !important;  /* ← 16px → 24px に */
  line-height: 1.9;
}

/* 2) 「この工務店に相談する」ボタンだけを少し左へ */
.contractor-archive.-fancy .cl-card__cta{ justify-content:flex-start; gap:12px; }
.contractor-archive.-fancy .cl-card__cta .btn.-solid{
  margin-left: -6px;               /* ← ちょい左寄せ */
}
@media (max-width: 768px){
  .contractor-archive.-fancy .cl-card__cta .btn.-solid{
    margin-left: -4px;             /* SPは控えめに */
  }
}
/* === 最終オーバーライド（確実適用） ================= */

/* 見出し「登録工務店」：アウトライン/影を完全オフ */
.contractor-archive.-fancy .sample{
  -webkit-text-stroke: 0 !important;
  text-shadow: none !important;
}

/* リード文：中央揃えのまま、さらに下へ */
.contractor-archive.-fancy .cl-hero__inner{ text-align:center; }
.contractor-archive.-fancy .cl-lead{
  max-width: 720px;
  margin: 26px auto 0 !important; /* ← “もう少し下” を強制 */
  line-height: 1.9;
}

/* カードCTA：gapを使わず個別マージンで制御（左端そろえ＆右ボタンだけ少し左へ） */
.contractor-archive.-fancy .cl-card__cta{
  justify-content: flex-start !important;
  gap: 0 !important;                 /* gapを無効化 */
}
.contractor-archive.-fancy .cl-card__cta .btn:first-child{
  margin-right: 10px !important;     /* 「資料請求」右の余白 */
}
.contractor-archive.-fancy .cl-card__cta .btn.-solid{
  margin-left: -4px !important;      /* 「この工務店に相談する」を“少し左に” */
  /* さらに寄せたい時は -6px ～ -8px へ */
}

/* ボタン中の「›」は文字芯に合わせたまま（再保証） */
.contractor-archive.-fancy .btn .i-chevron{
  font-size: 1.15em; 
  vertical-align: middle; 
  transform: translateY(-0.5px);
}
/* ==== 見出し「登録工務店」を background-clip テキストに ==== */
/* どちらのマークアップにも対応：
   A) <h1 class="sample">登録工務店</h1>
   B) <h1 class="title-34"><span>登録工務店</span></h1>  */

.contractor-archive.-fancy h1.sample,
.contractor-archive.-fancy h1.title-34 > span{
  font-size: clamp(32px, 5.2vw, 70px) !important;
  text-align: center !important;
  line-height: 0.95em !important;
  font-weight: 800 !important;
  color: transparent !important;
  background: rgba(0,0,0,1) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  text-shadow:
    0 0 0.1em rgba(255,255,255,0.05),
    0.01em 0.04em 0.03em rgba(255,255,255,0.4) !important;
  display: inline-block;                  /* 下端の欠け防止 */
  padding-bottom: .18em;                  /* 下余白わずかに */
}

/* title-34 を使っている場合は枠線/バーの飾りを無効化 */
.contractor-archive.-fancy h1.title-34{
  margin: 16px auto 8px !important;
  text-align: center !important;
  max-width: none !important;
  padding: 0 !important;
  background: none !important;
  box-shadow: none !important;
  border: 0 !important;
}
.contractor-archive.-fancy h1.title-34::before,
.contractor-archive.-fancy h1.title-34::after,
.contractor-archive.-fancy h1.title-34 > span::before,
.contractor-archive.-fancy h1.title-34 > span::after{
  display:none !important;
}

/* リード文は中央寄せのまま少し下げる（既存と衝突しないよう最後で確定） */
.contractor-archive.-fancy .cl-hero__inner{ text-align:center; }
.contractor-archive.-fancy .cl-lead{
  max-width: 720px;
  margin: 24px auto 0 !important;
  line-height: 1.9;
}
/* ===== SP: 資料請求／この工務店に相談する をバランス良く ===== */
@media (max-width: 430px){
  /* 2列グリッドで同幅・同高さに */
  .contractor-archive.-fancy .cl-card__cta{
    display: grid !important;
    grid-template-columns: 1fr 1fr;  /* 50% / 50% */
    gap: 10px;                       /* 均一スペース */
    align-items: stretch;            /* 高さを揃える */
    justify-items: stretch;
    margin-left: 0;                  /* 左端の芯をキープ */
  }
  .contractor-archive.-fancy .cl-card__cta .btn{
    min-width: 0 !important;         /* 固定幅を解除してグリッドに合わせる */
    width: 100% !important;
    height: 46px;                    /* タップ目安(44px+) */
    padding: 0 12px;
    font-size: 13.2px;               /* 長い文言が収まりやすいサイズに微調整 */
    line-height: 1;                  /* 縦センターをくっきり */
    white-space: nowrap;             /* 2行化を防止 */
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35em;
  }
  /* 矢印の光学中心を文字に合わせる */
  .contractor-archive.-fancy .cl-card__cta .btn .i-chevron{
    font-size: .95em;
    transform: translateY(0);
    line-height: 1;
  }
  /* ほんのり視覚重量を揃える：ゴーストにも境界強め */
  .contractor-archive.-fancy .cl-card__cta .btn.-ghost{
    border-color: #dac8bb;
  }
}

/* “リード文もう少し下”（前回指定を少しだけ延長） */
.contractor-archive.-fancy .cl-lead{
  margin-top: 28px !important;  /* 24→28px */
}
/* === SPだけ右寄りに見えるのをリセット（最終行に追記）=== */
@media (max-width: 430px){

  /* カード自体を正中に固定 */
  .contractor-archive.-fancy .cl-card{
    margin-left: auto;
    margin-right: auto;
  }

  /* 本文の左右パディングを対称に（左寄り感を解消） */
  .contractor-archive.-fancy .cl-card__body{
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  /* CTA行：過去の“微左寄せ”を無効化＋中央基準 */
  .contractor-archive.-fancy .cl-card__cta{
    margin-left: 0 !important;
    justify-content: stretch !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }

  /* ボタン幅はグリッドに合わせて完全100%／左右マージンはゼロに */
  .contractor-archive.-fancy .cl-card__cta .btn{
    min-width: 0 !important;
    width: 100% !important;
    height: 46px;
    padding: 0 12px;
    font-size: 13.2px;
    line-height: 1;
  }
  .contractor-archive.-fancy .cl-card__cta .btn.-solid,
  .contractor-archive.-fancy .cl-card__cta .btn.-ghost{
    margin-left: 0 !important;  /* ← 以前の -6px / -4px を打消し */
    margin-right: 0 !important;
  }

  /* 矢印の光学中心もフラットに */
  .contractor-archive.-fancy .cl-card__cta .btn .i-chevron{
    font-size: .95em;
    transform: translateY(0);
  }
}
/* === SP：カード＆CTA 2ボタンを中央・長め・余白ありに（最小差分） === */
@media (max-width: 480px){

  /* カード自体を中央に */
  .contractor-archive.-fancy .cl-card{
    margin-left:auto !important;
    margin-right:auto !important;
  }

  /* CTA行：中央寄せ＋ボタン間に余白 */
  .contractor-archive.-fancy .cl-card__cta{
    display:flex !important;
    justify-content:center !important;
    align-items:center !important;
    gap:16px !important;           /* ← ボタン間の隙間 */
    margin-left:0 !important;      /* 過去の微調整を無効化 */
  }

  /* ボタンを“少し長め”に（左右2列でも中央に収まる幅） */
  .contractor-archive.-fancy .cl-card__cta .btn{
    flex: 0 1 clamp(160px, 46%, 220px) !important;  /* 長め＆はみ出さない */
    min-width: unset !important;
    width:auto !important;
    height:46px;
    padding:0 16px;
    margin:0 !important;           /* 片側だけ寄るのを防止 */
    text-align:center;
  }

  /* 矢印の光学中心をフラットに */
  .contractor-archive.-fancy .cl-card__cta .btn .i-chevron{
    font-size:.95em;
    transform:translateY(0);
  }
}
/* === contractor single 微調整（既存トーンを踏襲） === */
.contractor-single .ct-title{ letter-spacing:.02em; }
.contractor-single .ct-box + .ct-box{ margin-top:16px; }
.contractor-single .ct-ctaRow .btn{ min-width:12.5em; }
.contractor-single .ct-ctaRow .btn .i-chevron{ font-size:.95em; transform:translateY(0); }
/* ===== Single Contractor – おしゃれトーン ===== */
:root{
  --ink:#2f2b28; --muted:#6e6a66; --brand:#8c5a2f; --line:#e9e1da;
  --chip:#fff4ec; --shadow:0 10px 30px rgba(0,0,0,.08);
}

/* ヒーロー（フル幅画像＋ベージュの薄ストライプ） */
.contractor-single.-fancy .ct-hero{
  width:100vw; margin-left:calc(50% - 50vw);
  background:
    repeating-linear-gradient(-45deg,#fff 0 14px,#fff7ef 14px 28px);
  position:relative;
  min-height: clamp(260px, 36vw, 460px);
  display:grid; place-items:end center;
  overflow:hidden;
}
.contractor-single.-fancy .ct-hero::before{
  content:""; position:absolute; inset:0;
  background-image: var(--hero);
  background-size:cover; background-position:center;
  opacity:.22; mix-blend-mode:multiply;
}
.contractor-single.-fancy .ct-hero__shade{
  position:absolute; inset:0; background:
    linear-gradient(180deg,rgba(0,0,0,0) 20%, rgba(0,0,0,.18) 100%);
}
.contractor-single.-fancy .ct-hero__inner{
  position:relative; z-index:1;
  width:min(1100px, 92vw); margin: 0 auto;
  padding: clamp(36px, 6vw, 64px) 0;
  text-align:center; color:#2f2b28;
}
.contractor-single.-fancy .ct-hero__ttl{
  font: 800 clamp(26px,4.2vw,40px)/1.12 'Noto Sans JP', system-ui;
  margin:0 0 .35em;
  color: var(--ink);
}
.contractor-single.-fancy .ct-hero__meta{ margin:0 0 .6em; color:var(--muted); }
.contractor-single.-fancy .ct-hero__chips{ display:flex; gap:8px; justify-content:center; flex-wrap:wrap; }
.contractor-single.-fancy .chip{ background:var(--chip); color:var(--brand); border:1px solid #f0d8c8; padding:6px 10px; border-radius:999px; font-size:12px; }
.contractor-single.-fancy .chip.-line{ background:#fff; }

/* CTA（ヒーロー内・中央） */
.contractor-single.-fancy .ct-hero__cta{
  display:flex; gap:10px; justify-content:center; flex-wrap:wrap;
  margin-top: clamp(10px, 1.8vw, 16px);
}
.contractor-single.-fancy .btn{
  display:inline-flex; align-items:center; gap:.35em;
  border-radius:999px; padding:12px 18px; font-weight:700; text-decoration:none;
  border:1px solid transparent; box-shadow: none; white-space:nowrap;
}
.contractor-single.-fancy .btn .i-chevron{ transform:translateY(1px); }
.contractor-single.-fancy .btn.-solid{ background:var(--brand); color:#fff; border-color:var(--brand); }
.contractor-single.-fancy .btn.-ghost{ background:#fff; color:var(--brand); border:1px solid #e2d7cf; }
.contractor-single.-fancy .btn.-link{ background:transparent; color:var(--brand); border:1px solid transparent; text-decoration:underline; }
.contractor-single.-fancy .btn:hover{ opacity:.95; }

/* 本文グリッド */
.contractor-single.-fancy .ct-wrap{ max-width:1200px; margin:0 auto; padding: clamp(28px,4vw,48px)  min(5vw,24px); }
.contractor-single.-fancy .ct-grid{ display:grid; grid-template-columns: minmax(0,1fr) 360px; gap:28px; align-items:start; }
@media (max-width: 980px){ .contractor-single.-fancy .ct-grid{ grid-template-columns: 1fr; } }

/* セクション */
.contractor-single.-fancy .ct-secTtl{
  font: 800 clamp(18px,3.2vw,22px)/1.2 'Noto Sans JP', system-ui;
  margin: 10px 0 10px; color: var(--ink); position:relative;
}
.contractor-single.-fancy .ct-secTtl::after{
  content:""; position:absolute; left:0; bottom:-6px; width:72px; height:10px;
  transform:skew(-45deg); background:
    repeating-linear-gradient(90deg,transparent 0 6px,#dcddb3 6px 13px);
  z-index:-1;
}
.contractor-single.-fancy .ct-content, 
.contractor-single.-fancy .ct-message{ line-height:1.9; color:#333; }

/* サイドカード */
.contractor-single.-fancy .ct-aside{ position:sticky; top:88px; }
@media (max-width:980px){ .contractor-single.-fancy .ct-aside{ position:static; } }
.contractor-single.-fancy .ct-box{
  background:#fff; border:1px solid var(--line); border-radius:16px; padding:18px; box-shadow:var(--shadow);
}
.contractor-single.-fancy .ct-box__title{ margin:0 0 10px; font-weight:700; }
.contractor-single.-fancy .ct-dl{ display:grid; grid-template-columns:120px 1fr; gap:8px 12px; margin:0; }
.contractor-single.-fancy .ct-dl dt{ color:var(--muted); }
.contractor-single.-fancy .ct-dl dd{ margin:0; }
.contractor-single.-fancy .ct-ctaRow{ display:flex; gap:10px; flex-wrap:wrap; margin-top:14px; }

/* 横スクロール写真（CSS Scroll Snap） */
.contractor-single.-fancy .ct-gallery{ position:relative; }
.contractor-single.-fancy .snap-track{
  display:flex; gap:14px; overflow:auto; scroll-snap-type: x mandatory;
  padding: 8px 44px; margin: 0 -44px;  /* 左右に矢印の余白 */
}
.contractor-single.-fancy .snap-item{
  flex: 0 0 clamp(260px, 60vw, 520px);
  border-radius:14px; overflow:hidden; scroll-snap-align:center;
  background:#f6f6f6; box-shadow:var(--shadow);
}
.contractor-single.-fancy .snap-item img{ width:100%; height:100%; object-fit:cover; display:block; }
.contractor-single.-fancy .snap-nav{
  position:absolute; top:50%; transform:translateY(-50%); z-index:2;
  width:36px; height:36px; border-radius:50%; border:1px solid #e7d8cc; background:#fff; box-shadow:var(--shadow);
  display:grid; place-items:center; font-size:18px; color:#6b4b35;
}
.contractor-single.-fancy .snap-nav.prev{ left:0; }
.contractor-single.-fancy .snap-nav.next{ right:0; }
/* セクション間 */
.single-contractor.-fancy .ct-sec{ margin-top: 18px; }

/* ギャラリー（横スクロール＋スナップ） */
.single-contractor.-fancy .ct-gallery{
  overflow: hidden;
  border-radius: 14px;
  border: 1px solid var(--line);
  background: #fff;
  box-shadow: var(--card-shadow);
}
.single-contractor.-fancy .ct-gallery__track{
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(66%, 1fr); /* 2/3幅を基準に見せる */
  gap: 12px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding: 12px;
}
@media (max-width: 768px){
  .single-contractor.-fancy .ct-gallery__track{ grid-auto-columns: 86%; }
}
.single-contractor.-fancy .ct-gitem{
  scroll-snap-align: start;
  border-radius: 12px;
  overflow: hidden;
  background: #f4f4f4;
}
.single-contractor.-fancy .ct-gitem img{
  width: 100%; height: 100%; object-fit: cover; display: block;
}

/* CTAボタン・戻る */
.single-contractor.-fancy .ct-ctaRow{
  display:flex; flex-wrap:wrap; gap:12px; margin-top:16px;
}
.single-contractor.-fancy .btn{
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:999px; font-weight:700; text-decoration:none;
  padding:11px 18px; gap:.35em; white-space:nowrap;
}
.single-contractor.-fancy .btn.-solid{ background:var(--brand); color:#fff; border:1px solid var(--brand); }
.single-contractor.-fancy .btn.-solid:hover{ opacity:.92; }
.single-contractor.-fancy .btn.-ghost{ background:#fff; color:var(--brand); border:1px solid #e2d7cf; }
.single-contractor.-fancy .btn.-ghost:hover{ border-color:var(--brand); }
.single-contractor.-fancy .i-chevron{ font-size:1.05em; transform:translateY(0); }
.single-contractor.-fancy .ct-linkBack{ margin-left:auto; align-self:center; color:var(--brand); text-decoration:underline; }
/* フル幅ギャラリー用（デザイン据え置き） */
.contractor-single.-fancy .ct-gallery.ct-gallery--full{
  width:100vw; margin-left:calc(50% - 50vw);
}
/* === Archive contractor: CTAの下に余白（PC/SP共通） === */
.contractor-archive.-fancy .cl-card__body{
  /* 既存: padding:16px 18px 18px; の下だけ+10px */
  padding:16px 18px 28px !important;
}
.contractor-archive.-fancy .cl-card__cta{
  margin-top:14px; /* 既存維持 */
  row-gap:12px;
}
/* SPでも念のためゆとりを確保 */
@media (max-width: 768px){
  .contractor-archive.-fancy .cl-card__body{ padding:16px 18px 32px !important; }
}
/* === Archive: カードCTAの上下余白をしっかり確保 === */
.contractor-archive.-fancy .cl-card__body{
  padding-bottom: 14px; /* 本文～CTAの間をほんのり空ける */
}
.contractor-archive.-fancy .cl-card__cta{
  padding: 0 18px 18px;   /* ← 下側の余白をカード内で確保 */
  margin-top: 10px;
  gap: 12px;
}
@media (max-width: 768px){
  .contractor-archive.-fancy .cl-card__cta{
    padding: 0 16px 16px; /* SPも下側にゆとり */
    gap: 10px;
  }
}
/* === Single: ヒーロー内CTAを消して「一覧に戻る」をボタン化 === */
.contractor-single.-fancy .ct-hero__cta{ display:none !important; }

.contractor-single.-fancy .ct-hero__back{
  display:flex; justify-content:center; margin-top: 14px;
}
.contractor-single.-fancy .btn.-back{
  display:inline-flex; align-items:center; justify-content:center;
  height: 42px; padding: 0 18px;
  border-radius: 999px; border:1px solid #e2d7cf;
  color: var(--brand); background:#fff;
  text-decoration:none; font-weight:700;
}
.contractor-single.-fancy .btn.-back .i-chevron{ margin-left:.35em; }
/* === Single: セクション見出しを少し大きく＆余白を広げる === */
.contractor-single.-fancy .ct-secTtl{
  font: 800 clamp(20px,3.6vw,24px)/1.22 
  margin: 18px 0 14px;  /* 見出し下のゆとりを増量 */
}
.contractor-single.-fancy .ct-content,
.contractor-single.-fancy .ct-message{
  line-height: 1.9;
  margin-bottom: 18px;  /* 本文ブロックの尻にゆとり */
}
/* 横スクロール項目にキャプションを付加 */
.contractor-single.-fancy .house-caption{
  font-size: 14px; color:#2f2b28; background:#fff; 
}

/* ダイアログ系（極めて軽量なライトボックス） */
#houseLightbox::backdrop{ background: rgba(0,0,0,.45); }
#houseLightbox .hlb-inner{
  width: min(1000px, 92vw); max-height: 86vh;
  background:#fff; border-radius:14px; padding:16px 16px 18px; overflow:auto;
}
#houseLightbox .hlb-title{
  margin: 0 0 8px; font-weight:800; color:#2f2b28;
}
#houseLightbox .hlb-track{
  display:flex; gap:10px; overflow:auto; scroll-snap-type: x mandatory;
}
#houseLightbox .hlb-track img{
  flex:0 0 auto; width:auto; height:64vh; object-fit:contain; scroll-snap-align:center;
}
#houseLightbox .hlb-close{
  position:sticky; top:0; float:right;
  border:1px solid #ddd; background:#fff; width:32px; height:32px; border-radius:50%;
}
/* === Single: 会社情報ボックス内の資料請求ボタンの文字を確実に中央 === */
.contractor-single.-fancy .ct-box .btn{
  display:inline-flex; align-items:center; justify-content:center;
  height: 40px; line-height: 40px; /* どちらでも中央に来るよう二重保険 */
}
/* ヒーロータイトルをさらに上寄せ */
.contractor-single.-fancy .ct-hero__inner{
  padding-top: clamp(10px, 2.8vw, 24px) !important;
  padding-bottom: clamp(28px, 5.6vw, 58px) !important;
}
/* 本文段落の下マージンを拡大 */
.contractor-single.-fancy .ct-content p,
.contractor-single.-fancy .ct-message p{
  margin: 0 0 1.6em;
}

/* 見出し（会社概要・特徴タグ など）を少し強め＆余白追加（ご希望に近いトーン） */
.contractor-single.-fancy .ct-secTtl{
  font-size: clamp(19px, 3.4vw, 24px);
  margin: 14px 0 14px;
}
.contractor-single.-fancy .ct-section{ margin-bottom: 36px; }
/* 段落ゆとり（依頼どおり少し広め） */
.contractor-single.-fancy .ct-content p,
.contractor-single.-fancy .ct-message p { margin: 0 0 1.6em; }

/* ヒーロータイトル少し上寄せ */
.contractor-single.-fancy .ct-hero__inner { padding-top: clamp(16px,3.2vw,36px); }

/* 親カードのキャプション */
.cpg-caption{
  padding:10px 12px; font-weight:700; font-size:14px; line-height:1.5;
  background:#fff; color:#2f2b28;
}

/* ライトボックス */
.llh-lb{ width:min(1100px,96vw); border:0; border-radius:12px; padding:0; }
.llh-lb__head{ display:flex; justify-content:space-between; align-items:center; padding:12px 16px; }
.llh-lb__body{ position:relative; padding:0 48px 12px; }
.llh-lb__body img{ width:100%; height:auto; display:block; }
.llh-lb__nav{ position:absolute; top:50%; transform:translateY(-50%); width:40px; height:40px; border-radius:999px; border:1px solid #e7d8cc; background:#fff; }
.llh-lb__nav.prev{ left:8px; } .llh-lb__nav.next{ right:8px; }
.llh-lb__thumbs{ display:flex; gap:8px; padding:8px 16px 16px; overflow:auto; }
.llh-lb__thumb{ border:0; padding:0; background:transparent; opacity:.7; }
.llh-lb__thumb.is-active{ opacity:1; outline:2px solid #e7d8cc; }
.llh-lb__thumb img{ width:80px; height:60px; object-fit:cover; display:block; }
/* ===== Contractor 共通 ===== */
:root{
  --ctr-brand:#90673d;           /* ブランド系ブラウン（LLH） */
  --ctr-text:#3a2a1a;
  --ctr-muted:#8c7f73;
  --ctr-bg:#faf7f3;
  --ctr-border:#e9e5e1;
}

.ctr-btn{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:44px; padding:0 18px; border-radius:9999px;
  border:1px solid var(--ctr-border); text-decoration:none;
  font-weight:600; line-height:1; transition:opacity .2s ease, transform .05s ease;
  color:var(--ctr-text); background:#fff; cursor:pointer;
}
.ctr-btn:hover{ opacity:.9; }
.ctr-btn:active{ transform:translateY(1px); }
.ctr-btn--primary{ background:var(--ctr-brand); color:#fff; border-color:var(--ctr-brand); }
.ctr-btn--outline{ background:#fff; color:var(--ctr-brand); border-color:var(--ctr-brand); }
.ctr-btn--subtle{ background:#fff; color:var(--ctr-text); border-color:var(--ctr-border); }
.ctr-btn--block{ width:100%; }

.ctr-link{ color:var(--ctr-brand); text-decoration:underline; text-underline-offset:2px; }

/* ===== Single ===== */
.ctr-single{ color:var(--ctr-text); font-feature-settings:"palt"; }

.ctr-hero{ background:var(--ctr-bg); padding:56px 0 28px; }
.ctr-hero__inner{ max-width:1120px; margin:0 auto; padding:0 16px; display:grid; gap:24px; grid-template-columns: 1.1fr 1fr; }
@media (max-width: 900px){
  .ctr-hero__inner{ grid-template-columns:1fr; }
}
.ctr-hero__image img{ width:100%; height:auto; border-radius:20px; display:block; }
.ctr-hero__image--placeholder{ width:100%; aspect-ratio:16/9; background:#eee; border-radius:20px; }

.ctr-hero__title{ margin:0 0 12px; font-size:clamp(22px,3.2vw,34px); line-height:1.3; font-weight:700; }
.ctr-meta{ list-style:none; margin:0 0 16px; padding:0; display:grid; gap:4px; }
.ctr-meta__label{ display:inline-block; min-width:72px; font-size:13px; color:var(--ctr-muted); margin-right:8px; }
.ctr-meta__vals{ font-weight:600; }

.ctr-cta{ display:flex; flex-wrap:wrap; gap:10px; margin-top:14px; }

.ctr-body{ padding:52px 0; }
.ctr-body__inner{ max-width:1120px; margin:0 auto; padding:0 16px; display:grid; gap:28px; grid-template-columns: minmax(0,1fr) 320px; align-items:start; }
@media (max-width: 1024px){
  .ctr-body__inner{ grid-template-columns:1fr; }
}

.ctr-main .ctr-content{ line-height:1.9; }
.ctr-main .ctr-content p{ margin:0 0 1.2em; }

.ctr-side{ position:sticky; top:88px; }
.ctr-card{ background:#fff; border:1px solid var(--ctr-border); border-radius:16px; box-shadow:0 1px 2px rgba(0,0,0,.03); padding:18px; }
.ctr-card__title{ font-size:18px; font-weight:700; margin:0 0 10px; }

.ctr-dl{ margin:0; }
.ctr-dl__row{ display:grid; grid-template-columns:108px 1fr; gap:8px 12px; padding:10px 0; border-bottom:1px dashed var(--ctr-border); }
.ctr-dl__row:last-child{ border-bottom:none; }
.ctr-dl dt{ color:var(--ctr-muted); }
.ctr-side__cta{ margin-top:14px; display:grid; gap:10px; }

/* ===== Archive ===== */
.ctr-archive__head{ padding:64px 0 24px; background:var(--ctr-bg); }
.ctr-archive__inner{ max-width:1120px; margin:0 auto; padding:0 16px; }
.ctr-archive__title{ margin:0 0 12px; font-size:clamp(22px,3vw,30px); font-weight:700; }

.ctr-filter__row{ display:flex; flex-wrap:wrap; gap:10px 14px; align-items:center; }
.ctr-filter__label{ font-size:13px; color:var(--ctr-muted); }
.ctr-select{ min-width:180px; height:40px; border-radius:10px; border:1px solid var(--ctr-border); padding:0 10px; background:#fff; }

.ctr-archive__list{ padding:40px 0 64px; }
.ctr-grid{ display:grid; grid-template-columns: repeat(12, 1fr); gap:20px; align-items:start; }
@media (max-width: 1100px){ .ctr-grid{ grid-template-columns: repeat(8, 1fr); } }
@media (max-width: 720px){ .ctr-grid{ grid-template-columns: repeat(4, 1fr); } }

.ctr-card--contractor{ grid-column: span 4; display:flex; flex-direction:column; border:1px solid var(--ctr-border); border-radius:16px; background:#fff; }
@media (max-width: 720px){ .ctr-card--contractor{ grid-column: span 4; } }

.ctr-card__thumb{ display:block; border-bottom:1px solid var(--ctr-border); }
.ctr-card__thumb img{ width:100%; height:auto; border-radius:16px 16px 0 0; display:block; }
.ctr-card__thumb--ph{ width:100%; aspect-ratio:16/10; background:#eee; border-radius:16px 16px 0 0; }

.ctr-card__body{ padding:14px; display:flex; flex-direction:column; gap:10px; }
.ctr-card__title{ margin:0; font-size:18px; line-height:1.45; font-weight:700; }
.ctr-badges{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:6px; }
.ctr-badge{ font-size:12px; color:#fff; background:var(--ctr-brand); padding:4px 8px; border-radius:9999px; }
.ctr-badge--muted{ background:#c9bfb6; }

.ctr-card__tel{ margin:2px 0 0; font-size:14px; }
.ctr-card__foot{ margin-top:auto; padding-top:6px; display:flex; gap:10px; }

.ctr-pager{ margin:20px 0 0; display:flex; justify-content:center; gap:6px; }
.ctr-pager .page-numbers{ display:inline-flex; align-items:center; justify-content:center; min-width:36px; height:36px; padding:0 8px; border-radius:10px; border:1px solid var(--ctr-border); background:#fff; }
.ctr-pager .current{ background:var(--ctr-brand); border-color:var(--ctr-brand); color:#fff; }

.ctr-empty{ text-align:center; padding:40px 0; color:var(--ctr-muted); }

/* —— 好み対応：セクション「上側に多めの余白」 —— */
.ctr-archive__head{ padding-top:80px; } /* 上だけ多め、下は抑えめに */
/* ===== Contractor 共通 ===== */
:root{
  --ctr-brand:#90673d;
  --ctr-text:#3a2a1a;
  --ctr-muted:#8c7f73;
  --ctr-bg:#faf7f3;
  --ctr-border:#e9e5e1;
}

.ctr-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border-radius:9999px;border:1px solid var(--ctr-border);text-decoration:none;font-weight:600;line-height:1;transition:opacity .2s ease,transform .05s ease;color:var(--ctr-text);background:#fff;cursor:pointer}
.ctr-btn:hover{opacity:.9}.ctr-btn:active{transform:translateY(1px)}
.ctr-btn--primary{background:var(--ctr-brand);color:#fff;border-color:var(--ctr-brand)}
.ctr-btn--outline{background:#fff;color:var(--ctr-brand);border-color:var(--ctr-brand)}
.ctr-btn--subtle{background:#fff;color:var(--ctr-text);border-color:var(--ctr-border)}
.ctr-btn--block{width:100%}
.ctr-link{color:var(--ctr-brand);text-decoration:underline;text-underline-offset:2px}

/* ===== Single ===== */
.ctr-single{color:var(--ctr-text);font-feature-settings:"palt"}
.ctr-hero{background:var(--ctr-bg);padding:56px 0 28px}
.ctr-hero__inner{max-width:1120px;margin:0 auto;padding:0 16px;display:grid;gap:24px;grid-template-columns:1.1fr 1fr}
@media(max-width:900px){.ctr-hero__inner{grid-template-columns:1fr}}
.ctr-hero__image img{width:100%;height:auto;border-radius:20px;display:block}
.ctr-hero__image--placeholder{width:100%;aspect-ratio:16/9;background:#eee;border-radius:20px}
.ctr-hero__title{margin:0 0 12px;font-size:clamp(22px,3.2vw,34px);line-height:1.3;font-weight:700}
.ctr-meta{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:4px}
.ctr-meta__label{display:inline-block;min-width:72px;font-size:13px;color:var(--ctr-muted);margin-right:8px}
.ctr-meta__vals{font-weight:600}
.ctr-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.ctr-body{padding:52px 0}
.ctr-body__inner{max-width:1120px;margin:0 auto;padding:0 16px;display:grid;gap:28px;grid-template-columns:minmax(0,1fr) 320px;align-items:start}
@media(max-width:1024px){.ctr-body__inner{grid-template-columns:1fr}}
.ctr-main .ctr-content{line-height:1.9}
.ctr-main .ctr-content p{margin:0 0 1.2em}
.ctr-side{position:sticky;top:88px}
.ctr-card{background:#fff;border:1px solid var(--ctr-border);border-radius:16px;box-shadow:0 1px 2px rgba(0,0,0,.03);padding:18px}
.ctr-card__title{font-size:18px;font-weight:700;margin:0 0 10px}
.ctr-dl{margin:0}
.ctr-dl__row{display:grid;grid-template-columns:108px 1fr;gap:8px 12px;padding:10px 0;border-bottom:1px dashed var(--ctr-border)}
.ctr-dl__row:last-child{border-bottom:none}
.ctr-dl dt{color:var(--ctr-muted)}
.ctr-side__cta{margin-top:14px;display:grid;gap:10px}

/* ===== Archive ===== */
.ctr-archive__head{padding:64px 0 24px;background:var(--ctr-bg)}
.ctr-archive__inner{max-width:1120px;margin:0 auto;padding:0 16px}
.ctr-archive__title{margin:0 0 12px;font-size:clamp(22px,3vw,30px);font-weight:700}
.ctr-filter__row{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center}
.ctr-filter__label{font-size:13px;color:var(--ctr-muted)}
.ctr-select{min-width:180px;height:40px;border-radius:10px;border:1px solid var(--ctr-border);padding:0 10px;background:#fff}
.ctr-archive__list{padding:40px 0 64px}
.ctr-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:20px;align-items:start}
@media(max-width:1100px){.ctr-grid{grid-template-columns:repeat(8,1fr)}}
@media(max-width:720px){.ctr-grid{grid-template-columns:repeat(4,1fr)}}
.ctr-card--contractor{grid-column:span 4;display:flex;flex-direction:column;border:1px solid var(--ctr-border);border-radius:16px;background:#fff}
@media(max-width:720px){.ctr-card--contractor{grid-column:span 4}}
.ctr-card__thumb{display:block;border-bottom:1px solid var(--ctr-border)}
.ctr-card__thumb img{width:100%;height:auto;border-radius:16px 16px 0 0;display:block}
.ctr-card__thumb--ph{width:100%;aspect-ratio:16/10;background:#eee;border-radius:16px 16px 0 0}
.ctr-card__body{padding:14px;display:flex;flex-direction:column;gap:10px}
.ctr-card__title{margin:0;font-size:18px;line-height:1.45;font-weight:700}
.ctr-badges{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.ctr-badge{font-size:12px;color:#fff;background:var(--ctr-brand);padding:4px 8px;border-radius:9999px}
.ctr-badge--muted{background:#c9bfb6}
.ctr-card__tel{margin:2px 0 0;font-size:14px}
.ctr-card__foot{margin-top:auto;padding-top:6px;display:flex;gap:10px}
.ctr-pager{margin:20px 0 0;display:flex;justify-content:center;gap:6px}
.ctr-pager .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 8px;border-radius:10px;border:1px solid var(--ctr-border);background:#fff}
.ctr-pager .current{background:var(--ctr-brand);border-color:var(--ctr-brand);color:#fff}
.ctr-empty{text-align:center;padding:40px 0;color:var(--ctr-muted)}

/* —— 好み対応：セクション「上側に多めの余白」 —— */
.ctr-archive__head{padding-top:80px} /* 上だけ多め、下は控えめ */
/* 追従：中央寄せ用 */
.ct-aside .ct-box{
  position: sticky;
  top: var(--aside-stick-top, 88px); /* JSで上書き */
}

/* レイアウトの基準幅（必要に応じ調整） */
:root{
  --aside-width: 360px;    /* 追従カードの実幅目安 */
  --gallery-pad:  360px;    /* ギャラリーの右側余白（重なり回避用 / 後述） */
}

@media (max-width: 1023px){
  .ct-aside .ct-box{ top: 72px; }   /* タブレット以下は素直に上固定 */
}
/* ギャラリーと追従カードの重なり回避（PC時だけ右に余白） */
@media (min-width: 1024px){
  .ct-main .ct-section.-gallery{
    padding-right: var(--gallery-pad, 360px);
    box-sizing: border-box;
  }
  /* もしギャラリー内に左右ナビを絶対配置している場合のガード */
  .ct-gallery .snap-nav{
    z-index: 2;
  }
}

/* スタッキング文脈の微調整（念のため） */
.ct-aside{ position: relative; z-index: 1; }
.ct-main  { position: relative; z-index: 0; }
/* ===== アーカイブ：タイトルとロゴの安全レイアウト ===== */
.contractor-archive .cl-card__head{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:6px;
}

.contractor-archive .cl-card__title{
  flex:1 1 auto;
  min-width:0;                     /* ← これがないとロゴに押し出される */
  margin:0;
  line-height:1.35;
  word-break:break-word;           /* 長い社名でも折り返す */
}

.contractor-archive .cl-card__logo{
  flex:0 0 auto;
  width:100px;                     /* PC 基準サイズ */
  max-width:32%;
  aspect-ratio: 3 / 2;
  border:1px solid #e9e5e1;
  border-radius:8px;
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:6px;
  overflow:hidden;
}

/* テーマの過去スタイルで absolute 指定されている場合の保険 */
.contractor-archive .cl-card__logo{ position:static !important; }

/* ロゴ画像は必ず内側に収める */
.contractor-archive .cl-card__logo img{
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  display:block;
}

/* SP は少し小さく＆必要なら折り返し */
@media (max-width: 480px){
  .contractor-archive .cl-card__logo{ width:78px; padding:5px; }
  .contractor-archive .cl-card__head{ flex-wrap:wrap; row-gap:6px; }
  /* 極端に狭い端末でロゴを下段に回す */
  .contractor-archive .cl-card__logo{ order:2; }
}
/* ===== 登録工務店アーカイブ：ロゴは右上固定／タイトルは2行で回避 ===== */

/* ロゴの共通サイズ（必要なら数値だけ変えてOK） */
:root{
  --cl-logo-w-pc: 112px;      /* PCのロゴ枠幅 */
  --cl-logo-w-sp: 84px;       /* SPのロゴ枠幅 */
  --cl-logo-pad: 14px;        /* タイトルとロゴの間隔 */
}

/* カード本文を相対基準に（ロゴを絶対配置するため） */
.contractor-archive .cl-card__body{ position: relative; }

/* ロゴ：前の位置のまま右上固定（absolute） */
.contractor-archive .cl-card__logo{
  position:absolute !important;
  top:10px; right:12px;
  width:var(--cl-logo-w-pc);
  aspect-ratio:3/2;
  border:1px solid #e9e5e1;
  border-radius:8px;
  background:#fff;
  display:flex; align-items:center; justify-content:center;
  padding:6px; overflow:hidden; z-index:2;
}
.contractor-archive .cl-card__logo img{
  max-width:100%; max-height:100%; object-fit:contain; display:block;
}

/* ★ ロゴがあるカードだけ、タイトルの右側に“空き”を作る＋2行で折り返し */
.contractor-archive .cl-card:has(.cl-card__logo) .cl-card__title{
  /* ロゴ分だけ右に余白を確保して、下に回り込まないようにする */
  padding-right: calc(var(--cl-logo-w-pc) + var(--cl-logo-pad));
  /* 2行で折り返し（3行にしたい場合は数字を変える） */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;   /* ← 行数 */
  overflow: hidden;
  line-height: 1.35;
  word-break: break-word;  /* 長い社名対策 */
  margin: 0 0 6px;
}

/* スマホ調整（ロゴを少し小さく／タイトルの余白も自動で縮む） */
@media (max-width: 480px){
  .contractor-archive .cl-card__logo{
    width:var(--cl-logo-w-sp);
    top:8px; right:10px; padding:5px;
  }
  .contractor-archive .cl-card:has(.cl-card__logo) .cl-card__title{
    padding-right: calc(var(--cl-logo-w-sp) + var(--cl-logo-pad));
    -webkit-line-clamp: 2; /* 必要なら3にも変更可 */
  }
}

/* 念のため：過去スタイルでタイトルがはみ出すのを防ぐ */
.contractor-archive .cl-card__title{ min-width:0; }
/* === 登録工務店アーカイブ：ロゴを小さく右上へ／被り回避（PC/SP） === */

:root{
  --cl-logo-w-pc: 92px;   /* PCのロゴ枠幅（前より少し小さめ） */
  --cl-logo-w-sp: 70px;   /* SPのロゴ枠幅（住所と被らないサイズ） */
  --cl-logo-pad: 12px;    /* ロゴとテキストの間隔 */
}

/* ロゴは右上に絶対配置（やや小さめ） */
.contractor-archive .cl-card__body{ position: relative; }
.contractor-archive .cl-card__logo{
  position:absolute !important;
  top:6px; right:8px;                      /* 右上へ寄せる */
  width:var(--cl-logo-w-pc);
  aspect-ratio:3/2;
  padding:5px;
  border:1px solid #e9e5e1; border-radius:8px;
  background:#fff;
  display:flex; align-items:center; justify-content:center;
  overflow:hidden; z-index:2;
}
.contractor-archive .cl-card__logo img{
  max-width:100%; max-height:100%; object-fit:contain; display:block;
}

/* ★ ロゴがあるカードだけ、右側に“逃げ”を作る（タイトル／住所／タグ） */
.contractor-archive .cl-card:has(.cl-card__logo) .cl-card__title,
.contractor-archive .cl-card:has(.cl-card__logo) .cl-card__meta,
.contractor-archive .cl-card:has(.cl-card__logo) .cl-card__chips{
  padding-right: calc(var(--cl-logo-w-pc) + var(--cl-logo-pad));
}

/* タイトルは2行までで折り返し（社名が長くてもロゴ下に潜らせない） */
.contractor-archive .cl-card:has(.cl-card__logo) .cl-card__title{
  display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2;
  overflow:hidden; line-height:1.35; word-break:break-word;
}

/* スマホ：さらに小さく＆逃げ幅も調整（住所と被らない） */
@media (max-width: 480px){
  .contractor-archive .cl-card__logo{
    width:var(--cl-logo-w-sp);
    top:6px; right:6px; padding:4px;
  }
  .contractor-archive .cl-card:has(.cl-card__logo) .cl-card__title,
  .contractor-archive .cl-card:has(.cl-card__logo) .cl-card__meta,
  .contractor-archive .cl-card:has(.cl-card__logo) .cl-card__chips{
    padding-right: calc(var(--cl-logo-w-sp) + var(--cl-logo-pad));
  }
  .contractor-archive .cl-card:has(.cl-card__logo) .cl-card__title{
    -webkit-line-clamp:2; /* 必要なら3に変更可 */
  }
}
/* ===== Single Voice ===== */
.llv-single{
  max-width: 880px;
  margin: 80px auto 100px;
  padding: 0 20px;
  color: #3a2a1a;
  font-feature-settings: "palt";
  position: relative;
}

/* 上部に細いライン */
.llv-single::before{
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
  width: 120px;
  height: 1px;
  background: linear-gradient(90deg, transparent, #c9b59b, transparent);
}

/* ヘッダー */
.llv-single__head{
  text-align: center;
  margin: 32px 0 40px;
}

/* タイトル＋上のバッジ */
.llv-single__title{
  font-size: clamp(28px, 4.2vw, 36px);
  font-weight: 700;
  line-height: 1.25;
  margin-bottom: 12px;
  color: #3a2a1a;
}

/* ★ バッジをタイトルの「上」に独立させてセンター配置 */
.llv-single__title::before{
  content: "お客様の声";
  display: block;
  width: fit-content;
  margin: 0 auto 10px;
  padding: 3px 12px;
  font-size: 11px;
  letter-spacing: .18em;
  border-radius: 999px;
  border: 1px solid rgba(144,103,61,.35);
  color: #90673d;
}

/* リード文 */
.llv-single__lead{
  font-size: 17px;
  color: #7a6b5b;
  margin-bottom: 18px;
}

/* メタブロック */
.llv-single__meta{
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: center;
  margin-bottom: 20px;
}

/* バッジ類 */
.llv-badge{
  display: inline-flex;
  align-items: center;
  gap: .3em;
  padding: 4px 10px;
  font-size: 13px;
  border-radius: 999px;
  background: #f7f3ec;
  border: 1px solid #e0dad2;
  color: #90673d;
}

.llv-badge--rate{
  background: #fff7ea;
  border-color: #f1d6a7;
  color: #c08a3d;
  font-weight: 700;
}

/* タグ群（家族構成・年代など） */
.llv-single__tags{
  font-size: 13px;
  line-height: 1.7;
  color: #7a6b5b;
  margin-top: 6px;
  text-align: center;
}

/* メタの下に細い区切りライン */
.llv-single__head::after{
  content: "";
  display: block;
  width: 64px;
  height: 1px;
  margin: 24px auto 0;
  background: #e3ddd4;
}

/* メイン写真 */
.llv-single__hero{
  margin-top: 26px;
}

.llv-single__hero img{
  width: 100%;
  border-radius: 16px;
  box-shadow: 0 10px 26px rgba(0,0,0,.08);
}

/* ===== 本文エリア ===== */
.llv-article{
  max-width: 760px;
  margin: 40px auto 60px auto;
  line-height: 1.85;
  font-size: 15px;
}

/* H2：帯付き */
.llv-article h2{
  font-size: 21px;
  margin: 40px 0 14px;
  padding-left: 12px;
  border-left: 3px solid #90673d;
  color: #3a2a1a;
}

/* H3：タグ風バッジ見出し */
.llv-article h3{
  display: inline-flex;
  align-items: center;
  gap: .5em;
  font-size: 16px;
  margin: 26px 0 12px;
  padding: 5px 13px;
  border-radius: 999px;
  background: #f5efe6;
  color: #3a2a1a;
}

.llv-article h3::before{
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #90673d;
}

/* 段落 */
.llv-article p{
  margin: 0 0 18px;
}

/* 箇条書き */
.llv-article ul,
.llv-article ol{
  margin: 0 0 18px 0;
  padding-left: 1.4em;
  font-size: 14px;
}

.llv-article ul li,
.llv-article ol li{
  margin: 0 0 6px;
}

/* 引用（お客様コメントに使える感じ） */
.llv-article blockquote{
  margin: 24px 0;
  padding: 14px 16px;
  border-left: 3px solid #90673d;
  background: #faf6ee;
  border-radius: 10px;
  font-size: 14px;
  color: #5b4a35;
}

/* 本文中の画像 */
.llv-article img{
  max-width: 100%;
  height: auto;
  border-radius: 12px;
  box-shadow: 0 6px 18px rgba(0,0,0,.08);
  margin: 16px 0 24px;
}

/* 本文中のリンク */
.llv-article a{
  color: #90673d;
  text-decoration: underline;
  text-decoration-color: rgba(144,103,61,.3);
  text-underline-offset: 3px;
}

.llv-article a:hover{
  text-decoration-color: rgba(144,103,61,.9);
}

/* 戻るボタン */
.llv-single__nav{
  text-align: center;
  margin-bottom: 40px;
}

.llv-btn--ghost{
  display: inline-block;
  padding: 12px 26px;
  border-radius: 40px;
  border: 2px solid #90673d;
  color: #90673d;
  font-weight: 700;
  transition: .25s;
  background: #fff;
}

.llv-btn--ghost:hover{
  background: #90673d;
  color: #fff;
}

/* ===== SP最適化 ===== */
@media (max-width: 599px){
  .llv-single{
    margin: 60px auto 80px;
    padding: 0 16px;
  }

  .llv-single__head{
    margin-top: 24px;
  }

  .llv-single__lead{
    font-size: 15px;
  }

  .llv-badge{
    font-size: 12px;
  }

  .llv-single__tags{
    font-size: 12px;
  }

  .llv-article{
    font-size: 14px;
    margin-bottom: 48px;
  }

  .llv-article h2{
    margin-top: 32px;
    font-size: 19px;
  }

  .llv-article h3{
    font-size: 14px;
    padding: 4px 11px;
  }
}
/* =========================================================
   llh-voice-case 完成版CSS（llh-voice と完全統一）
========================================================= */

/* ============================
   基本レイアウト
============================ */
.llv-single{
  max-width: 880px;
  margin: 80px auto 100px;
  padding: 0 20px;
  color: #3a2a1a;
  font-feature-settings: "palt";
  position: relative;
}

/* 上の細ライン */
.llv-single::before{
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
  width: 120px;
  height: 1px;
  background: linear-gradient(90deg, transparent, #c9b59b, transparent);
}

/* ============================
   ヘッダー（llh-voice と全く同じ）
============================ */
.llvc-head{
  text-align: center;
  margin-bottom: 40px;
}

.llvc-eyebrow{
  display: inline-block;
  margin-bottom: 12px;
  padding: 4px 12px;
  font-size: 11px;
  letter-spacing: .18em;
  border-radius: 999px;
  border: 1px solid rgba(144,103,61,.35);
  color: #90673d;
}

.llvc-title{
  font-size: clamp(26px, 4vw, 34px);
  font-weight: 700;
  margin: 4px 0 12px;
  color: #3a2a1a;
}

.llvc-rating{
  display: inline-block;
  margin: 0 auto 16px;
  padding: 6px 18px;
  font-size: 14px;
  font-weight: 700;
  color: #c08a3d;
  border-radius: 999px;
  border: 1px solid #f1d6a7;
  background: #fff7ea;
}

.llvc-meta{
  margin-top: 6px;
  font-size: 13px;
  color: #7a6b5b;
}

/* ============================
   写真
============================ */
.llv-hero__ph img{
  width: 100%;
  border-radius: 12px;
  box-shadow: 0 10px 26px rgba(0,0,0,.08);
}

/* ============================
   写真下のリード
============================ */
.llvc-lead{
  text-align: center;
  margin-top: 16px;
  margin-bottom: 32px;
  font-size: 15px;
  color: #7a6b5b;
}

/* ============================
   本文
============================ */
.llv-article{
  max-width: 760px;
  margin: 0 auto;
  line-height: 1.85;
  font-size: 15px;
}

.llv-sec{
  margin: 50px 0;
}

.llv-sec__hd{
  font-size: 22px;
  margin-bottom: 14px;
  padding-left: 12px;
  border-left: 3px solid #90673d;
  color: #3a2a1a;
}

.llv-sec__bd p{
  margin: 0 0 16px;
  font-size: 15px;
  line-height: 1.9;
}

/* blockquote */
.llv-sec__bd blockquote{
  margin: 24px 0;
  padding: 14px 16px;
  border-left: 3px solid #90673d;
  background: #faf6ee;
  border-radius: 10px;
  font-size: 14px;
  color: #5b4a35;
}

/* ============================
   ギャラリー
============================ */
.llv-polaroids{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
  margin-top: 24px;
}

@media (max-width: 599px){
  .llv-polaroids{
    grid-template-columns: repeat(2, 1fr);
    gap: 18px;
  }
}

.llv-polaroid{
  background: #fff;
  border: 1px solid #dcd7d1;
  padding: 28px 14px 26px;
  border-radius: 12px;
  position: relative;
  box-shadow: 0 10px 18px -6px rgba(0,0,0,.18);
  overflow: visible;
  z-index: 1;
}

.llv-polaroid img{
  width: 100%;
  display: block;
  border-radius: 6px;
}

.llv-polaroid__cap{
  margin-top: 12px;
  text-align: center;
  font-size: 14px;
  color: #6e6357;
}

/* マステ修正版 */
.llv-masking{
  position: absolute;
  top: -12px;
  left: 50%;
  transform: translateX(-50%) rotate(-5deg);
  width: 80px;
  height: 24px;
  background: #90673d;
  color: #fff;
  font-size: 11px;
  line-height: 24px;
  text-align: center;
  border-radius: 3px;
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  font-weight: 600;
  z-index: 999;
}

@media (max-width: 599px){
  .llv-masking{
    width: 68px;
    height: 20px;
    line-height: 20px;
    top: -8px;
  }
}

/* ============================
   CTA
============================ */
.llv-bottom-cta{
  text-align: center;
  margin: 60px 0 40px;
}

.llv-btn--ghost{
  display: inline-block;
  padding: 12px 26px;
  border-radius: 40px;
  border: 2px solid #90673d;
  color: #90673d;
  font-weight: 700;
  transition: .25s;
  background: #fff;
  margin-top: 20px;
}

.llv-btn--ghost:hover{
  background: #90673d;
  color: #fff;
}

/* ============================
   SP全体最適化
============================ */
@media (max-width: 599px){
  .llv-single{
    margin: 60px auto 80px;
    padding: 0 16px;
  }
}
/* ★ お客様の声バッジと上線の間に余白 */
.llvc-head{
  text-align: center;
  margin-top: 40px;  /* ← 追加（お好みで 32〜48px の範囲で調整OK） */
  margin-bottom: 40px;
}
/* =========================================================
   LLH Event Ticker（最新1件／横並び固定デザイン）
   ★ 日付カラー強制・SP上下バランス改善版
========================================================= */

/* ▼ 全体ラッパ */
.llh-single-ticker {
  width: 100%;
  margin: 0 auto;
}

/* ▼ 一行レイアウト（PC） */
.llh-single-ticker__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 120px;
  gap: 40px;
  white-space: nowrap;
  box-sizing: border-box;
}

/* ▼ 左側（日時＋タイトル） */
.llh-single-ticker__row .p-news-ticker__item {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  text-decoration: none;
}

/* -------------------------
   🔥 日付カラーを確実に適用
   （TCD の color 上書きに勝つ）
-------------------------- */
.llh-single-ticker__date,
.p-news-ticker__date {
  color: #90673d !important;
  font-weight: 600;
  font-size: 14px;
}

/* ▼ タイトル */
.llh-single-ticker__title,
.p-news-ticker__title {
  font-size: 15px;
  color: #3a2a1a;
  font-weight: 600;
}

/* ▼ 右側ボタン（PCのまま維持） */
.p-news-ticker-button__contents_main {
  display: inline-flex;
  align-items: center;
  margin-left: 24px;
  margin-right: 70px;
}

/* ▼ fadein の悪影響を完全無効化 */
.llh-single-ticker * {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}


/* =========================================================
   ★ SP対応（768px以下）
   → 日付／タイトル／矢印を少し上に配置
========================================================= */
@media (max-width: 768px) {

  .llh-single-ticker__row {
    padding: 6px 20px 10px; /* ← 上を少し詰める（6px） */
    flex-wrap: wrap;
    white-space: normal;
    gap: 6px 12px;
  }

  /* 上方向に上げるため軽く line-height を調整 */
  .p-news-ticker__item {
    line-height: 1.2;
  }

  /* ボタンを2段目右に配置 */
  .p-news-ticker-button__contents_main {
    margin-left: auto;
    margin-right: 0;
    padding-top: 0px;               /* ← 上方向に微調整 */
  }

  /* 日付＆タイトルを少し上に寄せる */
  .p-news-ticker__date,
  .p-news-ticker__title {
    transform: translateY(-2px);    /* ← 上方向に 2px */
    display: inline-block;
  }

  /* 矢印のパディングも微調整して上方向に寄せる */
  .p-news-ticker-button_arrow {
    transform: translateY(-1px);
  }
}


/* =========================================================
   ★ 超小型スマホ（430px以下）
========================================================= */
@media (max-width: 430px) {

  .llh-single-ticker__row {
    padding: 6px 14px 12px;
    gap: 4px 10px;
  }

  .p-news-ticker__date {
    font-size: 13px;
  }

  .p-news-ticker__title {
    font-size: 14px;
  }

  .p-news-ticker-button__contents_main {
    margin-left: auto;
    margin-right: 0;
  }

  /* さらに微妙に上方向へ */
  .p-news-ticker__date,
  .p-news-ticker__title {
    transform: translateY(-3px);
  }
}

@media screen and (max-width: 600px){
  .pc{
    display: none;
  }
}
/* =========================================================
   ★ SPのみ改行
========================================================= */
@media screen and (min-width: 600px){
  .sp{
    display: none;
  }
  .spbr{
    display: none;
  }
}

.long_word{
  white-space: nowrap;
}
/* =========================================================
   登録工務店アーカイブ：タイトル＆リードを下に寄せる＋読みやすく
========================================================= */

/* ① ヒーローの中身を全体的に下へ（タイトル＋リードまとめて） */
.contractor-archive.-fancy .cl-hero{
  /* 背景画像などは既存をそのまま使う前提で、上パディングだけ強めに */
  padding-top: clamp(140px, 20vw, 200px);  /* ← ここで「グッと下へ」 */
  padding-bottom: clamp(40px, 8vw, 72px);  /* 下も少し余裕 */

  min-height: 620px; /* 背景が見える最低高さ（お好みで 400〜520px） */
}

/* SP では少し控えめに下げる（必要なら数値調整OK） */
@media (max-width: 768px){
  .contractor-archive.-fancy .cl-hero{
    padding-top: 100px;
    padding-bottom: 48px;
    min-height: 360px;
  }
}

/* ② タイトル・リードの並びはそのまま、下に寄せた状態で中央揃え */
.contractor-archive.-fancy .cl-hero__inner{
  text-align: center;
}

/* ③ リード文を読みやすく（文字色＋影） */
.contractor-archive.-fancy .cl-lead{
  margin-top: 18px;             /* タイトルとの間は少しだけ空ける */
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
  font-size: 24px;
  line-height: 1.9;

  color: #3a2a1a;               /* ちょい濃いめブラウンで読みやすく */
  text-shadow:
    0 0 10px rgba(255,255,255,0.92),
    0 0 4px  rgba(255,255,255,0.85);  /* 背景になじむ白シャドウ */
}

/* リード文を太字に */
.contractor-archive.-fancy .cl-lead{
  font-weight: 700;
}

/* SP：リード文の文字サイズだけ16pxに */
@media (max-width: 768px){
  .contractor-archive.-fancy .cl-lead{
    font-size: 16px !important;
  }
}
/* =========================================================
   Fixed Bottom Menu：個別相談ボタンカスタム
========================================================= */

/* アイコンは非表示のまま */
.fixed-bottom-menu a[href*="/consultation/"] .dashicons-format-chat{
  display:none !important;
}

.fixed-bottom-menu a[href*="/consultation/"] .dashicons-format-chat + br{
  display:none !important;
}

/* ① 個別相談の文字：全体をちょっと上へ */
.fixed-bottom-menu a[href*="/consultation/"] .fixed-bottom-menu-text{
  display:inline-block;
  position:relative;
  padding-right:31px;      /* 矢印分の余白 */
  line-height:1.3;
  top:-8px;                /* ← 文字を上に 2px 持ち上げる（お好みで -1〜-4px に調整） */
}

/* ② 矢印画像：文字とは別にもう少し上へ */
.fixed-bottom-menu a[href*="/consultation/"] .fixed-bottom-menu-text::after{
  content:"";
  position:absolute;
  top:57%;                 /* ← デフォルト 50% から少し上に（45〜40% あたりで調整してOK） */
  right:0;
  transform:translateY(-50%);
  width:29px;
  height:29px;
  background-image: url("/wp-content/uploads/2025/12/yazirushi@1.25x.png");
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
}

/**
 * =========================================================
 * 管理画面：注意書きスタイル
 * =========================================================
 */
.llh-admin-notice-important{
  margin: 16px 0 24px;
  padding: 16px 20px;
  border: 2px solid #c62828;
  background: #fff5f5;
  color: #3a2a1a;
  font-size: 14px;
  line-height: 1.7;
  border-radius: 6px;
}
.llh-admin-notice-important strong{
  color: #b71c1c;
}

