/**
 * Solstice PROB Page Components v1.0
 * PROB（症状別解説）ページ固有のコンポーネント
 *
 * 依存:
 *   - sol-design-tokens.css（CSS変数・リセット・.sr-only）
 *   - sol-ctx-page.css（.ctx-breadcrumb, .ctx-eeat, .emergency-placeholder）
 *
 * 不要（PROBでは読み込まない）:
 *   - sol-exit-ui.css / sol-exit-ui.js
 *   - sol-exit-gate.css
 *   - sol-ctx-shared.js
 *
 * 含まれるコンポーネント:
 *   - Section structure    セクション構造パターン（.section, .section-inner等）
 *   - PROB overrides       sol-ctx-page.css コンポーネントのPROB用上書き
 *   - prob-card            症状カードグリッド
 *   - prob-emergency       緊急アクションカード（インライン展開）
 *   - prob-guide           症状の見分けガイド
 *   - prob-caution         やってはいけないことリスト
 *   - prob-rental-notice   賃貸・マンション通知
 *   - ctx-faq              FAQ（CTXと共通クラス名）
 *   - prob-ctx-bridge      CTX-TOP導線
 *   - sol-cta              CTA（LINE / 電話）
 *   - author-block         著者情報
 */

/* ============================================================
   SECTION STRUCTURE — CTXインライン定義と同一パターン
   ============================================================ */
.section{padding:3.5rem 1.25rem}
.section-inner{max-width:720px;margin:0 auto}

.section-label{
  font-family:var(--font-num);
  font-size:.7rem;
  font-weight:500;
  letter-spacing:.15em;
  color:var(--water-deep);
  text-transform:uppercase;
  margin-bottom:.5rem;
  display:flex;
  align-items:center;
  gap:.5rem;
}
.section-label::before{
  content:'';
  display:inline-block;
  width:16px;height:1px;
  background:var(--water);
}

.section-title{
  font-family:var(--font-mincho);
  font-size:clamp(1.15rem,2.8vw,1.5rem);
  font-weight:400;
  letter-spacing:.1em;
  line-height:1.7;
  color:var(--ink-deep);
  margin-bottom:.75rem;
}

.section-sub{
  font-size:clamp(.8rem,1.4vw,.875rem);
  font-weight:300;
  letter-spacing:.03em;
  line-height:1.9;
  color:var(--stone);
}

h1{
  font-family:var(--font-mincho);
  font-size:clamp(1.25rem,3vw,1.625rem);
  font-weight:500;
  letter-spacing:.08em;
  line-height:1.6;
  color:var(--ink-deep);
  margin-bottom:1rem;
}

/* ============================================================
   PROB OVERRIDES — sol-ctx-page.css コンポーネントの上書き
   ============================================================ */

/* 役割宣言: PROBでは水色背景・ボーダーなし */
.prob-page .ctx-role-decl{
  background:var(--water-breath);
  border:none;
  text-align:left;
  margin-top:1.25rem;
  margin-bottom:1.25rem;
  padding:1rem 1.25rem;
}
.prob-page .ctx-role-decl p{
  font-size:.8125rem;
  font-weight:300;
  line-height:2;
}

/* AIOクエリ: PROBでは非表示 */
.prob-page .ctx-aio-queries{display:none}

/* リンク基本 */
a{color:var(--water-deep);text-decoration:none}
a:hover{text-decoration:underline}

/* ============================================================
   S1: INTRO CAPSULE
   ============================================================ */
.intro-capsule{margin-top:1rem}
.intro-body{
  font-size:.9375rem;
  font-weight:300;
  line-height:1.9;
  color:var(--ink);
}

/* ============================================================
   S2: SYMPTOM CARD GRID
   ============================================================ */
.prob-card-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:.75rem;
  margin-top:1.5rem;
}
@media(min-width:540px){
  .prob-card-grid{grid-template-columns:repeat(3,1fr)}
}

.prob-card{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  background:var(--white);
  border:1px solid var(--mist);
  border-radius:14px;
  padding:1.25rem .75rem 1rem;
  cursor:pointer;
  transition:box-shadow .2s,border-color .2s;
  text-decoration:none;
  color:inherit;
}
.prob-card:hover{
  border-color:var(--water-deep);
  box-shadow:0 4px 16px rgba(0,0,0,.03);
  text-decoration:none;
}

.prob-card__icon{
  width:44px;height:44px;
  border-radius:12px;
  background:var(--water-breath);
  display:flex;align-items:center;justify-content:center;
  margin-bottom:.75rem;
  flex-shrink:0;
}
.prob-card__icon svg{
  width:24px;height:24px;
  fill:none;stroke:var(--water-deep);
  stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;
}

.prob-card__state{
  font-size:.9375rem;font-weight:500;
  color:var(--ink);line-height:1.5;
  letter-spacing:.02em;margin-bottom:.375rem;
}
.prob-card__name{
  font-size:.8125rem;font-weight:600;
  color:var(--water-deep);letter-spacing:.02em;
}

/* ============================================================
   S2: EMERGENCY INLINE CARD（グリッド外配置）
   ============================================================ */
.prob-emergency-inline{
  background:var(--white);
  border:1px solid var(--mist);
  border-left:3px solid var(--danger);
  border-radius:14px;
  padding:1rem 1.25rem;
  margin-top:.75rem;
}

.prob-emergency-trigger{
  display:flex;align-items:center;gap:.625rem;
  width:100%;background:none;border:none;cursor:pointer;
  font-family:var(--font-ja);font-size:.9375rem;font-weight:500;
  color:var(--ink-deep);text-align:left;padding:0;
}
.prob-emergency-trigger__icon{
  width:32px;height:32px;border-radius:8px;
  background:#FEF2F2;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
}
.prob-emergency-trigger__icon svg{
  width:18px;height:18px;fill:none;
  stroke:var(--danger);stroke-width:2;
}
.prob-emergency-trigger__chevron{
  margin-left:auto;font-size:.75rem;
  color:var(--ash);transition:transform .2s;
}
.prob-emergency-inline[open] .prob-emergency-trigger__chevron{
  transform:rotate(180deg);
}

.prob-emergency-body{
  padding-top:1rem;font-size:.875rem;line-height:2;color:var(--ink);
}
.prob-emergency-body__heading{
  font-weight:500;margin-bottom:.75rem;color:var(--ink-deep);
}
.prob-emergency-step{
  display:flex;gap:.75rem;align-items:flex-start;margin-bottom:.75rem;
}
.prob-emergency-step__num{
  flex-shrink:0;width:24px;height:24px;border-radius:50%;
  background:var(--danger);color:var(--white);
  font-family:var(--font-num);font-size:.65rem;font-weight:600;
  display:flex;align-items:center;justify-content:center;
}
.prob-emergency-step__text{
  font-size:.8125rem;font-weight:300;line-height:1.8;letter-spacing:.02em;
}
.prob-emergency-phone{
  color:var(--ink-deep);font-weight:600;
}
.prob-emergency-link{
  display:block;margin-top:.75rem;
  font-size:.8125rem;color:var(--water-deep);font-weight:500;
}

/* ============================================================
   S3: SYMPTOM GUIDE（見分けガイド）
   ============================================================ */
.prob-guide{margin-top:1.5rem}
.prob-guide-pair{margin-bottom:2rem}
.prob-guide-pair:last-child{margin-bottom:0}

.prob-guide-pair__title{
  font-family:var(--font-mincho);
  font-size:1.0625rem;font-weight:500;
  color:var(--ink-deep);letter-spacing:.05em;
  margin-bottom:.5rem;padding-bottom:.5rem;
  border-bottom:1px solid var(--mist);
}
.prob-guide-pair__conclusion{
  font-size:.875rem;font-weight:400;
  line-height:1.8;color:var(--ink);
  letter-spacing:.02em;margin-bottom:1rem;
}

