/* ---- base ---- */
.k2-sec{
  --bg:#1f2937; --head:#111827; --text:#e5e7eb; --border:rgba(255,255,255,.08);
  --radius:12px; --pad:14px;
  margin:28px 0; border-radius:var(--radius); overflow:hidden;
  background:var(--bg); color:var(--text);
}
.k2-sec__head{
  display:flex; align-items:center; gap:.6em;
  padding:12px var(--pad);
  background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,0)), var(--head);
  border-bottom:1px solid var(--border);
}
.k2-sec__icon{ line-height:1; display:flex; align-items:center; }
.k2-sec__icon svg{ width:1.1em; height:1.1em; opacity:.9; fill:currentColor; }
.k2-sec__title{ margin:0; font-size:1.05rem; line-height:1.3; background:transparent; padding:0; border:0; box-shadow:none; }
.k2-sec__title::before, .k2-sec__title::after{ content:none; }
.k2-sec__body{ padding:var(--pad); }
.k2-sec--light{ --bg:#f8fafc; --head:#eef2f7; --text:#0f172a; --border:rgba(0,0,0,.08); }
.k2-sec__body img, .k2-sec__body video, .k2-sec__body iframe{ border-radius:10px; max-width:100%; height:auto; }

/* ---- dense（全体スリム化） ---- */
.k2-sec--dense{ margin:18px 0; --radius:10px; }
.k2-sec--dense .k2-sec__head{ padding:8px 12px; }
.k2-sec--dense .k2-sec__title{ font-size:1rem; }
.k2-sec--dense .k2-sec__icon svg{ width:1em; height:1em; }
.k2-sec--dense .k2-sec__body{ padding:12px; }

/* ---- tight（ヘッダー直下の余白をさらに詰める） ---- */
.k2-sec--tight .k2-sec__body{ padding-top:8px; }
.k2-sec--tight .k2-sec__body > *:first-child{ margin-top:0; }
.k2-sec--tight .k2-sec__body .k2-reviewbox{ margin-top:0; }

/* ---- mobile tuning ---- */
@media (max-width:600px){
  .k2-sec--dense .k2-sec__head{ padding:6px 12px; }
  .k2-sec--dense .k2-sec__body{ padding:10px 12px; }
  .k2-sec--dense .k2-sec__title{ font-size:.98rem; }
}