/* =========================================================
   ディグラム個別分析レポート — フロントスタイル
   墨青 #1f2d3d × 朱 #c0392b。紙のレポートの質感をWebに持ち込む。
   ========================================================= */

.dgr-lp, .dgr-report, .dgr-mypage, .dgr-quiz, .dgr-panel,
.dgr-buy, .dgr-legal, .dgr-tokusho, .dgr-siteheader, .dgr-sitefooter,
.dgr-printdoc {
  --sumi:   #1f2d3d;
  --sumi2:  #2c3e50;
  --sumi3:  #3d5166;
  --shu:    #c0392b;
  --shu2:   #e05a4a;
  --ink:    #253546;
  --muted:  #6b7c8d;
  --line:   #dfe5ea;
  --box:    #eef2f5;
  --box2:   #f7f9fb;
  --paper:  #ffffff;
  --gold:   #b8934a;
}

/* ---------- リセットと土台 ----------
   テーマ（Twenty Twenty-Four 等）は見出しに明朝を当ててくるので、
   プラグインの領域では確実にゴシックへ上書きする。 */
:root { --dgr-font: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", "Yu Gothic Medium", "Yu Gothic", "Meiryo", system-ui, -apple-system, sans-serif; }

body.dgr-standalone {
  margin: 0;
  background: #fff;
  color: #253546;
  font-family: var(--dgr-font) !important;
  font-size: 16px;
  line-height: 1.9;
  -webkit-font-smoothing: antialiased;
  -webkit-text-size-adjust: 100%;
}
body.dgr-standalone img { max-width: 100%; height: auto; }
body.dgr-standalone .dgr-main { display: block; max-width: none; padding: 0; margin: 0; }
body.dgr-standalone a { color: #c0392b; }
/* ボタン・ナビは上の指定に勝てる強さで色を戻す */
body.dgr-standalone a.dgr-btn { color: var(--sumi, #1f2d3d); text-decoration: none; }
body.dgr-standalone a.dgr-btn--primary { color: #fff; }
body.dgr-standalone a.dgr-btn--light { color: var(--sumi, #1f2d3d); }
body.dgr-standalone .dgr-sitenav a,
body.dgr-standalone .dgr-sitefooter-nav a { color: #cfd9e2; }
body.dgr-standalone .dgr-sitelogo { color: #fff; }
body.dgr-standalone .dgr-examples li { color: var(--sumi, #1f2d3d); }

/* プラグイン領域はフォントとリズムを完全に握る */
.dgr-lp, .dgr-lp *:not(svg):not(svg *),
.dgr-quiz, .dgr-quiz *:not(svg):not(svg *),
.dgr-report, .dgr-report *:not(svg):not(svg *),
.dgr-mypage, .dgr-mypage *:not(svg):not(svg *),
.dgr-panel, .dgr-panel *:not(svg):not(svg *),
.dgr-legal, .dgr-legal *,
.dgr-tokusho, .dgr-tokusho *,
.dgr-printdoc, .dgr-printdoc *:not(svg):not(svg *),
.dgr-siteheader, .dgr-siteheader *,
.dgr-sitefooter, .dgr-sitefooter * {
  font-family: var(--dgr-font) !important;
  font-feature-settings: "palt" 1;
}
.dgr-lp h1, .dgr-lp h2, .dgr-lp h3, .dgr-lp h4,
.dgr-quiz h2, .dgr-quiz h3,
.dgr-report h1, .dgr-report h2, .dgr-report h3, .dgr-report h4,
.dgr-mypage h2, .dgr-mypage h3, .dgr-mypage h4,
.dgr-panel h2, .dgr-panel h3,
.dgr-legal h3 {
  font-weight: 700;
  letter-spacing: .01em;
  margin-block-start: 0;
}
.dgr-lp p, .dgr-quiz p, .dgr-report p, .dgr-mypage p { margin-block-start: 0; }
.dgr-lp ul, .dgr-lp ol { list-style-position: outside; }

/* ---------- サイトヘッダー / フッター（自前） ---------- */
.dgr-siteheader {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 24px;
  background: var(--sumi);
  color: #fff;
}
.dgr-sitelogo { text-decoration: none; color: #fff; line-height: 1.25; }
.dgr-sitelogo-mark {
  display: block;
  font-size: 19px;
  font-weight: 700;
  letter-spacing: .22em;
}
.dgr-sitelogo-sub {
  display: block;
  font-size: 9.5px;
  letter-spacing: .3em;
  color: #93a7ba;
}
.dgr-sitenav a {
  color: #cfd9e2;
  font-size: 13px;
  text-decoration: none;
  border: 1px solid #4a6076;
  border-radius: 999px;
  padding: 7px 16px;
  transition: .15s;
}
.dgr-sitenav a:hover { background: #2c3e50; color: #fff; }

.dgr-sitefooter { background: var(--sumi); color: #93a7ba; margin-top: 80px; }
.dgr-sitefooter-inner { max-width: 900px; margin-inline: auto; padding: 44px 24px 52px; text-align: center; }
.dgr-sitefooter-brand { color: #fff; font-size: 14px; letter-spacing: .08em; margin: 0 0 16px; }
.dgr-sitefooter-nav { display: flex; flex-wrap: wrap; gap: 8px 24px; justify-content: center; margin-bottom: 20px; }
.dgr-sitefooter-nav a { color: #cfd9e2; font-size: 13px; text-decoration: none; }
.dgr-sitefooter-nav a:hover { color: #fff; text-decoration: underline; }
.dgr-sitefooter-note { font-size: 11.5px; line-height: 1.9; margin: 0; }

/* ---------- 共通パーツ ---------- */
.dgr-btn {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  padding: 15px 34px;
  border: 1.5px solid var(--sumi);
  border-radius: 6px;
  background: #fff;
  color: var(--sumi);
  font-size: 16px;
  font-weight: 700;
  font-family: inherit;
  text-decoration: none;
  cursor: pointer;
  transition: transform .12s, box-shadow .12s, opacity .12s;
}
.dgr-btn:hover { transform: translateY(-1px); box-shadow: 0 6px 18px rgba(31,45,61,.16); }
.dgr-btn:disabled { opacity: .45; cursor: default; transform: none; box-shadow: none; }
.dgr-btn--primary { background: var(--shu); border-color: var(--shu); color: #fff; }
.dgr-btn--primary:hover { box-shadow: 0 8px 22px rgba(192,57,43,.32); }
.dgr-btn--light { background: #fff; border-color: #fff; color: var(--sumi); }
.dgr-btn--lg { padding: 17px 42px; font-size: 17px; }
.dgr-btn--xl { padding: 20px 56px; font-size: 19px; border-radius: 8px; }
.dgr-btn-sub { font-size: 12px; font-weight: 400; opacity: .88; letter-spacing: .02em; }

.dgr-eyebrow {
  font-size: 11px;
  letter-spacing: .28em;
  color: var(--shu);
  font-weight: 700;
  margin: 0 0 10px;
}
.dgr-msg { margin-top: 14px; font-size: 14px; }
.dgr-msg.is-error { color: var(--shu); font-weight: 600; }
.dgr-msg.is-info { color: var(--sumi); }
.dgr-note { font-size: 13px; color: var(--muted); line-height: 1.85; }

.dgr-panel {
  max-width: 640px;
  margin: 64px auto;
  padding: 44px 36px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--box2);
}
.dgr-panel--center { text-align: center; }
.dgr-panel h2 { margin: 0 0 16px; font-size: 24px; color: var(--sumi); }
.dgr-check { color: #2f9e6d; width: 68px; margin: 0 auto 20px; }
.dgr-check svg { width: 100%; display: block; }

/* =========================================================
   LP
   ========================================================= */
.dgr-lp { overflow-x: hidden; }
.dgr-section-inner, .dgr-hero-inner, .dgr-cta-inner {
  max-width: 960px;
  margin-inline: auto;
  padding-inline: 24px;
}
.dgr-section { padding: 84px 0; background: #fff; }
/* 背景は明示指定する（順序が変わっても崩れないように） */
.dgr-section--supervisor { background: var(--box2); }
.dgr-section--contents   { background: #fff; }
.dgr-section--addon      { background: var(--box2); }
.dgr-section--flow       { background: #fff; }
.dgr-section--price      { background: var(--box2); }
.dgr-section--faq        { background: #fff; }
.dgr-h2-lp {
  font-size: clamp(24px, 4vw, 33px);
  line-height: 1.5;
  color: var(--sumi);
  margin: 0 0 20px;
  letter-spacing: .01em;
}
.dgr-section-lead { font-size: 16.5px; color: var(--ink); margin: 0 0 40px; max-width: 720px; }
.dgr-section-lead--tight { margin: 32px 0 0; }
.dgr-br-sp { display: none; }
@media (max-width: 720px) {
  .dgr-br-sp { display: inline; }
  .dgr-br-pc { display: none; }
  .dgr-section { padding: 58px 0; }
  .dgr-section-inner, .dgr-hero-inner, .dgr-cta-inner { padding-inline: 18px; }
  .dgr-hero { padding: 54px 0 48px; }
  .dgr-hero-lead { font-size: 15px; line-height: 1.95; margin-bottom: 30px; }
}

/* ヒーロー */
.dgr-hero {
  background:
    radial-gradient(1200px 480px at 50% -10%, #33475e 0%, transparent 62%),
    linear-gradient(170deg, #1f2d3d 0%, #16212d 100%);
  color: #fff;
  padding: 84px 0 76px;
  text-align: center;
  position: relative;
}
.dgr-hero::after {
  content: "";
  position: absolute; left: 0; right: 0; bottom: 0;
  height: 4px; background: var(--shu);
}
.dgr-hero-eyebrow { color: #93a7ba; letter-spacing: .32em; font-size: 11.5px; margin: 0 0 22px; }
.dgr-hero-title {
  font-size: clamp(25px, 6.6vw, 52px);
  word-break: keep-all;
  line-break: strict;
  line-height: 1.42;
  color: #fff;
  margin: 0 0 26px;
  font-weight: 700;
  letter-spacing: .01em;
}
.dgr-hero-title em {
  font-style: normal;
  color: #ff9a86;
  position: relative;
}
.dgr-hero-lead { font-size: 16.5px; color: #d3dde6; line-height: 2.05; margin: 0 auto 40px; max-width: 700px; }
.dgr-hero-lead strong { color: #fff; }

.dgr-hero-waves { display: flex; gap: 26px; justify-content: center; flex-wrap: wrap; margin-bottom: 10px; }
.dgr-hero-wave { margin: 0; color: #ff8b74; width: 176px; }
.dgr-hero-wave svg { width: 100%; height: auto; display: block; }
.dgr-hero-wave figcaption { font-size: 11.5px; color: #93a7ba; letter-spacing: .1em; margin-top: 2px; }
.dgr-hero-wavenote { font-size: 11.5px; color: #7b8fa3; margin: 0 0 38px; }

.dgr-hero-cta { margin-bottom: 44px; }
.dgr-hero-note { font-size: 12.5px; color: #93a7ba; margin: 16px 0 0; }

.dgr-hero-facts {
  display: flex; flex-wrap: wrap; justify-content: center;
  gap: 0; list-style: none; padding: 0; margin: 0;
  border-top: 1px solid #3a4d61;
}
.dgr-hero-facts li {
  flex: 1 1 120px;
  padding: 22px 8px 4px;
  border-right: 1px solid #3a4d61;
}
.dgr-hero-facts li:last-child { border-right: 0; }
.dgr-hero-facts strong { display: block; font-size: 30px; color: #fff; line-height: 1.2; }
.dgr-hero-facts span { font-size: 11.5px; color: #93a7ba; }

/* 31タイプ・9グループのストリップ */
.dgr-typestrip { background: var(--sumi2); color: #fff; padding: 34px 0 30px; }
.dgr-typestrip-label { font-size: 11px; letter-spacing: .26em; color: #93a7ba; margin: 0 0 16px; text-align: center; }
.dgr-typechips { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.dgr-typechip {
  display: inline-flex; align-items: center; gap: 8px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 999px;
  padding: 8px 16px 8px 10px;
  font-size: 13.5px; font-weight: 700; color: #fff;
}
.dgr-typechip i { width: 11px; height: 11px; border-radius: 50%; background: var(--c); box-shadow: 0 0 0 3px rgba(255,255,255,.08); }
.dgr-typechip em { font-style: normal; font-weight: 400; font-size: 11.5px; color: #9db0c2; }
.dgr-typestrip-note { text-align: center; font-size: 12px; color: #8ea2b5; margin: 18px 0 0; }

/* こんな方に */
.dgr-section--for { background: #fff; }
.dgr-forlist { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 720px) { .dgr-forlist { grid-template-columns: 1fr; } }
.dgr-forlist li {
  position: relative;
  background: var(--box2);
  border-radius: 10px;
  padding: 22px 24px 22px 56px;
  font-size: 14.5px;
  line-height: 1.85;
  color: var(--ink);
}
.dgr-forlist li::before {
  content: "";
  position: absolute; left: 22px; top: 28px;
  width: 15px; height: 8px;
  border-left: 2.6px solid var(--shu);
  border-bottom: 2.6px solid var(--shu);
  transform: rotate(-45deg);
}
.dgr-forlist strong { display: block; font-size: 16px; color: var(--sumi); margin-bottom: 5px; }

/* レポートのプレビュー */
.dgr-section--peek { background: var(--box2); }
.dgr-peek {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  align-items: start;
}
@media (max-width: 820px) { .dgr-peek { grid-template-columns: 1fr; max-width: 380px; margin-inline: auto; } }
.dgr-peek-page {
  margin: 0;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 6px;
  box-shadow: 0 12px 32px rgba(31,45,61,.13);
  overflow: hidden;
  aspect-ratio: 210 / 297;
  display: flex;
  flex-direction: column;
  position: relative;
  transition: transform .2s;
}
.dgr-peek-page:hover { transform: translateY(-5px); }
.dgr-peek-page figcaption {
  position: absolute; left: 0; right: 0; bottom: 0;
  background: rgba(31,45,61,.86);
  color: #fff;
  font-size: 11px;
  letter-spacing: .14em;
  text-align: center;
  padding: 6px 0;
}
.dgr-peek-page--cover { border-color: var(--sumi); }
.dgr-peek-cover {
  flex: 1;
  background: linear-gradient(168deg, #1f2d3d, #16212d);
  color: #fff;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 7px;
  padding: 16px 12px 26px;
  border-bottom: 3px solid var(--shu);
  text-align: center;
}
.dgr-peek-eyebrow { font-size: 6.5px; letter-spacing: .26em; color: #93a7ba; }
.dgr-peek-title { font-size: 14px; font-weight: 700; line-height: 1.55; }
.dgr-peek-name { font-size: 10px; color: #cfd9e2; margin-top: 4px; }
.dgr-peek-pattern {
  border: 1.4px solid var(--shu);
  border-radius: 3px;
  padding: 5px 20px;
  font-size: 14px; font-weight: 700; letter-spacing: .1em;
}
.dgr-peek-scores { display: flex; gap: 3px; margin-top: 6px; }
.dgr-peek-scores i {
  background: #2b3d51; border-radius: 2px; padding: 4px 3px;
  font-style: normal; font-size: 9px; min-width: 30px; text-align: center;
  border-top: 1.5px solid #3d5166;
}
.dgr-peek-scores i.is-high { border-top-color: var(--shu); color: #ff9a86; }
.dgr-peek-scores b { display: block; font-size: 6px; font-weight: 400; color: #93a7ba; }

.dgr-peek-head {
  background: var(--sumi); color: #fff;
  font-size: 9.5px; font-weight: 700; letter-spacing: .08em;
  padding: 7px 10px;
  border-bottom: 2px solid var(--shu);
}
.dgr-peek-body { flex: 1; padding: 12px 12px 26px; display: flex; flex-direction: column; gap: 8px; }
.dgr-peek-catch {
  display: block; background: var(--box); border-left: 2.5px solid var(--shu);
  color: var(--shu); font-size: 8.5px; font-weight: 700; line-height: 1.6;
  padding: 8px 6px; text-align: center; border-radius: 0 3px 3px 0;
}
.dgr-peek-chart { background: var(--box2); border-radius: 3px; padding: 4px 2px; }
.dgr-peek-chart svg { width: 100%; height: auto; min-width: 0; }
.dgr-peek-h3 {
  display: block; font-size: 8.5px; font-weight: 700; color: var(--sumi);
  border-left: 2.5px solid var(--shu); padding-left: 5px;
}
.dgr-peek-lines { display: block; }
.dgr-peek-lines i { display: block; height: 3px; border-radius: 2px; background: #e4e9ee; margin-bottom: 4px; }
.dgr-peek-lines i.w80 { width: 80%; }
.dgr-peek-lines i.w70 { width: 70%; }
.dgr-peek-lines i.w60 { width: 60%; }
.dgr-peek-two { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; }
.dgr-peek-mini { display: block; background: var(--box2); border: 1px solid var(--line); border-radius: 3px; padding: 5px; }
.dgr-peek-mini b { display: block; font-size: 6.5px; color: #1f7a4d; margin-bottom: 3px; }
.dgr-peek-mini--care b { color: var(--shu); }
.dgr-peek-mini i { display: block; height: 2.5px; border-radius: 2px; background: #e4e9ee; margin-bottom: 3px; }
.dgr-peek-mini i.w70 { width: 70%; }
.dgr-peek-meters { background: var(--box); border-radius: 3px; padding: 7px; display: grid; gap: 4px; margin-top: auto; }
.dgr-peek-meter { display: flex; align-items: center; gap: 5px; font-size: 7px; }
.dgr-peek-meter b { width: 26px; color: var(--sumi); font-weight: 700; }
.dgr-peek-meter i { flex: 1; background: #fff; border-radius: 3px; height: 5px; display: block; }
.dgr-peek-meter u { display: block; height: 100%; background: var(--sumi3); border-radius: 3px; }
.dgr-peek-meter u.is-high { background: var(--shu); }
.dgr-peek-meter em { font-style: normal; color: var(--muted); width: 20px; }
.dgr-peek-note { text-align: center; font-size: 12px; color: var(--muted); margin: 22px 0 0; }

/* 監修者 */
.dgr-supervisor { display: grid; grid-template-columns: 220px 1fr; gap: 36px; align-items: start; }
@media (max-width: 720px) { .dgr-supervisor { grid-template-columns: 1fr; gap: 24px; } }
.dgr-supervisor-photo { margin: 0; }
.dgr-supervisor-photo img { width: 100%; border-radius: 10px; display: block; filter: saturate(.95); }
.dgr-photo-ph {
  aspect-ratio: 3 / 4;
  border: 1px dashed #b9c6d2;
  border-radius: 10px;
  background: linear-gradient(160deg, #eef2f5, #dde5ec);
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px;
  color: var(--sumi3);
}
.dgr-photo-ph span { font-size: 54px; font-weight: 700; letter-spacing: .04em; opacity: .5; }
.dgr-photo-ph p { font-size: 11px; color: var(--muted); margin: 0; padding: 0 14px; text-align: center; line-height: 1.7; }
.dgr-supervisor-name { font-size: 26px; font-weight: 700; color: var(--sumi); margin: 0 0 4px; }
.dgr-supervisor-title { font-size: 13.5px; color: var(--muted); margin: 0 0 20px; }
.dgr-supervisor-bio { margin: 0 0 24px; }
.dgr-quote {
  margin: 0;
  padding: 20px 24px;
  border-left: 4px solid var(--shu);
  background: #fff;
  font-size: 15.5px;
  line-height: 2;
  color: var(--sumi);
}
.dgr-section--supervisor { background: var(--box2); }

/* コンテンツカード */
.dgr-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
@media (max-width: 880px) { .dgr-cards { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .dgr-cards { grid-template-columns: 1fr; } }
.dgr-card {
  position: relative;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 26px 22px 24px;
  transition: transform .15s, box-shadow .15s;
}
.dgr-card:hover { transform: translateY(-3px); box-shadow: 0 10px 28px rgba(31,45,61,.09); }
.dgr-card-no {
  display: block;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .14em;
  color: var(--shu);
  margin-bottom: 10px;
}
.dgr-card h3 { font-size: 17px; margin: 0 0 10px; color: var(--sumi); line-height: 1.55; }
.dgr-card p { font-size: 14px; color: var(--ink); margin: 0; line-height: 1.85; }

/* 追加レポート */
.dgr-asks { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 34px; }
.dgr-asks span {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 8px 18px;
  font-size: 13.5px;
  color: var(--sumi);
}
.dgr-sample {
  background: var(--sumi);
  color: #dbe4eb;
  border-radius: 12px;
  padding: 30px 32px;
}
.dgr-sample-label { font-size: 11.5px; letter-spacing: .18em; color: #ff9a86; margin: 0 0 14px; }
.dgr-sample-text { font-size: 15.5px; line-height: 2.05; margin: 0 0 14px; }
.dgr-sample-text strong { color: #fff; border-bottom: 2px solid var(--shu); }
.dgr-sample-note { font-size: 11.5px; color: #8ea2b5; margin: 0; }

/* 流れ */
.dgr-flow { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
@media (max-width: 720px) { .dgr-flow { grid-template-columns: 1fr; } }
.dgr-flow li { background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 30px 24px; text-align: center; }
.dgr-flow-no {
  display: inline-flex; align-items: center; justify-content: center;
  width: 42px; height: 42px; border-radius: 50%;
  background: var(--sumi); color: #fff; font-weight: 700; font-size: 18px;
  margin-bottom: 14px;
}
.dgr-flow h3 { font-size: 17px; margin: 0 0 8px; color: var(--sumi); }
.dgr-flow p { font-size: 14px; margin: 0; color: var(--ink); line-height: 1.85; }

/* 価格 */
.dgr-section--price { background: var(--box2); }
.dgr-pricecard {
  max-width: 460px;
  margin: 0 auto;
  background: #fff;
  border: 2px solid var(--sumi);
  border-radius: 14px;
  padding: 40px 34px 34px;
  text-align: center;
  box-shadow: 0 14px 40px rgba(31,45,61,.09);
}
.dgr-pricecard-name { font-size: 15px; color: var(--muted); margin: 0 0 10px; letter-spacing: .05em; }
.dgr-pricecard-amount { font-size: 20px; color: var(--sumi); margin: 0 0 24px; font-weight: 700; }
.dgr-pricecard-amount span { font-size: 54px; line-height: 1; letter-spacing: -.02em; }
.dgr-pricecard-amount small { font-size: 13px; color: var(--muted); font-weight: 400; margin-left: 4px; }
.dgr-pricecard-list { list-style: none; padding: 0; margin: 0 0 28px; text-align: left; }
.dgr-pricecard-list li {
  padding: 11px 0 11px 30px;
  border-bottom: 1px solid var(--line);
  font-size: 14.5px;
  position: relative;
}
.dgr-pricecard-list li::before {
  content: "";
  position: absolute; left: 4px; top: 18px;
  width: 14px; height: 7px;
  border-left: 2.4px solid var(--shu);
  border-bottom: 2.4px solid var(--shu);
  transform: rotate(-45deg);
}
.dgr-pricecard-note { font-size: 12.5px; color: var(--muted); margin: 16px 0 0; }

/* FAQ */
.dgr-faq {
  border-bottom: 1px solid var(--line);
  padding: 4px 0;
}
.dgr-faq summary {
  cursor: pointer;
  list-style: none;
  padding: 18px 40px 18px 4px;
  font-size: 16px;
  font-weight: 600;
  color: var(--sumi);
  position: relative;
}
.dgr-faq summary::-webkit-details-marker { display: none; }
.dgr-faq summary::after {
  content: "";
  position: absolute; right: 10px; top: 26px;
  width: 9px; height: 9px;
  border-right: 2px solid var(--shu);
  border-bottom: 2px solid var(--shu);
  transform: rotate(45deg);
  transition: transform .18s;
}
.dgr-faq[open] summary::after { transform: rotate(-135deg); top: 30px; }
.dgr-faq p { margin: 0 0 20px; padding-left: 4px; color: var(--ink); font-size: 15px; }

/* 最終CTA */
.dgr-cta {
  background: linear-gradient(165deg, #1f2d3d, #16212d);
  color: #fff;
  padding: 80px 0;
  text-align: center;
}
.dgr-cta h2 { font-size: clamp(22px, 4.2vw, 32px); color: #fff; margin: 0 0 14px; line-height: 1.5; }
.dgr-cta p { color: #cfd9e2; margin: 0 0 32px; }
.dgr-cta-legal { font-size: 11.5px; color: #8ea2b5; line-height: 1.95; margin-top: 30px; }
.dgr-cta .dgr-cta-legal a,
body.dgr-standalone .dgr-cta-legal a { color: #cfd9e2; text-decoration: underline; text-underline-offset: 3px; }
body.dgr-standalone .dgr-cta-legal a:hover { color: #fff; }

/* =========================================================
   診断
   ========================================================= */
.dgr-quiz { max-width: 720px; margin: 56px auto 90px; padding: 0 24px; }
.dgr-step { animation: dgrFade .3s ease; }
@keyframes dgrFade { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.dgr-step-title { font-size: clamp(21px, 3.6vw, 28px); color: var(--sumi); margin: 0 0 14px; line-height: 1.55; }
.dgr-step-lead { font-size: 15.5px; color: var(--ink); margin: 0 0 30px; }
.dgr-step--intro { text-align: center; padding-top: 20px; }

.dgr-flowsteps {
  display: flex; justify-content: center; flex-wrap: wrap; gap: 8px;
  list-style: none; padding: 0; margin: 0 0 34px;
}
.dgr-flowsteps li {
  display: flex; align-items: center; gap: 7px;
  font-size: 12.5px; color: var(--muted);
  background: var(--box2); border: 1px solid var(--line);
  border-radius: 999px; padding: 7px 16px 7px 8px;
}
.dgr-flowsteps span {
  display: inline-flex; align-items: center; justify-content: center;
  width: 20px; height: 20px; border-radius: 50%;
  background: var(--sumi); color: #fff; font-size: 11px; font-weight: 700;
}

.dgr-progress { height: 5px; background: var(--box); border-radius: 3px; overflow: hidden; }
.dgr-progress i { display: block; height: 100%; background: var(--shu); transition: width .3s ease; }
.dgr-progress-text { font-size: 13px; color: var(--shu); font-weight: 700; margin: 12px 0 28px; letter-spacing: .06em; }
.dgr-progress-total { color: var(--muted); font-weight: 400; }
.dgr-question {
  font-size: clamp(19px, 3.4vw, 24px);
  font-weight: 600;
  line-height: 1.7;
  color: var(--sumi);
  min-height: 3.4em;
  margin: 0 0 30px;
}
.dgr-choices { display: grid; gap: 11px; }
.dgr-choice {
  padding: 19px;
  border: 1.5px solid var(--line);
  border-radius: 8px;
  background: #fff;
  font-size: 16.5px;
  font-family: inherit;
  color: var(--sumi);
  cursor: pointer;
  transition: .13s;
}
.dgr-choice:hover { border-color: var(--shu); color: var(--shu); background: #fffafa; transform: translateY(-1px); }
.dgr-back {
  margin-top: 22px; border: 0; background: none;
  color: var(--muted); font-size: 13px; font-family: inherit; cursor: pointer;
}
.dgr-back:hover { color: var(--sumi); }

.dgr-field { margin-bottom: 30px; }
.dgr-field-label { font-size: 14px; font-weight: 700; color: var(--sumi); margin: 0 0 12px; }
.dgr-optgrid { display: flex; flex-wrap: wrap; gap: 9px; }
.dgr-opt {
  padding: 12px 22px;
  border: 1.5px solid var(--line);
  border-radius: 999px;
  background: #fff;
  font-size: 15px;
  font-family: inherit;
  color: var(--sumi);
  cursor: pointer;
  transition: .13s;
}
.dgr-opt:hover { border-color: var(--shu); color: var(--shu); }
.dgr-opt.is-selected { background: var(--shu); border-color: var(--shu); color: #fff; }
/* 年齢の入力 */
.dgr-agerow { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.dgr-ageinput { display: inline-flex; align-items: baseline; gap: 8px; }
.dgr-ageinput input {
  width: 132px;
  padding: 13px 16px;
  border: 1.5px solid var(--line);
  border-radius: 8px;
  font-size: 22px;
  font-weight: 700;
  font-family: inherit;
  color: var(--sumi);
  text-align: center;
  letter-spacing: .04em;
  background: #fff;
}
.dgr-ageinput input:focus { outline: none; border-color: var(--shu); box-shadow: 0 0 0 3px rgba(192,57,43,.12); }
/* 数値入力の上下ボタンは邪魔なので消す */
.dgr-ageinput input::-webkit-outer-spin-button,
.dgr-ageinput input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.dgr-ageinput input[type=number] { -moz-appearance: textfield; }
.dgr-ageunit { font-size: 16px; color: var(--sumi); font-weight: 600; }
.dgr-fieldnote { font-size: 12.5px; color: var(--muted); margin: 10px 0 0; }
.dgr-fieldnote.is-error { color: var(--shu); font-weight: 600; }

.dgr-opt--na { color: var(--muted); border-style: dashed; }
.dgr-opt--na.is-selected { background: var(--sumi3); border-color: var(--sumi3); color: #fff; border-style: solid; }

.dgr-step-actions { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 30px; flex-wrap: wrap; }

.dgr-examples { margin: 0 0 18px; }
.dgr-examples > p { font-size: 13px; color: var(--muted); margin: 0 0 9px; }
.dgr-examples ul { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 0; }
.dgr-examples li {
  background: var(--box2); border: 1px solid var(--line); border-radius: 999px;
  padding: 7px 16px; font-size: 13px; color: var(--sumi); cursor: pointer; transition: .13s;
}
.dgr-examples li:hover { border-color: var(--shu); color: var(--shu); }

.dgr-quiz textarea, .dgr-custom-form textarea {
  width: 100%;
  padding: 16px;
  border: 1.5px solid var(--line);
  border-radius: 8px;
  font-size: 16px;
  line-height: 1.85;
  font-family: inherit;
  color: var(--sumi);
  box-sizing: border-box;
  resize: vertical;
}
.dgr-quiz textarea:focus, .dgr-custom-form textarea:focus { outline: none; border-color: var(--shu); }
.dgr-counter { text-align: right; font-size: 12px; color: var(--muted); margin: 6px 0 0; }

.dgr-step--loading { text-align: center; padding: 40px 0 20px; }
.dgr-spinner {
  width: 46px; height: 46px; margin: 0 auto 26px;
  border: 3px solid var(--box);
  border-top-color: var(--shu);
  border-radius: 50%;
  animation: dgrSpin .85s linear infinite;
}
@keyframes dgrSpin { to { transform: rotate(360deg); } }
.dgr-loadsteps { list-style: none; padding: 0; margin: 26px auto 22px; max-width: 320px; text-align: left; }
.dgr-loadsteps li {
  padding: 9px 0 9px 30px;
  font-size: 14px;
  color: #b3bfca;
  position: relative;
  transition: color .2s;
}
.dgr-loadsteps li::before {
  content: "";
  position: absolute; left: 6px; top: 17px;
  width: 8px; height: 8px; border-radius: 50%;
  background: #cdd6de;
}
.dgr-loadsteps li.is-active { color: var(--sumi); font-weight: 600; }
.dgr-loadsteps li.is-active::before { background: var(--shu); box-shadow: 0 0 0 4px rgba(192,57,43,.16); }
.dgr-loadsteps li.is-done { color: var(--sumi); }
.dgr-loadsteps li.is-done::before {
  background: none; left: 3px; top: 13px;
  width: 12px; height: 6px; border-radius: 0;
  border-left: 2.2px solid #2f9e6d; border-bottom: 2.2px solid #2f9e6d;
  transform: rotate(-45deg);
}

/* =========================================================
   マイページ / レポート
   ========================================================= */
.dgr-mypage, .dgr-report { max-width: 860px; margin-inline: auto; padding: 0 24px; }
.dgr-mypage { padding-top: 40px; padding-bottom: 80px; }

.dgr-retention {
  display: block;
  padding: 15px 20px;
  border-left: 4px solid var(--sumi);
  background: var(--box2);
  font-size: 13.5px;
  border-radius: 0 6px 6px 0;
  margin-bottom: 22px;
}
.dgr-retention.is-warn { border-left-color: var(--shu); background: #fdf4f3; }
.dgr-credit {
  background: #fff7f6;
  border: 1.5px solid var(--shu);
  border-radius: 8px;
  padding: 15px 20px;
  font-size: 14.5px;
  margin-bottom: 22px;
}
.dgr-credit strong { color: var(--shu); }
.dgr-credit a { font-weight: 700; white-space: nowrap; }
.dgr-formlead { font-size: 14px; color: var(--muted); margin: 0 0 14px; }
.dgr-custom-form.is-target {
  background: #fff7f6;
  border: 1.5px solid var(--shu);
  border-radius: 10px;
  padding: 22px;
}
.dgr-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.dgr-actions-note { margin: 0 0 34px; }
.dgr-actions .dgr-btn { padding: 13px 26px; font-size: 15px; }

/* 表紙 */
.dgr-cover {
  background:
    radial-gradient(900px 340px at 50% -20%, #35485f 0%, transparent 60%),
    linear-gradient(168deg, #1f2d3d, #16212d);
  color: #fff;
  padding: 52px 28px 44px;
  border-radius: 12px;
  text-align: center;
  border-bottom: 4px solid var(--shu);
}
.dgr-cover-eyebrow { letter-spacing: .3em; font-size: 11px; color: #93a7ba; margin: 0; }
.dgr-cover-sub { font-size: 11.5px; color: #8ea2b5; margin: 6px 0 26px; }
.dgr-cover-title { color: #fff; font-size: clamp(24px, 5vw, 34px); line-height: 1.5; margin: 0 0 22px; font-weight: 700; }
.dgr-cover-name { font-size: 22px; margin: 0 0 22px; letter-spacing: .04em; }
.dgr-cover-pattern { display: inline-block; border: 2px solid var(--shu); border-radius: 6px; padding: 12px 38px; }
.dgr-cover-pattern-label { display: block; font-size: 10.5px; color: #93a7ba; letter-spacing: .12em; }
.dgr-cover-pattern strong { font-size: 27px; letter-spacing: .12em; }
.dgr-cover-group { font-size: 12px; color: #93a7ba; margin: 16px 0 24px; }

.dgr-scorebar { display: flex; gap: 8px; list-style: none; padding: 0; margin: 0; justify-content: center; flex-wrap: wrap; }
.dgr-scorebar li { background: #2b3d51; border-radius: 5px; padding: 11px 6px 9px; min-width: 96px; border-top: 2px solid #3d5166; }
.dgr-scorebar li.is-high { border-top-color: var(--shu); }
.dgr-scorebar-label { display: block; font-size: 12.5px; color: #e3eaf0; }
.dgr-scorebar-code { display: block; font-size: 9.5px; color: #8098ae; letter-spacing: .1em; }
.dgr-scorebar strong { font-size: 24px; }
.dgr-scorebar li.is-high strong { color: #ff9a86; }
.dgr-scorebar-max { font-size: 11px; color: #8098ae; }
.dgr-legend { font-size: 11px; color: #8ea2b5; margin: 18px 0 0; }

/* セクション */
.dgr-sec { margin: 52px 0; }
.dgr-h2 {
  background: var(--sumi);
  color: #fff;
  font-size: 19px;
  padding: 13px 20px;
  border-radius: 6px 6px 0 0;
  border-bottom: 3px solid var(--shu);
  margin: 0 0 26px;
  letter-spacing: .03em;
}
.dgr-h3 { font-size: 17px; border-left: 4px solid var(--shu); padding-left: 13px; margin: 30px 0 12px; color: var(--sumi); }
.dgr-lead-label { text-align: center; font-size: 13.5px; color: var(--muted); margin-bottom: 10px; }
.dgr-catch {
  background: var(--box);
  border-left: 4px solid var(--shu);
  color: var(--shu);
  font-size: clamp(17px, 3.2vw, 21px);
  font-weight: 700;
  text-align: center;
  padding: 24px 18px;
  border-radius: 0 6px 6px 0;
  margin-bottom: 18px;
  line-height: 1.7;
}
.dgr-lead { font-size: 15.5px; }
.dgr-chips { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 16px 0 0; }
.dgr-chips li { background: var(--sumi3); color: #fff; font-size: 12px; padding: 6px 14px; border-radius: 999px; }

.dgr-chart { background: var(--box2); border-radius: 8px; padding: 20px 10px; margin: 18px 0; overflow-x: auto; }
.dgr-wave { width: 100%; height: auto; min-width: 460px; }

.dgr-cols2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 22px 0; }
@media (max-width: 640px) { .dgr-cols2 { grid-template-columns: 1fr; } }

.dgr-box { background: var(--box2); border: 1px solid var(--line); border-radius: 8px; padding: 20px; margin: 20px 0; }
.dgr-box h4 { margin: 0 0 11px; font-size: 15px; color: var(--shu); }
.dgr-box p:last-child, .dgr-box ul:last-child { margin-bottom: 0; }
.dgr-box ul { margin: 0; padding-left: 1.2em; }
.dgr-box li { margin-bottom: 6px; }
.dgr-box--stat, .dgr-box--indicator, .dgr-box--hint { background: var(--box); }
.dgr-box--good h4 { color: #1f7a4d; }
.dgr-box--care h4 { color: var(--shu); }
.dgr-box--q { background: var(--box); border-left: 4px solid var(--shu); }
.dgr-box--great h4 { color: var(--sumi); font-size: 19px; }
.dgr-box--great h4 small { color: var(--shu); font-size: 12px; margin-left: 9px; font-weight: 400; }
.dgr-box--great em { color: var(--muted); font-style: normal; font-size: 14px; }
.dgr-box--aruaru { border-left: 4px solid var(--shu); border-radius: 0 8px 8px 0; }
.dgr-box--win { background: var(--box); border-left: 4px solid var(--gold); border-radius: 0 8px 8px 0; }
.dgr-box--win h4 { color: var(--gold); }
.dgr-box--memo ul {
  columns: 2;
  column-gap: 26px;
  padding-left: 1.2em;
}
@media (max-width: 560px) { .dgr-box--memo ul { columns: 1; } }
.dgr-supervisor-body { min-width: 0; }

.dgr-indicator, .dgr-hint, .dgr-history { width: 100%; border-collapse: collapse; font-size: 14px; }
.dgr-indicator td, .dgr-indicator th { padding: 8px 6px; vertical-align: middle; text-align: left; font-weight: normal; }
.dgr-ax { font-weight: 700; color: var(--sumi); }
.dgr-ax-code { font-size: 10.5px; color: var(--muted); margin-left: 5px; }
.dgr-meter-cell { width: 32%; }
.dgr-meter { display: block; background: #fff; border-radius: 5px; height: 10px; overflow: hidden; }
.dgr-meter i { display: block; height: 100%; border-radius: 5px; transition: width .5s ease; }
.dgr-meter i.is-high { background: var(--shu); }
.dgr-meter i.is-low { background: var(--sumi3); }
.dgr-score { width: 48px; white-space: nowrap; font-weight: 700; }
.dgr-desc { font-size: 13.5px; }
@media (max-width: 600px) {
  .dgr-meter-cell { display: none; }
  .dgr-desc { font-size: 13px; }
}

.dgr-hint th { padding: 7px 10px 7px 0; text-align: left; white-space: nowrap; vertical-align: middle; }
.dgr-hint td { padding: 7px 0; font-size: 13.5px; }
.dgr-pill { display: inline-block; background: var(--sumi3); color: #fff; font-size: 12px; padding: 4px 12px; border-radius: 4px; }
.dgr-pill.is-high { background: var(--shu); }

.dgr-rx { padding-left: 1.3em; }
.dgr-rx li { margin-bottom: 8px; }
.dgr-invest { padding-left: 1.3em; }
.dgr-invest li { margin-bottom: 12px; }
.dgr-invest strong { color: var(--shu); }
.dgr-invest span { display: block; font-size: 13.5px; color: var(--muted); }

.dgr-donuts { display: flex; gap: 18px; justify-content: center; flex-wrap: wrap; margin: 24px 0; }
.dgr-donuts figure { margin: 0; text-align: center; max-width: 210px; }
.dgr-donuts figcaption { font-size: 12.5px; color: var(--sumi); margin-top: 8px; line-height: 1.65; }

.dgr-letter { background: var(--box); border-left: 4px solid var(--shu); padding: 28px; border-radius: 0 8px 8px 0; line-height: 2.15; font-size: 15.5px; }
.dgr-sign { text-align: right; margin: 22px 0 0; font-size: 15px; }
.dgr-sign small { display: block; font-size: 12px; color: var(--muted); }
.dgr-rules { background: var(--sumi); color: #fff; border-radius: 8px; padding: 24px 28px; margin-top: 22px; }
.dgr-rules h4 { margin: 0 0 12px; font-size: 15px; color: #ff9a86; }
.dgr-rules ol { margin: 0; padding-left: 1.3em; }
.dgr-rules li { margin-bottom: 7px; }

.dgr-custom { border-top: 1px solid var(--line); padding-top: 28px; margin-top: 28px; }
.dgr-panel--upsell { border-color: var(--shu); background: #fff; text-align: center; }

.dgr-history th, .dgr-history td { border-bottom: 1px solid var(--line); padding: 11px 8px; text-align: left; }
.dgr-history tr.is-current { background: var(--box2); }
.dgr-history td small { display: block; font-size: 11.5px; color: var(--muted); }
.dgr-history td span { display: inline-block; font-size: 12px; margin-right: 10px; white-space: nowrap; }

/* =========================================================
   法務ページ（特商法・プライバシーポリシー）
   売り物のサイトなので、ここも本文と同じ設計で見せる。
   ========================================================= */
.dgr-legalhead {
  --sumi: #1f2d3d; --shu: #c0392b; --line: #dfe5ea; --box2: #f7f9fb; --muted: #6b7c8d;
  background:
    radial-gradient(760px 260px at 88% -20%, rgba(192,57,43,.30), transparent 62%),
    linear-gradient(160deg, #1f2d3d 0%, #2c3e50 58%, #24384c 100%);
  color: #fff;
  border-bottom: 3px solid var(--shu);
  font-family: var(--dgr-font) !important;
}
.dgr-legalhead * { font-family: var(--dgr-font) !important; }
.dgr-legalhead-inner { max-width: 860px; margin-inline: auto; padding: 62px 24px 54px; }
.dgr-legalhead-eyebrow {
  margin: 0 0 14px;
  font-size: 11px;
  letter-spacing: .34em;
  color: #ff9a86;
  font-weight: 700;
}
.dgr-legalhead-title {
  margin: 0 0 18px;
  font-size: clamp(25px, 4.4vw, 36px);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .02em;
  color: #fff;
}
.dgr-legalhead-lead { margin: 0; font-size: 14.5px; line-height: 1.95; color: #cfd9e2; max-width: 44em; }

.dgr-legal, .dgr-tokusho-wrap { max-width: 860px; margin: 0 auto; padding: 52px 24px 96px; }

/* 冒頭の要約カード */
.dgr-legal-summary {
  background: var(--box2);
  border: 1px solid var(--line);
  border-left: 4px solid var(--shu);
  border-radius: 0 10px 10px 0;
  padding: 24px 26px;
  margin: 0 0 40px;
}
.dgr-legal-summary-title { margin: 0 0 12px; font-size: 13px; font-weight: 700; color: var(--shu); letter-spacing: .06em; }
.dgr-legal-summary ul { margin: 0; padding-left: 1.25em; }
.dgr-legal-summary li { margin-bottom: 8px; font-size: 14.5px; line-height: 1.9; }
.dgr-legal-summary li:last-child { margin-bottom: 0; }
.dgr-legal-summary strong { color: var(--sumi); }

/* 目次 */
.dgr-legal-toc { border: 1px solid var(--line); border-radius: 10px; padding: 22px 26px; margin: 0 0 46px; }
.dgr-legal-toc-title { margin: 0 0 12px; font-size: 12px; font-weight: 700; letter-spacing: .18em; color: var(--muted); }
.dgr-legal-toc ol {
  margin: 0; padding: 0; list-style: none;
  counter-reset: dgrtoc;
  columns: 2; column-gap: 30px;
}
@media (max-width: 640px) { .dgr-legal-toc ol { columns: 1; } }
.dgr-legal-toc li { counter-increment: dgrtoc; margin-bottom: 7px; font-size: 14px; break-inside: avoid; }
.dgr-legal-toc li::before {
  content: counter(dgrtoc);
  display: inline-block; width: 1.7em;
  color: var(--shu); font-weight: 700; font-size: 12.5px;
}
.dgr-legal-toc a { color: var(--ink); text-decoration: none; border-bottom: 1px solid transparent; }
.dgr-legal-toc a:hover { border-bottom-color: var(--shu); }

/* 本文セクション */
.dgr-legal-sec { margin: 0 0 44px; scroll-margin-top: 24px; }
.dgr-legal-h {
  display: flex; align-items: center; gap: 13px;
  margin: 0 0 16px; padding-bottom: 11px;
  border-bottom: 1px solid var(--line);
  font-size: 19px; font-weight: 700; color: var(--sumi); letter-spacing: .02em;
}
.dgr-legal-h i {
  flex: 0 0 auto;
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 30px;
  background: var(--sumi); color: #fff;
  border-radius: 50%;
  font-style: normal; font-size: 14px; font-weight: 700;
}
.dgr-legal p { margin: 0 0 15px; font-size: 15px; line-height: 1.95; }
.dgr-legal p:last-child { margin-bottom: 0; }
.dgr-legal-list { margin: 0 0 16px; padding: 0; list-style: none; }
.dgr-legal-list li {
  position: relative;
  padding-left: 22px;
  margin-bottom: 9px;
  font-size: 15px; line-height: 1.9;
}
.dgr-legal-list li::before {
  content: ""; position: absolute; left: 3px; top: .72em;
  width: 7px; height: 7px; border-radius: 50%; background: var(--shu);
}
.dgr-legal-callout {
  background: var(--box); border-radius: 8px;
  padding: 17px 20px; margin: 18px 0 0 !important;
  font-size: 14px !important; line-height: 1.9 !important; color: var(--ink);
}
.dgr-legal-callout strong { color: var(--shu); }

/* 保存期間のタイムライン */
.dgr-legal-timeline { margin: 4px 0 20px; padding-left: 8px; }
.dgr-legal-tl { position: relative; padding: 0 0 22px 30px; border-left: 2px solid var(--line); }
.dgr-legal-tl:last-child { border-left-color: transparent; padding-bottom: 6px; }
.dgr-legal-tl::before {
  content: ""; position: absolute; left: -7px; top: 4px;
  width: 12px; height: 12px; border-radius: 50%;
  background: #fff; border: 3px solid var(--shu);
}
.dgr-legal-tl.is-end::before { background: var(--shu); }
.dgr-legal-tl-day {
  display: block; margin-bottom: 5px;
  font-size: 12.5px; font-weight: 700; color: var(--shu); letter-spacing: .04em;
}
.dgr-legal-tl p { margin: 0 !important; font-size: 14.5px !important; }

/* 委託先の表 */
.dgr-legal-table { width: 100%; border-collapse: collapse; margin: 6px 0 4px; font-size: 14.5px; }
.dgr-legal-table th, .dgr-legal-table td {
  border-bottom: 1px solid var(--line);
  padding: 13px 12px; text-align: left; vertical-align: top;
}
.dgr-legal-table th { width: 40%; color: var(--sumi); font-weight: 700; }
@media (max-width: 560px) {
  .dgr-legal-table, .dgr-legal-table tbody, .dgr-legal-table tr, .dgr-legal-table th, .dgr-legal-table td { display: block; width: auto; }
  .dgr-legal-table th { border-bottom: none; padding-bottom: 2px; }
}

/* 問い合わせ窓口 */
.dgr-legal-contact { background: var(--sumi); color: #fff; border-radius: 10px; padding: 24px 26px; }
.dgr-legal-contact-name { margin: 0 0 6px !important; font-size: 15px !important; font-weight: 700; }
.dgr-legal-contact-mail { margin: 0 0 8px !important; font-size: 17px !important; color: #ff9a86; letter-spacing: .02em; }
.dgr-legal-contact .dgr-note { margin: 0; color: #93a7ba; font-size: 12px; }

/* 特商法の表 */
.dgr-tokusho { width: 100%; border-collapse: collapse; font-size: 14.5px; margin: 0 0 46px; }
.dgr-tokusho tr:first-child th, .dgr-tokusho tr:first-child td { border-top: 2px solid var(--sumi); }
.dgr-tokusho th, .dgr-tokusho td { border-bottom: 1px solid var(--line); padding: 16px 14px; text-align: left; vertical-align: top; line-height: 1.85; }
.dgr-tokusho th { background: var(--box2); width: 28%; color: var(--sumi); font-weight: 700; }
.dgr-tokusho tr.is-todo td { color: var(--shu); background: #fdf3f1; }
@media (max-width: 640px) {
  .dgr-tokusho, .dgr-tokusho tbody, .dgr-tokusho tr, .dgr-tokusho th, .dgr-tokusho td { display: block; width: auto; }
  .dgr-tokusho th { border-bottom: none; padding: 12px 14px 6px; font-size: 13px; }
  .dgr-tokusho td { padding: 0 14px 16px; }
}

/* 免責 */
.dgr-disclaimer { margin: 0; padding-left: 1.4em; font-size: 14.5px; line-height: 1.95; }
.dgr-disclaimer li { margin-bottom: 12px; }
.dgr-disclaimer b { color: var(--sumi); }

.dgr-legal-updated { margin: 0 0 40px !important; font-size: 12.5px !important; color: var(--muted); text-align: right; }

/* 法務ページの足 */
.dgr-legalfoot { border-top: 1px solid var(--line); padding-top: 30px; }
.dgr-legalfoot-title { margin: 0 0 16px !important; font-size: 12px !important; font-weight: 700; letter-spacing: .18em; color: var(--muted); }
.dgr-legalfoot-links { display: grid; gap: 12px; margin: 0 0 22px; padding: 0; list-style: none; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }
.dgr-legalfoot-links li { border: 1px solid var(--line); border-radius: 8px; }
.dgr-legalfoot-links a {
  display: block; padding: 16px 18px 6px;
  font-size: 14.5px; font-weight: 700; color: var(--sumi) !important; text-decoration: none;
}
.dgr-legalfoot-links li:hover { border-color: var(--shu); }
.dgr-legalfoot-links li:hover a { color: var(--shu) !important; }
.dgr-legalfoot-links span { display: block; padding: 0 18px 15px; font-size: 12px; color: var(--muted); }
.dgr-legalfoot-contact { margin: 0 !important; font-size: 13.5px !important; color: var(--muted); }

/* ログイン */
.dgr-login-form { display: grid; gap: 11px; max-width: 420px; margin: 24px auto 0; }
.dgr-login-form label { font-size: 13.5px; font-weight: 700; text-align: left; }
.dgr-login-form input {
  padding: 14px;
  border: 1.5px solid var(--line);
  border-radius: 6px;
  font-size: 16px;
  font-family: inherit;
}
.dgr-login-form input:focus { outline: none; border-color: var(--shu); }

/* 購入ボタン単体 */
.dgr-buy { text-align: center; padding: 28px 0; }
.dgr-buy-note { margin: 16px 0 8px; font-size: 14px; }
.dgr-buy-legal { font-size: 11.5px; color: var(--muted); line-height: 1.95; }

@media print {
  .dgr-siteheader, .dgr-sitefooter, .dgr-actions,
  .dgr-custom-form, .dgr-retention, .dgr-panel--upsell { display: none !important; }
}


/* ---------- モバイルの固定CTA（LPのみ） ---------- */
.dgr-stickycta { display: none; }
@media (max-width: 780px) {
  .dgr-stickycta {
    display: flex;
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
    align-items: center; gap: 12px;
    padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
    background: rgba(255,255,255,.96);
    backdrop-filter: blur(8px);
    border-top: 1px solid var(--line);
    box-shadow: 0 -6px 22px rgba(31,45,61,.1);
  }
  .dgr-stickycta-price { flex: 0 0 auto; line-height: 1.25; }
  .dgr-stickycta-price b { display: block; font-size: 20px; color: var(--sumi); }
  .dgr-stickycta-price span { font-size: 10.5px; color: var(--muted); }
  .dgr-stickycta .dgr-btn { flex: 1; padding: 14px 10px; font-size: 15px; border-radius: 6px; }
  .dgr-lp { padding-bottom: 76px; }
}


/* ---------- スマートフォン最終調整（後勝ちにするため末尾に置く） ---------- */
@media (max-width: 720px) {
  /* 波形は3つ横並びのまま小さく見せる */
  .dgr-hero-waves { gap: 6px; flex-wrap: nowrap; margin-bottom: 4px; }
  .dgr-hero-wave { width: 32%; }
  .dgr-hero-wave figcaption { font-size: 10px; letter-spacing: .04em; }
  .dgr-hero-wavenote { font-size: 10.5px; margin-bottom: 28px; }

  .dgr-btn--xl { padding: 17px 20px; font-size: 16.5px; width: 100%; box-sizing: border-box; }
  .dgr-hero-cta { margin-bottom: 34px; }

  .dgr-hero-facts li { flex: 1 1 50%; border-bottom: 1px solid #3a4d61; padding-top: 16px; }
  .dgr-hero-facts li:nth-child(2n) { border-right: 0; }
  .dgr-hero-facts strong { font-size: 26px; }

  .dgr-h2-lp { font-size: clamp(21px, 5.8vw, 33px); }
  .dgr-section-lead { font-size: 15px; margin-bottom: 30px; }
  .dgr-typechip { font-size: 12.5px; padding: 7px 13px 7px 9px; }
  .dgr-typechip em { display: none; }
  .dgr-cards { gap: 12px; }
  .dgr-card { padding: 20px 18px; }
  .dgr-sample { padding: 22px 20px; }
  .dgr-sample-text { font-size: 14.5px; line-height: 1.95; }
  .dgr-pricecard { padding: 32px 22px 26px; }
  .dgr-pricecard-amount span { font-size: 46px; }
  .dgr-quote { padding: 16px 18px; font-size: 14.5px; }
  .dgr-supervisor-photo { max-width: 190px; }
  .dgr-cta { padding: 60px 0; }
}
