/* =========================================================
   登録工務店様募集ページ 専用スタイル（partner/）
   ・style.css のデザイントークン(--red 等)・コンポーネントを踏襲
   ・このページ固有の要素（チェックリスト/CTA/情報カード等）のみ定義
   ========================================================= */

/* ---- 太字ステートメント（各セクション冒頭の強調文） ---- */
.p-statement{
  font-size:clamp(18px,2vw,24px);
  font-weight:900;
  letter-spacing:-.03em;
  line-height:1.7;
  color:var(--green);
  margin:0 0 28px;
  text-align:center;
}
.content-block--dark .p-statement,
.content-block--green .p-statement{ color:var(--white); }

/* ---- チェックリスト（求める条件・登録条件・スタイル内容 等） ---- */
.p-check-list{ list-style:none; padding:0; margin:32px 0; display:grid; grid-template-columns:1fr; gap:12px; }
.p-check-list.cols-2{ grid-template-columns:1fr 1fr; }
.p-check-item{
  display:flex; align-items:flex-start; gap:14px;
  padding:16px 22px;
  background:var(--bg);
  border:1px solid var(--line);
  border-left:3px solid var(--red);
  font-size:16px; line-height:1.7; color:var(--ink); font-weight:700;
}
.p-check-item .p-check-ic{
  flex:0 0 auto; width:22px; height:22px; margin-top:2px;
  border-radius:50%; background:var(--green); color:#fff;
  display:inline-flex; align-items:center; justify-content:center;
  font-size:12px; font-weight:900;
}
.content-block--tinted .p-check-item{ background:var(--bg); }
.content-block--dark .p-check-item,
.content-block--green .p-check-item{
  background:rgba(255,250,240,.06);
  border-color:rgba(255,250,240,.16);
  border-left-color:var(--red);
  color:var(--white);
}

/* ---- インラインCTA（登録について問い合わせる） ---- */
.p-cta{ text-align:center; margin:48px 0 0; }
.p-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:12px;
  min-width:300px; padding:20px 44px;
  background:var(--red); color:var(--white);
  font-size:16px; font-weight:800; letter-spacing:.04em;
  border-radius:2px;
  transition:background .25s ease, transform .25s ease, box-shadow .25s ease;
}
.p-btn::after{ content:"→"; font-weight:700; }
.p-btn:hover{ background:#a92e20; transform:translateY(-2px); box-shadow:0 8px 24px rgba(200,58,42,.28); }

/* ---- 情報カード（郵送先・お問い合わせ） ---- */
.p-info-grid{ display:grid; grid-template-columns:1fr 1fr; gap:20px; margin:32px 0 0; }
.p-info-card{ padding:28px 32px; border:1px solid var(--line); background:var(--bg); }
.content-block--dark .p-info-card{ background:rgba(255,250,240,.04); border-color:rgba(255,250,240,.16); }
.p-info-label{
  font-size:11px; letter-spacing:.16em; color:var(--red); font-weight:800;
  text-transform:uppercase; margin:0 0 14px;
}
.p-info-body{ font-size:16px; line-height:1.95; color:var(--ink); margin:0; font-weight:500; }
.content-block--dark .p-info-body{ color:rgba(255,250,240,.85); }
.p-info-body strong{ font-weight:800; }

/* ---- 番号付き書類リスト ---- */
.p-doc-list{ counter-reset:doc; list-style:none; padding:0; margin:24px auto 0; width:fit-content; max-width:100%; }
.p-doc-list li{
  position:relative; padding:16px 0 16px 46px;
  border-bottom:1px solid var(--line);
  font-size:16px; line-height:1.7; color:var(--ink); font-weight:700;
}
.p-doc-list li::before{
  counter-increment:doc; content:counter(doc);
  position:absolute; left:0; top:14px;
  width:28px; height:28px; border-radius:50%;
  border:1px solid var(--red); color:var(--red);
  font-size:13px; font-weight:800;
  display:flex; align-items:center; justify-content:center;
}
.p-doc-note{ display:block; font-size:13px; color:var(--muted); font-weight:400; margin-top:6px; }
.p-doc-link{ display:inline-block; margin-left:.4em; font-size:14px; font-weight:600; color:var(--red); text-decoration:underline; text-underline-offset:3px; }
.p-doc-link:hover{ opacity:.7; }

/* ---- ※注釈リスト ---- */
.p-notes{ list-style:none; padding:0; margin:28px auto 0; max-width:760px; }
.p-notes li{ font-size:13px; line-height:1.8; color:var(--muted); padding-left:1.4em; text-indent:-1.4em; margin-bottom:6px; }
.content-block--dark .p-notes li,
.content-block--green .p-notes li{ color:rgba(255,250,240,.55); }

/* ---- 免責の囲み ---- */
.p-disclaimer{
  margin:32px 0 0; padding:22px 26px;
  border:1px solid var(--line);
  font-size:16px; line-height:1.9; color:var(--muted);
}
.content-block--tinted .p-disclaimer{ background:var(--bg); }

/* ---- クロージング内の連絡先 ---- */
.p-contact{
  margin:44px auto 0; max-width:520px;
  padding:28px 32px;
  border:1px solid rgba(255,250,240,.18);
  text-align:center;
}
.p-contact-name{ font-size:16px; font-weight:800; color:var(--white); margin:0 0 14px; letter-spacing:.02em; }
.p-contact-row{ font-size:16px; line-height:2; color:rgba(255,250,240,.7); margin:0; }
.p-contact-row strong{ color:var(--white); font-weight:700; }

/* ---- Patio 特典ボタン ---- */
.p-patio-cta{ margin:28px 0 0; }
.p-patio-btn{
  display:inline-flex; align-items:center; gap:10px;
  padding:14px 28px;
  border:1px solid rgba(255,250,240,.5); color:var(--white);
  font-size:16px; font-weight:700; letter-spacing:.02em; border-radius:2px;
  transition:background .25s ease, border-color .25s ease;
}
.p-patio-btn:hover{ background:rgba(255,250,240,.1); border-color:var(--white); }

/* ---- 質問カード（課題：うまく伝えられない） ---- */
.p-qa{ display:grid; grid-template-columns:repeat(4,1fr); gap:30px 16px; margin:44px auto 0; max-width:900px; }
.p-qa-item{
  display:flex; flex-direction:column; align-items:center; text-align:center; gap:16px;
  padding:0; background:none; border:0; border-radius:0; box-shadow:none;
}
.p-qa-mark{
  flex:0 0 auto; display:flex; align-items:center; justify-content:center;
  width:88px; height:88px; border-radius:50%;
  border:1.5px solid rgba(200,58,42,.4); background:rgba(200,58,42,.06);
  color:var(--red); margin:0;
}
.p-qa-mark svg{ width:38px; height:38px; }
.p-qa-text{ font-size:15px; font-weight:700; color:var(--ink); line-height:1.6; margin:0; max-width:12em; }

/* ---- 番号付きフィーチャー（偏愛スタイルの内容） ---- */
.p-feature-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:36px 0 0; }
.p-feature{
  display:flex; align-items:center; gap:18px;
  padding:20px 26px; background:var(--bg);
  border:1px solid var(--line); border-bottom:2px solid var(--red);
}
.p-feature-num{
  font-family:"Helvetica Neue",Arial,sans-serif;
  font-size:22px; font-weight:800; line-height:1; color:var(--red);
  flex:0 0 auto; min-width:1.6em;
}
.p-feature-text{ font-size:16px; font-weight:700; color:var(--ink); line-height:1.5; }

