
/* =========================================================
   ブログTOP レポート抜粋4枚（静的）
   配色: 濃紺 #0B3C7D / アクセント #FFB300 / LINE #06C755
   ========================================================= */
.fdrg {
  --nv: #0B3C7D;
  --ac: #FFB300;
  --rd: #E8542F;
  --bd: #d8e0ec;
  --bg: #f2f6fb;
  box-sizing: border-box;
  margin: 0 0 24px;
  padding: 24px 20px 20px;
  border: 3px solid var(--nv);
  border-radius: 14px;
  background: #fff;
  color: #333;
  font-size: 15px;
  line-height: 1.7;
}
.fdrg *, .fdrg *::before, .fdrg *::after { box-sizing: border-box; }
.fdrg p, .fdrg ul, .fdrg ol, .fdrg h3 { margin: 0; }

/* ===== ヘッダー ===== */
.fdrg__head { text-align: center; margin-bottom: 20px; }
.fdrg__catch {
  font-size: clamp(18px, 2.6vw, 27px);
  font-weight: 900;
  color: var(--nv);
  letter-spacing: 1px;
  line-height: 1.4;
}
.fdrg__lead {
  margin-top: 4px !important;
  font-size: clamp(15px, 2.2vw, 24px);
  font-weight: 900;
  color: #222;
  line-height: 1.5;
}
.fdrg__lead span { color: var(--nv); }
.fdrg__hand { color: inherit !important; }
.fdrg__note { margin-top: 8px !important; font-size: 12px; color: #777; line-height: 1.5; }

/* ===== スコア帯 ===== */
.fdrg__score {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 20px;
  padding: 14px 18px;
  background: var(--bg);
  border: 1px solid var(--bd);
  border-radius: 10px;
}
.fdrg__score-v {
  flex: 0 0 auto;
  min-width: 118px;
  padding: 10px 14px;
  background: var(--nv);
  border-radius: 8px;
  text-align: center;
}
.fdrg__score-n { font-size: clamp(30px, 4vw, 42px); font-weight: 900; color: #fff; line-height: 1.1; }
.fdrg__score-u { font-size: .42em; font-weight: bold; opacity: .8; }
.fdrg__score-l { font-size: 11.5px; font-weight: bold; color: #fff; margin-top: 2px !important; }
.fdrg__score-t { flex: 1 1 auto; min-width: 0; }
.fdrg__score-h { font-size: clamp(13px, 1.7vw, 16px); font-weight: 900; color: var(--nv); line-height: 1.5; }
.fdrg__score-b { font-size: 12px; color: #555; line-height: 1.7; margin-top: 4px !important; }
.fdrg__score-r { color: var(--rd); }

/* ===== 4枚グリッド ===== */
.fdrg__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
}
.fdrg__item { display: flex; flex-direction: column; }

.fdrg__pnum {
  align-self: flex-start;
  margin-bottom: 6px !important;
  padding: 2px 11px;
  background: var(--nv);
  color: #fff;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .5px;
}

/* --- レポート1ページ分の枠 --- */
.fdrg__page {
  flex: 1;
  padding: 18px 20px 16px;
  background: #fff;
  border: 1px solid var(--bd);
  border-radius: 8px;
  box-shadow: 0 2px 10px rgba(11,60,125,.09);
}

/* --- 中面共通 --- */
.fdp__h {
  font-size: clamp(15px, 1.9vw, 19px);
  font-weight: 900;
  color: var(--nv);
  line-height: 1.45;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--nv);
  margin-bottom: 10px !important;
}
.fdp__desc { font-size: 12.5px; color: #555; line-height: 1.65; margin-bottom: 12px !important; }
.fdp__self { color: var(--nv); }
.fdp__insight, .fdp__action {
  margin-top: 10px !important;
  padding: 9px 12px;
  border-radius: 5px;
  font-size: 12.5px;
  line-height: 1.65;
}
.fdp__insight { background: #eef4fb; border-left: 4px solid var(--nv); }
.fdp__insight b { color: var(--nv); }
.fdp__action { background: #fff7e6; border-left: 4px solid var(--ac); }
.fdp__action b { color: #a06f00; }

/* --- 横棒グラフ --- */
.fdp__chart { padding: 12px; background: var(--bg); border-radius: 7px; }
.fdp__legend { font-size: 11px; color: #555; margin-bottom: 8px; display: flex; align-items: center; gap: 4px; }
.fdp__lg { display: inline-block; width: 11px; height: 11px; border-radius: 2px; }
.fdp__lg--g { background: #7f9dc4; }
.fdp__lg--c { background: #b9c8dd; margin-left: 12px; }
.fdp__bars { display: flex; flex-direction: column; gap: 9px; }
.fdp__row { min-width: 0; }
.fdp__row-n { font-size: 11px; color: #555; margin-bottom: 3px !important; line-height: 1.3; }
.fdp__row--self .fdp__row-n { color: var(--nv); font-weight: 900; }
.fdp__bar-wrap { display: flex; flex-direction: column; gap: 3px; }
.fdp__bar {
  height: 15px;
  width: var(--w);
  min-width: 42px;
  border-radius: 0 3px 3px 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding-right: 6px;
  background: #b9c8dd;
}
.fdp__bar--g { background: #7f9dc4; }
.fdp__bar--c { background: #b9c8dd; }
.fdp__bar--self { background: var(--nv); }
.fdp__bar--self2 { background: #2E9BD6; }
.fdp__bar span { font-size: 10.5px; font-weight: bold; color: #fff; white-space: nowrap; }

/* --- 強調ボックス --- */
.fdp__hl {
  margin-top: 12px;
  padding: 12px 14px;
  background: var(--bg);
  border: 1px solid var(--bd);
  border-radius: 7px;
  text-align: center;
}
.fdp__hl-t { font-size: 12px; font-weight: 900; color: var(--nv); }
.fdp__hl-v { font-size: clamp(24px, 3.2vw, 34px); font-weight: 900; color: var(--nv); line-height: 1.2; }
.fdp__hl-b { font-size: 11px; color: #555; line-height: 1.65; margin-top: 5px !important; }
.fdp__hl-c { margin-top: 7px !important; font-size: 12.5px; font-weight: 900; color: var(--rd); line-height: 1.5; }

/* --- テーブル --- */
.fdp__tblwrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.fdp__tbl { width: 100%; border-collapse: collapse; font-size: 12px; }
.fdp__tbl th, .fdp__tbl td { border: 1px solid var(--bd); padding: 6px 7px; text-align: center; line-height: 1.5; }
.fdp__tbl thead th { background: var(--nv); color: #fff; font-weight: bold; font-size: 11px; }
.fdp__tbl tbody th { background: var(--bg); color: var(--nv); font-weight: bold; text-align: left; }
.fdp__tr-em th, .fdp__tr-em td { background: #fff7e6; font-weight: bold; }
.fdp__tr-em th { background: #ffeec2 !important; }

/* ===== 残りページの案内 ===== */
.fdrg__rest {
  margin-top: 20px;
  padding: 15px 18px 14px;
  background: var(--bg);
  border-radius: 10px;
}
.fdrg__rest-t {
  font-size: clamp(14px, 1.8vw, 17px);
  font-weight: 900;
  color: var(--nv);
  text-align: center;
  margin-bottom: 9px !important;
}
.fdrg__rest-l {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5px 20px;
}
.fdrg__rest-l li {
  position: relative;
  padding-left: 21px;
  font-size: 12.5px;
  color: #444;
  line-height: 1.7;
}
.fdrg__rest-l li::before {
  content: '✓';
  position: absolute;
  left: 0;
  color: var(--nv);
  font-weight: 900;
}
.fdrg__rest-l b { color: var(--nv); }

/* ===== CTA ===== */
.fdrg__cta { margin-top: 20px; text-align: center; }
.fdrg__btn {
  display: block;
  position: relative;
  overflow: hidden;
  width: 88%;
  max-width: 560px;
  margin: 0 auto;
  padding: 17px 20px;
  background: linear-gradient(135deg, #06C755 0%, #1DD16A 60%, #4BE28C 100%);
  color: #fff !important;
  font-size: clamp(15px, 2.1vw, 23px);
  font-weight: 900;
  line-height: 1.35;
  border-radius: 32px;
  text-decoration: none !important;
  box-shadow: 0 4px 0 #04a045;
  transition: background .3s, transform .1s;
}
.fdrg__btn:hover { background: var(--nv); }
.fdrg__btn:active { transform: translateY(3px); box-shadow: 0 1px 0 #04a045; }
.fdrg__btn::before {
  content: '';
  position: absolute;
  top: 0; left: -100%;
  width: 60%; height: 100%;
  background: linear-gradient(120deg, transparent, rgba(255,255,255,.55), transparent);
  animation: fdrg-shine 2.6s infinite;
  pointer-events: none;
}
@keyframes fdrg-shine { 0% { left: -100%; } 55% { left: 120%; } 100% { left: 120%; } }
.fdrg__cta-note { margin-top: 9px !important; font-size: 11.5px; color: #888; line-height: 1.6; }
.fdrg__disclaimer { margin-top: 12px !important; text-align: center; font-size: 10.5px; color: #aaa; }

/* =========================================================
   タブレット
   ========================================================= */
@media (max-width: 900px) {
  .fdrg__grid { gap: 16px; }
  .fdrg__rest-l { grid-template-columns: 1fr; }
}

/* =========================================================
   スマホ
   ========================================================= */
@media (max-width: 600px) {
  .fdrg { padding: 16px 12px 14px; border-width: 2px; }
  .fdrg__catch { letter-spacing: 0; }
  .fdrg__note { font-size: 11px; }
  .fdrg__score { flex-direction: column; gap: 10px; padding: 13px 14px; text-align: center; }
  .fdrg__score-v { width: 100%; }
  .fdrg__score-b { font-size: 11.5px; }

  .fdrg__page { padding: 13px 12px 12px; }
  .fdp__desc { font-size: 11.5px; }
  .fdp__tbl { font-size: 11px; }
  .fdp__tbl th, .fdp__tbl td { padding: 5px 6px; }

  .fdrg__btn { width: 100%; padding: 15px 12px; }
}

/* SWELLウィジェット内の余白継承を打ち消す */
.c-widget .textwidget > .fdrg, .textwidget > .fdrg { margin-bottom: 0 !important; }

/* アニメーション抑制設定を尊重 */
@media (prefers-reduced-motion: reduce) {
  .fdrg__btn::before { animation: none; }
}
