/* ===== 重厚な紫 × 金アクセント ===== */
:root{
  --brand:#3b0764;      /* 深い紫 */
  --brand-2:#5b21b6;    /* 少し明るい紫 */
  --gold:#b0892f;       /* 淡い金（強すぎない） */
  --ink:#111827;        /* 本文 */
  --muted:#4b5563;      /* 補助 */
  --panel:#ffffff;      /* カード背景 */
  --paper:#f7f7fb;      /* 用紙のような背景 */
  --border:#e5e7eb;     /* 枠線 */
}
body{
  font-family:"Noto Sans JP", system-ui, -apple-system, "Segoe UI", "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  color:var(--ink);
  background:
    radial-gradient(1200px 600px at 90% -10%, rgba(59,7,100,.12), transparent 60%),
    radial-gradient(1000px 520px at 10% 120%, rgba(91,33,182,.10), transparent 60%),
    var(--paper);
}

/* ヘッダー（重厚） */
.navbar{
  background: linear-gradient(90deg, var(--brand), #2a0548);
  box-shadow: 0 14px 36px rgba(43,11,85,.25);
  border-bottom: 2px solid rgba(176,137,47,.35);
}
.brand-tag{
  display:inline-block; font-size:.85rem; padding:.25rem .6rem;
  border:1px solid rgba(255,255,255,.35);
  color:#fff; border-radius:999px; margin-left:.5rem;
  background:linear-gradient(90deg, rgba(255,255,255,.18), rgba(255,255,255,.08));
}

/* ヒーロー */
.hero{
  background:linear-gradient(180deg, rgba(91,33,182,.08), rgba(59,7,100,.06));
  border-bottom:1px solid rgba(176,137,47,.25);
}
.hero h1{
  font-weight:700; letter-spacing:.02em;
  text-shadow:0 1px 0 rgba(0,0,0,.05);
}
.lead{ color:var(--muted); }

/* セクション見出し */
.section-title{
  display:flex; align-items:center; gap:.6rem; font-weight:700; letter-spacing:.03em;
}
.section-title .bar{
  width:10px; height:26px; border-radius:4px;
  background:linear-gradient(180deg, var(--gold), var(--brand-2));
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.06);
}

/* カード */
.card{
  border:1px solid var(--border);
  border-radius:16px;
  background:var(--panel);
  box-shadow:0 16px 38px rgba(17,24,39,.06);
}
.card-header{
  border-bottom:1px solid var(--border);
  background:linear-gradient(180deg,#fff, #f1effa);
  border-top-left-radius:16px; border-top-right-radius:16px;
}

/* 定義リスト */
dl.specs{
  display:grid;
  grid-template-columns: 12rem 1fr;
  column-gap: 1.25rem;
  row-gap: .6rem;
  margin:0;
}
dl.specs dt{
  grid-column:1; font-weight:700; color:#1f2937;
  padding: .75rem 0 .25rem;
  border-bottom: 1px dashed var(--border);
}
dl.specs dd{
  grid-column:2; margin:0; padding: .75rem 0 .25rem;
  border-bottom: 1px dashed var(--border);
}
dl.specs dt:last-of-type, dl.specs dd:last-of-type{
  border-bottom:none;
}
@media (max-width: 768px){
  dl.specs{ grid-template-columns: 1fr; }
  dl.specs dt{ grid-column:1; padding-bottom: .25rem; }
  dl.specs dd{ grid-column:1; padding-top: 0; }
}

.note-box{
  background: #f3efff;
  border:1px solid #e0d8ff;
  border-radius:12px;
  padding:.7rem .9rem;
  color:#27105a;
}
.money{ font-variant-numeric: tabular-nums; }

/* ボタン */
.btn-gradient{
  background:linear-gradient(90deg, var(--brand), var(--brand-2));
  border:1px solid rgba(255,255,255,.08);
  color:#fff;
}
.btn-gradient:hover{ filter:brightness(1.05); }
.btn-outline-dark{ border-radius:999px; }

/* フッター */
footer{ color:var(--muted); }

/* 印刷 */
@media print{
  @page{ size:A4; margin:14mm 14mm 18mm; }
  body{ background:#fff; }
  .navbar, .hero{ display:none !important; }
  a[href]::after{ content:""; }
  .card, .card-header{ box-shadow