/* ---- アイコンサークル（偏愛スタイルの内容） ---- */
.p-icon-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:36px 20px; margin:48px 0 0; }
.p-icon-item{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:16px; }
.p-icon-circle{
  width:104px; height:104px; border-radius:50%;
  border:1.5px solid var(--line); background:var(--bg);
  display:flex; align-items:center; justify-content:center;
  color:var(--green);
  transition:border-color .35s ease, transform .35s ease, color .35s ease;
}
.p-icon-circle svg{ width:44px; height:44px; }
.p-icon-item:hover .p-icon-circle{ border-color:var(--red); color:var(--red); transform:translateY(-4px); }
.p-icon-label{ font-size:16px; font-weight:700; color:var(--ink); line-height:1.6; max-width:12em; }
.content-block--tinted .p-icon-circle{ background:var(--bg-2); }

/* ---- 箇条書き（偏愛スタイルの内容） ---- */
.p-bullet-list{ list-style:none; padding:0; margin:36px auto 0; width:fit-content; max-width:100%; }
.p-bullet-list li{
  position:relative; padding:15px 4px 15px 28px;
  border-bottom:1px solid var(--line);
  font-size:16px; font-weight:700; color:var(--ink); line-height:1.6;
}
.p-bullet-list li:first-child{ border-top:1px solid var(--line); }
.p-bullet-list li::before{
  content:""; position:absolute; left:6px; top:1.5em;
  width:7px; height:7px; border-radius:50%; background:var(--red);
}

/* ---- タグチップ（ザ・ハウスが整理する項目） ---- */
.p-tags{ display:flex; flex-wrap:wrap; gap:12px; margin:36px 0 0; justify-content:center; }
.p-tag{
  display:inline-flex; align-items:center; gap:9px;
  padding:12px 22px; background:var(--white);
  border:1px solid var(--line); border-radius:999px;
  font-size:16px; font-weight:700; color:var(--ink);
}
.p-tag::before{ content:""; flex:0 0 auto; width:6px; height:6px; border-radius:50%; background:var(--red); }

/* ---- 条件リスト（登録条件：✓＋区切り線・規約的な体裁） ---- */
.p-cond-list{ list-style:none; padding:0; margin:36px auto 0; max-width:760px; }
.p-cond-item{ display:flex; align-items:flex-start; gap:16px; padding:18px 4px; border-bottom:1px solid var(--line); }
.p-cond-item:first-child{ border-top:1px solid var(--line); }
.p-cond-check{
  flex:0 0 auto; width:24px; height:24px; margin-top:2px;
  border-radius:50%; border:1.5px solid var(--green); color:var(--green);
  display:inline-flex; align-items:center; justify-content:center;
  font-size:12px; font-weight:900;
}
.p-cond-text{ font-size:16px; font-weight:700; color:var(--ink); line-height:1.7; }

@media(max-width:900px){
  .p-check-list.cols-2{ grid-template-columns:1fr; }
  .p-info-grid{ grid-template-columns:1fr; }
  .p-btn{ width:100%; min-width:0; }
  .p-qa{ grid-template-columns:repeat(2,1fr); }
  .p-feature-grid{ grid-template-columns:1fr; }
  .p-icon-grid{ grid-template-columns:1fr 1fr; gap:28px 12px; }
  .p-icon-circle{ width:88px; height:88px; }
  .p-icon-circle svg{ width:38px; height:38px; }
}
