/* =========================================================
   JOY DEN — Shared Design System
   ロゴ世界観：青→緑グラデ／オレンジ差し色／斜めシャープ
   ========================================================= */
:root{
  /* JD identity colors */
  --jd-blue: #1E7FFF;
  --jd-teal: #18B2C6;
  --jd-green: #16C79A;
  --jd-orange: #FF6A1A;
  --jd-orange-hi: #FF8C3A;

  /* gradients */
  --grad-jd: linear-gradient(120deg, #1E7FFF 0%, #18B2C6 50%, #16C79A 100%);
  --grad-jd-soft: linear-gradient(120deg, rgba(30,127,255,.08) 0%, rgba(22,199,154,.08) 100%);
  --grad-orange: linear-gradient(135deg, #FF6A1A 0%, #FF8C3A 100%);
  --grad-night: linear-gradient(180deg, #050B14 0%, #0A1626 60%, #0E1F33 100%);

  /* surfaces */
  --ink: #0E1A28;
  --ink-2: #1C2A3A;
  --muted: #6E7B89;
  --line: #E1E8EE;
  --line-2: #EEF3F7;
  --paper: #FFFFFF;
  --soft: #F6FAFD;
  --night: #050B14;

  /* effects */
  --glow-jd: 0 0 32px rgba(30,127,255,.45), 0 0 56px rgba(22,199,154,.28);
  --glow-jd-sm: 0 0 16px rgba(24,178,198,.5);
  --glow-orange: 0 14px 30px -10px rgba(255,106,26,.55), 0 0 24px rgba(255,140,58,.3);
  --shadow-card: 0 14px 36px -22px rgba(8,20,40,.35);
  --shadow-card-hover: 0 20px 48px -22px rgba(8,20,40,.45);

  /* radii */
  --r-xs: 4px;
  --r-sm: 8px;
  --r-md: 14px;
  --r-lg: 20px;
  --r-xl: 28px;
  --r-pill: 999px;
}

/* ===== reset & base ===== */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:'Zen Kaku Gothic New','Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif;
  color:var(--ink); background:var(--paper); line-height:1.85;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  /* 日本語の折り返しを綺麗に：CJK は文節/連続を切らず、必要な時だけ折り返す */
  word-break:normal;
  line-break:strict;
  overflow-wrap:anywhere;
}
.maru{font-family:'Zen Maru Gothic','Hiragino Maru Gothic ProN',sans-serif}
img{max-width:100%;display:block}
a{color:inherit}
button{font-family:inherit;cursor:pointer}

/* ===== 折り返し・行分けの共通ルール（全ページに効く） ===== */
h1,h2,h3,h4,h5,h6{
  word-break:keep-all;         /* 熟語の途中で切らない */
  overflow-wrap:anywhere;      /* あふれる時のみ強制改行 */
  line-break:strict;           /* 句読点の禁則を厳密に */
  text-wrap:balance;           /* 見出しの行末を揃える（対応ブラウザ） */
}
p,li,dd,dt,figcaption,blockquote{
  word-break:normal;
  overflow-wrap:anywhere;
  line-break:strict;
  text-wrap:pretty;            /* 最終行のひとりぼっち行を防ぐ */
}
/* 手動改行タグは狭幅時のみ効かせる（`<br class="sp-br">`） */
br.sp-br{display:inline}
@media (min-width:760px){ br.sp-br{display:none} }
/* 広幅時のみ効かせる（`<br class="pc-br">`） */
br.pc-br{display:none}
@media (min-width:760px){ br.pc-br{display:inline} }
/* 途中改行させたくない語句（`<span class="nowrap">`） */
.nowrap{white-space:nowrap}

/* ===== layout ===== */
.wrap{max-width:600px;margin:0 auto;padding:0 1.2rem}
@media (min-width:760px){
  .wrap{max-width:760px; padding:0 1.6rem}
}
@media (min-width:1100px){
  .wrap{max-width:880px; padding:0 2rem}
}

/* ===== brand wordmark ===== */
.jd-brand{
  font-family:'Zen Maru Gothic',sans-serif; font-weight:900;
  letter-spacing:.04em; display:inline-flex; align-items:center; gap:.45rem;
}
.jd-brand .jd-mark{
  background:var(--grad-jd); -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
}
.jd-brand .y{color:var(--jd-orange); -webkit-text-fill-color:var(--jd-orange)}
.jd-brand-dark{ /* on dark bg, add glow */
  text-shadow:0 0 14px rgba(24,178,198,.55), 0 0 28px rgba(30,127,255,.35);
}

/* ===== shared chip / tag / pill ===== */
.jd-eyebrow{
  display:inline-flex; align-items:center; gap:.45rem;
  font-size:.7rem; letter-spacing:.18em; font-weight:900; color:#fff;
  background:var(--grad-jd); padding:.35rem 1rem; border-radius:var(--r-pill);
  box-shadow:0 6px 14px -8px rgba(24,178,198,.55);
  text-transform:uppercase;
}
.jd-tag{
  display:inline-flex; align-items:center; gap:.35rem;
  font-size:.78rem; font-weight:800;
  padding:.36rem .8rem; border-radius:var(--r-pill);
  background:var(--soft); color:var(--ink-2); border:1.5px solid var(--line);
}
.jd-tag.is-blue{background:rgba(30,127,255,.08); color:var(--jd-blue); border-color:rgba(30,127,255,.25)}
.jd-tag.is-green{background:rgba(22,199,154,.08); color:#0E9B79; border-color:rgba(22,199,154,.28)}
.jd-tag.is-orange{background:rgba(255,106,26,.08); color:var(--jd-orange); border-color:rgba(255,106,26,.28)}

/* ===== section headings ===== */
h1,h2,h3{font-family:'Zen Maru Gothic',sans-serif;font-weight:900;line-height:1.35}
h2.jd-h{font-size:1.5rem; margin:.4rem 0 1.2rem; position:relative; padding-left:.9rem}
h2.jd-h::before{
  content:""; position:absolute; left:0; top:.25em; bottom:.25em; width:5px;
  background:var(--grad-jd); border-radius:var(--r-pill);
}
.jd-section{padding:2.4rem 0}
.jd-section + .jd-section{padding-top:0}

/* ===== buttons ===== */
.jd-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  font-family:'Zen Maru Gothic',sans-serif; font-weight:900;
  border:none; border-radius:var(--r-md); padding:1.05rem 1.4rem;
  font-size:1.05rem; cursor:pointer; text-decoration:none;
  transition:transform .14s ease, box-shadow .14s ease;
}
.jd-btn-orange{
  background:var(--grad-orange); color:#fff; box-shadow:var(--glow-orange);
}
.jd-btn-orange:hover{transform:translateY(-2px); box-shadow:0 20px 38px -12px rgba(255,106,26,.65), 0 0 28px rgba(255,140,58,.35)}
.jd-btn-orange:active{transform:translateY(1px)}
.jd-btn-jd{
  background:var(--grad-jd); color:#fff; box-shadow:var(--glow-jd-sm);
}
.jd-btn-line{
  background:#06C755; color:#fff;
  box-shadow:0 10px 22px -10px rgba(6,199,85,.55);
}
.jd-btn-block{width:100%; padding:1.1rem 1.2rem}

/* ===== card ===== */
.jd-card{
  background:var(--paper); border:1px solid var(--line);
  border-radius:var(--r-lg); box-shadow:var(--shadow-card);
  padding:1.4rem 1.2rem;
}
.jd-card-dark{
  background:var(--grad-night); color:#E6EDF6;
  border:1px solid rgba(30,127,255,.25); border-radius:var(--r-lg);
  padding:1.4rem 1.2rem;
  box-shadow:0 24px 60px -28px rgba(0,0,0,.6), inset 0 0 60px rgba(30,127,255,.06);
}

/* ===== icon round backgrounds ===== */
.jd-ic{
  width:44px; height:44px; border-radius:var(--r-pill);
  display:inline-flex; align-items:center; justify-content:center; flex:none;
  color:#fff;
}
.jd-ic.is-blue{background:linear-gradient(135deg,#1E7FFF,#3AA0FF)}
.jd-ic.is-teal{background:linear-gradient(135deg,#18B2C6,#16C79A)}
.jd-ic.is-green{background:linear-gradient(135deg,#16C79A,#3AD4B0)}
.jd-ic.is-orange{background:var(--grad-orange)}
.jd-ic svg{width:60%;height:60%}

/* ===== slash divider (sports motion accent) ===== */
.jd-slash{
  position:relative; height:14px; margin:1.6rem auto; max-width:88px;
}
.jd-slash::before, .jd-slash::after{
  content:""; position:absolute; top:0; bottom:0; width:30px;
  background:var(--grad-jd); border-radius:var(--r-pill);
  transform:skewX(-22deg);
}
.jd-slash::before{left:0}
.jd-slash::after{right:0; opacity:.55}

/* ===== form atoms ===== */
input[type=text],input[type=url],input[type=email],input[type=tel],textarea,select{
  width:100%; font-family:inherit; color:var(--ink);
  border:1.5px solid var(--line); background:var(--soft);
  border-radius:var(--r-sm); padding:.85rem .95rem; font-size:.95rem;
  transition:border-color .15s, background .15s, box-shadow .15s;
}
input:focus,textarea:focus,select:focus{
  outline:none; background:#fff; border-color:transparent;
  box-shadow:0 0 0 2px rgba(30,127,255,.5), 0 0 18px rgba(22,199,154,.25);
}
textarea{resize:vertical; min-height:104px; line-height:1.75}
::placeholder{color:#A8B4BF}

/* ===== a11y ===== */
:focus-visible{outline:3px solid var(--jd-teal); outline-offset:2px}

/* ===== Supported by JOY DEN (無償サポート表記) ===== */
.jd-supported-wrap{padding:1.6rem 1.2rem 0}
@media (min-width:760px){.jd-supported-wrap{padding:2rem 1.6rem 0}}
@media (min-width:1100px){.jd-supported-wrap{padding:2rem 2rem 0}}
.jd-supported{
  max-width:600px; margin:0 auto;
  padding:1.05rem 1.15rem;
  background:var(--paper); border:1px solid var(--line);
  border-radius:var(--r-md);
  display:flex; align-items:center; gap:.9rem;
  box-shadow:0 8px 22px -18px rgba(8,20,40,.28);
}
@media (min-width:760px){.jd-supported{max-width:760px; padding:1.15rem 1.4rem}}
@media (min-width:1100px){.jd-supported{max-width:880px}}
.jd-supported .sp-shield{flex:none; width:36px; height:36px; opacity:.95}
.jd-supported .sp-body{flex:1; min-width:0}
.jd-supported .sp-en{
  font-family:'Zen Maru Gothic',sans-serif; font-weight:900;
  font-size:.9rem; letter-spacing:.08em; color:var(--ink); line-height:1.3;
}
.jd-supported .sp-en .jd-name{color:var(--ink)}
.jd-supported .sp-en .jd-name .y{color:var(--jd-orange)}
.jd-supported .sp-jp{
  font-size:.72rem; color:var(--muted); line-height:1.7;
  font-weight:600; margin-top:.3rem;
}
@media (min-width:760px){
  .jd-supported .sp-shield{width:40px; height:40px}
  .jd-supported .sp-en{font-size:.95rem}
  .jd-supported .sp-jp{font-size:.76rem}
}

/* ===== このページをシェア（全チーム共通） ===== */
.jd-share-wrap{padding:1.6rem 1.2rem .2rem; text-align:center}
@media (min-width:760px){.jd-share-wrap{padding:2rem 1.6rem .2rem}}
@media (min-width:1100px){.jd-share-wrap{padding:2rem 2rem .2rem}}
.jd-share{max-width:600px; margin:0 auto}
@media (min-width:760px){.jd-share{max-width:760px}}
@media (min-width:1100px){.jd-share{max-width:880px}}
.jd-share-ttl{font-size:.84rem; color:var(--muted); margin-bottom:.7rem; font-weight:700}
.jd-share-btns{display:flex; gap:.5rem; justify-content:center; flex-wrap:wrap}
.jd-share-btn{
  display:inline-flex; align-items:center; gap:.35rem;
  border:1.5px solid var(--line); background:var(--paper);
  border-radius:var(--r-pill); padding:.5rem 1rem;
  font-size:.84rem; color:var(--ink-2); text-decoration:none; font-weight:700;
  cursor:pointer; transition:border-color .15s, color .15s;
  font-family:inherit;
}
.jd-share-btn:hover,.jd-share-btn:focus-visible{border-color:var(--jd-orange); color:var(--jd-orange)}
.jd-share-btn svg{width:14px; height:14px}
.jd-share-btn.is-copied{border-color:var(--jd-teal); color:var(--jd-teal)}

/* ===== チーム問い合わせフォーム（共通・中立配色） ===== */
.team-contact-mount:not(.is-ready){display:none}
.tc-section .wrap{max-width:600px}
@media (min-width:760px){.tc-section .wrap{max-width:640px}}
.tc-lead{
  font-size:.94rem; color:var(--ink-2); line-height:1.85; margin-bottom:1.1rem;
}
.tc-form{
  background:var(--paper); border:1px solid var(--line);
  border-radius:var(--r-lg); padding:1.3rem 1.15rem;
  box-shadow:0 14px 34px -22px rgba(8,20,40,.35);
  display:flex; flex-direction:column; gap:.95rem;
}
@media (min-width:760px){.tc-form{padding:1.5rem 1.55rem}}
.tc-field{display:flex; flex-direction:column; gap:.35rem}
.tc-label{
  font-size:.82rem; color:var(--ink-2); font-weight:800;
  display:inline-flex; align-items:center; gap:.4rem;
}
.tc-req{
  font-size:.62rem; letter-spacing:.06em; color:#fff;
  background:var(--jd-orange); padding:.14rem .45rem; border-radius:var(--r-pill);
  font-weight:900;
}
.tc-opt{
  font-size:.62rem; letter-spacing:.06em; color:var(--muted);
  background:var(--soft); border:1px solid var(--line);
  padding:.12rem .45rem; border-radius:var(--r-pill); font-weight:800;
}
.tc-form input[type=text],
.tc-form input[type=email],
.tc-form input[type=tel],
.tc-form select,
.tc-form textarea{
  width:100%; font-family:inherit; color:var(--ink);
  border:1.5px solid var(--line); background:var(--soft);
  border-radius:var(--r-sm); padding:.8rem .9rem; font-size:.94rem;
  transition:border-color .15s, background .15s, box-shadow .15s;
}
.tc-form textarea{min-height:120px; line-height:1.7; resize:vertical}
.tc-form input:focus,
.tc-form select:focus,
.tc-form textarea:focus{
  outline:none; background:#fff; border-color:var(--jd-orange);
  box-shadow:0 0 0 3px rgba(255,106,26,.18);
}
.tc-hp{
  position:absolute; left:-10000px; top:auto; width:1px; height:1px;
  overflow:hidden;
}
.tc-status{
  display:none; font-size:.86rem; padding:.7rem .9rem;
  border-radius:var(--r-sm); font-weight:700;
}
.tc-status.is-error{
  display:block; background:#FFF3F2; color:#B02020; border:1px solid #FFC5C0;
}
.tc-submit{margin-top:.2rem}
.tc-submit:disabled{opacity:.7; cursor:default}
.tc-note{
  font-size:.72rem; color:var(--muted); line-height:1.7; font-weight:600;
  margin:.5rem 0 0;
}
.tc-done{
  background:linear-gradient(135deg, #F4FDF7 0%, #E7F9EE 100%);
  border:1px solid #B7E9C6; border-radius:var(--r-lg);
  padding:1.5rem 1.3rem; text-align:center;
  box-shadow:0 14px 34px -22px rgba(15,90,50,.4);
}
.tc-done-ic{
  width:52px; height:52px; margin:0 auto .7rem;
  border-radius:50%; background:#16A55B; color:#fff;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 24px -10px rgba(22,165,91,.6);
}
.tc-done-ic svg{width:26px; height:26px}
.tc-done-t{
  font-family:'Zen Maru Gothic',sans-serif; font-weight:900;
  font-size:1.15rem; color:#0A5A35; margin-bottom:.35rem;
}
.tc-done-x{font-size:.86rem; color:#37475A; line-height:1.75}

/* =========================================================
   共通フッター（.jd-footer） — 全ページ共通、JS で注入
   ========================================================= */
.jd-footer{
  position:relative;
  background:var(--grad-night); color:#E6EDF6;
  margin-top:3.2rem;
  overflow:hidden;
}
.jd-footer::before{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(60% 90% at 12% 0%, rgba(30,127,255,.28), transparent 60%),
    radial-gradient(50% 80% at 90% 20%, rgba(22,199,154,.20), transparent 60%),
    radial-gradient(40% 60% at 50% 110%, rgba(255,106,26,.15), transparent 60%);
  pointer-events:none;
}
.jdf-wrap{
  position:relative; z-index:1;
  max-width:1180px; margin:0 auto;
  padding:2.6rem 1.4rem 1.6rem;
}
@media (min-width:760px){ .jdf-wrap{padding:3rem 1.8rem 1.8rem} }
@media (min-width:1100px){ .jdf-wrap{padding:3.4rem 2rem 2rem} }

.jdf-brand{
  display:flex; align-items:center; gap:.9rem;
  padding-bottom:1.6rem; margin-bottom:1.6rem;
  border-bottom:1px solid rgba(255,255,255,.10);
}
.jdf-shield{
  width:52px; height:52px; flex:none;
  filter:drop-shadow(0 0 18px rgba(255,255,255,.4)) drop-shadow(0 6px 14px rgba(15,60,120,.5));
}
.jdf-brand-text{min-width:0}
.jdf-name{
  font-family:'Zen Maru Gothic',sans-serif; font-weight:900;
  font-size:1.3rem; letter-spacing:.04em; color:#fff;
  text-shadow:0 0 14px rgba(24,178,198,.5), 0 0 28px rgba(30,127,255,.3);
  line-height:1.2;
}
.jdf-name .y{color:#FF8C3A; text-shadow:0 0 14px rgba(255,140,58,.7)}
.jdf-tag{
  margin-top:.2rem; font-size:.82rem; color:rgba(230,237,246,.75);
  font-weight:600; letter-spacing:.02em;
}
@media (min-width:760px){
  .jdf-shield{width:60px; height:60px}
  .jdf-name{font-size:1.5rem}
  .jdf-tag{font-size:.88rem}
}

.jdf-cols{
  /* モバイルから2列（minmax(0,1fr)で押し広がり防止） */
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.2rem 1rem;
}
@media (min-width:600px){ .jdf-cols{grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.8rem 1.6rem} }
@media (min-width:900px){ .jdf-cols{grid-template-columns:repeat(4,minmax(0,1fr)); gap:2rem 1.6rem} }

.jdf-col{min-width:0}
.jdf-h{
  font-family:'Zen Maru Gothic',sans-serif; font-weight:900;
  font-size:.82rem; letter-spacing:.16em; text-transform:uppercase;
  color:#fff; margin-bottom:.9rem;
  padding-bottom:.5rem; position:relative;
}
.jdf-h::after{
  content:""; position:absolute; left:0; bottom:0;
  width:28px; height:2px; background:var(--grad-jd); border-radius:2px;
}
.jdf-col ul{list-style:none; margin:0; padding:0}
.jdf-col li{margin-bottom:.55rem; line-height:1.5}
.jdf-col a{
  color:rgba(230,237,246,.82); text-decoration:none;
  font-size:.92rem; font-weight:600;
  transition:color .14s ease, transform .14s ease;
  display:inline-flex; align-items:center; gap:.3rem;
}
.jdf-col a:hover{ color:#fff; }
.jdf-col a:hover::after{
  content:"→"; color:var(--jd-teal); font-weight:900;
}
.jdf-col .jdf-note{
  color:rgba(230,237,246,.7); font-size:.86rem; line-height:1.7;
  font-weight:600;
}
.jdf-contact{
  color:rgba(230,237,246,.82); font-size:.9rem; font-weight:600;
  line-height:1.75; margin-top:.3rem;
}
.jdf-contact a{color:#fff; border-bottom:1px dashed rgba(255,255,255,.35)}
.jdf-contact a:hover{border-bottom-color:#fff}

.jdf-social{display:flex; gap:.6rem; margin-bottom:.9rem}
.jdf-social a{
  width:38px; height:38px; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14);
  color:#fff; text-decoration:none;
  transition:transform .14s ease, background .14s ease, border-color .14s ease;
}
.jdf-social a:hover{
  background:rgba(24,178,198,.22); border-color:rgba(24,178,198,.5);
  transform:translateY(-2px);
}
.jdf-social a::after{content:none}
.jdf-social svg{width:18px; height:18px}
.jdf-org{
  color:rgba(230,237,246,.75); font-size:.86rem; font-weight:600;
  line-height:1.6;
}
.jdf-org b{color:#fff; font-weight:800}

.jdf-bottom{
  margin-top:2rem; padding-top:1.1rem;
  border-top:1px solid rgba(255,255,255,.08);
  display:flex; align-items:center; justify-content:space-between;
  gap:.8rem; flex-wrap:wrap;
}
.jdf-copy{
  color:rgba(230,237,246,.55); font-size:.78rem; letter-spacing:.06em;
  font-weight:700;
}
.jdf-back{
  color:rgba(230,237,246,.7); font-size:.78rem; text-decoration:none;
  font-weight:700; letter-spacing:.04em;
}
.jdf-back:hover{color:#fff}

/* =========================================================
   コンテンツ文書ページ共通（.jd-doc, .jd-doc-header, .jd-doc-hero）
   /about /privacy /terms /faq /support /sponsor で使用
   ========================================================= */
.jd-doc-header{
  padding:1.1rem 1.2rem;
  border-bottom:1px solid var(--line-2);
  background:#fff;
  position:sticky; top:0; z-index:20;
  backdrop-filter:saturate(1.2) blur(6px);
}
.jd-doc-header .wrap{
  max-width:1180px; margin:0 auto; padding:0;
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
}
.jd-doc-header .brand{
  font-family:'Zen Maru Gothic',sans-serif; font-weight:900;
  font-size:1.25rem; letter-spacing:.04em;
  text-decoration:none; display:inline-flex; align-items:center; gap:.35rem;
}
.jd-doc-header .brand .mark{
  background:var(--grad-jd); -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
}
.jd-doc-header .brand .y{color:var(--jd-orange); -webkit-text-fill-color:var(--jd-orange)}
.jd-doc-header .nav{display:flex; gap:1rem; align-items:center; font-size:.88rem; font-weight:800}
.jd-doc-header .nav a{
  color:var(--ink-2); text-decoration:none;
  border-bottom:2px solid transparent; padding:.2rem 0;
}
.jd-doc-header .nav a:hover{color:var(--jd-blue); border-bottom-color:var(--jd-teal)}
@media (max-width:559px){ .jd-doc-header .nav .hide-sm{display:none} }

.jd-doc-hero{
  background:linear-gradient(180deg, #F6FAFD 0%, #EFF8F6 100%);
  padding:2.4rem 1.2rem 2rem;
  border-bottom:1px solid var(--line-2);
}
.jd-doc-hero .wrap{max-width:760px; margin:0 auto; padding:0}
.jd-doc-hero .eyebrow{
  display:inline-flex; align-items:center; gap:.4rem;
  font-size:.7rem; letter-spacing:.2em; font-weight:900;
  color:#fff; background:var(--grad-jd);
  padding:.32rem .9rem; border-radius:var(--r-pill);
  box-shadow:0 6px 14px -8px rgba(24,178,198,.55);
  text-transform:uppercase;
}
.jd-doc-hero h1{
  font-family:'Zen Maru Gothic',sans-serif; font-weight:900;
  font-size:1.8rem; margin:.9rem 0 .4rem; line-height:1.35;
  color:var(--ink);
}
@media (min-width:760px){ .jd-doc-hero h1{font-size:2.2rem} }
.jd-doc-hero .lead{
  font-size:1rem; color:var(--ink-2); line-height:1.85;
  margin-top:.4rem;
}
.jd-doc-hero .meta{
  margin-top:.7rem; font-size:.82rem; color:var(--muted); font-weight:600;
}

.jd-doc{
  max-width:760px; margin:0 auto;
  padding:2.4rem 1.2rem 3.2rem;
  color:var(--ink);
}
@media (min-width:760px){ .jd-doc{padding:3rem 1.6rem 4rem} }
.jd-doc h2{
  font-family:'Zen Maru Gothic',sans-serif; font-weight:900;
  font-size:1.25rem; line-height:1.45;
  margin:2.2rem 0 .9rem;
  padding-left:.9rem; position:relative;
}
.jd-doc h2::before{
  content:""; position:absolute; left:0; top:.2em; bottom:.2em; width:5px;
  background:var(--grad-jd); border-radius:var(--r-pill);
}
.jd-doc h2:first-child{margin-top:0}
.jd-doc h3{
  font-family:'Zen Maru Gothic',sans-serif; font-weight:900;
  font-size:1.05rem; margin:1.6rem 0 .6rem; color:var(--ink);
}
.jd-doc p{
  font-size:.98rem; line-height:1.95; margin:.6rem 0;
  color:var(--ink-2);
}
.jd-doc ul, .jd-doc ol{
  margin:.6rem 0 1rem 1.5rem;
}
.jd-doc li{
  font-size:.96rem; line-height:1.9; margin-bottom:.35rem;
  color:var(--ink-2);
}
.jd-doc strong, .jd-doc b{color:var(--ink); font-weight:800}
.jd-doc .doc-callout{
  background:var(--grad-jd-soft); border:1px solid rgba(24,178,198,.28);
  border-radius:var(--r-md); padding:1rem 1.15rem;
  margin:1.2rem 0; font-size:.94rem; color:var(--ink-2); line-height:1.85;
}
.jd-doc .doc-callout b{color:var(--ink)}
.jd-doc .doc-signature{
  margin-top:2.2rem; padding-top:1.2rem;
  border-top:1px solid var(--line);
  font-size:.86rem; color:var(--muted); line-height:1.8;
}
.jd-doc .doc-signature b{color:var(--ink-2)}

/* FAQ 用アコーディオン風カード */
.jd-faq{display:flex; flex-direction:column; gap:.8rem; margin:1.4rem 0}
.jd-faq details{
  background:#fff; border:1px solid var(--line);
  border-radius:var(--r-md); box-shadow:var(--shadow-card);
  padding:0;
}
.jd-faq summary{
  cursor:pointer; padding:1rem 1.2rem;
  font-family:'Zen Maru Gothic',sans-serif; font-weight:900;
  font-size:.98rem; color:var(--ink); line-height:1.55;
  list-style:none; position:relative;
  padding-right:2.6rem;
}
.jd-faq summary::-webkit-details-marker{display:none}
.jd-faq summary::before{
  content:"Q"; display:inline-flex; align-items:center; justify-content:center;
  width:22px; height:22px; border-radius:50%; margin-right:.55rem;
  background:var(--grad-jd); color:#fff; font-size:.72rem; font-weight:900;
  vertical-align:.05em;
}
.jd-faq summary::after{
  content:""; position:absolute; right:1.1rem; top:50%;
  width:10px; height:10px; margin-top:-6px;
  border-right:2px solid var(--jd-blue); border-bottom:2px solid var(--jd-blue);
  transform:rotate(45deg);
  transition:transform .18s ease;
}
.jd-faq details[open] summary::after{transform:rotate(-135deg); margin-top:-2px}
.jd-faq .a{
  padding:.2rem 1.2rem 1.15rem;
  color:var(--ink-2); font-size:.94rem; line-height:1.9;
  border-top:1px solid var(--line-2); margin-top:.2rem; padding-top:.9rem;
}
.jd-faq .a p{margin:.35rem 0}
.jd-faq .a strong{color:var(--ink)}

/* 料金プランカード（sponsor） */
.jd-plans{
  display:grid; grid-template-columns:1fr; gap:1rem;
  margin:1.2rem 0 1.6rem;
}
@media (min-width:640px){ .jd-plans{grid-template-columns:1fr 1fr} }
@media (min-width:900px){ .jd-plans.is-three{grid-template-columns:repeat(3,1fr)} }
.jd-plan{
  background:#fff; border:1.5px solid var(--line);
  border-radius:var(--r-lg); padding:1.3rem 1.2rem;
  box-shadow:var(--shadow-card); position:relative;
}
.jd-plan.is-gold{border-color:rgba(255,183,66,.55); background:linear-gradient(180deg, #FFFCF5 0%, #FFF 100%)}
.jd-plan.is-silver{border-color:rgba(168,180,196,.55); background:linear-gradient(180deg, #F8FAFD 0%, #FFF 100%)}
.jd-plan.is-bronze{border-color:rgba(205,127,50,.4); background:linear-gradient(180deg, #FCF7F2 0%, #FFF 100%)}
.jd-plan .p-rank{
  font-family:'Zen Maru Gothic',sans-serif; font-weight:900;
  font-size:1rem; letter-spacing:.06em;
}
.jd-plan .p-price{
  font-family:'Zen Maru Gothic',sans-serif; font-weight:900;
  font-size:1.6rem; color:var(--ink); margin:.4rem 0 .3rem;
  line-height:1.15;
}
.jd-plan .p-price .u{font-size:.7em; color:var(--muted); font-weight:800; margin-left:.2rem}
.jd-plan .p-desc{font-size:.9rem; color:var(--ink-2); line-height:1.75}
.jd-plan .p-year{font-size:.76rem; color:var(--muted); margin-top:.4rem; font-weight:700}

/* シンプルステップ（sponsor 申込みフロー） */
.jd-steps-mini{
  display:flex; flex-direction:column; gap:.7rem;
  counter-reset:jstep;
  margin:1rem 0 1.4rem;
}
@media (min-width:640px){ .jd-steps-mini{flex-direction:row; gap:.9rem} }
.jd-steps-mini .s{
  flex:1; background:#fff; border:1px solid var(--line);
  border-radius:var(--r-md); padding:1rem 1.1rem;
  counter-increment:jstep;
  position:relative;
}
.jd-steps-mini .s::before{
  content:counter(jstep);
  display:inline-flex; align-items:center; justify-content:center;
  width:26px; height:26px; border-radius:50%;
  background:var(--grad-jd); color:#fff;
  font-family:'Zen Maru Gothic',sans-serif; font-weight:900; font-size:.86rem;
  margin-bottom:.55rem;
}
.jd-steps-mini .s .t{font-family:'Zen Maru Gothic',sans-serif; font-weight:900; font-size:.98rem; color:var(--ink)}
.jd-steps-mini .s .d{font-size:.86rem; color:var(--ink-2); line-height:1.75; margin-top:.25rem}