.prob-guide-items{
  display:flex;flex-direction:column;gap:1rem;margin-bottom:1rem;
}
.prob-guide-item{
  padding-left:1rem;border-left:2px solid var(--water);
}
.prob-guide-item__name{
  font-size:.9375rem;font-weight:600;
  color:var(--ink-deep);letter-spacing:.02em;margin-bottom:.25rem;
}
.prob-guide-item__desc{
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;
}
.prob-guide-item__ex{
  font-size:.8125rem;color:var(--stone);font-weight:300;
  line-height:1.8;margin-top:.25rem;
}

.prob-guide-point{
  background:var(--water-breath);border-radius:12px;
  padding:1rem 1.25rem;margin-bottom:.75rem;
}
.prob-guide-point__title{
  font-size:.8125rem;font-weight:600;
  color:var(--water-deep);margin-bottom:.5rem;letter-spacing:.02em;
}
.prob-guide-point__body{
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;
}

.prob-guide-location{
  font-size:.8125rem;color:var(--stone);font-weight:300;
  line-height:1.9;padding-top:.75rem;
  border-top:1px solid var(--mist);
}
.prob-guide-location strong{font-weight:500;color:var(--ink)}

/* ============================================================
   S4: CAUTION LIST（やってはいけないこと）
   ============================================================ */
.prob-caution-list{
  margin-top:1.5rem;display:flex;flex-direction:column;gap:1rem;
}
.prob-caution-item{padding-left:1.5rem;position:relative}
.prob-caution-item__ng{
  font-size:.9375rem;font-weight:500;
  color:var(--ink-deep);line-height:1.6;letter-spacing:.02em;
}
.prob-caution-item__ng::before{
  content:'\00D7';position:absolute;left:0;top:0;
  font-size:1rem;font-weight:700;color:var(--danger);line-height:1.6;
}
.prob-caution-item__why{
  font-size:.875rem;font-weight:300;color:var(--stone);
  line-height:1.8;margin-top:.125rem;letter-spacing:.02em;
}

/* ============================================================
   S5: RENTAL NOTICE（賃貸・マンション通知）
   ============================================================ */
.prob-rental-notice{
  background:var(--silk);
  border-left:3px solid #8B5CF6;
  border-radius:0 12px 12px 0;
  padding:1.25rem 1.25rem 1.25rem 1.5rem;
  margin-top:1.25rem;
}
.prob-rental-notice__title{
  font-size:.9375rem;font-weight:600;
  color:var(--ink-deep);margin-bottom:.75rem;letter-spacing:.02em;
}
.prob-rental-notice__body{
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;
}
.prob-rental-notice__body--spaced{margin-top:.75rem}
.prob-rental-notice__link{
  display:inline-block;margin-top:.75rem;
  font-size:.8125rem;font-weight:500;color:var(--water-deep);
}

/* ============================================================
   S6: FAQ（CTX共通クラス名）
   ============================================================ */
.ctx-faq{margin-top:1.5rem}
.ctx-faq details{border-bottom:1px solid var(--mist);padding:1rem 0}
.ctx-faq details:first-child{border-top:1px solid var(--mist)}

.ctx-faq summary{
  font-size:.9375rem;font-weight:500;
  color:var(--ink-deep);cursor:pointer;list-style:none;
  display:flex;align-items:flex-start;gap:.5rem;
  letter-spacing:.02em;line-height:1.6;
}
.ctx-faq summary::-webkit-details-marker{display:none}
.ctx-faq summary::before{
  content:'Q.';font-family:var(--font-num);
  font-size:.75rem;font-weight:600;color:var(--water-deep);
  flex-shrink:0;margin-top:.1em;
}
.ctx-faq summary::after{
  content:'\25BC';font-size:.6rem;color:var(--ash);
  margin-left:auto;flex-shrink:0;
  transition:transform .2s;margin-top:.35em;
}
.ctx-faq details[open] summary::after{transform:rotate(180deg)}

.ctx-faq .faq-answer{
  padding:.75rem 0 .25rem 1.5rem;
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;
}

/* ============================================================
   S7: CTX BRIDGE（CTX-TOP導線）
   ============================================================ */
.prob-ctx-bridge{margin-top:1.5rem}
.prob-ctx-bridge__main{
  display:block;background:var(--water-breath);
  border-radius:14px;padding:1.25rem 1.5rem;
  font-size:.9375rem;font-weight:500;
  color:var(--water-deep);text-decoration:none;
  transition:background .2s;letter-spacing:.02em;
}
.prob-ctx-bridge__main:hover{
  background:var(--water-ghost);text-decoration:none;
}
.prob-ctx-bridge__main-arrow{font-size:.8125rem;margin-left:.375rem}

.prob-ctx-bridge__sub{
  display:flex;flex-direction:column;gap:.625rem;
  margin-top:1.25rem;padding-left:.25rem;
}
.prob-ctx-bridge__sub-label{
  font-size:.75rem;font-weight:500;
  color:var(--stone);letter-spacing:.03em;margin-bottom:.125rem;
}
.prob-ctx-bridge__sub a{
  font-size:.8125rem;font-weight:400;
  color:var(--water-deep);letter-spacing:.02em;
  display:flex;align-items:center;gap:.375rem;
}
.prob-ctx-bridge__sub a::before{
  content:'';width:6px;height:6px;border-radius:50%;
  background:var(--water);flex-shrink:0;
}

/* ============================================================
   SECTION BACKGROUNDS（インラインstyle排除・クラスベース制御）
   sol-prob-page.cssはPROBページ専用読み込みのためスコープ安全
   ============================================================ */
section.section:nth-of-type(odd){background:var(--white)}
section.section:nth-of-type(even){background:var(--silk)}

/* ============================================================
   UTILITY: インラインstyle排除用スペーサ
   ============================================================ */
.ctx-role-decl--spaced{margin-top:1rem}
.prob-step__body--spaced{margin-bottom:1rem}
.prob-next--spaced{margin-top:1rem}

/* ============================================================
   S8: CTA（LINE / 電話）— 強度3段階
   low   = AGING（煽り回避最大。outline LINEボタン）
   medium= LEAK/CLOG/NOWATER/TEMP/SMELL（標準）
   high  = STOP（被害進行中。やや大きめ、ただし煽らない）
   ============================================================ */
.sol-cta--low,
.sol-cta--medium,
.sol-cta--high{margin-top:1.5rem}

