/* ぐうたららいふ 記事共通スタイル */
/* nitolife.com */

/* ベース */
.article-wrap {
  font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Meiryo', sans-serif;
  font-size: 16px;
  line-height: 1.9;
  color: #333;
  max-width: 780px;
  margin: 0 auto;
}
.article-wrap p {
  margin: 0 0 1.4em;
}
.article-wrap p:empty {
  display: none;
  margin: 0;
  height: 0;
  min-height: 0;
  padding: 0;
  overflow: hidden;
}
/* WordPressが挿入する空白のみのpタグ対策 */
.article-wrap .cause-card > p,
.article-wrap .sim-card > p,
.article-wrap .rank-card > p {
  margin: 0;
  padding: 0;
  line-height: 0;
  height: 0;
  overflow: hidden;
}
.article-wrap .cause-card > p:not(:empty),
.article-wrap .sim-card > p:not(:empty),
.article-wrap .rank-card > p:not(:empty) {
  line-height: 1.9;
  height: auto;
  overflow: visible;
}
.article-wrap ul,
.article-wrap ol {
  padding-left: 1.6em;
  margin: 0.5em 0 1.2em;
}
.article-wrap li {
  margin-bottom: 0.5em;
}
.article-wrap strong {
  font-weight: 700;
}
.article-wrap hr {
  border: none;
  border-top: 1px solid #eee;
  margin: 2em 0;
}

/* 見出し */
.article-wrap h2 {
  font-size: 1.35em;
  font-weight: 700;
  border-left: 5px solid #e74c3c;
  padding: 6px 0 6px 14px;
  margin: 2.2em 0 1em;
  background: #fafafa;
}
.article-wrap h3 {
  font-size: 1.15em;
  font-weight: 700;
  border-bottom: 2px solid #e74c3c;
  padding-bottom: 5px;
  margin: 2em 0 0.9em;
}

/* 更新日 */
.update-date {
  display: inline-block;
  font-size: 0.82em;
  color: #888;
  margin-bottom: 1.2em;
}

/* ボックス類 */
.lead-box {
  background: #fff8e1;
  border-left: 4px solid #f39c12;
  padding: 16px 20px;
  border-radius: 0 6px 6px 0;
  margin: 1.5em 0;
}
.info-box {
  background: #f0f7ff;
  border: 1px solid #b3d4ff;
  border-radius: 8px;
  padding: 18px 22px;
  margin: 1.5em 0;
}
.info-box .info-title {
  font-weight: 700;
  color: #1a6fbf;
  margin-bottom: 8px;
  font-size: 0.95em;
}
.warn-box {
  background: #fff5f5;
  border: 1px solid #f5c6c6;
  border-left: 4px solid #e74c3c;
  border-radius: 0 8px 8px 0;
  padding: 16px 20px;
  margin: 1.5em 0;
}
.warn-box .warn-title {
  font-weight: 700;
  color: #c0392b;
  margin-bottom: 6px;
}
.ok-box {
  background: #f0fff4;
  border: 1px solid #b7ebc8;
  border-left: 4px solid #27ae60;
  border-radius: 0 8px 8px 0;
  padding: 16px 20px;
  margin: 1.5em 0;
}
.ok-box .ok-title {
  font-weight: 700;
  color: #1a8a3c;
  margin-bottom: 6px;
}

/* テーブル */
.compare-table {
  width: 100%;
  border-collapse: collapse;
  margin: 1em 0;
  font-size: 0.9em;
}
.compare-table th {
  background: #2c3e50;
  color: #fff;
  padding: 10px 12px;
  text-align: center;
  font-weight: 700;
}
.compare-table td {
  padding: 10px 12px;
  border: 1px solid #e0e0e0;
  text-align: center;
  vertical-align: middle;
}
.compare-table tr:nth-child(even) td {
  background: #f8f9fa;
}
.compare-table .label {
  text-align: left;
  font-weight: 700;
  background: #f4f4f4;
}
.speed-table {
  width: 100%;
  border-collapse: collapse;
  margin: 1em 0;
  font-size: 0.9em;
}
.speed-table th {
  background: #2c3e50;
  color: #fff;
  padding: 9px 12px;
  text-align: center;
  font-weight: 700;
}
.speed-table td {
  padding: 9px 12px;
  border: 1px solid #e0e0e0;
  text-align: center;
}
.speed-table tr:nth-child(even) td {
  background: #f8f9fa;
}