.sol-cta__line{
  display:flex;flex-direction:column;align-items:center;
  gap:.5rem;margin-bottom:1.25rem;
}
.sol-cta__line-btn{
  display:flex;align-items:center;justify-content:center;gap:.5rem;
  background:var(--line-green);color:#fff;
  font-family:var(--font-ja);font-size:.9375rem;font-weight:600;
  padding:.875rem 1.5rem;border-radius:14px;text-decoration:none;
  box-shadow:0 4px 16px rgba(6,199,85,.2);
  transition:background .2s,box-shadow .2s;
  letter-spacing:.02em;
  width:100%;max-width:360px;text-align:center;
}
.sol-cta__line-btn:hover{
  background:#05a849;
  box-shadow:0 6px 20px rgba(6,199,85,.3);
  text-decoration:none;
}
.sol-cta__line-btn svg{width:20px;height:20px;fill:#fff;flex-shrink:0}

.sol-cta__note{
  font-size:.75rem;font-weight:300;color:var(--stone);letter-spacing:.02em;
}

.sol-cta__phone{
  display:flex;flex-direction:column;align-items:center;gap:.375rem;
}
.sol-cta__phone-label{
  font-size:.75rem;font-weight:300;color:var(--stone);letter-spacing:.02em;
}
.sol-cta__phone-link{
  font-family:var(--font-num);font-size:1.125rem;font-weight:500;
  color:var(--ink);letter-spacing:.05em;
}

/* sol-cta--low: AGING用。煽り回避最大。outlineボタン + テキスト控えめ */
.sol-cta--low .sol-cta__line-btn{
  background:transparent;color:var(--line-green);
  border:1.5px solid var(--line-green);
  box-shadow:none;font-weight:500;
}
.sol-cta--low .sol-cta__line-btn:hover{
  background:rgba(6,199,85,.06);box-shadow:none;
}
.sol-cta--low .sol-cta__line-btn svg{fill:var(--line-green)}
.sol-cta--low .sol-cta__phone-link{font-size:1rem}

/* sol-cta--high: STOP用。やや大きめ、ただし煽らない */
.sol-cta--high .sol-cta__line-btn{
  padding:1rem 1.75rem;font-size:1rem;max-width:400px;
  box-shadow:0 6px 20px rgba(6,199,85,.25);
}
.sol-cta--high .sol-cta__phone-link{font-size:1.25rem;font-weight:600}

/* ============================================================
   S9: AUTHOR BLOCK
   ============================================================ */
.author-block{
  display:flex;gap:1rem;align-items:flex-start;margin-top:1.25rem;
}
.author-block__icon{
  width:48px;height:48px;border-radius:50%;
  background:var(--water-breath);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
}
.author-block__icon svg{
  width:24px;height:24px;fill:none;
  stroke:var(--water-deep);stroke-width:1.5;
}
.author-block__info{flex:1}
.author-block__name{
  font-size:.9375rem;font-weight:600;
  color:var(--ink-deep);letter-spacing:.02em;
}
.author-block__role{
  font-size:.75rem;color:var(--stone);
  margin-top:.125rem;letter-spacing:.02em;
}
a.author-block--link{
  text-decoration:none;color:inherit;
  border:1px solid var(--mist);border-radius:14px;
  padding:1rem 1.25rem;
  transition:border-color .2s,box-shadow .2s;
}
a.author-block--link:hover{
  border-color:var(--water-deep);
  box-shadow:0 4px 16px rgba(0,0,0,.03);
  text-decoration:none;
}

/* ============================================================
   PROB CHILD PAGE: FIRST CHECK（最初の分岐）
   PROB-TEMP S2 / 他PROBでも再利用可能
   ============================================================ */
.prob-first-check{margin-top:1.5rem}
.prob-first-check__q{
  font-size:1.0625rem;font-weight:600;
  color:var(--ink-deep);line-height:1.7;
  letter-spacing:.02em;margin-bottom:1rem;
}
.prob-first-check__branch{
  padding:1rem 1.25rem;border-radius:12px;
  margin-bottom:.75rem;
}
.prob-first-check__branch--ok{
  border-left:3px solid var(--water);
  background:var(--water-breath);
}
.prob-first-check__branch--redirect{
  border-left:3px solid var(--stone);
  background:var(--silk);
}
.prob-first-check__branch-title{
  font-size:.9375rem;font-weight:500;
  color:var(--ink-deep);margin-bottom:.375rem;letter-spacing:.02em;
}
.prob-first-check__branch-body{
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;
}

/* ============================================================
   PROB CHILD PAGE: SYMPTOM SELECT（症状選択カード）
   ページ内アンカー用。PROB-TOPの.prob-cardと同構造
   ============================================================ */
.prob-symptom-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:.75rem;margin-top:1.5rem;
}
.prob-symptom-grid--2col{grid-template-columns:repeat(2,1fr)}
@media(max-width:480px){
  .prob-symptom-grid{grid-template-columns:1fr}
}
.prob-symptom-card{
  display:flex;flex-direction:column;
  align-items:center;text-align:center;
  background:var(--white);border:1px solid var(--mist);
  border-radius:14px;padding:1.25rem .75rem 1rem;
  cursor:pointer;transition:box-shadow .2s,border-color .2s;
  text-decoration:none;color:inherit;
}
.prob-symptom-card:hover{
  border-color:var(--water-deep);
  box-shadow:0 4px 16px rgba(0,0,0,.03);
  text-decoration:none;
}
.prob-symptom-card__state{
  font-size:.9375rem;font-weight:500;
  color:var(--ink);line-height:1.5;
  letter-spacing:.02em;margin-bottom:.375rem;
}
.prob-symptom-card__desc{
  font-size:.75rem;font-weight:300;
  color:var(--stone);line-height:1.7;letter-spacing:.02em;
}

/* ============================================================
   PROB-TEMP: S4 診断ステップ
   ============================================================ */
.prob-temp{margin-top:1.5rem}
.prob-temp-section{margin-bottom:2.5rem}
.prob-temp-section:last-child{margin-bottom:0}

.prob-temp-section__title{
  font-family:var(--font-mincho);
  font-size:1.125rem;font-weight:500;
  color:var(--ink-deep);letter-spacing:.05em;
  margin-bottom:1.25rem;padding-bottom:.5rem;
  border-bottom:1px solid var(--mist);
}

.prob-temp-check{
  margin-bottom:1.25rem;
}
.prob-temp-check__header{
  display:flex;align-items:center;gap:.625rem;
  margin-bottom:.75rem;
}
.prob-temp-check__num{
  flex-shrink:0;width:28px;height:28px;border-radius:50%;
  background:var(--water-deep);color:var(--white);
  font-family:var(--font-num);font-size:.7rem;font-weight:600;
  display:flex;align-items:center;justify-content:center;
}
.prob-temp-check__title{
  font-size:.9375rem;font-weight:600;
  color:var(--ink-deep);letter-spacing:.02em;
}
.prob-temp-check__body{
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;
  padding-left:calc(28px + .625rem);
}

/* 結果分岐ブロック */
.prob-temp-result{
  padding:1rem 1.25rem;border-radius:12px;
  margin-bottom:.625rem;margin-left:calc(28px + .625rem);
}
.prob-temp-result--gas{
  border-left:3px solid var(--warn);background:var(--warn-bg);
}
.prob-temp-result--plumber{
  border-left:3px solid var(--water);background:var(--water-breath);
}
.prob-temp-result--self{
  border-left:3px solid var(--safe);background:var(--safe-bg);
}
.prob-temp-result--redirect{
  border-left:3px solid var(--stone);background:var(--silk);
}
.prob-temp-result__title{
  font-size:.875rem;font-weight:500;
  color:var(--ink-deep);margin-bottom:.375rem;letter-spacing:.02em;
}
.prob-temp-result__body{
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;
}

/* 安全注意ブロック */
.prob-temp-safety{
  border-left:3px solid var(--warn);
  background:var(--warn-bg);
  border-radius:0 12px 12px 0;
  padding:1.25rem 1.25rem 1.25rem 1.5rem;
  margin-bottom:1.25rem;
}
.prob-temp-safety__title{
  font-size:.9375rem;font-weight:600;
  color:var(--ink-deep);margin-bottom:.5rem;letter-spacing:.02em;
}
.prob-temp-safety__body{
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;
}

/* 原因リスト */
.prob-temp-causes{margin-top:1rem;margin-bottom:1rem}
.prob-temp-causes__group{margin-bottom:1rem}
.prob-temp-causes__group:last-child{margin-bottom:0}
.prob-temp-causes__label{
  font-size:.875rem;font-weight:500;
  color:var(--ink-deep);margin-bottom:.5rem;letter-spacing:.02em;
}
.prob-temp-causes__item{
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;
  padding-left:1rem;position:relative;
}
.prob-temp-causes__item::before{
  content:'';position:absolute;left:0;top:.75em;
  width:4px;height:4px;border-radius:50%;
  background:var(--water);
}
.prob-temp-causes__note{
  font-size:.8125rem;font-weight:300;line-height:1.8;
  color:var(--stone);padding-left:1rem;letter-spacing:.02em;
}

/* 切り分けボックス */
.prob-temp-split{
  background:var(--silk);border-radius:12px;
  padding:1rem 1.25rem;margin-top:1rem;
}
.prob-temp-split__title{
  font-size:.875rem;font-weight:600;
  color:var(--ink-deep);margin-bottom:.5rem;letter-spacing:.02em;
}
.prob-temp-split__row{
  display:flex;flex-direction:column;gap:.5rem;
}
.prob-temp-split__item{
  font-size:.8125rem;font-weight:300;line-height:1.9;
  color:var(--ink);letter-spacing:.02em;
  padding-left:1rem;border-left:2px solid var(--water);
}
.prob-temp-split__item--gas{border-left-color:var(--warn)}

/* ============================================================
   PROB-TEMP: S5 凍結 vs 故障 比較テーブル
   ============================================================ */
.prob-freeze-fault{margin-top:1.5rem}
.prob-freeze-fault-table{
  display:grid;grid-template-columns:1fr 1fr;
  gap:.75rem;margin-bottom:1.5rem;
}
@media(max-width:480px){
  .prob-freeze-fault-table{grid-template-columns:1fr}
}
.prob-freeze-fault-col{
  border-radius:12px;padding:1.25rem;
}
.prob-freeze-fault-col--freeze{
  background:#E0F2FE;
}
.prob-freeze-fault-col--fault{
  background:var(--warn-bg);
}
.prob-freeze-fault-col__title{
  font-size:.9375rem;font-weight:600;
  color:var(--ink-deep);margin-bottom:.75rem;letter-spacing:.02em;
}
.prob-freeze-fault-col__item{
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;
  padding-left:1rem;position:relative;
}
.prob-freeze-fault-col__item::before{
  content:'';position:absolute;left:0;top:.75em;
  width:5px;height:5px;border-radius:50%;
}
.prob-freeze-fault-col--freeze .prob-freeze-fault-col__item::before{
  background:#0ea5e9;
}
.prob-freeze-fault-col--fault .prob-freeze-fault-col__item::before{
  background:var(--warn);
}

.prob-freeze-fault-action{margin-bottom:1.5rem}
.prob-freeze-fault-action__title{
  font-size:1rem;font-weight:500;
  color:var(--ink-deep);margin-bottom:.75rem;letter-spacing:.02em;
}

/* 凍結対処ステップ（HowTo準拠） */
.prob-freeze-step{
  display:flex;gap:.75rem;align-items:flex-start;
  margin-bottom:.75rem;
}
.prob-freeze-step__num{
  flex-shrink:0;width:24px;height:24px;border-radius:50%;
  background:#0ea5e9;color:var(--white);
  font-family:var(--font-num);font-size:.65rem;font-weight:600;
  display:flex;align-items:center;justify-content:center;
}
.prob-freeze-step__text{
  font-size:.8125rem;font-weight:300;line-height:1.9;
  color:var(--ink);letter-spacing:.02em;
}
.prob-freeze-step__warn{
  display:block;font-weight:500;color:var(--danger);margin-top:.25rem;
}

/* ============================================================
   PROB-TEMP: S6 水道屋 vs ガス屋
   ============================================================ */
.prob-who{margin-top:1.5rem}
.prob-who-block{
  border-radius:12px;padding:1.25rem 1.25rem 1.25rem 1.5rem;
  margin-bottom:1rem;
}
.prob-who-block:last-child{margin-bottom:0}
.prob-who-block--gas{
  border-left:3px solid var(--warn);background:#FFF7ED;
}
.prob-who-block--plumber{
  border-left:3px solid var(--water);background:var(--water-breath);
}
.prob-who-block--unsure{
  border-left:3px solid var(--stone);background:var(--silk);
}
.prob-who-block__title{
  font-size:.9375rem;font-weight:600;
  color:var(--ink-deep);margin-bottom:.75rem;letter-spacing:.02em;
}
.prob-who-block__body{
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;
}
.prob-who-block__contact{
  margin-top:.75rem;padding-top:.75rem;
  border-top:1px solid rgba(0,0,0,.06);
  font-size:.8125rem;font-weight:400;
  color:var(--ink);letter-spacing:.02em;line-height:2;
}
.prob-who-block__contact strong{font-weight:600;color:var(--ink-deep)}
.prob-who-block__line-icon{
  width:16px;height:16px;fill:var(--line-green);vertical-align:middle;
}

/* S4セクション末尾CTXリンク */
.prob-temp-section__links{
  font-size:.8125rem;font-weight:300;line-height:2.2;
  color:var(--ink);letter-spacing:.02em;margin-top:1rem;
}

/* ============================================================
   PROB-SMELL: S2 危険トリアージ
   ============================================================ */