/* ランキングカード */
.rank-card {
  border: 1px solid #e0e0e0;
  border-radius: 10px;
  padding: 22px 24px;
  margin: 1.8em 0;
  background: #fff;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}
.rank-label {
  display: inline-block;
  background: #e74c3c;
  color: #fff;
  font-weight: 700;
  font-size: 0.88em;
  padding: 3px 10px;
  border-radius: 4px;
  margin-bottom: 6px;
}
.rank-label.r2 { background: #7f8c8d; }
.rank-label.r3 { background: #c97c2e; }
.rank-label.r4 { background: #3498db; }
.rank-label.r5 { background: #27ae60; }
.rank-price {
  display: inline-block;
  background: #fff0f0;
  color: #c0392b;
  font-weight: 700;
  font-size: 0.9em;
  padding: 4px 12px;
  border-radius: 20px;
  margin: 8px 0 12px;
  border: 1px solid #f5c6c6;
}

/* SIMカード */
.sim-card {
  border-radius: 10px;
  padding: 20px 22px;
  margin: 1.5em 0;
}
.sim-card.rakuten { border: 2px solid #e74c3c; background: #fff8f8; }
.sim-card.ahamo   { border: 2px solid #2c3e50; background: #f8f8ff; }
.sim-card.uq      { border: 2px solid #27ae60; background: #f8fff8; }
.sim-card.ym      { border: 2px solid #e74c3c; background: #fff8f8; }
.sim-card.povo    { border: 2px solid #3498db; background: #f8fbff; }
.sim-label {
  display: inline-block;
  color: #fff;
  font-weight: 700;
  font-size: 0.88em;
  padding: 4px 14px;
  border-radius: 20px;
  margin-bottom: 10px;
}
.sim-label.rakuten { background: #e74c3c; }
.sim-label.ahamo   { background: #2c3e50; }
.sim-label.uq      { background: #27ae60; }
.sim-label.ym      { background: #e74c3c; }
.sim-label.povo    { background: #3498db; }

/* カード・ボックス内のh3/h4リセット（インラインstyle除去対応） */
.cause-card h3,
.sim-card h3,
.rank-card h3,
.summary-box h3,
.verdict h3,
.price-card h4,
.price-sim h4 {
  border: none !important;
  padding: 0 !important;
}
.cause-card h3  { margin: 4px 0 8px !important; border: none !important; border-left: none !important; padding: 0 !important; }
.sim-card h3    { margin: 6px 0 12px !important; border: none !important; border-left: none !important; padding: 0 !important; }
.rank-card h3   { margin: 4px 0 6px !important; border: none !important; border-left: none !important; padding: 0 !important; }
/* 詳細度を上げたバージョン（テーマCSS干渉対策） */
.article-wrap .cause-card h3,
.article-wrap .sim-card h3,
.article-wrap .rank-card h3 {
  border: none !important;
  border-left: none !important;
  border-bottom: none !important;
  border-top: none !important;
  border-right: none !important;
  padding: 0 !important;
  background: none !important;
}
.h3-style03 .article-wrap .cause-card h3::before,
.h3-style03 .article-wrap .sim-card h3::before,
.h3-style03 .article-wrap .rank-card h3::before,
.article-wrap .cause-card h3::before,
.article-wrap .sim-card h3::before,
.article-wrap .rank-card h3::before {
  display: none !important;
  content: none !important;
  border: none !important;
  background: none !important;
  width: 0 !important;
}
.summary-box h3 { margin: 0 0 0.8em; color: #c0392b; }
.verdict h3     { margin: 0 0 0.6em; color: #c0392b; }
.price-card h4  { margin: 0 0 10px; font-size: 0.95em; color: #333; }
.price-sim h4   { margin: 0 0 10px; font-size: 0.95em; color: #333; }

/* 原因カード */
.cause-card {
  border: 1px solid #e0e0e0;
  border-radius: 10px;
  padding: 20px 22px;
  margin: 1.5em 0;
  background: #fff;
  box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}
.cause-num {
  display: inline-block;
  background: #e74c3c;
  color: #fff;
  font-weight: 700;
  font-size: 0.82em;
  padding: 3px 12px;
  border-radius: 20px;
  margin-bottom: 8px;
}

/* pros/cons グリッド */
.pros-cons {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin: 1em 0;
}
@media (max-width: 600px) {
  .pros-cons { grid-template-columns: 1fr; }
}
.pros {
  background: #f0fff4;
  border: 1px solid #b7ebc8;
  border-radius: 6px;
  padding: 12px 14px;
}
.cons {
  background: #fff5f5;
  border: 1px solid #ffc8c8;
  border-radius: 6px;
  padding: 12px 14px;
}
.pros p,
.cons p {
  font-weight: 700;
  font-size: 0.88em;
  margin: 0 0 6px;
}
.pros p { color: #1a8a3c; }
.cons p { color: #c0392b; }
.pros ul,
.cons ul {
  margin: 0;
  padding-left: 1.3em;
  font-size: 0.9em;
}

/* ステップリスト */
.step-list {
  list-style: none;
  padding: 0;
  margin: 1em 0;
}
.step-list li {
  display: flex;
  gap: 14px;
  margin-bottom: 1.1em;
  align-items: flex-start;
}
.step-num {
  flex-shrink: 0;
  width: 30px;
  height: 30px;
  background: #e74c3c;
  color: #fff;
  font-weight: 700;
  font-size: 0.88em;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.step-content strong {
  display: block;
  margin-bottom: 2px;
}

/* チェックリスト */
.check-list {
  list-style: none;
  padding: 0;
  margin: 1em 0;
}
.check-list li {
  display: flex;
  gap: 12px;
  margin-bottom: 1em;
  align-items: flex-start;
}
.check-num {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  background: #e74c3c;
  color: #fff;
  font-weight: 700;
  font-size: 0.85em;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.check-content strong {
  display: block;
  margin-bottom: 2px;
}

/* エラーコード */
.error-code {
  background: #f4f4f4;
  border: 1px solid #ddd;
  border-left: 4px solid #3498db;
  border-radius: 0 6px 6px 0;
  padding: 12px 16px;
  margin: 0.8em 0;
  font-size: 0.9em;
}
.error-code .code {
  font-family: monospace;
  font-weight: 700;
  color: #2980b9;
  font-size: 1em;
  display: block;
  margin-bottom: 4px;
}

/* タイプボックス */
.type-box {
  background: #f9f9f9;
  border-left: 4px solid #3498db;
  padding: 14px 18px;
  border-radius: 0 6px 6px 0;
  margin: 1.2em 0;
}
.type-box .type-label {
  font-weight: 700;
  color: #2980b9;
  font-size: 0.95em;
  margin-bottom: 6px;
}

/* 料金シミュレーション */
.price-card {
  background: #fff;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  padding: 16px 20px;
  margin: 1em 0;
}
.price-card h4 {
  font-size: 0.95em;
  font-weight: 700;
  margin: 0 0 10px;
  color: #333;
}
.price-sim {
  background: #fff;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  padding: 16px 20px;
  margin: 1em 0;
}
.price-sim h4 {
  font-size: 0.95em;
  font-weight: 700;
  margin: 0 0 10px;
  color: #333;
}
.price-highlight {
  font-size: 1.2em;
  font-weight: 700;
  color: #e74c3c;
}

/* SIMタグ */
.sim-tag {
  display: inline-block;
  font-size: 11px;
  padding: 2px 8px;
  border-radius: 10px;
  font-weight: 700;
  margin-left: 6px;
  vertical-align: middle;
}
.tag-a { background: #fdecea; color: #c0392b; }
.tag-p { background: #ebf5fb; color: #1a6fbf; }

/* FAQ */
.faq-item {
  margin: 1.2em 0;
}
.faq-q {
  background: #2c3e50;
  color: #fff;
  padding: 10px 16px;
  border-radius: 6px 6px 0 0;
  font-weight: 700;
  font-size: 0.95em;
}
.faq-a {
  background: #f8f9fa;
  border: 1px solid #ddd;
  border-top: none;
  padding: 12px 16px;
  border-radius: 0 0 6px 6px;
  font-size: 0.95em;
}

/* まとめボックス */
.summary-box {
  background: #fafafa;
  border: 2px solid #e74c3c;
  border-radius: 10px;
  padding: 22px 24px;
  margin: 2em 0;
}
.summary-box h3 {
  border: none;
  padding: 0;
  margin: 0 0 0.8em;
  color: #c0392b;
}

/* 判定ボックス */
.verdict {
  background: linear-gradient(135deg, #fff0f0, #fff8f0);
  border: 2px solid #e74c3c;
  border-radius: 10px;
  padding: 20px 22px;
  margin: 1.5em 0;
}
.verdict-title {
  font-weight: 700;
  color: #c0392b;
  font-size: 1em;
  margin-bottom: 8px;
}

/* 免責事項 */
.disclaimer {
  font-size: 0.8em;
  color: #999;
  border-top: 1px solid #eee;
  padding-top: 1em;
  margin-top: 2em;
}

/* ボックス内pタグのpadding・marginリセット（テーマCSS干渉対策） */
.article-wrap .ok-box p,
.article-wrap .warn-box p,
.article-wrap .info-box p,
.article-wrap .lead-box p,
.article-wrap .cause-card p,
.article-wrap .sim-card p,
.article-wrap .rank-card p,
.article-wrap .type-box p,
.article-wrap .summary-box p,
.article-wrap .price-card p,
.article-wrap .price-sim p,
.article-wrap .faq-a p {
  padding: 0 !important;
}