.prob-triage{margin-top:1.5rem}
.prob-triage-danger{
  background:var(--danger-bg,#FEF2F2);
  border:2px solid var(--danger);
  border-radius:12px;padding:1.5rem;margin-bottom:1rem;
}
.prob-triage-danger__title{
  font-size:1.0625rem;font-weight:700;
  color:var(--danger);letter-spacing:.02em;margin-bottom:.75rem;
}
.prob-triage-danger__steps{
  counter-reset:triage;
}
.prob-triage-danger__step{
  display:flex;gap:.625rem;align-items:flex-start;
  margin-bottom:.5rem;font-size:.875rem;font-weight:400;
  color:var(--ink-deep);line-height:1.8;letter-spacing:.02em;
}
.prob-triage-danger__step::before{
  counter-increment:triage;
  content:counter(triage);
  flex-shrink:0;width:24px;height:24px;border-radius:50%;
  background:var(--danger);color:var(--white);
  font-family:var(--font-num);font-size:.65rem;font-weight:600;
  display:flex;align-items:center;justify-content:center;
}
.prob-triage-danger__contact{
  margin-top:.75rem;padding-top:.75rem;
  border-top:1px solid rgba(220,38,38,.15);
  font-size:.8125rem;font-weight:400;
  color:var(--ink);line-height:2;letter-spacing:.02em;
}
.prob-triage-danger__contact strong{font-weight:600;color:var(--danger)}

.prob-triage-safe{
  background:var(--safe-bg);
  border-left:3px solid var(--safe);
  border-radius:0 12px 12px 0;
  padding:1rem 1.25rem;
}
.prob-triage-safe__body{
  font-size:.875rem;font-weight:400;
  color:var(--ink);line-height:1.8;letter-spacing:.02em;
}

/* ============================================================
   PROB-SMELL: S4 におい種類別（原因・対処）
   ============================================================ */
.prob-smell{margin-top:1.5rem}
.prob-smell-section{margin-bottom:2.5rem}
.prob-smell-section:last-child{margin-bottom:0}

.prob-smell-section__title{
  font-family:var(--font-mincho);
  font-size:1.125rem;font-weight:500;
  color:var(--ink-deep);letter-spacing:.05em;
  margin-bottom:1rem;padding-bottom:.5rem;
  border-bottom:1px solid var(--mist);
}
.prob-smell-section__level{
  display:inline-block;font-size:.75rem;font-weight:500;
  padding:.25rem .75rem;border-radius:20px;
  margin-bottom:1rem;letter-spacing:.02em;
}
.prob-smell-section__level--safe{
  background:var(--safe-bg);color:var(--safe-deep,#15803d);
}
.prob-smell-section__level--warn{
  background:var(--warn-bg);color:var(--warn-deep,#92400e);
}

.prob-smell-cause{margin-bottom:1rem}
.prob-smell-cause__title{
  font-size:.9375rem;font-weight:600;
  color:var(--ink-deep);margin-bottom:.5rem;letter-spacing:.02em;
}
.prob-smell-cause__body{
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;
}

.prob-smell-fix{
  background:var(--water-breath);border-radius:12px;
  padding:1rem 1.25rem;margin-top:.75rem;margin-bottom:.75rem;
}
.prob-smell-fix__title{
  font-size:.875rem;font-weight:600;
  color:var(--ink-deep);margin-bottom:.5rem;letter-spacing:.02em;
}
.prob-smell-fix__steps{
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;
}

.prob-smell-link{
  font-size:.8125rem;font-weight:300;line-height:2.2;
  color:var(--ink);letter-spacing:.02em;margin-top:.5rem;
}

/* 原因リスト項目（ドット付き） */
.prob-smell-cause__item{
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;
  padding-left:1rem;position:relative;
}
.prob-smell-cause__item::before{
  content:'';position:absolute;left:0;top:.75em;
  width:4px;height:4px;border-radius:50%;
  background:var(--water);
}
.prob-smell-cause__note{
  font-size:.8125rem;font-weight:300;line-height:1.8;
  color:var(--stone);padding-left:1rem;letter-spacing:.02em;
}

/* ============================================================
   PROB-SMELL: S5 異音
   ============================================================ */
.prob-sound{margin-top:1.5rem}
.prob-sound-item{
  margin-bottom:1.5rem;padding-bottom:1.5rem;
  border-bottom:1px solid var(--mist);
}
.prob-sound-item:last-child{border-bottom:none;padding-bottom:0;margin-bottom:0}

.prob-sound-item__level{
  display:inline-block;font-size:.7rem;font-weight:600;
  padding:.2rem .625rem;border-radius:20px;
  margin-bottom:.5rem;letter-spacing:.03em;
}
.prob-sound-item__level--low{
  background:var(--safe-bg);color:var(--safe-deep,#15803d);
}
.prob-sound-item__level--mid{
  background:var(--warn-bg);color:var(--warn-deep,#92400e);
}
.prob-sound-item__name{
  font-size:1.0625rem;font-weight:600;
  color:var(--ink-deep);margin-bottom:.5rem;letter-spacing:.02em;
}
.prob-sound-item__body{
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;
}
.prob-sound-item__fix{
  background:var(--water-breath);border-radius:8px;
  padding:.75rem 1rem;margin-top:.75rem;
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;
}

/* ============================================================
   PROB-SMELL: S6 水の色
   ============================================================ */
.prob-water-color{margin-top:1.5rem}
.prob-water-color-item{
  margin-bottom:1.25rem;padding:1rem 1.25rem;
  border-radius:12px;
}
.prob-water-color-item--red{
  background:#FEF2F2;border-left:3px solid #DC2626;
}
.prob-water-color-item--white{
  background:var(--silk);border-left:3px solid var(--stone);
}
.prob-water-color-item__title{
  font-size:.9375rem;font-weight:600;
  color:var(--ink-deep);margin-bottom:.5rem;letter-spacing:.02em;
}
.prob-water-color-item__body{
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;
}

/* ============================================================
   PROB-LEAK: S2 状態カード（5枚・2列+1フル幅）
   ============================================================ */
.prob-state-grid{
  display:grid;grid-template-columns:repeat(2,1fr);
  gap:.75rem;margin-top:1.5rem;
}
@media(max-width:480px){
  .prob-state-grid{grid-template-columns:1fr}
}
.prob-state-card{
  display:flex;flex-direction:column;
  background:var(--white);border:1px solid var(--mist);
  border-radius:14px;padding:1.25rem;
  cursor:pointer;transition:box-shadow .2s,border-color .2s;
  text-decoration:none;color:inherit;
}
.prob-state-card:hover{
  border-color:var(--water-deep);
  box-shadow:0 4px 16px rgba(0,0,0,.03);
  text-decoration:none;
}
.prob-state-card__desc{
  font-size:.9375rem;font-weight:500;
  color:var(--ink);line-height:1.6;
  letter-spacing:.02em;margin-bottom:.5rem;
}
.prob-state-card__level{
  display:inline-block;font-size:.7rem;font-weight:600;
  padding:.2rem .625rem;border-radius:20px;
  letter-spacing:.03em;align-self:flex-start;
}
.prob-state-card__level--low{
  background:var(--safe-bg);color:var(--safe-deep,#15803d);
}
.prob-state-card__level--mid{
  background:var(--warn-bg);color:var(--warn-deep,#92400e);
}
.prob-state-card__level--high{
  background:#FEF3C7;color:#92400e;
}
.prob-state-card__level--critical{
  background:var(--danger-bg,#FEF2F2);color:var(--danger);
}
.prob-state-card--critical{
  border-left:3px solid var(--danger);
  grid-column:1/-1;
}

/* ============================================================
   PROB-LEAK: S3 深刻度5段階ブロック
   ============================================================ */
.prob-severity{margin-top:1.5rem}
.prob-severity-block{
  margin-bottom:2rem;padding-bottom:2rem;
  border-bottom:1px solid var(--mist);
}
.prob-severity-block:last-child{border-bottom:none;padding-bottom:0;margin-bottom:0}

.prob-severity-block__title{
  font-family:var(--font-mincho);
  font-size:1.125rem;font-weight:500;
  color:var(--ink-deep);letter-spacing:.05em;
  margin-bottom:.75rem;
}
.prob-severity-block__level{
  display:inline-block;font-size:.75rem;font-weight:500;
  padding:.25rem .75rem;border-radius:20px;
  margin-bottom:1rem;letter-spacing:.02em;
}
.prob-severity-block__level--low{
  background:var(--safe-bg);color:var(--safe-deep,#15803d);
}
.prob-severity-block__level--mid{
  background:var(--warn-bg);color:var(--warn-deep,#92400e);
}
.prob-severity-block__level--high{
  background:#FEF3C7;color:#92400e;
}
.prob-severity-block__level--critical{
  background:var(--danger-bg,#FEF2F2);color:var(--danger);
}

.prob-severity-block__state{
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;margin-bottom:.75rem;
}
.prob-severity-block__action{
  margin-bottom:.75rem;
}
.prob-severity-block__action-title{
  font-size:.875rem;font-weight:600;
  color:var(--ink-deep);margin-bottom:.5rem;letter-spacing:.02em;
}
.prob-severity-block__action-body{
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;
}
.prob-severity-block__risk{
  background:var(--water-breath);border-radius:12px;
  padding:1rem 1.25rem;margin-bottom:.75rem;
}
.prob-severity-block__risk-title{
  font-size:.875rem;font-weight:600;
  color:var(--ink-deep);margin-bottom:.5rem;letter-spacing:.02em;
}
.prob-severity-block__risk-body{
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;
}
.prob-severity-block__next{
  font-size:.8125rem;font-weight:300;line-height:2.2;
  color:var(--ink);letter-spacing:.02em;
}

/* S3-E 緊急ブロック */
.prob-severity-block--critical{
  border:2px solid var(--danger);border-radius:12px;
  padding:1.5rem;margin-bottom:2rem;
}
.prob-severity-block--critical .prob-severity-block__action{
  counter-reset:sev-step;
}
.prob-severity-block--critical .prob-severity-block__action-step{
  display:flex;gap:.625rem;align-items:flex-start;
  margin-bottom:.5rem;font-size:.875rem;font-weight:400;
  color:var(--ink-deep);line-height:1.8;letter-spacing:.02em;
}
.prob-severity-block--critical .prob-severity-block__action-step::before{
  counter-increment:sev-step;
  content:counter(sev-step);
  flex-shrink:0;width:24px;height:24px;border-radius:50%;
  background:var(--danger);color:var(--white);
  font-family:var(--font-num);font-size:.65rem;font-weight:600;
  display:flex;align-items:center;justify-content:center;
}

/* ============================================================
   PROB-LEAK: S4 応急処置
   ============================================================ */
.prob-firstaid{margin-top:1.5rem}
.prob-firstaid-item{
  display:flex;gap:.75rem;align-items:flex-start;
  margin-bottom:1.25rem;
}
.prob-firstaid-item__num{
  flex-shrink:0;width:28px;height:28px;border-radius:50%;
  background:var(--water-deep);color:var(--white);
  font-family:var(--font-num);font-size:.7rem;font-weight:600;
  display:flex;align-items:center;justify-content:center;
}
.prob-firstaid-item__content{flex:1}
.prob-firstaid-item__title{
  font-size:.9375rem;font-weight:600;
  color:var(--ink-deep);margin-bottom:.375rem;letter-spacing:.02em;
}
.prob-firstaid-item__body{
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;
}

/* ============================================================
   PROB-LEAK: S5 メーター確認
   ============================================================ */
.prob-meter{margin-top:1.5rem}
.prob-meter-step{
  display:flex;gap:.75rem;align-items:flex-start;
  margin-bottom:1rem;
}
.prob-meter-step__num{
  flex-shrink:0;width:28px;height:28px;border-radius:50%;
  background:var(--water-deep);color:var(--white);
  font-family:var(--font-num);font-size:.7rem;font-weight:600;
  display:flex;align-items:center;justify-content:center;
}
.prob-meter-step__body{
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;flex:1;
}
.prob-meter-result{
  padding:1rem 1.25rem;border-radius:0 12px 12px 0;
  margin-top:.5rem;margin-bottom:.5rem;
}
.prob-meter-result--leak{
  border-left:3px solid var(--warn);background:var(--warn-bg);
}
.prob-meter-result--ok{
  border-left:3px solid var(--safe);background:var(--safe-bg);
}
.prob-meter-result__body{
  font-size:.8125rem;font-weight:400;line-height:1.9;
  color:var(--ink);letter-spacing:.02em;
}

/* ============================================================
   PROB-LEAK: S6 賃貸・マンション
   ============================================================ */
.prob-building{margin-top:1.5rem}
.prob-building-case{
  background:var(--white);border:1px solid var(--mist);
  border-radius:12px;padding:1.25rem;margin-bottom:1rem;
}
.prob-building-case:last-child{margin-bottom:0}
.prob-building-case--urgent{
  border-left:3px solid var(--danger);
}
.prob-building-case__title{
  font-size:.9375rem;font-weight:600;
  color:var(--ink-deep);margin-bottom:.75rem;letter-spacing:.02em;
}
.prob-building-case__first{
  background:var(--water-breath);font-weight:500;
  padding:.75rem;border-radius:8px;margin-bottom:.75rem;
  font-size:.8125rem;color:var(--ink-deep);line-height:1.8;
  letter-spacing:.02em;
}
.prob-building-case__body{
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;
}

/* ============================================================
   PROB-LEAK: S7 原因の可能性
   ============================================================ */
.prob-causes{margin-top:1.5rem}
.prob-causes-group{margin-bottom:1.5rem}
.prob-causes-group:last-child{margin-bottom:0}
.prob-causes-group__title{
  font-size:.9375rem;font-weight:600;
  color:var(--ink-deep);margin-bottom:.5rem;letter-spacing:.02em;
}
.prob-causes-group__item{
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;
  padding-left:1rem;position:relative;margin-bottom:.25rem;
}
.prob-causes-group__item::before{
  content:'';position:absolute;left:0;top:.75em;
  width:4px;height:4px;border-radius:50%;
  background:var(--water);
}
.prob-causes-group__note{
  font-size:.8125rem;font-weight:300;line-height:1.8;
  color:var(--stone);padding-left:1rem;letter-spacing:.02em;
}

/* ============================================================
   PROB-CLOG: S2 溢れチェック分岐
   ============================================================ */
.prob-urgent{margin-top:1.5rem}
.prob-urgent-branch{
  border-radius:0 12px 12px 0;padding:1.25rem;margin-bottom:1rem;
}
.prob-urgent-branch--active{
  background:var(--danger-bg,#FEF2F2);
  border-left:3px solid var(--danger);
}
.prob-urgent-branch--calm{
  background:var(--safe-bg);
  border-left:3px solid var(--safe);
}
.prob-urgent-branch__title{
  font-size:.9375rem;font-weight:600;
  color:var(--ink-deep);margin-bottom:.75rem;letter-spacing:.02em;
}
.prob-urgent-branch__body{
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;
}
.prob-urgent-warning{
  font-weight:600;color:var(--danger);
}

/* ============================================================
   PROB-CLOG: S4 DIY判定フロー
   ============================================================ */
.prob-diy{margin-top:1.5rem}
.prob-diy-section{margin-bottom:2.5rem}
.prob-diy-section:last-child{margin-bottom:0}

.prob-diy-section__title{
  font-family:var(--font-mincho);
  font-size:1.125rem;font-weight:500;
  color:var(--ink-deep);letter-spacing:.05em;
  margin-bottom:1rem;padding-bottom:.5rem;
  border-bottom:1px solid var(--mist);
}

.prob-diy-flow{margin-top:1rem}
.prob-diy-step{margin-bottom:1.25rem}
.prob-diy-step__title{
  font-size:.9375rem;font-weight:600;
  color:var(--ink-deep);margin-bottom:.5rem;letter-spacing:.02em;
}
.prob-diy-step__body{
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;
}

.prob-diy-branch{
  border-radius:0 12px 12px 0;
  padding:.75rem 1rem;margin-top:.5rem;margin-bottom:.5rem;
}
.prob-diy-branch--ok{
  border-left:3px solid var(--safe);background:var(--safe-bg);
}
.prob-diy-branch--caution{
  border-left:3px solid var(--warn);background:var(--warn-bg);
}
.prob-diy-branch--stop{
  border-left:3px solid var(--danger);background:var(--danger-bg,#FEF2F2);
}
.prob-diy-branch__body{
  font-size:.8125rem;font-weight:400;line-height:1.9;
  color:var(--ink);letter-spacing:.02em;
}

/* DIY判定まとめ表 */
.prob-diy-summary{
  width:100%;border-collapse:collapse;margin-top:1rem;
  font-size:.8125rem;letter-spacing:.02em;
}
.prob-diy-summary th{
  background:var(--silk);font-weight:600;color:var(--ink-deep);
  padding:.5rem .75rem;text-align:left;border-bottom:1px solid var(--mist);
}
.prob-diy-summary td{
  padding:.5rem .75rem;border-bottom:1px solid var(--mist);
  font-weight:300;color:var(--ink);line-height:1.7;
}
.prob-diy-summary .diy-ok{color:var(--safe-deep,#15803d);font-weight:500}
.prob-diy-summary .diy-caution{color:var(--warn-deep,#92400e);font-weight:500}
.prob-diy-summary .diy-stop{color:var(--danger);font-weight:500}

/* ============================================================
   PROB-CLOG: S5 NGブロック
   ============================================================ */
.prob-ng{margin-top:1.5rem}
.prob-ng-item{
  margin-bottom:1.5rem;padding-bottom:1.5rem;
  border-bottom:1px solid var(--mist);
}
.prob-ng-item:last-child{border-bottom:none;padding-bottom:0;margin-bottom:0}

.prob-ng-item__num{
  display:inline-block;
  background:var(--danger-bg,#FEF2F2);color:var(--danger);
  font-family:var(--font-num);font-size:.7rem;font-weight:700;
  padding:.2rem .625rem;border-radius:20px;
  margin-bottom:.5rem;letter-spacing:.03em;
}
.prob-ng-item__title{
  font-size:1.0625rem;font-weight:600;
  color:var(--ink-deep);margin-bottom:.5rem;letter-spacing:.02em;
}
.prob-ng-item__body{
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;
}
.prob-ng-item__reason{
  background:var(--water-breath);border-radius:8px;
  padding:.75rem 1rem;margin-top:.75rem;
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;
}

/* ============================================================
   PROB-CLOG: S6 繰り返し
   ============================================================ */
.prob-recurring{margin-top:1.5rem}
.prob-recurring__body{
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;margin-bottom:1rem;
}
.prob-recurring__next{
  font-size:.8125rem;font-weight:300;line-height:2.2;
  color:var(--ink);letter-spacing:.02em;
}

/* ============================================================
   PROB-AGING: S2 サインカード（6枚）
   ============================================================ */
.prob-sign-grid{
  display:grid;grid-template-columns:repeat(2,1fr);
  gap:.75rem;margin-top:1.5rem;
}
@media(max-width:480px){
  .prob-sign-grid{grid-template-columns:1fr}
}
.prob-sign-card{
  display:flex;flex-direction:column;
  background:var(--white);border:1px solid var(--mist);
  border-radius:14px;padding:1.25rem;
  cursor:pointer;transition:box-shadow .2s,border-color .2s;
  text-decoration:none;color:inherit;
}
.prob-sign-card:hover{
  border-color:var(--water-deep);
  box-shadow:0 4px 16px rgba(0,0,0,.03);
  text-decoration:none;
}
.prob-sign-card__text{
  font-size:.9375rem;font-weight:500;
  color:var(--ink);line-height:1.6;letter-spacing:.02em;
  margin-bottom:.25rem;
}
.prob-sign-card__sub{
  font-size:.8125rem;font-weight:300;
  color:var(--stone);line-height:1.6;letter-spacing:.02em;
}
.prob-sign-card--preventive{
  border-style:dashed;border-color:var(--stone);
}

/* ============================================================
   PROB-AGING: S3 劣化サインブロック
   ============================================================ */
.prob-aging-sign{margin-top:1.5rem}
.prob-aging-sign-block{
  margin-bottom:2rem;padding-bottom:2rem;
  border-bottom:1px solid var(--mist);
}
.prob-aging-sign-block:last-child{border-bottom:none;padding-bottom:0;margin-bottom:0}

.prob-aging-sign-block__title{
  font-family:var(--font-mincho);
  font-size:1.125rem;font-weight:500;
  color:var(--ink-deep);letter-spacing:.05em;
  margin-bottom:.75rem;
}
.prob-aging-sign-block__level{
  display:inline-block;font-size:.75rem;font-weight:500;
  padding:.25rem .75rem;border-radius:20px;
  margin-bottom:1rem;letter-spacing:.02em;
}
.prob-aging-sign-block__what{
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;margin-bottom:.75rem;
}
.prob-aging-sign-block__check{
  background:var(--water-breath);border-radius:12px;
  padding:1rem 1.25rem;margin-bottom:.75rem;
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;
}
.prob-aging-sign-block__check-title{
  font-size:.875rem;font-weight:600;
  color:var(--ink-deep);margin-bottom:.5rem;letter-spacing:.02em;
}
.prob-aging-sign-block__next{
  font-size:.8125rem;font-weight:300;line-height:2.2;
  color:var(--ink);letter-spacing:.02em;
}

/* ============================================================
   PROB-AGING: S4 早見表
   ============================================================ */
.prob-aging-table{margin-top:1.5rem}
.prob-aging-table__intro{
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;margin-bottom:1.5rem;
}
.prob-aging-table__grid{
  width:100%;border-collapse:collapse;margin-bottom:1rem;
  font-size:.8125rem;letter-spacing:.02em;
}
.prob-aging-table__grid th{
  background:var(--silk);font-weight:600;color:var(--ink-deep);
  padding:.5rem .625rem;text-align:left;
  border-bottom:1px solid var(--mist);
}
.prob-aging-table__grid td{
  padding:.5rem .625rem;border-bottom:1px solid var(--mist);
  font-weight:300;color:var(--ink);line-height:1.7;
  vertical-align:top;
}
.prob-aging-table__label{
  font-size:.9375rem;font-weight:600;
  color:var(--ink-deep);margin-bottom:.5rem;
  margin-top:1.5rem;letter-spacing:.02em;
}
.prob-aging-table__note{
  font-size:.8125rem;font-weight:300;font-style:italic;
  color:var(--stone);line-height:1.8;letter-spacing:.02em;
  margin-top:1rem;
}
/* モバイルカード化 */
@media(max-width:600px){
  .prob-aging-table__grid,
  .prob-aging-table__grid thead,
  .prob-aging-table__grid tbody,
  .prob-aging-table__grid tr,
  .prob-aging-table__grid th,
  .prob-aging-table__grid td{
    display:block;
  }
  .prob-aging-table__grid thead{display:none}
  .prob-aging-table__grid tr{
    background:var(--white);border:1px solid var(--mist);
    border-radius:12px;padding:.75rem;margin-bottom:.75rem;
  }
  .prob-aging-table__grid td{
    border-bottom:none;padding:.25rem 0;
  }
  .prob-aging-table__grid td::before{
    content:attr(data-label);
    display:block;font-weight:600;color:var(--ink-deep);
    font-size:.7rem;margin-bottom:.125rem;
  }
}

/* ============================================================
   PROB-AGING: S5 簡易チェック
   ============================================================ */
.prob-aging-selfcheck{margin-top:1.5rem}
.prob-aging-selfcheck-item{
  display:flex;gap:.75rem;align-items:flex-start;
  margin-bottom:1.25rem;
}
.prob-aging-selfcheck-item__num{
  flex-shrink:0;width:28px;height:28px;border-radius:50%;
  background:var(--water-deep);color:var(--white);
  font-family:var(--font-num);font-size:.7rem;font-weight:600;
  display:flex;align-items:center;justify-content:center;
}
.prob-aging-selfcheck-item__content{flex:1}
.prob-aging-selfcheck-item__title{
  font-size:.9375rem;font-weight:600;
  color:var(--ink-deep);margin-bottom:.375rem;letter-spacing:.02em;
}
.prob-aging-selfcheck-item__body{
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;
}

/* ============================================================
   PROB-AGING: S6 対応の段階
   ============================================================ */
.prob-aging-options{margin-top:1.5rem}
.prob-aging-options-step{margin-bottom:1.25rem}
.prob-aging-options-step__num{
  font-family:var(--font-num);font-size:.7rem;font-weight:700;
  color:var(--water-deep);letter-spacing:.03em;
  margin-bottom:.25rem;
}
.prob-aging-options-step__title{
  font-size:.9375rem;font-weight:600;
  color:var(--ink-deep);margin-bottom:.375rem;letter-spacing:.02em;
}
.prob-aging-options-step__body{
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;
}
.prob-aging-options-note{
  background:var(--water-breath);border-radius:12px;
  padding:1rem 1.25rem;margin-top:1rem;
  font-size:.8125rem;font-weight:400;line-height:2;
  color:var(--ink-deep);letter-spacing:.02em;
}

/* ============================================================
   PROB-NOWATER: S2 範囲カード（3枚）
   ============================================================ */
.prob-range-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:.75rem;margin-top:1.5rem;
}
@media(max-width:540px){
  .prob-range-grid{grid-template-columns:1fr}
}
.prob-range-card{
  display:flex;flex-direction:column;
  background:var(--white);border:1px solid var(--mist);
  border-radius:14px;padding:1.25rem;
  cursor:pointer;transition:box-shadow .2s,border-color .2s;
  text-decoration:none;color:inherit;
}
.prob-range-card:hover{
  border-color:var(--water-deep);
  box-shadow:0 4px 16px rgba(0,0,0,.03);
  text-decoration:none;
}
.prob-range-card__name{
  font-size:.9375rem;font-weight:600;
  color:var(--ink-deep);margin-bottom:.375rem;letter-spacing:.02em;
}
.prob-range-card__desc{
  font-size:.8125rem;font-weight:300;
  color:var(--stone);line-height:1.6;letter-spacing:.02em;
}

/* ============================================================
   PROB-NOWATER: S3 消去法フロー
   ============================================================ */
.prob-diag{margin-top:1.5rem}
.prob-diag-section{
  margin-bottom:2.5rem;padding-bottom:2rem;
  border-bottom:1px solid var(--mist);
}
.prob-diag-section:last-child{border-bottom:none;padding-bottom:0;margin-bottom:0}

.prob-diag-section__title{
  font-family:var(--font-mincho);
  font-size:1.125rem;font-weight:500;
  color:var(--ink-deep);letter-spacing:.05em;
  margin-bottom:1rem;
}

.prob-diag-check{margin-bottom:1.5rem}
.prob-diag-check__title{
  font-size:.9375rem;font-weight:600;
  color:var(--ink-deep);margin-bottom:.5rem;letter-spacing:.02em;
}
.prob-diag-check__body{
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;margin-bottom:.5rem;
}

.prob-diag-result{
  border-radius:0 12px 12px 0;
  padding:.75rem 1rem;margin-top:.5rem;margin-bottom:.5rem;
}
.prob-diag-result--resolved{
  border-left:3px solid var(--safe);background:var(--safe-bg);
}
.prob-diag-result--next{
  border-left:3px solid var(--water);background:var(--water-breath);
}
.prob-diag-result--branch{
  border-left:3px solid #8B5CF6;background:#F5F3FF;
}
.prob-diag-result__body{
  font-size:.8125rem;font-weight:400;line-height:1.9;
  color:var(--ink);letter-spacing:.02em;
}

/* ============================================================
   PROB-NOWATER: S4 凍結
   ============================================================ */
.prob-freeze{margin-top:1.5rem}
.prob-freeze-conditions{
  background:var(--water-breath);border-radius:12px;
  padding:1rem 1.25rem;margin-bottom:1rem;
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;
}
.prob-freeze-conditions__title{
  font-size:.875rem;font-weight:600;
  color:var(--ink-deep);margin-bottom:.5rem;letter-spacing:.02em;
}
.prob-freeze-warning{
  border-left:3px solid var(--warn);border-radius:0 12px 12px 0;
  background:var(--warn-bg);padding:.75rem 1rem;
  margin-top:.5rem;margin-bottom:.5rem;
  font-size:.8125rem;font-weight:500;line-height:1.9;
  color:var(--ink-deep);letter-spacing:.02em;
}

/* ============================================================
   PROB-STOP: S2 場所カード（3枚）
   ============================================================ */
.prob-loc-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:.75rem;margin-top:1.5rem;
}
@media(max-width:540px){
  .prob-loc-grid{grid-template-columns:1fr}
}
.prob-loc-card{
  display:flex;flex-direction:column;
  background:var(--white);border:1px solid var(--mist);
  border-radius:14px;padding:1.25rem;
  cursor:pointer;transition:box-shadow .2s,border-color .2s;
  text-decoration:none;color:inherit;
}
.prob-loc-card:hover{
  border-color:var(--water-deep);
  box-shadow:0 4px 16px rgba(0,0,0,.03);
  text-decoration:none;
}
.prob-loc-card__name{
  font-size:.9375rem;font-weight:600;
  color:var(--ink-deep);margin-bottom:.375rem;letter-spacing:.02em;
}
.prob-loc-card__desc{
  font-size:.8125rem;font-weight:300;
  color:var(--stone);line-height:1.6;letter-spacing:.02em;
}

/* ============================================================
   PROB-STOP: S3 止め方フロー
   ============================================================ */
.prob-how{margin-top:1.5rem}
.prob-how-section{
  margin-bottom:2.5rem;padding-bottom:2rem;
  border-bottom:1px solid var(--mist);
}
.prob-how-section:last-child{border-bottom:none;padding-bottom:0;margin-bottom:0}

.prob-how-section__title{
  font-family:var(--font-mincho);
  font-size:1.125rem;font-weight:500;
  color:var(--ink-deep);letter-spacing:.05em;
  margin-bottom:1rem;
}

.prob-step{
  display:flex;gap:.75rem;align-items:flex-start;
  margin-bottom:1.25rem;
}
.prob-step__num{
  flex-shrink:0;width:24px;height:24px;border-radius:50%;
  background:var(--water-deep);color:var(--white);
  font-family:var(--font-num);font-size:.65rem;font-weight:600;
  display:flex;align-items:center;justify-content:center;
  margin-top:.15rem;
}
.prob-step__content{flex:1}
.prob-step__title{
  font-size:.9375rem;font-weight:600;
  color:var(--ink-deep);margin-bottom:.375rem;letter-spacing:.02em;
}
.prob-step__body{
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;
}

.prob-note{
  background:var(--water-breath);border-radius:12px;
  padding:1rem 1.25rem;margin-top:.75rem;margin-bottom:.75rem;
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;
}
.prob-note--warn{
  background:var(--warn-bg);
  border-left:3px solid var(--warn);border-radius:0 12px 12px 0;
  font-weight:400;
}
.prob-cross-link{
  display:inline-block;margin-top:.5rem;
  font-size:.8125rem;font-weight:600;
  color:var(--water-deep);letter-spacing:.02em;
}

/* ============================================================
   PROB-STOP: S4 止まった後の判断
   ============================================================ */
.prob-next{margin-top:1.5rem}
.prob-next-case{
  background:var(--white);border:1px solid var(--mist);
  border-radius:12px;padding:1.25rem;margin-bottom:1rem;
}
.prob-next-case:last-child{margin-bottom:0}
.prob-next-case--urgent{border-left:3px solid var(--warn)}
.prob-next-case__title{
  font-size:.9375rem;font-weight:600;
  color:var(--ink-deep);margin-bottom:.5rem;letter-spacing:.02em;
}
.prob-next-case__body{
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;
}
.prob-next-case__links{
  display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem;
  font-size:.8125rem;font-weight:300;line-height:1.8;
  color:var(--ink);letter-spacing:.02em;
}

/* ============================================================
   PROB-STOP: S5 最終手段
   ============================================================ */
.prob-last-resort{margin-top:1.5rem}
.prob-last-resort__body{
  font-size:.8125rem;font-weight:300;line-height:2;
  color:var(--ink);letter-spacing:.02em;margin-bottom:1rem;
}

/* ============================================================
   PROB-STOP: S6 原因の可能性（個別アイテム）
   ============================================================ */
.prob-cause-item{
  padding:.75rem 1rem;margin-bottom:.75rem;
  border-left:3px solid var(--water);border-radius:0 12px 12px 0;
}
.prob-cause-item__title{
  font-size:.875rem;font-weight:500;
  color:var(--ink-deep);margin-bottom:.25rem;letter-spacing:.02em;
}
.prob-cause-item__desc{
  font-size:.8125rem;font-weight:300;line-height:1.9;
  color:var(--stone);letter-spacing:.02em;
}

/* ============================================================
   ACCESSIBILITY
   ============================================================ */
:focus-visible{outline:2px solid var(--water-deep);outline-offset:2px}

/* ============================================================
   REDUCED MOTION
   ============================================================ */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
}
