/* ═══════════════════════════════════════════════════════
   イチオシクイズ  サブページ専用スタイルシート
   ────────────────────────────────────────────────────
   ローカル確認用パス：../ichioshi_quiz_sub.css
   本番環境パス　　 ：/css/ichioshi_quiz_sub.css
   ────────────────────────────────────────────────────
   メインCSS（ichioshi_quiz_mock.css）と併用してください。
   body/.iq/.iq-header/.iq-footer の基本スタイルは
   メインCSSに依存しています。
═══════════════════════════════════════════════════════ */

/* ── CSS変数（メインCSSと統一） ── */
:root {
  --red-dark  : #3b040b;
  --red       : #7d1020;
  --red-bright: #b5283a;
  --gold-dark : #8c6727;
  --gold      : #d4ad55;
  --gold-light: #f0d58d;
  --cream     : #fff8e8;
  --paper     : #fffdf7;
  --ink       : #2d211e;
  --muted     : #74635e;
  --serif     : "Yu Mincho","Hiragino Mincho ProN",serif;
  --sans      : -apple-system,BlinkMacSystemFont,"Helvetica Neue","Noto Sans JP",sans-serif;
}

/* ── アニメーション ── */
@keyframes subGoldPulse {
  0%,100%{ opacity:.72 }
  50%    { opacity:1   }
}
@keyframes subCrestSpin {
  to{ transform:rotate(360deg) }
}
@keyframes subFadeUp {
  from{ opacity:0; transform:translateY(14px) }
  to  { opacity:1; transform:none }
}
@keyframes subOrbitSpin {
  to{ transform:rotate(360deg) }
}
@keyframes subShimmer {
  0%  { transform:translateX(-120%) skewX(-18deg) }
  100%{ transform:translateX(220%)  skewX(-18deg) }
}

/* ══════════════════════════════════════════════════════
   サブページ ヒーロー（ページタイトルエリア）
══════════════════════════════════════════════════════ */
.iq-sub-hero {
  position  : relative;
  overflow  : hidden;
  background:
    radial-gradient(ellipse 90% 60% at 50% 0%, rgba(240,195,62,.15), transparent 68%),
    repeating-linear-gradient( 45deg,rgba(255,228,140,.042) 0 1px,transparent 1px 22px),
    repeating-linear-gradient(-45deg,rgba(255,228,140,.042) 0 1px,transparent 1px 22px),
    radial-gradient(ellipse 80% 36% at 50% 100%, rgba(10,0,2,.4), transparent),
    linear-gradient(172deg,#260308,#460a12 38%,#5e0d1a 66%,#360810);
}

/* 頂部ゴールドライン（脈動） */
.iq-sub-hero::before {
  content   : "";
  position  : absolute;
  top:0; left:0; right:0;
  height    : 3px;
  background: linear-gradient(90deg,transparent,var(--gold) 28%,var(--gold-light) 50%,var(--gold) 72%,transparent);
  animation : subGoldPulse 4.2s ease-in-out infinite;
  z-index   : 2;
}

/* 底部：ゴールドライン区切り */
.iq-sub-hero::after {
  content      : "";
  position     : absolute;
  bottom       : 0; left: 10%; right: 10%;
  height       : 1px;
  background   : linear-gradient(90deg, transparent, rgba(212,173,85,.55) 30%, rgba(212,173,85,.55) 70%, transparent);
  z-index      : 2;
  pointer-events:none;
}

/* ヒーロー内側レイアウト */
.iq-sub-hero-inner {
  position  : relative;
  z-index   : 3;
  padding   : 32px 22px 52px;
  text-align: center;
  /* 星粒（CSS純正） */
  background:
    radial-gradient(circle 1.5px at  9% 28%, rgba(255,218,120,.55), transparent 2px),
    radial-gradient(circle 1px  at 77% 16%, rgba(255,218,120,.45), transparent 1.5px),
    radial-gradient(circle 2px  at 89% 58%, rgba(255,218,120,.32), transparent 2.5px),
    radial-gradient(circle 1px  at 31% 68%, rgba(255,218,120,.38), transparent 1.5px),
    radial-gradient(circle 1.5px at 53% 42%, rgba(255,218,120,.26), transparent 2px),
    radial-gradient(circle 1px  at  6% 75%, rgba(255,218,120,.28), transparent 1.5px),
    radial-gradient(circle 1px  at 43% 10%, rgba(255,218,120,.42), transparent 1.5px);
}

/* ページキッカー（英字ルーム名） */
.iq-sub-kicker {
  display       : inline-flex;
  align-items   : center;
  gap           : 9px;
  margin-bottom : 10px;
  color         : var(--gold-light);
  font-family   : var(--serif);
  font-size     : 9px;
  font-weight   : 900;
  letter-spacing: .22em;
}
.iq-sub-kicker::before,
.iq-sub-kicker::after {
  content   : "";
  width     : 26px; height:1px;
  background: var(--gold);
  opacity   : .85;
}

/* ページタイトル h1 */
.iq-sub-hero-h1 {
  margin        : 0 0 13px;
  color         : #fff;
  font-family   : var(--serif);
  font-size     : 26px;
  font-weight   : 900;
  letter-spacing: .06em;
  line-height   : 1.38;
  text-shadow   : 0 2px 16px rgba(0,0,0,.76), 0 0 40px rgba(240,195,62,.2);
}

/* h1 下の飾り菱形 */
.iq-sub-hero-ornament {
  color         : var(--gold);
  font-size     : 8px;
  letter-spacing: .45em;
  opacity       : .68;
  padding-left  : .45em;
}

/* ── パンくずリスト ── */
.iq-sub-breadcrumb {
  display     : flex;
  align-items : center;
  flex-wrap   : wrap;
  gap         : 5px;
  padding     : 8px 22px;
  background  : var(--cream);
  border-bottom: 1px solid rgba(196,158,54,.2);
  font-family : var(--serif);
  font-size   : 10px;
  color       : var(--muted);
}
.iq-sub-breadcrumb a {
  color          : var(--red);
  text-decoration: none;
}
.iq-sub-breadcrumb a:active{ text-decoration:underline }
.iq-sub-bc-sep     { color:rgba(196,158,54,.85); font-size:9px }
.iq-sub-bc-current { color:var(--ink); font-weight:700 }

/* ══════════════════════════════════════════════════════
   メインコンテンツ（スクロール/羊皮紙エリア）
══════════════════════════════════════════════════════ */
.iq-sub-body {
  padding   : 38px 22px 64px;
  background:
    radial-gradient(ellipse 85% 16% at 50% 0%, rgba(240,195,62,.08), transparent),
    radial-gradient(circle, rgba(196,158,54,.055) 1px, transparent 1px) 0 0 / 18px 18px,
    linear-gradient(172deg,#fffef8,#f7e9c8 55%,#f0e1c0);
}

.iq-sub-section{ margin-bottom:42px }
.iq-sub-section:last-child{ margin-bottom:0 }

/* ── セクション見出し h2（章扉プレート） ── */
.iq-sub-h2 {
  position      : relative;
  margin        : 0 0 22px;
  padding       : 13px 14px 13px 50px;
  border-radius : 8px;
  border        : 1px solid rgba(212,173,85,.38);
  background    : linear-gradient(135deg,#470910,#360710);
  color         : var(--gold-light);
  font-family   : var(--serif);
  font-size     : 15px;
  font-weight   : 900;
  letter-spacing: .05em;
  line-height   : 1.46;
  box-shadow    : 0 5px 20px rgba(51,2,10,.2), inset 0 1px 0 rgba(255,232,148,.12);
}
/* 内側インセットライン */
.iq-sub-h2::after {
  content      : "";
  position     : absolute;
  inset        : 4px;
  border-radius: 5px;
  border       : 1px solid rgba(255,228,148,.1);
  pointer-events:none;
}
/* 番号バッジ */
.iq-sub-h2-num {
  position     : absolute;
  left:11px; top:50%; transform:translateY(-50%);
  display      : grid; place-items:center;
  width:28px; height:28px;
  border-radius: 50%;
  background   : linear-gradient(135deg,var(--gold-light),var(--gold));
  color        : var(--red-dark);
  font-family  : var(--serif);
  font-size    : 11px; font-weight:900;
}

/* ── 小見出し h3（部屋の額縁） ── */
.iq-sub-h3 {
  position      : relative;
  margin        : 26px 0 13px;
  padding       : 1px 0 9px 15px;
  color         : var(--red-dark);
  font-family   : var(--serif);
  font-size     : 14px; font-weight:900;
  letter-spacing: .04em;
  border-bottom : 1px solid rgba(196,158,54,.3);
}
.iq-sub-h3::before {
  content      : "";
  position     : absolute;
  left:0; top:2px; bottom:9px;
  width        : 3px;
  border-radius: 2px;
  background   : linear-gradient(180deg,var(--gold),var(--gold-dark));
}

/* ── 通常テキスト ── */
.iq-sub-p {
  margin        : 0 0 15px;
  color         : var(--ink);
  font-size     : 13px;
  line-height   : 2.06;
  letter-spacing: .02em;
}
.iq-sub-p:last-child{ margin-bottom:0 }

/* ── セクション区切り装飾（金ダイヤライン） ── */
.iq-sub-divider {
  display    : flex;
  align-items: center;
  gap        : 12px;
  margin     : 38px 0;
  color      : rgba(196,158,54,.52);
  font-size  : 8px;
  letter-spacing: .36em;
}
.iq-sub-divider::before,
.iq-sub-divider::after {
  content   : "";
  flex      : 1; height:1px;
  background: linear-gradient(90deg,transparent,rgba(196,158,54,.4));
}
.iq-sub-divider::after{
  background:linear-gradient(90deg,rgba(196,158,54,.4),transparent);
}

/* ── ヒントボックス（金縁の小巻物） ── */
.iq-sub-hint {
  position     : relative;
  margin       : 15px 0;
  padding      : 13px 14px 13px 40px;
  border-radius: 8px;
  border       : 1px solid rgba(212,173,85,.32);
  background   : linear-gradient(135deg,rgba(212,173,85,.1),rgba(212,173,85,.045));
  color        : var(--ink);
  font-size    : 12px;
  line-height  : 1.9;
}
.iq-sub-hint-icon {
  position  : absolute;
  left:13px; top:13px;
  color     : var(--gold);
  font-size : 11px;
  line-height:1;
}

/* ══════════════════════════════════════════════════════
   ご利用ガイド専用スタイル
══════════════════════════════════════════════════════ */

/* ステップリスト */
.iq-guide-steps{ display:grid; gap:13px }

/* ステップカード */
.iq-guide-step {
  position     : relative;
  display      : grid;
  grid-template-columns: 52px 1fr;
  gap          : 15px;
  padding      : 17px 15px;
  border       : 1px solid rgba(196,158,54,.3);
  border-radius: 12px;
  background   :
    linear-gradient(135deg,rgba(255,255,255,.9),rgba(250,240,218,.62));
  box-shadow   : 0 4px 16px rgba(59,4,11,.07);
}
/* ステップ間コネクター（縦金線） */
.iq-guide-step:not(:last-child)::after {
  content  : "";
  position : absolute;
  left     : 37px; bottom:-13px;
  width    : 2px; height:13px;
  background: linear-gradient(180deg,var(--gold-dark),transparent);
  z-index  : 1;
}

/* ステップバッジ */
.iq-guide-badge {
  display      : grid; place-items:center;
  width:44px; height:44px;
  border-radius: 50%;
  background   : linear-gradient(135deg,var(--red-bright),var(--red-dark));
  border       : 2px solid var(--gold);
  color        : var(--gold-light);
  font-family  : var(--serif);
  box-shadow   : 0 4px 14px rgba(100,5,20,.3);
  flex-shrink  : 0;
  align-self   : start;
}
.iq-guide-badge span   { display:block; font-size:8px; letter-spacing:.04em; opacity:.8 }
.iq-guide-badge strong { display:block; font-size:16px; line-height:1; color:#fff }

.iq-guide-step h4 {
  margin     : 0 0 6px;
  color      : var(--red-dark);
  font-family: var(--serif);
  font-size  : 13px; font-weight:900;
}
.iq-guide-step p {
  margin    : 0;
  color     : var(--muted);
  font-size : 12px;
  line-height:1.92;
}

/* 難易度グリッド（2列） */
.iq-guide-diff {
  display: grid;
  grid-template-columns: repeat(2,1fr);
  gap:10px; margin:15px 0;
}
.iq-guide-diff-card {
  padding      : 14px 12px;
  border       : 1px solid rgba(196,158,54,.3);
  border-radius: 10px;
  background   : linear-gradient(145deg,#fff8e4,#f5e2b8);
  text-align   : center;
  box-shadow   : 0 3px 12px rgba(59,4,11,.07);
}
.iq-guide-diff-stars { display:block; color:var(--gold); font-size:9px; margin-bottom:5px; letter-spacing:.06em }
.iq-guide-diff-name  { display:block; color:var(--red-dark); font-family:var(--serif); font-size:13px; font-weight:900; margin-bottom:5px }
.iq-guide-diff-text  { font-size:10px; color:var(--muted); line-height:1.72 }

/* ══════════════════════════════════════════════════════
   よくある質問（FAQ）専用スタイル
══════════════════════════════════════════════════════ */

/* カテゴリフィルタタブ */
.iq-qa-filter {
  display    : flex; gap:6px;
  overflow-x : auto; scrollbar-width:none;
  -webkit-overflow-scrolling: touch;
  margin-bottom: 22px;
}
.iq-qa-filter::-webkit-scrollbar{ display:none }
.iq-qa-filter-btn {
  flex-shrink  : 0;
  padding      : 7px 14px;
  border       : 1px solid rgba(182,138,48,.4);
  border-radius: 4px;
  background   : linear-gradient(180deg,#fffaee,#f5e9cc);
  color        : var(--red-dark);
  font-size    : 10px; font-weight:700;
  white-space  : nowrap; cursor:pointer;
  letter-spacing:.04em;
  font-family  : inherit;
  transition   : background .18s, border-color .18s, color .18s, box-shadow .18s;
}
.iq-qa-filter-btn.is-active {
  border-color: var(--red);
  background  : var(--red);
  color       : #fff;
  box-shadow  : 0 3px 10px rgba(140,10,25,.3);
}

/* Q&Aアコーディオンリスト */
.iq-qa-list{ display:grid; gap:9px }

.iq-qa-item {
  border       : 1px solid rgba(196,158,54,.26);
  border-radius: 10px;
  background   : linear-gradient(135deg,rgba(255,255,255,.93),rgba(252,242,218,.72));
  overflow     : hidden;
  box-shadow   : 0 3px 12px rgba(59,4,11,.06);
}
.iq-qa-item.is-hidden{ display:none }

/* Q行 */
.iq-qa-q {
  display    : flex; align-items:flex-start; gap:11px;
  padding    : 14px 15px;
  cursor     : pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}
.iq-qa-q-mark {
  display      : grid; place-items:center;
  width:28px; height:28px; flex-shrink:0; margin-top:1px;
  border-radius: 50%;
  background   : linear-gradient(135deg,var(--red-bright),var(--red-dark));
  color        : var(--gold-light);
  font-family  : var(--serif);
  font-size    : 14px; font-weight:900;
  box-shadow   : 0 3px 10px rgba(100,5,20,.26);
}
.iq-qa-q-text {
  flex       : 1;
  color      : var(--red-dark);
  font-family: var(--serif);
  font-size  : 13px; font-weight:900;
  line-height: 1.52;
  padding-top: 4px;
}
.iq-qa-q-arr {
  color      : var(--gold-dark);
  font-size  : 12px;
  transition : transform .22s;
  flex-shrink: 0;
  margin-top : 6px;
}
.iq-qa-item.is-open .iq-qa-q-arr{ transform:rotate(90deg) }

/* A行 */
.iq-qa-a {
  display    : none;
  padding    : 12px 15px 16px 54px;
  border-top : 1px solid rgba(196,158,54,.18);
  color      : var(--ink);
  font-size  : 12px;
  line-height: 1.97;
}
.iq-qa-a-mark {
  float      : left;
  margin     : -1px 0 0 -38px;
  color      : var(--gold-dark);
  font-family: var(--serif);
  font-size  : 13px; font-weight:900;
}
.iq-qa-item.is-open .iq-qa-a{ display:block }

/* ══════════════════════════════════════════════════════
   法的ページ共通（利用規約・プライバシー・特定商取引法）
══════════════════════════════════════════════════════ */

/* 冒頭イントロブロック（巻物の書き出し） */
.iq-legal-intro {
  position     : relative;
  margin-bottom: 28px;
  padding      : 22px 18px 18px;
  border       : 1px solid rgba(212,173,85,.45);
  border-radius: 10px;
  background   :
    radial-gradient(ellipse 80% 50% at 50% 0%, rgba(240,195,62,.12), transparent 70%),
    repeating-linear-gradient( 45deg,rgba(212,173,85,.035) 0 1px,transparent 1px 20px),
    repeating-linear-gradient(-45deg,rgba(212,173,85,.035) 0 1px,transparent 1px 20px),
    linear-gradient(160deg,#f8f0dc,#fff8e8);
  color        : var(--red-dark);
  font-size    : 12px;
  line-height  : 1.97;
  text-align   : center;
  box-shadow   : 0 2px 14px rgba(51,2,10,.08), inset 0 0 0 1px rgba(255,235,160,.5);
}
/* 頂部ゴールドラベル */
.iq-legal-intro::before{
  content      : "LEGAL NOTICE";
  display      : block;
  margin-bottom: 10px;
  color        : var(--gold);
  font-family  : var(--serif);
  font-size    : 9px;
  font-weight  : 900;
  letter-spacing:.28em;
  opacity      : .9;
}
/* 底辺区切りライン */
.iq-legal-intro::after{
  content   : "";
  display   : block;
  margin-top: 14px;
  height    : 1px;
  background: linear-gradient(90deg,transparent,rgba(212,173,85,.5) 30%,rgba(212,173,85,.5) 70%,transparent);
}
.iq-legal-intro strong{ color:var(--red-dark) }

/* 各条項 */
.iq-legal-art        { margin-bottom:28px }
.iq-legal-art:last-child{ margin-bottom:0 }

.iq-legal-art-title {
  display    : flex; align-items:center; gap:10px;
  margin     : 0 0 11px;
  color      : var(--red-dark);
  font-family: var(--serif);
  font-size  : 14px; font-weight:900;
}
.iq-legal-art-title::before {
  content      : "";
  display      : block;
  width:20px; height:20px; flex-shrink:0;
  border-radius: 50%;
  background   : linear-gradient(135deg,var(--gold-light),var(--gold));
  border       : 1.5px solid var(--gold-dark);
}

/* 条文テキスト */
.iq-legal-text {
  margin    : 0 0 13px;
  color     : var(--ink);
  font-size : 12px;
  line-height:1.97;
}

/* 箇条書き */
.iq-legal-list {
  margin      : 0 0 13px;
  padding-left: 0;
  list-style  : none;
}
.iq-legal-list li {
  position  : relative;
  padding   : 5px 0 5px 17px;
  color     : var(--ink);
  font-size : 12px;
  line-height:1.9;
  border-bottom: 1px solid rgba(196,158,54,.1);
}
.iq-legal-list li:last-child{ border-bottom:0 }
.iq-legal-list li::before {
  content  : "&#x25C6;";
  content  : "◆";
  position : absolute; left:0; top:8px;
  color    : var(--gold-dark);
  font-size: 6px;
}

/* テーブル（特定商取引法など） */
.iq-legal-table-wrap {
  border       : 1px solid rgba(196,158,54,.28);
  border-radius: 10px;
  overflow     : hidden;
  margin-bottom: 20px;
}
.iq-legal-table {
  width          : 100%;
  border-collapse: collapse;
  font-size      : 12px;
}
.iq-legal-table th,
.iq-legal-table td {
  padding       : 11px 13px;
  text-align    : left;
  vertical-align: top;
  border-bottom : 1px solid rgba(196,158,54,.18);
}
.iq-legal-table th {
  width     : 38%;
  color     : var(--red-dark);
  font-family:var(--serif); font-weight:900;
  background: linear-gradient(135deg,rgba(240,220,180,.28),rgba(240,220,180,.13));
  border-right:2px solid rgba(212,173,85,.3);
  white-space: nowrap;
}
.iq-legal-table td    { color:var(--ink); line-height:1.87 }
.iq-legal-table tr:last-child th,
.iq-legal-table tr:last-child td{ border-bottom:0 }

/* ══════════════════════════════════════════════════════
   対応機種一覧専用スタイル
══════════════════════════════════════════════════════ */

.iq-device-cat        { margin-bottom:28px }
.iq-device-cat:last-child{ margin-bottom:0 }

.iq-device-cat-head {
  display    : flex; align-items:center; gap:11px;
  margin-bottom:12px;
  padding-bottom:9px;
  border-bottom:2px solid rgba(196,158,54,.3);
  color      : var(--red-dark);
  font-family: var(--serif);
  font-size  : 14px; font-weight:900;
}
.iq-device-icon {
  display      : grid; place-items:center;
  width:30px; height:30px;
  border-radius: 8px;
  background   : linear-gradient(135deg,var(--red-bright),var(--red-dark));
  color        : var(--gold-light);
  font-size    : 14px;
  flex-shrink  : 0;
}
.iq-device-table-wrap {
  border       : 1px solid rgba(196,158,54,.24);
  border-radius: 10px;
  overflow     : hidden;
  margin-bottom: 20px;
}
.iq-device-table {
  width          : 100%;
  border-collapse: collapse;
  font-size      : 11px;
}
.iq-device-table th {
  padding    : 9px 12px;
  background : linear-gradient(135deg,#470910,#350710);
  color      : var(--gold-light);
  font-family: var(--serif); font-weight:900;
  text-align : left; letter-spacing:.04em;
}
.iq-device-table td {
  padding    : 9px 12px;
  color      : var(--ink);
  border-bottom:1px solid rgba(196,158,54,.13);
  vertical-align:top; line-height:1.75;
}
.iq-device-table tr:last-child td{ border-bottom:0 }
.iq-device-table tr:nth-child(even) td{ background:rgba(212,173,85,.04) }
.iq-device-ok      { color:#1a6e3a; font-weight:700 }
.iq-device-partial { color:#7a5a0a; font-weight:700 }
.iq-device-ng      { color:#8c1a1a; font-weight:700 }

/* 動作環境注記 */
.iq-device-note {
  margin    :14px 0 0;
  padding   :11px 14px;
  border-left:3px solid rgba(196,158,54,.45);
  background:rgba(212,173,85,.06);
  font-size :11px; color:var(--muted); line-height:1.85;
}

/* ══════════════════════════════════════════════════════
   お問い合わせ専用スタイル
══════════════════════════════════════════════════════ */

/* 冒頭案内 */
.iq-contact-notice {
  margin-bottom: 24px;
  padding      : 15px 17px;
  border       : 1px solid rgba(196,158,54,.28);
  border-radius: 10px;
  background   : linear-gradient(135deg,rgba(255,255,255,.88),rgba(252,242,218,.64));
  text-align   : center;
  color        : var(--muted);
  font-size    : 12px;
  line-height  : 1.97;
}
.iq-contact-notice strong{ color:var(--red-dark) }

/* フォーム本体 */
.iq-form{ display:grid; gap:16px }
.iq-form-row{ display:grid; gap:7px }

.iq-form-label {
  display    : flex; align-items:center; gap:6px;
  color      : var(--red-dark);
  font-family: var(--serif);
  font-size  : 12px; font-weight:900;
}
.iq-form-tag {
  display      : inline-block;
  padding      : 1px 7px;
  border-radius: 3px;
  font-size    : 9px; font-weight:900;
  letter-spacing:.04em;
}
.iq-form-tag-req{
  background:var(--red); color:#fff;
}
.iq-form-tag-opt{
  background:rgba(116,99,94,.18); color:var(--muted);
}

.iq-form-input,
.iq-form-select,
.iq-form-textarea {
  width        : 100%;
  padding      : 11px 14px;
  border       : 1px solid rgba(196,158,54,.42);
  border-radius: 8px;
  background   : linear-gradient(135deg,#fffcf5,#fdf5e4);
  color        : var(--ink);
  font-size    : 13px;
  font-family  : var(--sans);
  outline      : none;
  transition   : border-color .2s, box-shadow .2s;
  -webkit-appearance:none;
  box-sizing   : border-box;
}
.iq-form-input:focus,
.iq-form-select:focus,
.iq-form-textarea:focus {
  border-color: var(--gold);
  box-shadow  : 0 0 0 3px rgba(212,173,85,.16);
}
.iq-form-textarea{
  min-height  :130px;
  resize      :vertical;
  line-height :1.82;
}
/* selectの矢印 */
.iq-form-select-wrap{ position:relative }
.iq-form-select-wrap::after {
  content        : "&#x25BE;";
  content        : "▾";
  position       : absolute; right:13px; top:50%; transform:translateY(-50%);
  color          : var(--gold-dark);
  font-size      : 12px;
  pointer-events : none;
}

/* 送信ボタン */
.iq-form-submit-wrap{ margin-top:4px }

/* 注意書き */
.iq-contact-note {
  margin-top   : 14px;
  padding      : 12px 15px;
  border-left  : 3px solid rgba(196,158,54,.5);
  border-radius: 0 8px 8px 0;
  background   : rgba(212,173,85,.06);
  font-size    : 11px;
  color        : var(--muted);
  line-height  : 1.9;
}

/* ══════════════════════════════════════════════════════
   サブページ下部 CTA（非会員向け）
══════════════════════════════════════════════════════ */
.iq-sub-cta {
  position  : relative; overflow:hidden;
  padding   : 42px 22px 46px;
  background:
    repeating-linear-gradient( 45deg,rgba(212,173,85,.04) 0 1px,transparent 1px 22px),
    repeating-linear-gradient(-45deg,rgba(212,173,85,.04) 0 1px,transparent 1px 22px),
    radial-gradient(ellipse 80% 36% at 50% 0%, rgba(240,195,62,.15), transparent 66%),
    linear-gradient(172deg,#260308,#480a12 40%,#5e0d1a 66%,#360810);
  color     : #fff;
  text-align: center;
}
/* 頂部ゴールドライン */
.iq-sub-cta::before {
  content   : "";
  position  : absolute; top:0; left:0; right:0; height:3px;
  background: linear-gradient(90deg,transparent,var(--gold) 28%,var(--gold-light) 50%,var(--gold) 72%,transparent);
  animation : subGoldPulse 4.2s ease-in-out infinite;
}
/* 四隅の金L字装飾 */
.iq-sub-cta::after {
  content   : "";
  position  : absolute; inset:12px; z-index:0; pointer-events:none;
  background-image:
    linear-gradient(var(--gold),var(--gold)),linear-gradient(var(--gold),var(--gold)),
    linear-gradient(var(--gold),var(--gold)),linear-gradient(var(--gold),var(--gold)),
    linear-gradient(var(--gold),var(--gold)),linear-gradient(var(--gold),var(--gold)),
    linear-gradient(var(--gold),var(--gold)),linear-gradient(var(--gold),var(--gold));
  background-size    :22px 1.5px,1.5px 22px,22px 1.5px,1.5px 22px,22px 1.5px,1.5px 22px,22px 1.5px,1.5px 22px;
  background-position:left top,left top,right top,right top,left bottom,left bottom,right bottom,right bottom;
  background-repeat  :no-repeat;
  opacity   : .28;
}

.iq-sub-cta-inner{ position:relative; z-index:1 }
.iq-sub-cta-kicker {
  display      : inline-flex; align-items:center; gap:8px;
  margin-bottom: 13px;
  color        : var(--gold-light);
  font-family  : var(--serif); font-size:9px; font-weight:900; letter-spacing:.22em;
}
.iq-sub-cta-kicker::before,
.iq-sub-cta-kicker::after{ content:""; width:22px; height:1px; background:var(--gold) }
.iq-sub-cta h2 {
  margin    : 0 0 10px;
  color     : #fff; font-family:var(--serif); font-size:24px; font-weight:900;
  line-height:1.48; text-shadow:0 2px 12px rgba(0,0,0,.65);
}
.iq-sub-cta h2 span{ color:var(--gold-light) }
.iq-sub-cta p {
  margin  : 0 0 24px;
  color   : rgba(255,228,200,.72); font-size:12px; line-height:1.95;
}
.iq-sub-cta-btn-wrap {
  position: relative; overflow:hidden;
  display : block; width:min(90%,320px); margin:0 auto;
  border-radius:10px;
}
/* ボタンにシマー光条 */
.iq-sub-cta .iq-btn{
  position:relative; overflow:hidden;
  min-height:54px; font-size:13px; letter-spacing:.1em;
}
.iq-sub-cta .iq-btn::after{
  content  :"";
  position :absolute; top:0; left:0; width:38%; height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,238,180,.4),transparent);
  animation:subShimmer 2.4s cubic-bezier(.4,0,.6,1) infinite;
  pointer-events:none;
}

/* ══════════════════════════════════════════════════════
   ページ内アンカー / 戻るボタン
══════════════════════════════════════════════════════ */
.iq-sub-back {
  display      : flex; align-items:center; justify-content:center; gap:8px;
  width        : 100%;
  margin-top   : 32px;
  padding      : 16px 20px;
  border       : 1px solid rgba(196,158,54,.45);
  border-radius: 10px;
  background   : linear-gradient(135deg,rgba(255,248,224,.95),rgba(242,224,178,.85));
  color        : var(--red-dark);
  font-family  : var(--serif);
  font-size    : 15px; font-weight:900;
  text-decoration:none;
  letter-spacing:.06em;
  box-shadow   : 0 4px 14px rgba(59,4,11,.12);
  box-sizing   : border-box;
}
.iq-sub-back:active{ transform:translateY(2px); box-shadow:0 2px 6px rgba(59,4,11,.1); }
.iq-sub-back-arrow{ color:var(--gold-dark); font-size:18px; font-weight:900; }

/* ══════════════════════════════════════════════════════
   フェードイン（スクロールトリガー）
══════════════════════════════════════════════════════ */
.iq-sub-fade{
  opacity:1; transform:none;
}
.iq-sub-fade.is-show{
  opacity:1; transform:none;
}

/* ══════════════════════════════════════════════════════
   comicmint-sub 共通レイアウト
   （ローカル確認用。本番では /css/comicmint-sub.css に格納）
══════════════════════════════════════════════════════ */

/* ── ページ外枠（body直下ラッパー） ── */
.sub-page{
  min-height     : 100vh;
  background     :
    linear-gradient(
      90deg,
      #1d0206 0,
      #4b0912 calc(50% - 215px),
      var(--cream) calc(50% - 215px),
      var(--cream) calc(50% + 215px),
      #4b0912 calc(50% + 215px),
      #1d0206 100%
    );
}

/* ── 内側コンテナ（max-width 430px 中央揃え） ── */
.sub-page-inner{
  width     : min(100%,430px);
  margin    : 0 auto;
  background: var(--cream);
  min-height: 100vh;
  /* padding-top は .iq ラッパー側で管理（本番では 54px を設定） */
  box-shadow : 0 0 60px rgba(0,0,0,.45);
  overflow   : hidden;
}

/* ── 見出しエリア（ページヒーロー） ── */
.sub-head{
  position  : relative;
  padding   : 30px 22px 44px;
  text-align: center;
  overflow  : hidden;
  background:
    radial-gradient(ellipse 90% 60% at 50% 0%, rgba(240,195,62,.15), transparent 68%),
    repeating-linear-gradient( 45deg,rgba(255,228,140,.042) 0 1px,transparent 1px 22px),
    repeating-linear-gradient(-45deg,rgba(255,228,140,.042) 0 1px,transparent 1px 22px),
    radial-gradient(ellipse 80% 36% at 50% 100%, rgba(10,0,2,.4), transparent),
    linear-gradient(172deg,#260308,#460a12 38%,#5e0d1a 66%,#360810);
  /* 星粒（CSS純正） */
  background:
    radial-gradient(circle 1.5px at  9% 28%, rgba(255,218,120,.55), transparent 2px),
    radial-gradient(circle 1px  at 77% 16%, rgba(255,218,120,.45), transparent 1.5px),
    radial-gradient(circle 2px  at 89% 58%, rgba(255,218,120,.32), transparent 2.5px),
    radial-gradient(circle 1px  at 31% 68%, rgba(255,218,120,.38), transparent 1.5px),
    radial-gradient(circle 1px  at 43% 10%, rgba(255,218,120,.42), transparent 1.5px),
    radial-gradient(ellipse 90% 60% at 50% 0%, rgba(240,195,62,.15), transparent 68%),
    repeating-linear-gradient( 45deg,rgba(255,228,140,.042) 0 1px,transparent 1px 22px),
    repeating-linear-gradient(-45deg,rgba(255,228,140,.042) 0 1px,transparent 1px 22px),
    radial-gradient(ellipse 80% 36% at 50% 100%, rgba(10,0,2,.4), transparent),
    linear-gradient(172deg,#260308,#460a12 38%,#5e0d1a 66%,#360810);
}

/* 頂部ゴールドライン */
.sub-head::before{
  content   : "";
  position  : absolute;
  top:0; left:0; right:0;
  height    : 3px;
  background: linear-gradient(90deg,transparent,var(--gold) 28%,var(--gold-light) 50%,var(--gold) 72%,transparent);
  animation : subGoldPulse 4.2s ease-in-out infinite;
  z-index   : 2;
}
/* 底部ゴールドオーナメント区切り */
.sub-head::after{
  content      : "&#x25C6; &#x25C6; &#x25C6;";
  content      : "◆  ◆  ◆";
  position     : absolute;
  bottom       : 0; left:0; right:0;
  padding      : 10px 0 14px;
  text-align   : center;
  color        : rgba(240,195,65,.55);
  font-size    : 7px;
  letter-spacing: .55em;
  line-height  : 1;
  pointer-events:none;
  z-index      : 2;
}

/* ラベル（英字セクション名 / .sub-label） */
.sub-label{
  display       : inline-flex;
  align-items   : center;
  gap           : 9px;
  margin        : 0 0 10px;
  color         : var(--gold-light);
  font-family   : var(--serif);
  font-size     : 9px;
  font-weight   : 900;
  letter-spacing: .22em;
}
.sub-label::before,
.sub-label::after{
  content   : "";
  width     : 26px; height:1px;
  background: var(--gold);
  opacity   : .85;
}

/* h1（.sub-head 内） */
.sub-head h1{
  position      : relative; z-index:3;
  margin        : 0 0 12px;
  color         : #fff;
  font-family   : var(--serif);
  font-weight   : 900;
  letter-spacing: .06em;
  line-height   : 1.38;
  text-shadow   : 0 2px 16px rgba(0,0,0,.76), 0 0 40px rgba(240,195,62,.2);
}

/* ── HUD パネル（注意事項フレーム） ── */
@keyframes hudGlow{
  0%,100%{ box-shadow:0 8px 32px rgba(51,2,10,.38),0 0 0 2px rgba(212,173,85,.32) }
  50%    { box-shadow:0 8px 32px rgba(51,2,10,.38),0 0 0 2px rgba(212,173,85,.65),0 0 28px rgba(212,173,85,.12) }
}

.notice-hud{
  position     : relative;
  margin       : 28px 16px 36px;
  padding      : 24px 18px 22px;
  border-radius: 16px;
  border       : 1px solid rgba(212,173,85,.42);
  background   :
    /* 頂部ゴールドオーラ */
    radial-gradient(ellipse 90% 32% at 50% 0%, rgba(252,205,65,.22), transparent),
    /* 微細ダイヤモンドパターン */
    repeating-linear-gradient( 45deg,rgba(255,215,95,.045) 0 1px,transparent 1px 26px),
    repeating-linear-gradient(-45deg,rgba(255,215,95,.045) 0 1px,transparent 1px 26px),
    /* 赤ベース */
    linear-gradient(170deg,#7e1422,#631018 42%,#46090e);
  color       : #fff;
  animation   : hudGlow 5s ease-in-out infinite;
  overflow    : visible;
}
/* 内側インセットライン */
.notice-hud::before{
  content      : "";
  position     : absolute;
  inset        : 5px;
  border-radius: 12px;
  border       : 1px solid rgba(255,228,148,.1);
  pointer-events:none;
  z-index      : 0;
}
/* 頂点クレスト */
.notice-hud::after{
  content   : "&#x25C6;";
  content   : "◆";
  position  : absolute;
  top       : -12px; left:50%; transform:translateX(-50%);
  z-index   : 3;
  color     : var(--gold-light);
  font-size : 14px;
  text-shadow:0 0 14px rgba(240,195,65,.85), 0 0 5px rgba(240,195,65,.6);
  filter    : drop-shadow(0 2px 4px rgba(0,0,0,.7));
}

/* 四隅コーナーブラケット */
.hud-corner{
  position: absolute;
  width:18px; height:18px;
  z-index : 2;
}
.hud-corner--tl{
  top:-1px; left:-1px;
  border-top :2.5px solid var(--gold); border-left :2.5px solid var(--gold);
  border-radius:4px 0 0 0;
  box-shadow:-1px -1px 0 rgba(255,232,148,.18);
}
.hud-corner--tr{
  top:-1px; right:-1px;
  border-top :2.5px solid var(--gold); border-right:2.5px solid var(--gold);
  border-radius:0 4px 0 0;
  box-shadow:1px -1px 0 rgba(255,232,148,.18);
}
.hud-corner--bl{
  bottom:-1px; left:-1px;
  border-bottom:2.5px solid var(--gold); border-left :2.5px solid var(--gold);
  border-radius:0 0 0 4px;
  box-shadow:-1px 1px 0 rgba(255,232,148,.18);
}
.hud-corner--br{
  bottom:-1px; right:-1px;
  border-bottom:2.5px solid var(--gold); border-right:2.5px solid var(--gold);
  border-radius:0 0 4px 0;
  box-shadow:1px 1px 0 rgba(255,232,148,.18);
}

/* リード文（冒頭説明） */
.notice-lead{
  position     : relative; z-index:1;
  margin       : 0 0 20px;
  padding      : 18px 16px 16px;
  border       : 1px solid rgba(212,173,85,.48);
  border-radius: 10px;
  background   : rgba(255,255,255,.06);
  line-height  : 1.85;
  color        : rgba(255,245,215,.92);
  font-size    : 12px;
  text-align   : center;
}
/* 上辺ゴールドアクセント */
.notice-lead::before{
  content   : "SYSTEM NOTICE";
  display   : block;
  margin-bottom: 10px;
  color     : var(--gold-light);
  font-family: var(--serif);
  font-size  : 9px;
  font-weight: 900;
  letter-spacing: .28em;
  opacity   : .9;
}
/* fontタグのサイズ指定を上書き */
.notice-lead font{ font-size:inherit !important }

/* 注意事項リスト（.radius） */
.notice-hud .radius{
  position   : relative; z-index:1;
  margin     : 0;
  padding    : 0;
  list-style : none;
  display    : grid;
  gap        : 10px;
}
.notice-hud .radius li{
  position     : relative;
  padding      : 12px 13px 12px 48px;
  border-radius: 8px;
  border       : 1px solid rgba(212,173,85,.22);
  background   : rgba(255,255,255,.055);
  line-height  : 1.85;
  color        : rgba(255,235,215,.85);
  font-size    : 12px;
}
/* fontタグのサイズ指定を上書き */
.notice-hud .radius li font{ font-size:inherit !important }
/* data-step バッジ */
.notice-hud .radius li::before{
  content      : attr(data-step);
  position     : absolute;
  left:10px; top:50%; transform:translateY(-50%);
  display      : grid; place-items:center;
  width:26px; height:26px;
  border-radius: 50%;
  background   : linear-gradient(135deg,var(--gold-light),var(--gold));
  color        : var(--red-dark);
  font-family  : var(--serif);
  font-size    : 9px; font-weight:900;
  flex-shrink  : 0;
  box-shadow   : 0 2px 8px rgba(0,0,0,.4);
}

/* ══════════════════════════════════════════════════════
   retire_sp_1 — 退会ページ固有スタイル
══════════════════════════════════════════════════════ */

/* 旧デザインのタイトルブロックは非表示（ヒーローで代替） */
.iq-retire-orig-head{ display:none; }

/* 通知・エラーエリア（空の場合も非表示） */
.iq-retire-notice:empty{ display:none; }
.iq-retire-notice:not(:empty){
  margin       : 0 22px 18px;
  padding      : 14px 16px;
  border-radius: 8px;
  border       : 1px solid rgba(180,50,50,.4);
  background   : rgba(120,10,10,.12);
  color        : var(--red-dark);
  font-size    : 13px;
  line-height  : 1.8;
}

/* 空メール送信ボタンラッパー */
.iq-retire-mail{
  margin: 22px 0 4px;
}
.iq-retire-mail a[href^="mailto"]{
  position      : relative;
  display       : flex;
  align-items   : center;
  justify-content:center;
  gap           : 6px;
  width         : 100%;
  min-height    : 62px;
  padding       : 14px 18px;
  border        : 1px solid var(--gold);
  border-radius : 10px;
  background    : linear-gradient(135deg,#a51d31,#620914);
  box-shadow    : 0 7px 0 #3b050d,0 14px 24px rgba(51,2,10,.24);
  color         : #fff;
  font-weight   : 900;
  font-size     : 15px;
  letter-spacing: .06em;
  text-decoration:none;
}
/* 内側インセットライン */
.iq-retire-mail a[href^="mailto"]::before{
  content      : "";
  position     : absolute; inset:3px;
  border       : 1px solid rgba(255,231,172,.35);
  border-radius: 7px;
  pointer-events:none;
}
.iq-retire-mail a[href^="mailto"]:active{
  transform : translateY(4px);
  box-shadow: 0 3px 0 #3b050d,0 9px 18px rgba(51,2,10,.2);
}

/* キャリア別ドメイン指定変更エリア */
.iq-retire-carrier{
  margin       : 24px 0 0;
  padding      : 18px 16px;
  border-radius: 10px;
  border       : 1px solid rgba(212,173,85,.32);
  background   : rgba(255,248,224,.65);
  color        : var(--red-dark);
  font-size    : 13px;
  line-height  : 1.85;
  text-align   : center;
}
.iq-retire-carrier a{
  color          : var(--red);
  font-weight    : 700;
  text-decoration: none;
  border-bottom  : 1px solid rgba(165,29,49,.28);
  padding-bottom : 1px;
}
.iq-retire-carrier input[type="text"]{
  display     : block;
  width       : 100%;
  margin-top  : 10px;
  padding     : 9px 12px;
  border      : 1px solid rgba(212,173,85,.5);
  border-radius:6px;
  background  : var(--cream);
  color       : var(--red-dark);
  font-size   : 13px;
  box-sizing  : border-box;
  text-align  : left;
}

/* ══════════════════════════════════════════════════════
   regist_sp_1 — 会員登録ページ固有スタイル
══════════════════════════════════════════════════════ */

/* 旧デザインのタイトルブロックは非表示 */
.iq-regist-orig-head{ display:none; }

/* サービス紹介ヘッダー（<header> 内） */
.iq-regist-service-head{
  text-align  : center;
  margin      : 0 0 4px;
  overflow    : hidden;
}
.iq-regist-service-head h1{
  margin      : 0 0 10px;
  padding     : 14px 18px;
  font-size   : 13px;
  font-weight : 700;
  color       : var(--red-dark);
  background  : rgba(255,248,224,.7);
  border-bottom:1px solid rgba(212,173,85,.3);
  line-height : 1.7;
}
.iq-regist-service-head img{
  display     : block;
  width       : 100%;
}

/* 決済バッジ画像 */
.iq-regist-payment-img{
  display     : block;
  margin      : 20px auto 4px;
  max-width   : 200px;
}

/* 登録 CTA ブロック */
.iq-regist-cta{
  margin      : 22px 0;
  text-align  : center;
}

/* 価格表示（<font> タグを上書き） */
.iq-regist-price{
  display      : flex;
  align-items  : center;
  justify-content:center;
  gap          : 8px;
  margin       : 0 0 18px;
  padding      : 13px 18px;
  border-radius: 30px;
  background   : linear-gradient(135deg,var(--gold-light),var(--gold));
  color        : var(--red-dark);
  font-family  : var(--serif);
  font-size    : 17px;
  font-weight  : 900;
  letter-spacing:.06em;
  box-shadow   : 0 4px 12px rgba(51,2,10,.22);
}
.iq-regist-price font{
  font-size   : inherit !important;
  color       : inherit !important;
}

/* 登録ボタン（画像ボタン） */
.iq-regist-cta-btn{
  display      : inline-block;
  position     : relative;
  border-radius: 10px;
  overflow     : hidden;
  box-shadow   : 0 7px 0 #3b050d,0 14px 24px rgba(51,2,10,.24);
  transition   : transform .12s,box-shadow .12s;
}
.iq-regist-cta-btn:active{
  transform    : translateY(4px);
  box-shadow   : 0 3px 0 #3b050d;
}
.iq-regist-cta-btn img{
  display      : block;
  max-width    : 200px;
  width        : 100%;
}

/* 通信料リンク */
.iq-regist-comm-link{
  display      : inline-block;
  margin-top   : 12px;
  font-size    : 12px;
  color        : var(--muted);
  border-bottom: 1px solid rgba(100,50,50,.2);
  text-decoration:none;
  padding-bottom:1px;
}

/* ══════════════════════════════════════════════════════
   tokutei_sp_1 — 特定商取引法ページ固有スタイル
══════════════════════════════════════════════════════ */

/* 法律コンテンツラッパー（ul.radius.iq-tokutei-list） */
.iq-tokutei-list{
  margin      : 0 0 28px;
  padding     : 0;
  list-style  : none;
}
.iq-tokutei-list > li{
  padding     : 22px 20px;
  border-radius:10px;
  border      : 1px solid rgba(212,173,85,.28);
  background  : rgba(255,248,224,.5);
  color       : var(--red-dark);
  font-size   : 13px;
  line-height : 1.95;
}

/* 各セクション見出し（●〜）をボールドに */
.iq-tokutei-list > li br + br + *,
.iq-tokutei-list > li{
  word-break:break-all;
}

/* 動的価格ボックス（rep_s.js が populate） */
#box1, #box2{
  margin      : 2px 0 12px;
  padding     : 0;
  background  : none;
  border      : none;
  font-size   : 13px;
  color       : var(--red-dark);
  line-height : 1.75;
  min-height  : 1.5em;
}
══════════════════════════════════════════════════════ */

/* 確認アクションブロック */
.iq-confirm-actions{
  margin  : 28px 0 8px;
  display : grid;
  gap     : 14px;
}

/* 「やっぱり退会しない」 — メイン（ゴールド系） */
.iq-confirm-stay a{
  position      : relative;
  display       : flex;
  align-items   : center;
  justify-content:center;
  width         : 100%;
  min-height    : 58px;
  padding       : 14px 18px;
  border        : 1px solid var(--gold);
  border-radius : 10px;
  background    : linear-gradient(135deg,#fff8e4,#ead49e);
  box-shadow    : 0 7px 0 #9a742f,0 14px 24px rgba(51,2,10,.18);
  color         : var(--red-dark);
  font-weight   : 900;
  font-size     : 14px;
  letter-spacing: .04em;
  text-decoration:none;
}
.iq-confirm-stay a::before{
  content      : "";
  position     : absolute; inset:3px;
  border       : 1px solid rgba(140,100,30,.25);
  border-radius: 7px;
}
.iq-confirm-stay a:active{
  transform : translateY(4px);
  box-shadow: 0 3px 0 #9a742f;
}

/* 「やっぱり退会する」 — セカンダリ（輪郭のみ） */
.iq-confirm-proceed a{
  position      : relative;
  display       : flex;
  align-items   : center;
  justify-content:center;
  width         : 100%;
  min-height    : 50px;
  padding       : 12px 18px;
  border        : 1px solid rgba(165,29,49,.45);
  border-radius : 10px;
  background    : rgba(255,255,255,.55);
  color         : var(--red);
  font-weight   : 700;
  font-size     : 13px;
  letter-spacing: .04em;
  text-decoration:none;
}
.iq-confirm-proceed a:active{
  background: rgba(165,29,49,.08);
}
══════════════════════════════════════════════════════ */

/* ══════════════════════════════════════════════════════
   no_member_sp_1 — 会員登録誘導ページ
══════════════════════════════════════════════════════ */

/* ボディ追加余白 */
.iq-nmb-body{
  padding-top: 0;
}

/* 説明エリア */
.iq-nmb-intro{
  display       : flex;
  flex-direction: column;
  align-items   : center;
  text-align    : center;
  padding       : 32px 24px 28px;
  background    :
    radial-gradient(ellipse 80% 50% at 50% 0%, rgba(240,195,62,.09), transparent),
    linear-gradient(172deg,#fffef8,#f7e9c8);
  border        : 1px solid rgba(196,158,54,.3);
  border-radius : 14px;
  box-shadow    : 0 3px 14px rgba(59,4,11,.07);
  margin-bottom : 0;
}
.iq-nmb-intro-icon{
  font-size    : 38px;
  line-height  : 1;
  margin-bottom: 16px;
  filter       : drop-shadow(0 2px 6px rgba(196,158,54,.4));
}
.iq-nmb-intro-text{
  margin      : 0;
  font-size   : 14px;
  line-height : 1.9;
  color       : var(--red-dark);
  font-weight : 600;
}

/* CTAエリア */
.iq-nmb-cta-wrap{
  margin        : 36px 0 0;
  padding       : 28px 22px 32px;
  background    : linear-gradient(160deg,#2a0408,#4a0c14 55%,#2a0408);
  border        : 1px solid rgba(212,173,85,.5);
  border-radius : 16px;
  box-shadow    : 0 6px 28px rgba(59,4,11,.28), inset 0 1px 0 rgba(255,220,130,.12);
  position      : relative;
  overflow      : hidden;
}
.iq-nmb-cta-wrap::before{
  content   : "";
  position  : absolute; top:0; left:0; right:0; height:2px;
  background: linear-gradient(90deg,transparent,var(--gold) 30%,var(--gold-light) 50%,var(--gold) 70%,transparent);
}
.iq-nmb-cta-label{
  text-align    : center;
  color         : var(--gold);
  font-size     : 11px;
  font-weight   : 700;
  letter-spacing: .18em;
  margin-bottom : 18px;
  opacity       : .88;
}
.iq-nmb-cta-wrap .download_button{
  margin: 0;
}

/* 規約エリア */
.iq-nmb-policy{
  margin        : 36px 0 0;
  padding       : 24px 20px;
  background    : rgba(255,250,235,.5);
  border        : 1px solid rgba(196,158,54,.18);
  border-radius : 12px;
}
.iq-nmb-policy-label{
  margin        : 0 0 14px;
  font-size     : 10px;
  font-weight   : 700;
  letter-spacing: .2em;
  color         : rgba(59,4,11,.4);
  text-align    : center;
  text-transform: uppercase;
}

/* 会員登録ボタン（download_button） */
.download_button{
  margin: 22px 0 0;
}
.download_button a{
  position      : relative;
  display       : flex;
  align-items   : center;
  justify-content:center;
  width         : 100%;
  min-height    : 58px;
  padding       : 14px 18px;
  border        : 1px solid var(--gold);
  border-radius : 10px;
  background    : linear-gradient(135deg,#a51d31,#620914);
  box-shadow    : 0 7px 0 #3b050d,0 14px 24px rgba(51,2,10,.24);
  color         : #fff;
  font-weight   : 900;
  font-size     : 15px;
  letter-spacing: .06em;
  text-decoration:none;
}
.download_button a::before{
  content      : "";
  position     : absolute; inset:3px;
  border       : 1px solid rgba(255,231,172,.35);
  border-radius: 7px;
}
.download_button a:active{
  transform : translateY(4px);
  box-shadow: 0 3px 0 #3b050d;
}

/* 規約・プライバシーリンク行 */
.iq-nomember-links{
  margin        : 0;
  padding       : 0;
  border        : none;
  display       : flex;
  flex-direction: column;
  gap           : 8px;
  font-size     : 0; /* ■ テキストノード非表示 */
}
.iq-nomember-links br{ display: none; }
.iq-nomember-links a{
  display        : flex;
  align-items    : center;
  gap            : 8px;
  padding        : 11px 16px;
  border         : 1px solid rgba(165,29,49,.2);
  border-radius  : 8px;
  background     : rgba(255,248,224,.55);
  color          : var(--red);
  font-size      : 13px;
  font-weight    : 700;
  text-decoration: none;
  transition     : background .15s, border-color .15s;
}
.iq-nomember-links a::before{
  content    : "\25B6";
  font-size  : 9px;
  color      : var(--gold-dark);
  flex-shrink: 0;
}
.iq-nomember-links a:active{
  background: rgba(255,235,190,.8);
}
══════════════════════════════════════════════════════ */

/* ホームボタン（btn-left） */
.btn-left{
  padding     : 12px 22px 0;
}
.btn-left a{
  display        : inline-flex;
  align-items    : center;
  gap            : 5px;
  color          : var(--red);
  font-size      : 12px;
  font-weight    : 700;
  text-decoration: none;
  border-bottom  : 1px solid rgba(165,29,49,.28);
  padding-bottom : 1px;
}
.btn-left a::before{
  content    : "‹";
  font-size  : 16px;
  line-height: 1;
}

/* 理由入力フォームラッパー */
.iq-reason-form{
  margin       : 20px 0 0;
  padding      : 20px 18px;
  border-radius: 10px;
  border       : 1px solid rgba(212,173,85,.32);
  background   : rgba(255,248,224,.5);
}

/* localize() が出力するエリア */
.iq-reason-form form > *:first-child{
  display    : block;
  margin-bottom:16px;
  font-size  : 13px;
  color      : var(--red-dark);
  line-height: 1.85;
}

/* textarea を大きく・見やすく */
.iq-reason-form textarea{
  display      : block;
  width        : 100%;
  min-height   : 160px;
  padding      : 14px 16px;
  border       : 1px solid rgba(196,158,54,.45);
  border-radius: 8px;
  background   : #fff;
  color        : #3b040b;
  font-size    : 14px;
  line-height  : 1.8;
  box-sizing   : border-box;
  resize       : vertical;
  transition   : border-color .18s, box-shadow .18s;
}
.iq-reason-form textarea:focus{
  outline     : none;
  border-color: var(--gold);
  box-shadow  : 0 0 0 3px rgba(212,173,85,.2);
}
.iq-reason-form textarea::placeholder{
  color: rgba(59,4,11,.35);
}

/* 送信ボタン */
.iq-reason-form input[type="submit"]{
  position      : relative;
  display       : flex;
  align-items   : center;
  justify-content:center;
  width         : 100%;
  min-height    : 54px;
  margin-top    : 8px;
  padding       : 14px 18px;
  border        : 1px solid var(--gold);
  border-radius : 10px;
  background    : linear-gradient(135deg,#a51d31,#620914);
  box-shadow    : 0 7px 0 #3b050d,0 14px 24px rgba(51,2,10,.24);
  color         : #fff;
  font-weight   : 900;
  font-size     : 15px;
  letter-spacing: .06em;
  cursor        : pointer;
  appearance    : none;
  -webkit-appearance:none;
}
.iq-reason-form input[type="submit"]:active{
  transform : translateY(4px);
  box-shadow: 0 3px 0 #3b050d;
}

/* ══════════════════════════════════════════════════════
   awase_thanks_sp_1 — お問い合わせ完了ページ固有スタイル
══════════════════════════════════════════════════════ */

/* ソース定義の .thanks クラスをサイトデザインに合わせて上書き */
.thanks{
  background  : linear-gradient(transparent 50%, rgba(240,195,62,.38) 50%) !important;
  color       : var(--red) !important;
  font-weight : 900 !important;
  padding     : 0 2px;
}

/* ══════════════════════════════════════════════════════
   toiawase_thanks_sp_1 — お問い合わせ送信完了ページ
══════════════════════════════════════════════════════ */

/* 送信完了カード */
.iq-thanks-complete{
  display       : flex;
  flex-direction: column;
  align-items   : center;
  text-align    : center;
  padding       : 36px 24px 28px;
  background    : linear-gradient(160deg,#1a3a1a,#0d240d 60%,#1a3a1a);
  border        : 1px solid rgba(80,200,80,.4);
  border-radius : 16px;
  box-shadow    : 0 6px 28px rgba(0,80,0,.25), inset 0 1px 0 rgba(120,220,120,.12);
  position      : relative;
  overflow      : hidden;
  margin-bottom : 0;
}
.iq-thanks-complete::before{
  content   : "";
  position  : absolute; top:0; left:0; right:0; height:2px;
  background: linear-gradient(90deg,transparent,rgba(100,220,100,.8) 30%,rgba(180,255,180,.9) 50%,rgba(100,220,100,.8) 70%,transparent);
}
.iq-thanks-icon{
  width         : 56px; height:56px;
  display       : flex; align-items:center; justify-content:center;
  border        : 2px solid rgba(100,220,100,.6);
  border-radius : 50%;
  color         : #7eff7e;
  font-size     : 28px;
  font-weight   : 900;
  margin-bottom : 16px;
  box-shadow    : 0 0 18px rgba(80,200,80,.35);
}
.iq-thanks-title{
  margin        : 0 0 8px;
  color         : #9eff9e;
  font-size     : 17px;
  font-weight   : 900;
  letter-spacing: .06em;
}
.iq-thanks-sub{
  margin      : 0;
  color       : rgba(200,255,200,.75);
  font-size   : 13px;
}

/* 返信期限カード */
.iq-thanks-reply{
  margin        : 24px 0 0;
  padding       : 22px 22px;
  background    : rgba(255,250,235,.85);
  border        : 1px solid rgba(196,158,54,.35);
  border-radius : 12px;
  text-align    : center;
}
.iq-thanks-reply-text{
  margin      : 0;
  font-size   : 14px;
  line-height : 2;
  color       : var(--red-dark);
}
.iq-thanks-reply-text strong{
  color      : var(--red);
  font-weight: 900;
}
.iq-thanks-datebox{
  color      : var(--red) !important;
  font-weight: 900 !important;
}

/* メール未着チェックリスト */
.iq-thanks-info{
  margin        : 24px 0 0;
  padding       : 22px 22px 20px;
  background    : rgba(255,248,224,.5);
  border        : 1px solid rgba(196,158,54,.22);
  border-radius : 12px;
}
.iq-thanks-info-head{
  margin        : 0 0 14px;
  font-size     : 13px;
  font-weight   : 900;
  color         : var(--red-dark);
  letter-spacing: .02em;
}
.iq-thanks-checklist{
  margin      : 0 0 14px;
  padding     : 0 0 0 4px;
  list-style  : none;
  display     : flex;
  flex-direction:column;
  gap         : 8px;
}
.iq-thanks-checklist li{
  display    : flex;
  align-items: flex-start;
  gap        : 8px;
  font-size  : 13px;
  color      : var(--red-dark);
  line-height: 1.6;
}
.iq-thanks-checklist li::before{
  content    : "\25B8";
  color      : var(--gold-dark);
  flex-shrink: 0;
  margin-top : 2px;
}
.iq-thanks-info-note{
  margin      : 0;
  font-size   : 12px;
  color       : rgba(59,4,11,.55);
  line-height : 1.75;
  padding-top : 10px;
  border-top  : 1px solid rgba(196,158,54,.18);
}

/* 動的日付ボックス（newdate.js が値を入れる） */
#datebox{
  color       : var(--red) !important;
  font-weight : 900 !important;
}

/* ══════════════════════════════════════════════════════
   maintenance_sp_1 — メンテナンスページ固有スタイル
══════════════════════════════════════════════════════ */

.iq-maintenance-wrap{
  margin       : 24px 16px 40px;
  padding      : 28px 20px;
  border-radius: 12px;
  border       : 1px solid rgba(212,173,85,.35);
  background   :
    radial-gradient(ellipse 80% 50% at 50% 0%, rgba(240,195,62,.1), transparent 70%),
    rgba(255,248,224,.65);
  text-align   : center;
  color        : var(--red-dark);
  font-size    : 14px;
  line-height  : 2.1;
}
.iq-maintenance-wrap::before{
  content        : "&#x26A0;";
  content        : "⚠";
  display        : block;
  margin-bottom  : 14px;
  font-size      : 28px;
  color          : var(--gold);
  filter         : drop-shadow(0 2px 6px rgba(200,150,0,.4));
  text-shadow    : none;
}
══════════════════════════════════════════════════════ */

/* ソース定義の .info_tell を上書き */
.info_tell{
  background  : linear-gradient(transparent 50%, rgba(240,195,62,.38) 50%) !important;
  color       : var(--red) !important;
  font-weight : 900 !important;
  padding     : 0 2px;
}

/* コンテンツラッパー（ul.radius） */
.iq-toiawase-list{
  margin    : 0 0 28px;
  padding   : 0;
  list-style: none;
}
.iq-toiawase-list > li{
  padding     : 24px 20px;
  border-radius:10px;
  border      : 1px solid rgba(212,173,85,.28);
  background  : rgba(255,248,224,.5);
  color       : var(--red-dark);
  font-size   : 13px;
  line-height : 1.95;
}

/* 問い合わせ方法見出し（h2） */
.iq-toiawase-list h2{
  margin        : 0 0 16px;
  padding       : 0 0 10px;
  border-bottom : 1px solid rgba(212,173,85,.38);
  font-family   : var(--serif);
  font-size     : 14px;
  font-weight   : 900;
  color         : var(--red-dark);
  letter-spacing: .04em;
  text-align    : left;
}

/* 選択ドロップダウン（dl > select） */
.iq-toiawase-list dl{
  margin: 0 0 18px;
}
.iq-toiawase-list select{
  width         : 100%;
  padding       : 12px 14px;
  border        : 1px solid rgba(212,173,85,.5);
  border-radius : 8px;
  background    : var(--cream);
  color         : var(--red-dark);
  font-size     : 14px;
  font-weight   : 700;
  appearance    : none;
  -webkit-appearance:none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M6 8L0 0h12z' fill='%23620914'/%3E%3C/svg%3E");
  background-repeat : no-repeat;
  background-position: right 14px center;
  box-shadow    : 0 2px 8px rgba(51,2,10,.08);
  cursor        : pointer;
}
.iq-toiawase-list select:focus{
  outline     : none;
  border-color: var(--gold);
  box-shadow  : 0 0 0 2px rgba(212,173,85,.22);
}

/* フォームiframe */
#review{
  border-radius: 8px;
  overflow     : hidden;
  transition   : height .3s ease;
}

/* 電話問い合わせフレーム */
#tell-frame{
  margin-top: 18px;
}

/* 電話セクションリスト（ul.link） */
ul.link{
  margin    : 0;
  padding   : 0;
  list-style: none;
}
ul.link li.title{
  padding      : 14px 16px;
  border-radius: 8px 8px 0 0;
  border       : 1px solid rgba(212,173,85,.35);
  border-bottom: none;
  background   : rgba(255,255,255,.55);
  font-size    : 13px;
  line-height  : 1.85;
  color        : var(--red-dark);
}
/* チェックボックスエリア */
ul.link li.tellch{
  padding      : 18px 16px;
  border       : 1px solid rgba(212,173,85,.35);
  border-bottom: none;
  background   : rgba(255,248,224,.6);
  font-size    : 13px;
  line-height  : 2.2;
  color        : var(--red-dark);
}
ul.link li.tellch input[type="checkbox"]{
  width        : 18px; height:18px;
  accent-color : var(--red);
  cursor       : pointer;
  vertical-align:middle;
  margin-right : 6px;
}
ul.link li.tellch label{
  cursor       : pointer;
  font-weight  : 700;
}
/* 電話発信ボタン */
ul.link li.icon_arrow{
  padding      : 0;
  border       : 1px solid rgba(212,173,85,.35);
  border-radius: 0 0 8px 8px;
  overflow     : hidden;
}
ul.link li.icon_arrow a{
  display        : flex;
  align-items    : center;
  justify-content: center;
  gap            : 10px;
  width          : 100%;
  min-height     : 58px;
  padding        : 14px 18px;
  background     : linear-gradient(135deg,#a51d31,#620914);
  color          : #fff;
  font-weight    : 900;
  font-size      : 16px;
  letter-spacing : .06em;
  text-decoration: none;
  box-shadow     : inset 0 1px 0 rgba(255,231,172,.2);
}
ul.link li.icon_arrow a:active{
  filter: brightness(.88);
}
ul.link li.icon_arrow img.icon{
  width : 26px; height:26px;
  display:block;
  filter:invert(1);
}

/* ══════════════════════════════════════════════════════
   qr_sp_1 — QRコードページ固有スタイル
══════════════════════════════════════════════════════ */

/* コンテナ（ul.radius） */
.iq-qr-list{
  margin    : 0 0 28px;
  padding   : 0;
  list-style: none;
}
.iq-qr-list li.aC{
  padding      : 28px 20px;
  border-radius: 12px;
  border       : 1px solid rgba(212,173,85,.35);
  background   :
    radial-gradient(ellipse 70% 50% at 50% 0%, rgba(240,195,62,.1), transparent 70%),
    rgba(255,248,224,.6);
  text-align   : center;
  color        : var(--red-dark);
  font-size    : 13px;
  line-height  : 1.85;
}

/* QRコード画像 */
.iq-qr-list li.aC img{
  display      : block;
  margin       : 14px auto;
  max-width    : 200px;
  width        : 62%;
  border-radius: 8px;
  border       : 6px solid #fff;
  box-shadow   : 0 4px 20px rgba(51,2,10,.18), 0 0 0 1px rgba(212,173,85,.3);
}

/* URL表示 */
.iq-qr-url{
  display      : inline-block;
  margin-top   : 4px;
  padding      : 6px 14px;
  border-radius: 20px;
  border       : 1px solid rgba(212,173,85,.38);
  background   : rgba(255,255,255,.7);
  font-size    : 11px;
  color        : var(--muted);
  word-break   : break-all;
  letter-spacing:.02em;
}

/* ══════════════════════════════════════════════════════
   qa_sp_1 — よくある質問ページ固有スタイル
══════════════════════════════════════════════════════ */

/* QAコンテナ */
.iq-qa-sp{
  margin    : 0 0 28px;
  color     : var(--red-dark);
  font-size : 13px;
  line-height:1.9;
}

/* Q見出し（h3） */
.iq-qa-sp h3{
  position     : relative;
  padding      : 13px 16px 13px 46px;
  border-radius: 8px;
  background   : linear-gradient(135deg,#5e0d1a,#420910);
  color        : #fff;
  font-family  : var(--serif);
  font-size    : 13px;
  font-weight  : 900;
  line-height  : 1.55;
  letter-spacing:.03em;
  margin-top   : 24px;
}
.iq-qa-sp h3:first-child{ margin-top:0; }
/* Qバッジ */
.iq-qa-sp h3::before{
  content      : "Q";
  position     : absolute;
  left         : 12px; top:50%; transform:translateY(-50%);
  display      : grid; place-items:center;
  width        : 24px; height:24px;
  border-radius: 50%;
  background   : linear-gradient(135deg,var(--gold-light),var(--gold));
  color        : var(--red-dark);
  font-family  : var(--serif);
  font-size    : 11px; font-weight:900;
}

/* 動的ボックス（rep_s.js が populate） */
#box3, #box4{
  margin      : 2px 0 10px;
  padding     : 0;
  border      : none;
  background  : none;
  font-size   : 12px;
  color       : var(--red-dark);
  line-height : 1.75;
}

/* ══════════════════════════════════════════════════════
   tai04nig_sp_1 — 退会完了ページ固有スタイル
══════════════════════════════════════════════════════ */

/* 感謝メッセージカード */
.iq-farewell-card{
  position     : relative;
  margin       : 20px 16px 0;
  padding      : 32px 20px 26px;
  border-radius: 12px;
  border       : 1px solid rgba(212,173,85,.48);
  background   :
    radial-gradient(ellipse 90% 60% at 50% 0%, rgba(240,195,62,.18), transparent 68%),
    repeating-linear-gradient( 45deg,rgba(255,228,140,.04) 0 1px,transparent 1px 22px),
    repeating-linear-gradient(-45deg,rgba(255,228,140,.04) 0 1px,transparent 1px 22px),
    linear-gradient(170deg,#2a0508,#460a12 42%,#5e0d1a);
  text-align   : center;
  color        : #fff;
  box-shadow   : 0 8px 28px rgba(51,2,10,.35);
  overflow     : hidden;
}
/* 頂部ゴールドライン */
.iq-farewell-card::before{
  content   : "";
  position  : absolute; top:0; left:0; right:0;
  height    : 3px;
  background: linear-gradient(90deg,transparent,var(--gold) 28%,var(--gold-light) 50%,var(--gold) 72%,transparent);
  animation : subGoldPulse 4.2s ease-in-out infinite;
}
/* 中央エンブレム */
.iq-farewell-card::after{
  content   : "◆";
  display   : block;
  margin    : 0 auto 14px;
  color     : var(--gold-light);
  font-size : 13px;
  opacity   : .7;
  text-shadow: 0 0 10px rgba(240,195,65,.6);
}
.iq-farewell-card b{
  display      : block;
  font-family  : var(--serif);
  font-size    : 14px;
  font-weight  : 900;
  line-height  : 2.1;
  color        : rgba(255,240,210,.95);
  text-shadow  : 0 2px 12px rgba(0,0,0,.55);
}
.iq-farewell-card > p{
  margin      : 16px 0 0;
  padding     : 14px 14px 0;
  border-top  : 1px solid rgba(212,173,85,.22);
  font-size   : 12px;
  line-height : 1.95;
  color       : rgba(255,220,175,.82);
}

/* TOPへ戻るボタン（.download_button.iq-farewell-back） */
.iq-farewell-back{
  margin: 22px 0 8px;
}
.iq-farewell-back a.blue02-full{
  position      : relative;
  display       : flex;
  align-items   : center;
  justify-content:center;
  width         : 100%;
  min-height    : 58px;
  padding       : 14px 18px;
  border        : 1px solid var(--gold);
  border-radius : 10px;
  background    : linear-gradient(135deg,#a51d31,#620914);
  box-shadow    : 0 7px 0 #3b050d,0 14px 24px rgba(51,2,10,.24);
  color         : #fff !important;
  font-weight   : 900;
  font-size     : 15px;
  letter-spacing: .06em;
  text-decoration:none !important;
}
.iq-farewell-back a.blue02-full::before{
  content      : "";
  position     : absolute; inset:3px;
  border       : 1px solid rgba(255,231,172,.35);
  border-radius: 7px;
}
.iq-farewell-back a.blue02-full:active{
  transform : translateY(4px);
  box-shadow: 0 3px 0 #3b050d;
}

/* ご確認ください セクション */
.iq-farewell-faq{
  margin      : 28px 0 0;
}
.iq-farewell-faq-title{
  position     : relative;
  margin       : 0 0 16px;
  padding      : 13px 16px 13px 14px;
  border-radius: 8px;
  background   : linear-gradient(135deg,#5e0d1a,#420910);
  border-left  : 4px solid var(--gold);
  color        : #fff;
  font-family  : var(--serif);
  font-size    : 14px;
  font-weight  : 900;
  letter-spacing:.03em;
}
.iq-farewell-faq-body{
  padding     : 0 4px;
  font-size   : 12px;
  line-height : 1.88;
  color       : var(--red-dark);
}
.iq-farewell-faq-body br + ・,
.iq-farewell-faq-body{
  word-break  : break-all;
}

/* 退会リンク */
.iq-farewell-retire{
  display     : inline-flex;
  align-items : center;
  gap         : 5px;
  margin-top  : 8px;
  color       : var(--muted) !important;
  font-size   : 13px;
  text-decoration:none !important;
  border-bottom  : 1px dashed rgba(100,50,50,.35);
  padding-bottom : 1px;
}

/* 広告エリア */
.iq-farewell-ad{
  margin   : 18px 0;
  text-align:center;
  min-height:1px;
}

/* ══════════════════════════════════════════════════════
   tai04eas_sp_1 — アンケート完了・退会誘導ページ固有スタイル
══════════════════════════════════════════════════════ */

/* アンケート完了カード */
.iq-survey-card{
  margin       : 20px 16px 0;
  padding      : 26px 20px 22px;
  border-radius: 12px;
  border       : 1px solid rgba(212,173,85,.42);
  background   :
    radial-gradient(ellipse 90% 55% at 50% 0%, rgba(240,195,62,.15), transparent 65%),
    linear-gradient(165deg,#2a0508,#460a12 45%,#5a0d18);
  text-align   : center;
  color        : #fff;
  box-shadow   : 0 8px 28px rgba(51,2,10,.3);
  position     : relative;
  overflow     : hidden;
}
.iq-survey-card::before{
  content   : "";
  position  : absolute; top:0; left:0; right:0;
  height    : 3px;
  background: linear-gradient(90deg,transparent,var(--gold) 28%,var(--gold-light) 50%,var(--gold) 72%,transparent);
  animation : subGoldPulse 4.2s ease-in-out infinite;
}
.iq-survey-card b{
  display     : block;
  font-family : var(--serif);
  font-size   : 14px;
  font-weight : 900;
  line-height : 2;
  color       : rgba(255,240,210,.95);
  text-shadow : 0 2px 10px rgba(0,0,0,.5);
}
.iq-survey-card > p{
  margin      : 14px 0 0;
  padding     : 14px 4px 0;
  border-top  : 1px solid rgba(212,173,85,.2);
  font-size   : 12px;
  line-height : 1.9;
  color       : rgba(255,220,175,.82);
  text-align  : left;
}
.iq-survey-card > p u{
  color           : var(--gold-light);
  text-underline-offset: 3px;
}

/* 退会案内バナー */
.iq-retire-guide-banner{
  margin       : 24px 16px 0;
  padding      : 18px 16px;
  border-radius: 8px;
  background   : linear-gradient(135deg, #3d0812, #5c1020);
  border       : 1px solid rgba(212,173,85,.35);
  text-align   : center;
  font-size    : 13px;
  line-height  : 1.85;
  color        : rgba(255,220,180,.88);
}

/* 退会についてセクションタイトル */
.iq-retire-about-title{
  position     : relative;
  margin       : 24px 0 14px;
  padding      : 13px 16px 13px 14px;
  border-radius: 8px;
  background   : linear-gradient(135deg,#5e0d1a,#420910);
  border-left  : 4px solid var(--gold);
  color        : #fff;
  font-family  : var(--serif);
  font-size    : 14px;
  font-weight  : 900;
  letter-spacing:.03em;
}
.iq-retire-about-note{
  margin      : 0 0 12px;
  font-size   : 13px;
  font-weight : 700;
  color       : var(--red-dark);
  line-height : 1.7;
}

/* ▼継続課金IDの確認方法▼ ラベル */
.iq-carrier-how-label{
  margin      : 0 0 12px;
  text-align  : center;
  font-size   : 12px;
  font-weight : 700;
  color       : var(--gold);
  letter-spacing: .05em;
}

/* キャリア確認パネル共通 */
ul.radius.iq-carrier-list{
  margin      : 0 0 12px;
  padding     : 0;
  list-style  : none;
}
ul.radius.iq-carrier-list > li{
  position     : relative;
  padding      : 18px 16px 16px;
  border-radius: 8px;
  background   : var(--cream);
  border       : 1px solid rgba(190,140,60,.3);
  overflow     : hidden;
}

/* キャリアラベル（p.au / p.docomo / p.softbank） */
ul.radius.iq-carrier-list > li p.au,
ul.radius.iq-carrier-list > li p.docomo,
ul.radius.iq-carrier-list > li p.softbank{
  display     : inline-flex;
  align-items : center;
  gap         : 6px;
  margin      : 0 0 10px;
  padding     : 5px 14px 5px 10px;
  border-radius: 30px;
  font-family : var(--serif);
  font-size   : 13px;
  font-weight : 900;
}
ul.radius.iq-carrier-list > li p.au span,
ul.radius.iq-carrier-list > li p.docomo span,
ul.radius.iq-carrier-list > li p.softbank span{
  display     : inline-block;
}
/* au カラー (オレンジ) */
ul.radius.iq-carrier-list > li p.au{
  background : linear-gradient(135deg,#e85300,#f59e0b);
  color      : #fff;
  box-shadow : 0 3px 10px rgba(232,83,0,.28);
}
/* docomo カラー (赤) */
ul.radius.iq-carrier-list > li p.docomo{
  background : linear-gradient(135deg,#e60012,#c90010);
  color      : #fff;
  box-shadow : 0 3px 10px rgba(230,0,18,.24);
}
/* Softbank カラー (ダーク) */
ul.radius.iq-carrier-list > li p.softbank{
  background : linear-gradient(135deg,#1a1a2e,#2e2e4a);
  color      : #fff;
  box-shadow : 0 3px 10px rgba(0,0,0,.25);
}
ul.radius.iq-carrier-list > li{
  font-size   : 12px;
  line-height : 1.85;
  color       : var(--red-dark);
}

/* 退会へ進むボタン */
.retire_button{
  margin : 22px 0 8px;
}
.retire_button a.btn-flat-border{
  position       : relative;
  display        : flex;
  align-items    : center;
  justify-content: center;
  width          : 100%;
  min-height     : 58px;
  padding        : 14px 18px;
  border-radius  : 10px;
  background     : transparent;
  border         : 2px solid #7c0e22;
  color          : #7c0e22 !important;
  font-weight    : 900;
  font-size      : 15px;
  font-family    : var(--serif);
  letter-spacing : .06em;
  text-decoration: none !important;
  box-shadow     : inset 0 0 0 0 #7c0e22;
  transition     : background .25s,color .25s,box-shadow .25s;
}
.retire_button a.btn-flat-border::before{
  content    : "⇢";
  margin-right: 8px;
  font-size  : 16px;
}
.retire_button a.btn-flat-border:active{
  background : #7c0e22;
  color      : #fff !important;
  box-shadow : inset 0 0 0 2px rgba(255,255,255,.4);
}

/* ══════════════════════════════════════════════════════
   tai03_sp_1 — 退会確認画面固有スタイル
══════════════════════════════════════════════════════ */

/* 確認メモ（グレーテキスト） */
.iq-tai03-lead{
  font-size   : 12px;
  color       : #828c9a;
  line-height : 1.85;
  padding     : 14px 4px;
}

/* 解約内容パネル */
.order{
  margin       : 8px 0 22px;
  border-radius: 10px;
  overflow     : hidden;
  border       : 1px solid rgba(190,140,60,.38);
  box-shadow   : 0 4px 18px rgba(51,2,10,.15);
}
.order > p{
  margin     : 0;
  padding    : 13px 16px;
  background : linear-gradient(135deg,#5e0d1a,#420910);
  border-left: 4px solid var(--gold);
  color      : #fff;
  font-family: var(--serif);
  font-size  : 14px;
  font-weight: 900;
  letter-spacing:.03em;
}
.order dl{
  margin     : 0;
  padding    : 0;
  background : var(--cream);
}
.order dl dt,
.order dl dd{
  margin  : 0;
  padding : 11px 16px;
}
.order dl dt{
  font-size     : 12px;
  font-weight   : 700;
  color         : var(--muted);
  border-bottom : 1px solid rgba(190,140,60,.18);
  letter-spacing: .03em;
}
.order dl dd{
  font-size     : 13px;
  font-weight   : 700;
  color         : var(--red-dark);
  border-bottom : 1px dashed rgba(190,140,60,.22);
  padding-left  : 24px;
}
.order dl dd:last-child{
  border-bottom: none;
}

/* ══════════════════════════════════════════════════════
   tai02_sp_1 — 退会アンケートページ固有スタイル
══════════════════════════════════════════════════════ */

/* 設問見出し */
h2.retire{
  position     : relative;
  margin       : 18px 0 10px;
  padding      : 10px 14px 10px 16px;
  border-radius: 6px;
  background   : linear-gradient(135deg,#5e0d1a,#420910);
  border-left  : 4px solid var(--gold);
  color        : #fff;
  font-family  : var(--serif);
  font-size    : 13px;
  font-weight  : 900;
  letter-spacing:.03em;
}

/* セレクトボックスラッパー */
.select-wrap{
  position     : relative;
  margin       : 0 0 16px;
}
.select-wrap::after{
  content   : "▼";
  position  : absolute; right:14px; top:50%;
  transform : translateY(-50%);
  font-size : 11px;
  color     : var(--gold);
  pointer-events:none;
}
.select-wrap select{
  width          : 100%;
  padding        : 12px 36px 12px 14px;
  border-radius  : 8px;
  border         : 1px solid rgba(190,140,60,.45);
  background     : var(--cream);
  color          : var(--red-dark);
  font-size      : 13px;
  font-family    : var(--serif);
  appearance     : none;
  -webkit-appearance:none;
  cursor         : pointer;
}
.select-wrap select:focus{
  outline: none;
  border-color: var(--gold);
  box-shadow  : 0 0 0 3px rgba(212,173,85,.18);
}

/* ラジオボタングループ */
.radio-wrap{
  margin  : 0 0 16px;
  padding : 14px 12px;
  border-radius : 8px;
  background    : var(--cream);
  border        : 1px solid rgba(190,140,60,.28);
}
.label-radio{
  display      : flex;
  align-items  : center;
  gap          : 10px;
  padding      : 9px 10px;
  border-radius: 6px;
  cursor       : pointer;
  transition   : background .18s;
}
.label-radio:hover{
  background: rgba(212,173,85,.12);
}
.label-radio input[type="radio"]{
  position      : relative;
  width         : 20px;
  height        : 20px;
  flex-shrink   : 0;
  border-radius : 50%;
  border        : 2px solid rgba(190,140,60,.55);
  appearance    : none;
  -webkit-appearance:none;
  background    : #fff;
  cursor        : pointer;
  transition    : border-color .18s, background .18s;
}
.label-radio input[type="radio"]:checked{
  border-color : var(--red-dark);
  background   : var(--red-dark);
  box-shadow   : inset 0 0 0 4px #fff;
}
.label-radio .lever{
  font-size   : 13px;
  color       : var(--red-dark);
  line-height : 1.5;
  user-select : none;
}
.label-radio input[type="radio"]:checked + .lever{
  font-weight : 700;
  color       : #5e0d1a;
}

/* テキストエリア */
p.retire{
  margin : 0 0 16px;
}
textarea.box1{
  width         : 100%;
  box-sizing    : border-box;
  padding       : 12px 14px;
  border-radius : 8px;
  border        : 1px solid rgba(190,140,60,.45);
  background    : var(--cream);
  color         : var(--red-dark);
  font-size     : 13px;
  font-family   : var(--serif);
  line-height   : 1.75;
  resize        : vertical;
  min-height    : 120px;
}
textarea.box1:focus{
  outline    : none;
  border-color: var(--gold);
  box-shadow : 0 0 0 3px rgba(212,173,85,.18);
}

/* ══════════════════════════════════════════════════════
   histories_list_sp_1 — マイページ固有スタイル
   ※ ソースの inline <style> を上書き
══════════════════════════════════════════════════════ */

/* セクション区切り */
.iq-mypage .section{
  padding      : 14px 16px;
  border-bottom: 1px solid rgba(190,140,60,.2) !important;
  background   : var(--cream);
  margin       : 0;
}
.iq-mypage .section:last-child{
  border-bottom: none !important;
}
.iq-mypage .section h3{
  font-family  : var(--serif) !important;
  font-size    : 13px !important;
  font-weight  : 900 !important;
  color        : var(--red-dark) !important;
  border-left  : 4px solid var(--gold) !important;
  padding      : 3px 0 3px 10px !important;
  margin       : 0 0 8px !important;
}
.iq-mypage .section p{
  font-size    : 13px !important;
  color        : var(--red-dark);
  margin       : 5px 0 !important;
}

/* ポイント強調 */
.iq-mypage .points{
  font-size    : 16px !important;
  font-weight  : 900 !important;
  color        : var(--red-dark) !important;
}

/* メニュー見出しバー（.menu-item） */
.iq-mypage .menu-item{
  position     : relative;
  padding      : 11px 16px !important;
  background   : linear-gradient(135deg,#5e0d1a,#420910) !important;
  border-left  : 4px solid var(--gold) !important;
  color        : #fff !important;
  font-family  : var(--serif);
  font-size    : 13px !important;
  font-weight  : 900 !important;
  margin       : 16px 0 2px !important;
  border-radius: 0 6px 6px 0;
}
.iq-mypage .menu-item a{
  color        : #fff !important;
  text-decoration:none;
}

/* ログアウトボタン（.button.gray） */
.iq-mypage .button.gray{
  display        : flex !important;
  align-items    : center;
  justify-content: center;
  width          : 100% !important;
  min-height     : 52px;
  padding        : 12px 18px !important;
  border-radius  : 10px !important;
  background     : transparent !important;
  border         : 2px solid rgba(100,60,70,.5) !important;
  color          : var(--muted) !important;
  font-size      : 14px !important;
  font-weight    : 700;
  text-decoration: none !important;
  box-sizing     : border-box;
  margin         : 10px 0 !important;
}
.iq-mypage .button.gray:active{
  background : rgba(100,60,70,.08) !important;
}

/* ダウンロード履歴リスト行 */
.iq-mypage a > table.series_list{
  border-bottom: 1px solid rgba(190,140,60,.2);
  background   : var(--cream);
  transition   : background .18s;
}
.iq-mypage a:hover > table.series_list{
  background : rgba(212,173,85,.1);
}
.iq-mypage a > table.series_list td{
  padding: 12px 16px;
}
.iq-mypage a > table.series_list p{
  font-size   : 13px !important;
  line-height : 1.65 !important;
  color       : var(--red-dark);
  margin      : 0 !important;
}

/* ページネーション partial（プレースホルダ） */
.iq-pagination-placeholder{
  display    : none; /* ローカル確認用：本番では partial{pagination} に置き換わる */
}

/* 会員情報セクション */
.iq-mypage .section .login-info p{
  text-align  : center;
  font-size   : 13px;
  color       : var(--muted);
}

/* ══════════════════════════════════════════════════════
   genres_list_sp_1 — ジャンル一覧ページ固有スタイル
══════════════════════════════════════════════════════ */

/* ジャンルリスト */
ul.genre_list{
  list-style   : none;
  padding      : 0;
  margin       : 0 0 16px;
}
ul.genre_list li.list_26_con{
  border-bottom: 1px solid rgba(190,140,60,.2);
  background   : var(--cream);
}
ul.genre_list li.list_26_con:last-child{
  border-bottom: none;
}
ul.genre_list li.list_26_con a{
  display        : flex;
  align-items    : center;
  justify-content: space-between;
  padding        : 14px 16px;
  color          : var(--red-dark) !important;
  font-size      : 14px;
  font-weight    : 700;
  font-family    : var(--serif);
  text-decoration: none !important;
  transition     : background .18s;
}
ul.genre_list li.list_26_con a::after{
  content    : "›";
  color      : var(--gold);
  font-size  : 20px;
  line-height: 1;
  flex-shrink: 0;
}
ul.genre_list li.list_26_con a:hover{
  background : rgba(212,173,85,.1);
}

/* ══════════════════════════════════════════════════════
   genres_detail_sp_1 — ジャンル難易度選択ページ固有スタイル
══════════════════════════════════════════════════════ */

/* ヒーロー サブテキスト */
.iq-gdiff-hero-sub{
  margin        : 8px 0 0;
  color         : rgba(255,220,150,.72);
  font-size     : 12px;
  letter-spacing: .14em;
}

/* メインボディ余白調整 */
.iq-gdiff-body{
  padding-top: 28px;
}

/* ラベル見出し */
.iq-gdiff-label{
  text-align    : center;
  color         : var(--gold);
  font-size     : 11px;
  font-weight   : 700;
  letter-spacing: .2em;
  margin-bottom : 20px;
  opacity       : .8;
}

/* 難易度グリッド */
.iq-gdiff-grid{
  list-style: none;
  padding   : 0;
  margin    : 0;
  display   : flex;
  flex-direction: column;
  gap       : 12px;
  counter-reset: gdiff-counter;
}

/* 難易度カード */
.iq-gdiff-card{
  counter-increment: gdiff-counter;
}
.iq-gdiff-card a{
  display        : block;
  text-decoration: none;
  border-radius  : 12px;
  overflow       : hidden;
  position       : relative;
  box-shadow     : 0 4px 18px rgba(59,4,11,.22), 0 1px 0 rgba(212,173,85,.15);
  transition     : transform .18s, box-shadow .18s;
}
.iq-gdiff-card a:active{
  transform : translateY(2px);
  box-shadow: 0 2px 8px rgba(59,4,11,.2);
}

/* カード内レイアウト */
.iq-gdiff-card-inner{
  display        : flex;
  align-items    : center;
  justify-content: space-between;
  padding        : 20px 20px 20px 72px;
  background     : linear-gradient(120deg,#2a0408,#4e0e18 55%,#360810);
  border         : 1px solid rgba(212,173,85,.3);
  border-radius  : 12px;
  min-height     : 70px;
  position       : relative;
}

/* カード左のゴールドライン */
.iq-gdiff-card-inner::before{
  content   : "";
  position  : absolute; top:0; left:0; bottom:0; width:4px;
  background: linear-gradient(180deg, var(--gold-light), var(--gold), var(--gold-dark));
  border-radius: 12px 0 0 12px;
}

/* 番号バッジ */
.iq-gdiff-card-inner::after{
  content      : counter(gdiff-counter, decimal-leading-zero);
  position     : absolute;
  left         : 16px;
  top          : 50%;
  transform    : translateY(-50%);
  font-size    : 22px;
  font-weight  : 900;
  font-family  : var(--serif);
  color        : rgba(212,173,85,.45);
  letter-spacing: -.02em;
  line-height  : 1;
}

/* 難易度名 */
.iq-gdiff-name{
  font-size     : 16px;
  font-weight   : 900;
  font-family   : var(--serif);
  color         : #fff;
  letter-spacing: .04em;
  line-height   : 1.3;
  text-shadow   : 0 1px 8px rgba(0,0,0,.6);
}

/* 挑戦するCTA */
.iq-gdiff-cta{
  flex-shrink   : 0;
  margin-left   : 12px;
  font-size     : 11px;
  font-weight   : 700;
  letter-spacing: .1em;
  color         : var(--gold);
  white-space   : nowrap;
}

/* カード1枚目：アクセントカラー強め */
.iq-gdiff-card:nth-child(1) .iq-gdiff-card-inner{
  background: linear-gradient(120deg,#1a2a08,#2e4e0e 55%,#1e3608);
  border-color: rgba(120,212,85,.3);
}
.iq-gdiff-card:nth-child(1) .iq-gdiff-card-inner::before{
  background: linear-gradient(180deg,#9eff7e,#60c840,#3a8c20);
}
.iq-gdiff-card:nth-child(1) .iq-gdiff-cta{
  color: #9eff7e;
}

/* カード2枚目：ゴールド系 */
.iq-gdiff-card:nth-child(2) .iq-gdiff-card-inner{
  background: linear-gradient(120deg,#2a1e08,#4e3a0e 55%,#362808);
  border-color: rgba(212,173,85,.35);
}

/* カード3枚目：レッド系 */
.iq-gdiff-card:nth-child(3) .iq-gdiff-card-inner{
  background: linear-gradient(120deg,#2a0a08,#4e1a10 55%,#360c0a);
  border-color: rgba(212,85,85,.3);
}
.iq-gdiff-card:nth-child(3) .iq-gdiff-card-inner::before{
  background: linear-gradient(180deg,#ff9e9e,#c84040,#8c2020);
}
.iq-gdiff-card:nth-child(3) .iq-gdiff-cta{
  color: #ff9e9e;
}

/* カード4枚目以降：ダーク系 */
.iq-gdiff-card:nth-child(n+4) .iq-gdiff-card-inner{
  background: linear-gradient(120deg,#0e0a1a,#1e1430 55%,#160e22);
  border-color: rgba(140,100,212,.3);
}
.iq-gdiff-card:nth-child(n+4) .iq-gdiff-card-inner::before{
  background: linear-gradient(180deg,#c0a0ff,#8060c8,#4a3080);
}
.iq-gdiff-card:nth-child(n+4) .iq-gdiff-cta{
  color: #c0a0ff;
}

/* CMS メッセージ */
.iq-genres-detail-msg:empty{ display:none; }
.iq-genres-detail-msg:not(:empty){
  position      : relative;
  margin        : 0 0 24px;
  padding       : 18px 20px 18px 52px;
  background    :
    radial-gradient(ellipse 80% 60% at 50% 0%, rgba(240,195,62,.1), transparent),
    linear-gradient(160deg,#fffef8,#f7e9c8);
  border        : 1px solid rgba(196,158,54,.45);
  border-radius : 12px;
  box-shadow    : 0 4px 18px rgba(59,4,11,.1), inset 0 1px 0 rgba(255,240,180,.8);
  font-size     : 13px;
  color         : var(--red-dark);
  line-height   : 1.8;
  font-weight   : 600;
}
.iq-genres-detail-msg:not(:empty)::before{
  content   : "&#x2726;";
  content   : "\2726";
  position  : absolute;
  left      : 18px;
  top       : 50%;
  transform : translateY(-50%);
  font-size : 20px;
  color     : var(--gold);
  filter    : drop-shadow(0 0 6px rgba(212,173,85,.6));
}
.iq-genres-detail-msg:not(:empty)::after{
  content   : "";
  position  : absolute;
  top:0; left:0; right:0; height:2px;
  border-radius: 12px 12px 0 0;
  background: linear-gradient(90deg,transparent,var(--gold) 30%,var(--gold-light) 50%,var(--gold) 70%,transparent);
}

/* 広告スロット */
.iq-ad-slot{
  margin    : 32px 0 0;
  text-align: center;
}

/* 検索結果なし */
.not_found{
  margin       : 20px 0;
  padding      : 24px 16px;
  text-align   : center;
  border-radius: 8px;
  background   : var(--cream);
  border       : 1px dashed rgba(190,140,60,.35);
  color        : var(--muted);
  font-size    : 13px;
  line-height  : 1.75;
}

/* ══════════════════════════════════════════════════════
   histories_detail_sp_1 — 詳細ページ固有スタイル
══════════════════════════════════════════════════════ */

/* 右側ボタンエリア */
.iq-detail-actions-top{
  display        : flex;
  justify-content: flex-end;
  margin         : 0 0 6px;
}
.iq-detail-actions-top a{
  display        : inline-flex;
  align-items    : center;
  gap            : 4px;
  padding        : 6px 14px;
  border-radius  : 20px;
  border         : 1px solid rgba(190,140,60,.5);
  background     : var(--cream);
  color          : var(--red-dark) !important;
  font-size      : 12px;
  font-weight    : 700;
  text-decoration: none !important;
}

/* ページタイトル（h1/h2） */
.iq-detail-wrap h1{
  font-family  : var(--serif);
  font-size    : 15px;
  font-weight  : 900;
  color        : var(--red-dark);
  margin       : 0 0 4px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(190,140,60,.3);
}
.iq-detail-wrap h2{
  font-size    : 12px;
  color        : var(--muted);
  margin       : 0 0 14px;
  font-weight  : 400;
}

/* メッセージ */
.iq-detail-wrap .msg{
  margin       : 0 0 14px;
  padding      : 10px 14px;
  border-radius: 6px;
  background   : rgba(212,173,85,.12);
  border       : 1px solid rgba(212,173,85,.35);
  font-size    : 13px;
  color        : var(--red-dark);
  line-height  : 1.65;
}
.iq-detail-wrap .msg:empty{
  display: none;
}

/* 詳細テーブル */
.iq-detail-wrap table.detail{
  width        : 100%;
  border-radius: 8px;
  overflow     : hidden;
  border-collapse: collapse;
  border       : 1px solid rgba(190,140,60,.3);
  margin       : 0 0 14px;
}
.iq-detail-wrap table.detail th{
  width        : 38%;
  padding      : 10px 12px;
  background   : linear-gradient(135deg,#5e0d1a,#420910);
  color        : rgba(255,230,180,.9);
  font-size    : 12px;
  font-weight  : 700;
  font-family  : var(--serif);
  vertical-align:top;
  border-bottom: 1px solid rgba(255,200,120,.1);
}
.iq-detail-wrap table.detail td{
  padding      : 10px 12px;
  background   : var(--cream);
  font-size    : 13px;
  color        : var(--red-dark);
  line-height  : 1.65;
  border-bottom: 1px solid rgba(190,140,60,.2);
  word-break   : break-all;
}
.iq-detail-wrap table.detail tr:last-child th,
.iq-detail-wrap table.detail tr:last-child td{
  border-bottom: none;
}

/* テーブル内サブタイトル */
.iq-detail-wrap .content_subtitle{
  margin       : 0 0 6px;
  padding      : 8px 14px;
  background   : rgba(212,173,85,.15);
  border-left  : 3px solid var(--gold);
  font-size    : 12px;
  font-weight  : 700;
  color        : var(--muted);
}

/* アクションボタン */
.iq-detail-wrap .btn.wide{
  display        : flex;
  align-items    : center;
  justify-content: center;
  width          : 100%;
  min-height     : 50px;
  padding        : 12px 18px;
  border         : none;
  border-radius  : 10px;
  font-size      : 14px;
  font-weight    : 900;
  font-family    : var(--serif);
  cursor         : pointer;
  margin-bottom  : 10px;
  letter-spacing : .04em;
}
.iq-detail-wrap .btn.wide.commit{
  background     : linear-gradient(135deg,#a51d31,#620914);
  color          : #fff !important;
  box-shadow     : 0 5px 0 #3b050d;
}
.iq-detail-wrap .btn.wide.commit:active{
  transform      : translateY(3px);
  box-shadow     : 0 2px 0 #3b050d;
}
.iq-detail-wrap .btn.wide.gray{
  background     : transparent;
  color          : var(--muted) !important;
  border         : 2px solid rgba(100,60,70,.45) !important;
  box-shadow     : none;
}

/* ナビゲーションリンク */
.iq-detail-wrap ul.link.info{
  list-style   : none;
  padding      : 0;
  margin       : 18px 0 0;
}
.iq-detail-wrap ul.link.info li.arrow{
  border-bottom: 1px solid rgba(190,140,60,.2);
}
.iq-detail-wrap ul.link.info li.arrow:last-child{
  border-bottom: none;
}
.iq-detail-wrap ul.link.info li.arrow a{
  display        : flex;
  align-items    : center;
  gap            : 8px;
  padding        : 13px 16px;
  background     : var(--cream);
  color          : var(--red-dark) !important;
  font-size      : 13px;
  font-weight    : 700;
  text-decoration: none !important;
  transition     : background .18s;
}
.iq-detail-wrap ul.link.info li.arrow a::after{
  content    : "›";
  margin-left: auto;
  color      : var(--gold);
  font-size  : 18px;
  line-height: 1;
}

/* ══════════════════════════════════════════════════════
   detail_quiz_sp_1 — クイズ問題ページ固有スタイル
══════════════════════════════════════════════════════ */

/* ─── ポイント HUD ─── */
.iq-quiz-points{
  display        : flex;
  align-items    : center;
  gap            : 10px;
  margin         : 14px 16px;
  padding        : 10px 16px;
  border-radius  : 30px;
  background     : linear-gradient(135deg,#2a0508,#420910);
  border         : 1px solid rgba(212,173,85,.38);
  box-shadow     : 0 2px 10px rgba(51,2,10,.2);
}
.iq-quiz-points::before{
  content     : "★";
  font-size   : 18px;
  color       : var(--gold-light);
  flex-shrink : 0;
  filter      : drop-shadow(0 0 6px rgba(240,195,65,.7));
}
.iq-quiz-points span.iq-quiz-pt-label{
  font-size   : 11px;
  color       : rgba(255,220,170,.7);
  letter-spacing:.04em;
}
.iq-quiz-points strong{
  margin-left : auto;
  font-size   : 17px;
  font-weight : 900;
  font-family : var(--serif);
  color       : var(--gold-light);
  text-shadow : 0 0 10px rgba(240,195,65,.5);
}

/* ─── 問題番号タイトル ─── */
.iq-quiz-title-wrap{
  position  : relative;
  margin    : 0 0 18px;
}
.iq-quiz-title-badge{
  display        : inline-flex;
  align-items    : center;
  gap            : 5px;
  margin-bottom  : -1px;
  padding        : 4px 14px 5px;
  border-radius  : 8px 8px 0 0;
  background     : var(--gold);
  color          : #3a0508;
  font-family    : var(--serif);
  font-size      : 10px;
  font-weight    : 900;
  letter-spacing : .12em;
  position       : relative;
  z-index        : 1;
}
h2.detail_title{
  position     : relative;
  margin       : 0;
  padding      : 18px 16px 16px;
  border-radius: 0 10px 10px 10px;
  background   :
    radial-gradient(ellipse 80% 50% at 50% 0%, rgba(240,195,62,.16), transparent 65%),
    repeating-linear-gradient(45deg, rgba(255,228,140,.03) 0 1px, transparent 1px 18px),
    linear-gradient(155deg,#1e0306,#3a0910 45%,#5e0d1a);
  border       : 1px solid rgba(212,173,85,.42);
  color        : #fff;
  font-family  : var(--serif);
  font-size    : 14px;
  font-weight  : 900;
  line-height  : 1.6;
  text-align   : center;
  letter-spacing:.04em;
  box-shadow   : 0 6px 22px rgba(51,2,10,.28);
  overflow     : hidden;
}
h2.detail_title::before{
  content   : "";
  position  : absolute; top:0; left:0; right:0;
  height    : 2px;
  background: linear-gradient(90deg,transparent,var(--gold) 25%,var(--gold-light) 50%,var(--gold) 75%,transparent);
  animation : subGoldPulse 3.8s ease-in-out infinite;
}
h2.detail_title::after{
  content      : "◆　◆　◆";
  display      : block;
  margin-top   : 8px;
  font-size    : 8px;
  color        : var(--gold-light);
  opacity      : .5;
  letter-spacing:.2em;
}

/* ─── 問題ラッパー ─── */
.ditail_wrap{
  margin  : 0 0 20px;
}

/* ─── 問題文パネル ─── */
p.detail_question{
  position     : relative;
  margin       : 0 0 18px;
  padding      : 20px 16px 18px;
  border-radius: 10px;
  background   :
    radial-gradient(ellipse 90% 55% at 50% 0%, rgba(240,195,62,.16), transparent 65%),
    linear-gradient(165deg,#1e0306,#3a0910 45%,#540c17);
  border       : 1px solid rgba(212,173,85,.42);
  color        : rgba(255,238,205,.96);
  font-family  : var(--serif);
  font-size    : 15px;
  font-weight  : 700;
  line-height  : 1.95;
  box-shadow   : 0 8px 24px rgba(51,2,10,.3);
}
p.detail_question::before{
  content      : "QUESTION";
  display      : block;
  font-size    : 9px;
  font-weight  : 900;
  color        : var(--gold);
  letter-spacing:.25em;
  margin-bottom: 10px;
  padding-bottom: 8px;
  border-bottom : 1px solid rgba(212,173,85,.25);
}

/* ─── 選択肢ラッパー ─── */
.detail_answer_wrap{
  display       : flex;
  flex-direction: column;
  gap           : 8px;
  margin        : 0 0 22px;
  counter-reset : answer-option;
}

/* ─── 選択肢ボタン ─── */
a.detail_answer{
  position       : relative;
  display        : flex;
  align-items    : center;
  gap            : 14px;
  padding        : 14px 16px 14px 14px;
  border-radius  : 10px;
  background     : var(--cream);
  border         : 1px solid rgba(190,140,60,.35);
  color          : var(--red-dark) !important;
  font-family    : var(--serif);
  font-size      : 14px;
  font-weight    : 700;
  line-height    : 1.55;
  text-decoration: none !important;
  box-shadow     : 0 4px 0 rgba(140,90,40,.18), 0 6px 14px rgba(51,2,10,.1);
  transition     : transform .12s, box-shadow .12s, background .15s;
  counter-increment: answer-option;
  overflow       : hidden;
}
a.detail_answer::before{
  content        : counter(answer-option, upper-alpha);
  display        : flex;
  align-items    : center;
  justify-content: center;
  width          : 32px;
  height         : 32px;
  flex-shrink    : 0;
  border-radius  : 50%;
  background     : linear-gradient(135deg,#a51d31,#620914);
  color          : #fff;
  font-size      : 12px;
  font-weight    : 900;
  box-shadow     : 0 2px 6px rgba(51,2,10,.3);
}
a.detail_answer:active{
  background   : rgba(212,173,85,.15);
  box-shadow   : 0 1px 0 rgba(140,90,40,.18);
  transform    : translateY(3px);
}

/* ─── 前後ナビゲーション ─── */
.btn_grid2{
  display  : flex;
  gap      : 10px;
  margin   : 18px 0;
}
a.next_btn{
  flex           : 1;
  display        : flex;
  align-items    : center;
  justify-content: center;
  gap            : 6px;
  min-height     : 50px;
  padding        : 10px 14px;
  border-radius  : 10px;
  background     : linear-gradient(135deg,#2a0508,#3d0910);
  border         : 1px solid rgba(212,173,85,.38);
  color          : rgba(255,225,175,.9) !important;
  font-family    : var(--serif);
  font-size      : 13px;
  font-weight    : 900;
  text-decoration: none !important;
  letter-spacing : .06em;
  box-shadow     : 0 4px 0 #1a0205;
  transition     : transform .12s, box-shadow .12s;
}
a.next_btn:active{
  transform  : translateY(3px);
  box-shadow : 0 1px 0 #1a0205;
}

/* ─── パンくず ─── */
.breadcrumbs{
  display        : flex;
  flex-wrap      : wrap;
  align-items    : center;
  gap            : 6px;
  margin         : 14px 0 0;
  padding        : 10px 14px;
  background     : rgba(212,173,85,.07);
  border-radius  : 6px;
  border         : 1px solid rgba(190,140,60,.18);
  font-size      : 11px;
  line-height    : 1.7;
}
.breadcrumbs a{
  color          : var(--muted) !important;
  text-decoration: underline !important;
  text-underline-offset:2px;
  transition     : color .15s;
}
.breadcrumbs a:hover{
  color: var(--red-dark) !important;
}

/* ─── ポイント不足パネル ─── */
.iq-quiz-no-point{
  margin       : 16px 0;
  padding      : 32px 20px;
  border-radius: 12px;
  background   :
    radial-gradient(ellipse 80% 50% at 50% 30%, rgba(240,195,62,.1), transparent 70%),
    linear-gradient(165deg,#1e0306,#3a0910);
  border       : 1px solid rgba(212,173,85,.35);
  text-align   : center;
  font-size    : 13px;
  line-height  : 2;
  color        : rgba(255,225,175,.85);
  box-shadow   : 0 6px 20px rgba(51,2,10,.22);
}
.iq-quiz-no-point strong{
  display    : block;
  font-size  : 18px;
  font-weight: 900;
  font-family: var(--serif);
  color      : var(--gold-light);
  margin     : 0 0 6px;
}
.iq-quiz-no-point a{
  display        : inline-flex;
  align-items    : center;
  margin-top     : 14px;
  padding        : 12px 32px;
  border-radius  : 30px;
  background     : linear-gradient(135deg,#a51d31,#620914);
  color          : #fff !important;
  font-size      : 13px;
  font-weight    : 900;
  font-family    : var(--serif);
  text-decoration: none !important;
  box-shadow     : 0 5px 0 #3b050d;
  letter-spacing : .06em;
}
.iq-quiz-no-point a:active{
  transform : translateY(4px);
  box-shadow: 0 1px 0 #3b050d;
}

/* ══════════════════════════════════════════════════════
   detail_img_sp_1 — コンテンツダウンロードページ固有スタイル
══════════════════════════════════════════════════════ */

/* 投票プロンプト */
.iq-dl-vote{
  margin       : 0 0 10px;
  text-align   : center;
}
.iq-dl-vote-label{
  display      : inline-block;
  padding      : 5px 16px;
  border-radius: 20px;
  background   : linear-gradient(135deg,#a51d31,#620914);
  color        : #fff !important;
  font-size    : 12px;
  font-weight  : 900;
  letter-spacing:.04em;
  font-family  : var(--serif);
}
.iq-dl-arrows{
  display      : block;
  font-size    : 13px;
  color        : var(--gold);
  letter-spacing:.15em;
  margin       : 6px 0 10px;
  text-align   : center;
}

/* コンテンツ画像フレーム */
.iq-dl-image-frame{
  margin       : 0 auto 16px;
  display      : table;
  position     : relative;
}
.iq-dl-image-frame img{
  display      : block;
  max-width    : 100%;
  border-radius: 8px;
  border       : 2px solid rgba(212,173,85,.45);
  box-shadow   : 0 8px 28px rgba(51,2,10,.32), 0 2px 6px rgba(0,0,0,.2);
}

/* ポイント消費情報 */
.iq-dl-point-info{
  margin       : 0 0 16px;
  padding      : 10px 16px;
  border-radius: 8px;
  background   : var(--cream);
  border       : 1px solid rgba(190,140,60,.3);
  text-align   : center;
  font-size    : 13px;
  font-weight  : 700;
  color        : var(--red-dark);
}

/* ダウンロード・再ダウンロードボタン */
.iq-dl-btn-wrap{
  margin : 0 0 16px;
  text-align: center;
}
.iq-dl-btn-wrap a{
  display        : inline-flex;
  align-items    : center;
  gap            : 8px;
  padding        : 14px 36px;
  border-radius  : 30px;
  background     : linear-gradient(135deg,#a51d31,#620914);
  color          : #fff !important;
  font-family    : var(--serif);
  font-size      : 15px;
  font-weight    : 900;
  text-decoration: none !important;
  letter-spacing : .06em;
  box-shadow     : 0 6px 0 #3b050d, 0 10px 20px rgba(51,2,10,.3);
  transition     : transform .12s, box-shadow .12s;
}
.iq-dl-btn-wrap a:active{
  transform : translateY(5px);
  box-shadow: 0 1px 0 #3b050d;
}

/* 確認テキスト */
.iq-dl-confirm-note{
  margin    : 14px 0 0;
  padding   : 12px 14px;
  background: rgba(212,173,85,.08);
  border    : 1px dashed rgba(190,140,60,.3);
  border-radius:8px;
  text-align: center;
  font-size : 12px;
  line-height:1.75;
  color     : var(--muted);
}

/* ══════════════════════════════════════════════════════
   detail_fla_utas_sp_1 — 音楽ダウンロードページ固有スタイル
══════════════════════════════════════════════════════ */

/* 楽曲タイトル見出し */
h2.title_cp{
  position     : relative;
  margin       : 0 0 16px;
  padding      : 20px 16px 16px;
  border-radius: 10px;
  background   :
    radial-gradient(ellipse 85% 50% at 50% 0%, rgba(240,195,62,.18), transparent 65%),
    linear-gradient(160deg,#1e0306,#3a0910 45%,#5e0d1a);
  border       : 1px solid rgba(212,173,85,.42);
  color        : rgba(255,238,205,.96);
  font-family  : var(--serif);
  font-size    : 16px;
  font-weight  : 900;
  line-height  : 1.55;
  text-align   : center;
  letter-spacing:.04em;
  box-shadow   : 0 6px 22px rgba(51,2,10,.28);
  overflow     : hidden;
}
h2.title_cp::before{
  content      : "♪";
  display      : block;
  font-size    : 18px;
  color        : var(--gold-light);
  margin-bottom: 8px;
  filter       : drop-shadow(0 0 6px rgba(240,195,65,.6));
}
h2.title_cp::after{
  content   : "";
  position  : absolute; top:0; left:0; right:0;
  height    : 2px;
  background: linear-gradient(90deg,transparent,var(--gold) 25%,var(--gold-light) 50%,var(--gold) 75%,transparent);
  animation : subGoldPulse 3.8s ease-in-out infinite;
}

/* 楽曲メタ情報パネル */
.iq-dl-music-meta{
  margin       : 0 0 16px;
  border-radius: 10px;
  overflow     : hidden;
  border       : 1px solid rgba(190,140,60,.32);
  background   : var(--cream);
}
.iq-dl-music-meta dl{
  margin  : 0;
  padding : 0;
}
.iq-dl-music-meta dl dt{
  display    : none;
}
.iq-dl-music-meta .meta-row{
  display       : flex;
  align-items   : baseline;
  gap           : 8px;
  padding       : 9px 14px;
  border-bottom : 1px solid rgba(190,140,60,.15);
  font-size     : 13px;
  color         : var(--red-dark);
  line-height   : 1.55;
}
.iq-dl-music-meta .meta-row:last-child{
  border-bottom: none;
}
.iq-dl-music-meta .meta-key{
  flex-shrink  : 0;
  font-size    : 11px;
  font-weight  : 700;
  color        : var(--muted);
  letter-spacing:.03em;
  min-width    : 72px;
}
.iq-dl-music-meta .meta-val{
  font-weight  : 700;
  word-break   : break-all;
}

/* ══════════════════════════════════════════════════════
   answer_quiz_sp_1 — 回答ページ固有スタイル
══════════════════════════════════════════════════════ */

/* 正解：ポップイン */
@keyframes correctPop{
  0%  { transform:scale(.4) rotate(-6deg); opacity:0; }
  70% { transform:scale(1.12) rotate(1deg); }
  100%{ transform:scale(1)   rotate(0deg); opacity:1; }
}
/* 正解：グロウ */
@keyframes correctGlow{
  0%,100%{ text-shadow:0 0 20px rgba(240,195,65,.8), 0 0 40px rgba(240,195,65,.4), 0 0 80px rgba(240,195,65,.2); }
  50%    { text-shadow:0 0 36px rgba(240,195,65,1),  0 0 70px rgba(240,195,65,.8), 0 0 120px rgba(240,195,65,.35); }
}
/* 正解：シマー */
@keyframes correctShimmer{
  0%  { transform:translateX(-130%) skewX(-18deg); }
  100%{ transform:translateX(230%)  skewX(-18deg); }
}
/* 正解：星フロート */
@keyframes starFloat{
  0%,100%{ transform:translateY(0) rotate(0deg);   opacity:.55; }
  33%    { transform:translateY(-7px) rotate(8deg);  opacity:.9; }
  66%    { transform:translateY(-3px) rotate(-5deg); opacity:.7; }
}
/* 不正解：フェードイン */
@keyframes incorrectFadeIn{
  from{ opacity:0; transform:translateY(12px); }
  to  { opacity:1; transform:translateY(0); }
}
/* 不正解：暗闇パルス */
@keyframes incorrectPulse{
  0%,100%{ box-shadow:0 8px 26px rgba(0,20,60,.35), 0 0 0 rgba(80,120,220,0); }
  50%    { box-shadow:0 12px 38px rgba(0,20,60,.55), 0 0 24px rgba(80,120,220,.18); }
}
/* 後光の回転 */
@keyframes ansRaySpin{
  to{ transform:translate(-50%,-50%) rotate(360deg); }
}
/* 紋章シール：登場 */
@keyframes ansSealPop{
  0%  { transform:scale(0) rotate(-140deg); opacity:0; }
  70% { transform:scale(1.18) rotate(8deg); }
  100%{ transform:scale(1) rotate(0deg);   opacity:1; }
}
/* 紋章シール：輝き */
@keyframes ansSealGlow{
  0%,100%{ box-shadow:0 0 0 4px rgba(212,173,85,.16), 0 0 22px rgba(240,195,62,.5), inset 0 2px 5px rgba(255,255,255,.5); }
  50%    { box-shadow:0 0 0 7px rgba(212,173,85,.1),  0 0 40px rgba(240,195,62,.85), inset 0 2px 5px rgba(255,255,255,.65); }
}
/* 正解テキスト：グラデ文字用グロー */
@keyframes correctGlowFilter{
  0%,100%{ filter:drop-shadow(0 0 12px rgba(240,195,65,.7)) drop-shadow(0 0 32px rgba(240,195,65,.36)); }
  50%    { filter:drop-shadow(0 0 24px rgba(240,195,65,1))  drop-shadow(0 0 58px rgba(240,195,65,.62)); }
}
/* 装飾枠：ゆらぎ */
@keyframes ansFrameBreathe{
  0%,100%{ opacity:.5 }
  50%    { opacity:.95 }
}

/* ── 回答ラッパー共通 ── */
.correct_wrap{
  position     : relative;
  margin       : 0 0 22px;
  padding      : 30px 22px 34px;
  border-radius: 16px;
  text-align   : center;
  overflow     : hidden;
  isolation    : isolate;
}

/* ══ 後光（放射光線） ══ */
.iq-ans-rays{
  position      : absolute;
  z-index       : 0;
  top:50%; left:50%;
  width         : 460px; height:460px;
  transform     : translate(-50%,-50%);
  background    : conic-gradient(from 0deg,
                    rgba(240,195,62,.15) 0 5deg, transparent 5deg 20deg,
                    rgba(240,195,62,.09) 20deg 24deg, transparent 24deg 40deg);
  -webkit-mask  : radial-gradient(circle closest-side, #000 8%, rgba(0,0,0,.55) 45%, transparent 74%);
          mask  : radial-gradient(circle closest-side, #000 8%, rgba(0,0,0,.55) 45%, transparent 74%);
  animation     : ansRaySpin 26s linear infinite;
  pointer-events: none;
}

/* ══ 二重装飾枠 ══ */
.iq-ans-frame{
  position      : absolute;
  z-index       : 1;
  inset         : 9px;
  border-radius : 11px;
  pointer-events: none;
  animation     : ansFrameBreathe 4.6s ease-in-out infinite;
}
/* 左上／右下の太いコーナーブラケット */
.iq-ans-frame::before,
.iq-ans-frame::after{
  content      : "";
  position     : absolute;
  width        : 26px; height:26px;
}
.iq-ans-frame::before{
  top:-1px; left:-1px;
  border-top   : 2px solid; border-left:2px solid;
  border-radius: 10px 0 0 0;
}
.iq-ans-frame::after{
  bottom:-1px; right:-1px;
  border-bottom: 2px solid; border-right:2px solid;
  border-radius: 0 0 10px 0;
}

/* ══ 紋章シール ══ */
.iq-ans-seal{
  position       : relative;
  z-index        : 2;
  width          : 54px; height:54px;
  margin         : 0 auto 14px;
  display        : flex;
  align-items    : center;
  justify-content: center;
  border-radius  : 50%;
  font-size      : 21px;
  line-height    : 1;
}

/* ══ RESULT ラベル ══ */
.iq-ans-label{
  position      : relative;
  z-index       : 2;
  margin        : 0 0 12px;
  font-size      : 9px;
  font-weight   : 900;
  letter-spacing: .34em;
}

/* ══ 区切り装飾 ══ */
.iq-ans-divider{
  position      : relative;
  z-index       : 2;
  margin        : 16px 0 18px;
  font-size     : 9px;
  letter-spacing: .1em;
  opacity       : .55;
}

/* ══ 正解バリアント ══ */
.correct_wrap:has(.correct){
  background   :
    radial-gradient(ellipse 85% 65% at 50% 20%, rgba(240,195,62,.32), transparent 65%),
    radial-gradient(ellipse 60% 40% at 20% 80%, rgba(200,150,40,.12), transparent 55%),
    repeating-linear-gradient(45deg, rgba(255,228,140,.045) 0 1px, transparent 1px 20px),
    linear-gradient(155deg,#1a0204,#3a0910 45%,#5e0d1a);
  border       : 1px solid rgba(212,173,85,.65);
  box-shadow   : 0 12px 40px rgba(51,2,10,.45), 0 0 0 1px rgba(240,195,62,.12), inset 0 1px 0 rgba(255,220,120,.45);
}
/* 上部金ライン（アニメ） */
.correct_wrap:has(.correct)::before{
  content   : "";
  position  : absolute; top:0; left:0; right:0;
  height    : 3px;
  background: linear-gradient(90deg,transparent,var(--gold) 18%,var(--gold-light) 50%,var(--gold) 82%,transparent);
  animation : subGoldPulse 2.4s ease-in-out infinite;
}
/* シマー光帯 */
.correct_wrap:has(.correct)::after{
  content   : "";
  position  : absolute; top:0; left:0;
  width     : 35%; height:100%;
  background: linear-gradient(90deg,transparent,rgba(255,238,160,.1),transparent);
  animation : correctShimmer 3.2s cubic-bezier(.4,0,.6,1) infinite;
  pointer-events:none;
}
/* 底部星デコ */
.correct_wrap:has(.correct) .iq-answer-stars{
  display       : block;
  position      : relative;
  z-index       : 2;
  margin-top    : 20px;
  color         : var(--gold-light);
  font-size     : 13px;
  letter-spacing: .5em;
  animation     : starFloat 3.6s ease-in-out infinite;
}

/* ── 正解：装飾枠 ── */
.correct_wrap:has(.correct) .iq-ans-frame{
  border    : 1px solid rgba(212,173,85,.28);
  box-shadow: inset 0 0 24px rgba(240,195,62,.07);
}
.correct_wrap:has(.correct) .iq-ans-frame::before,
.correct_wrap:has(.correct) .iq-ans-frame::after{
  border-color: var(--gold);
}

/* ── 正解：紋章シール ── */
.correct_wrap:has(.correct) .iq-ans-seal{
  color     : #3a0508;
  background: radial-gradient(circle at 34% 26%, #fff8dc, #f0d58d 44%, #d4ad55 70%, #a8801f);
  border    : 2px solid rgba(255,242,190,.9);
  text-shadow: 0 1px 0 rgba(255,255,255,.5);
  animation : ansSealPop .62s cubic-bezier(.36,1.6,.42,.95) both,
              ansSealGlow 2.6s ease-in-out .62s infinite;
}

/* ── 正解：ラベル・区切り ── */
.correct_wrap:has(.correct) .iq-ans-label{
  color: rgba(240,213,141,.72);
}
.correct_wrap:has(.correct) .iq-ans-divider{
  color: var(--gold);
}

/* ══ 不正解バリアント ══ */
.correct_wrap:has(.incorrect){
  background   :
    radial-gradient(ellipse 80% 55% at 50% 20%, rgba(60,100,180,.18), transparent 62%),
    radial-gradient(ellipse 50% 30% at 80% 85%, rgba(40,60,140,.12), transparent 55%),
    repeating-linear-gradient(-45deg, rgba(80,120,200,.03) 0 1px, transparent 1px 22px),
    linear-gradient(155deg,#080d1c,#141e36 50%,#0a1422);
  border       : 1px solid rgba(100,150,220,.38);
  box-shadow   : 0 10px 36px rgba(0,10,40,.55), inset 0 1px 0 rgba(120,170,255,.12);
  animation    : incorrectFadeIn .6s ease-out both, incorrectPulse 3.8s ease-in-out 1s infinite;
}
.correct_wrap:has(.incorrect)::before{
  content   : "";
  position  : absolute; top:0; left:0; right:0;
  height    : 2px;
  background: linear-gradient(90deg,transparent,rgba(100,150,220,.65) 25%,rgba(160,210,255,.95) 50%,rgba(100,150,220,.65) 75%,transparent);
}

/* ── 不正解：装飾枠 ── */
.correct_wrap:has(.incorrect) .iq-ans-frame{
  border    : 1px solid rgba(120,170,235,.2);
  box-shadow: inset 0 0 24px rgba(80,130,220,.06);
}
.correct_wrap:has(.incorrect) .iq-ans-frame::before,
.correct_wrap:has(.incorrect) .iq-ans-frame::after{
  border-color: rgba(140,190,250,.65);
}

/* ── 不正解：紋章シール（未獲得＝空洞） ── */
.correct_wrap:has(.incorrect) .iq-ans-seal{
  color      : rgba(170,210,255,.85);
  background : radial-gradient(circle at 34% 26%, rgba(80,120,190,.35), rgba(20,36,68,.9) 70%);
  border     : 2px solid rgba(120,170,235,.45);
  box-shadow : 0 0 0 4px rgba(80,130,220,.08), inset 0 2px 6px rgba(0,0,0,.5);
  animation  : ansSealPop .62s cubic-bezier(.36,1.4,.42,.95) both;
}

/* ── 不正解：ラベル・区切り ── */
.correct_wrap:has(.incorrect) .iq-ans-label{
  color: rgba(150,195,250,.6);
}
.correct_wrap:has(.incorrect) .iq-ans-divider{
  color: rgba(140,190,250,.7);
}

/* ── 正解テキスト（ゴールド箔グラデ） ── */
.correct{
  display      : block;
  position     : relative;
  z-index      : 2;
  font-size    : 54px;
  font-weight  : 900;
  font-family  : var(--serif);
  letter-spacing:.12em;
  line-height  : 1.08;
  margin       : 0;
  background   : linear-gradient(178deg,
                   #fffceb 0%, #fdf0bc 22%, #f0d58d 44%,
                   #d9b45f 60%, #f4dc9e 76%, #c79c3c 100%);
  -webkit-background-clip: text;
          background-clip: text;
  color        : transparent;
  -webkit-text-fill-color: transparent;
  animation    : correctPop .58s cubic-bezier(.36,1.6,.42,.95) both,
                 correctGlowFilter 2.1s ease-in-out .58s infinite;
}

/* ── 不正解テキスト ── */
.incorrect{
  display      : block;
  position     : relative;
  z-index      : 2;
  font-size    : 38px;
  font-weight  : 900;
  font-family  : var(--serif);
  letter-spacing:.08em;
  line-height  : 1.1;
  margin       : 0;
  background   : linear-gradient(178deg,
                   #eaf4ff 0%, #c3dcfa 30%, #8fb6e6 58%,
                   #b9d5f4 78%, #6f97cc 100%);
  -webkit-background-clip: text;
          background-clip: text;
  color        : transparent;
  -webkit-text-fill-color: transparent;
  filter       : drop-shadow(0 0 18px rgba(80,130,220,.55)) drop-shadow(0 2px 3px rgba(0,0,0,.6));
}

/* ── 正解内の答えテキスト（額装風） ── */
.correct_wrap:has(.correct) > div[style]{
  display      : inline-block;
  position     : relative;
  z-index      : 2;
  max-width    : 92%;
  padding      : 16px 24px;
  border-radius: 10px;
  background   : linear-gradient(165deg, rgba(212,173,85,.2), rgba(120,90,20,.14));
  border       : 1px solid rgba(212,173,85,.5);
  box-shadow   : 0 0 20px rgba(212,173,85,.16),
                 inset 0 1px 0 rgba(255,244,196,.28),
                 inset 0 0 0 1px rgba(255,240,180,.08);
  color        : rgba(255,247,216,.96);
  font-family  : var(--serif);
  font-size    : 15px;
  font-weight  : 700;
  line-height  : 1.8;
  margin       : 0 !important;
}

/* ── 不正解内の選択肢 ── */
.choice{
  position     : relative;
  z-index      : 2;
  margin       : 0 auto;
  max-width    : 94%;
  padding      : 13px 18px;
  border-radius: 8px;
  font-size    : 13px;
  line-height  : 1.75;
  font-weight  : 600;
}
.correct_wrap:has(.incorrect) .choice{
  background   : rgba(80,120,200,.1);
  border       : 1px solid rgba(100,150,210,.28);
  color        : rgba(180,215,255,.9);
  box-shadow   : inset 0 1px 0 rgba(150,190,255,.1);
}

/* ══ 回答ページ ヒーロー装飾 ══ */
.iq-ans-hero-rule{
  display       : block;
  color         : var(--gold);
  font-size     : 8px;
  letter-spacing: .12em;
  opacity       : .5;
}
.iq-ans-hero .iq-sub-hero-inner > .iq-ans-hero-rule:first-child{
  margin-bottom: 14px;
}
.iq-ans-hero .iq-sub-hero-inner > .iq-ans-hero-rule:last-child{
  margin-top: 14px;
}
/* 背後で回る紋章リング */
.iq-ans-hero-crest{
  position      : absolute;
  z-index       : 1;
  top:50%; left:50%;
  width         : 210px; height:210px;
  transform     : translate(-50%,-50%);
  border        : 1px solid rgba(212,173,85,.13);
  border-radius : 50%;
  pointer-events: none;
}
.iq-ans-hero-crest::before,
.iq-ans-hero-crest::after{
  content       : "";
  position      : absolute;
  border        : 1px solid rgba(212,173,85,.1);
  border-radius : 50%;
}
.iq-ans-hero-crest::before{ inset:22px; }
.iq-ans-hero-crest::after{
  inset      : -30px;
  border-style: dashed;
  animation  : subOrbitSpin 46s linear infinite;
}

/* ══ 解説パネル ══ */
.iq-answer-desc{
  position     : relative;
  margin       : 22px 0 0;
  border-radius: 14px;
  overflow     : hidden;
  box-shadow   : 0 6px 28px rgba(59,4,11,.14), inset 0 1px 0 rgba(255,240,180,.9);
}
.iq-answer-desc::before{
  content   : "";
  position  : absolute; top:0; left:0; right:0; height:2px;
  background: linear-gradient(90deg,transparent,var(--gold) 25%,var(--gold-light) 50%,var(--gold) 75%,transparent);
}
.iq-answer-desc::after{
  content   : "";
  position  : absolute; bottom:0; left:0; right:0; height:1px;
  background: linear-gradient(90deg,transparent,rgba(196,158,54,.4) 35%,rgba(196,158,54,.4) 65%,transparent);
}
.iq-answer-desc-head{
  padding       : 12px 20px 10px;
  background    : linear-gradient(135deg,#2a0408,#4e0e18 60%,#320608);
  border-bottom : 1px solid rgba(196,158,54,.3);
  color         : var(--gold-light);
  font-size     : 11px;
  font-weight   : 900;
  letter-spacing: .22em;
  text-align    : center;
}
.iq-answer-desc-body{
  position   : relative;
  padding    : 24px 22px 26px;
  background :
    radial-gradient(ellipse 80% 50% at 50% 0%, rgba(240,195,62,.08), transparent),
    repeating-linear-gradient(45deg, rgba(190,140,60,.022) 0 1px, transparent 1px 16px),
    linear-gradient(172deg,#fffef8,#f7e9c8 60%,#f0ddb8);
  color      : var(--red-dark);
  font-size  : 14px;
  line-height: 1.95;
  font-weight: 600;
}
/* 解説：内側の細枠 */
.iq-answer-desc-body::before{
  content       : "";
  position      : absolute;
  inset         : 8px;
  border        : 1px solid rgba(196,158,54,.22);
  border-radius : 8px;
  pointer-events: none;
}

/* ── 問題に戻るボタン ── */
a.back_button{
  display        : inline-flex;
  position       : relative;
  z-index        : 2;
  align-items    : center;
  gap            : 8px;
  margin-top     : 22px;
  padding        : 13px 32px;
  border-radius  : 30px;
  background     : rgba(80,120,200,.12);
  border         : 1.5px solid rgba(100,150,220,.55);
  color          : rgba(180,220,255,.95) !important;
  font-family    : var(--serif);
  font-size      : 13px;
  font-weight    : 900;
  text-decoration: none !important;
  letter-spacing : .08em;
  box-shadow     : 0 4px 14px rgba(0,20,80,.25), inset 0 1px 0 rgba(150,200,255,.1);
  transition     : background .2s, border-color .2s, box-shadow .2s;
}
a.back_button::before{
  content  : "\21BA";
  font-size: 16px;
}
a.back_button:active{
  background  : rgba(100,150,210,.22);
  border-color: rgba(130,180,255,.8);
  box-shadow  : 0 2px 6px rgba(0,20,80,.2);
}

/* ── 前後ナビ ── */
.btn_grid2{
  display  : flex;
  gap      : 12px;
  margin   : 24px 0 18px;
}
a.next_btn{
  flex           : 1;
  display        : flex;
  align-items    : center;
  justify-content: center;
  gap            : 6px;
  min-height     : 56px;
  padding        : 12px 14px;
  border-radius  : 12px;
  background     : linear-gradient(135deg,#2a0508,#4a0c16 50%,#320810);
  border         : 1px solid rgba(212,173,85,.45);
  color          : rgba(255,225,175,.95) !important;
  font-family    : var(--serif);
  font-size      : 14px;
  font-weight    : 900;
  text-decoration: none !important;
  letter-spacing : .08em;
  box-shadow     : 0 6px 0 #1a0205, 0 10px 22px rgba(51,2,10,.35);
  transition     : transform .12s, box-shadow .12s;
  position       : relative;
  overflow       : hidden;
}
a.next_btn::before{
  content   : "";
  position  : absolute; top:0; left:0; right:0; height:1px;
  background: linear-gradient(90deg,transparent,rgba(240,195,62,.5) 50%,transparent);
}
a.next_btn:active{
  transform  : translateY(5px);
  box-shadow : 0 1px 0 #1a0205, 0 3px 8px rgba(51,2,10,.3);
}

/* ── パンくず ── */
.breadcrumbs{
  display        : flex;
  flex-wrap      : wrap;
  align-items    : center;
  gap            : 4px 8px;
  margin         : 8px 0 0;
  padding        : 12px 16px;
  background     : rgba(212,173,85,.06);
  border-radius  : 8px;
  border         : 1px solid rgba(190,140,60,.2);
  font-size      : 11px;
  line-height    : 1.7;
}
.breadcrumbs a{
  color          : rgba(190,150,60,.8) !important;
  text-decoration: none !important;
  font-weight    : 700;
  transition     : color .15s;
}
.breadcrumbs a:hover{
  color: var(--gold) !important;
}

/* ── 不正アクセスエラー ── */
.iq-answer-invalid{
  margin       : 24px 0;
  padding      : 36px 20px;
  border-radius: 14px;
  background   : linear-gradient(160deg,#1e0204,#380910);
  border       : 1px dashed rgba(190,140,60,.35);
  text-align   : center;
  font-size    : 14px;
  font-weight  : 700;
  color        : rgba(190,150,60,.7);
  letter-spacing:.06em;
}

/* ══════════════════════════════════════════════════════
   contents_list_sp_1 — コンテンツ一覧ページ固有スタイル
══════════════════════════════════════════════════════ */

/* ジャンル説明文 */
.iq-genre-desc{
  margin      : 0 0 14px;
  padding     : 12px 14px;
  border-radius:8px;
  background  : var(--cream);
  border-left : 3px solid rgba(212,173,85,.5);
  font-size   : 13px;
  line-height : 1.75;
  color       : var(--muted);
}

/* セクション見出し（h2.content_title） */
h2.content_title{
  position     : relative;
  margin       : 18px 0 10px;
  padding      : 10px 16px 10px 14px;
  border-radius: 6px;
  background   : linear-gradient(135deg,#5e0d1a,#420910);
  border-left  : 4px solid var(--gold);
  color        : #fff;
  font-family  : var(--serif);
  font-size    : 13px;
  font-weight  : 900;
  letter-spacing:.03em;
}

/* 難易度リスト（li.arrow2.list_20） */
ul.genre_list li.arrow2.list_20{
  border-bottom: 1px solid rgba(190,140,60,.18);
  background   : var(--cream);
}
ul.genre_list li.arrow2.list_20:last-child{
  border-bottom: none;
}
ul.genre_list li.arrow2.list_20 a{
  display        : flex;
  align-items    : center;
  justify-content: space-between;
  padding        : 12px 16px;
  color          : var(--red-dark) !important;
  font-size      : 13px;
  font-weight    : 700;
  font-family    : var(--serif);
  text-decoration: none !important;
  transition     : background .18s;
}
ul.genre_list li.arrow2.list_20 a::before{
  content    : "◇";
  font-size  : 9px;
  color      : var(--gold);
  margin-right: 8px;
  flex-shrink: 0;
}
ul.genre_list li.arrow2.list_20 a::after{
  content    : "›";
  color      : var(--gold);
  font-size  : 18px;
  line-height: 1;
}
ul.genre_list li.arrow2.list_20 a:hover{
  background: rgba(212,173,85,.1);
}

/* クイズカードリスト */
ul.content_list1{
  list-style  : none;
  padding     : 0;
  margin      : 0 0 16px;
  border-radius:10px;
  overflow    : hidden;
  border      : 1px solid rgba(190,140,60,.28);
}
ul.content_list1 > li{
  border-bottom: 1px solid rgba(190,140,60,.18);
  background   : var(--cream);
}
ul.content_list1 > li:last-child{
  border-bottom: none;
}
ul.content_list1 > li a{
  display        : block;
  padding        : 13px 14px;
  text-decoration: none !important;
  transition     : background .18s;
}
ul.content_list1 > li a:hover{
  background: rgba(212,173,85,.08);
}

/* 問題番号タグ行 */
.list_title{
  display      : flex;
  align-items  : center;
  gap          : 6px;
  font-size    : 11px;
  font-weight  : 700;
  color        : var(--muted);
  margin-bottom: 6px;
  letter-spacing:.02em;
}
.list_title::before{
  content      : "Q";
  display      : inline-flex;
  align-items  : center;
  justify-content:center;
  width        : 18px;
  height       : 18px;
  border-radius: 50%;
  background   : linear-gradient(135deg,#a51d31,#620914);
  color        : #fff;
  font-size    : 10px;
  font-weight  : 900;
  flex-shrink  : 0;
}

/* 問題文エリア */
.question{
  font-size   : 13px;
  color       : var(--red-dark);
  font-weight : 600;
  line-height : 1.6;
}
.question > div[style]{
  display      : flex;
  align-items  : center;
  justify-content: flex-end;
  gap          : 6px;
  margin-top   : 8px;
  padding-top  : 7px;
  border-top   : 1px dashed rgba(190,140,60,.22);
  font-size    : 11px;
}

/* 回答済バッジ */
.question b{
  display      : inline-flex;
  align-items  : center;
  gap          : 3px;
  padding      : 2px 10px;
  border-radius: 20px;
  background   : linear-gradient(135deg,#a87c10,#c9a42a);
  color        : #fff;
  font-size    : 11px;
  font-weight  : 900;
  letter-spacing:.03em;
}

/* 未回答 + ポイント */
.question > div[style] > *:not(b){
  color       : var(--muted);
  font-weight : 600;
}

/* ══════════════════════════════════════════════════════
   retire_sp_1 — 解約コース選択ページ固有スタイル
══════════════════════════════════════════════════════ */

/* 案内テキスト */
.iq-retire-lead{
  margin      : 0 0 16px;
  padding     : 14px 16px;
  border-radius:8px;
  background  : var(--cream);
  border-left : 4px solid rgba(190,140,60,.5);
  font-size   : 13px;
  line-height : 1.85;
  color       : var(--red-dark);
}
.iq-retire-lead small{
  display    : block;
  margin-top : 6px;
  font-size  : 11px;
  color      : var(--muted);
}

/* コース選択リスト */
ul.link.iq-retire-list{
  list-style  : none;
  padding     : 0;
  margin      : 0 0 18px;
}
ul.link.iq-retire-list > li.arrow.list_3_2{
  margin-bottom: 10px;
}

/* 空のプレースホルダー行 */
ul.link.iq-retire-list > li.arrow.list_3_2:empty{
  display: none;
}

/* コース行（共通） */
ul.link.iq-retire-list > li.arrow.list_3_2 a{
  display        : flex;
  align-items    : center;
  justify-content: space-between;
  gap            : 12px;
  padding        : 16px 16px;
  border-radius  : 10px;
  background     : var(--cream);
  border         : 1px solid rgba(190,140,60,.38);
  text-decoration: none !important;
  box-shadow     : 0 4px 0 rgba(140,90,40,.15);
  transition     : transform .12s, box-shadow .12s;
}
ul.link.iq-retire-list > li.arrow.list_3_2 a:active{
  transform  : translateY(3px);
  box-shadow : 0 1px 0 rgba(140,90,40,.15);
}

/* 価格・テキスト（.b span） */
ul.link.iq-retire-list span.b{
  display     : block;
  font-family : var(--serif);
  font-size   : 14px;
  font-weight : 900;
  color       : var(--red-dark);
  line-height : 1.65;
}
ul.link.iq-retire-list span.b small{
  display    : block;
  font-size  : 12px;
  font-weight: 700;
  color      : var(--muted);
  margin-bottom:2px;
}

/* 「退会する」テキスト */
ul.link.iq-retire-list a:not([href="#"]) span.b::after{
  content      : " →";
  font-size    : 12px;
  font-weight  : 700;
  color        : var(--gold);
  margin-left  : 4px;
}

/* 登録処理中バリアント */
ul.link.iq-retire-list > li.arrow.list_3_2 a[href="#"]{
  background   : rgba(190,140,60,.06);
  border-color : rgba(190,140,60,.22);
  box-shadow   : none;
  cursor       : not-allowed;
  opacity      : .88;
}
.iq-processing-badge{
  display      : inline-flex;
  align-items  : center;
  gap          : 4px;
  padding      : 4px 10px;
  border-radius: 20px;
  background   : rgba(220,80,40,.15);
  border       : 1px solid rgba(220,80,40,.35);
  color        : #c04020 !important;
  font-size    : 11px;
  font-weight  : 900;
  white-space  : nowrap;
  flex-shrink  : 0;
}

/* ══════════════════════════════════════════════════════
   retire_mysoftbank_sp_1 — SB退会コース選択ページ固有スタイル
══════════════════════════════════════════════════════ */

/* SBブランドバナー */
.iq-sb-banner{
  position     : relative;
  margin       : 0 0 20px;
  padding      : 18px 16px;
  border-radius: 10px;
  background   :
    radial-gradient(ellipse 80% 55% at 50% 20%, rgba(80,120,200,.2), transparent 65%),
    linear-gradient(155deg,#0a0f1e,#15213a,#0d1828);
  border       : 1px solid rgba(80,130,220,.38);
  text-align   : center;
  overflow     : hidden;
  box-shadow   : 0 6px 22px rgba(0,20,60,.3);
}
.iq-sb-banner::before{
  content   : "";
  position  : absolute; top:0; left:0; right:0;
  height    : 2px;
  background: linear-gradient(90deg,transparent,rgba(100,160,255,.7) 30%,rgba(180,215,255,.9) 50%,rgba(100,160,255,.7) 70%,transparent);
}
.iq-sb-brand{
  display        : inline-flex;
  align-items    : center;
  gap            : 8px;
  padding        : 5px 18px;
  border-radius  : 20px;
  background     : rgba(80,130,220,.18);
  border         : 1px solid rgba(100,160,255,.35);
  color          : rgba(180,215,255,.95);
  font-family    : var(--serif);
  font-size      : 13px;
  font-weight    : 900;
  letter-spacing : .04em;
  margin-bottom  : 6px;
}
.iq-sb-brand::before{
  content    : "SB";
  display    : inline-flex;
  align-items: center;
  justify-content:center;
  width      : 22px;
  height     : 22px;
  border-radius:50%;
  background : rgba(80,130,220,.4);
  font-size  : 10px;
  font-weight: 900;
  color      : #fff;
}
.iq-sb-banner p{
  font-size  : 12px;
  color      : rgba(150,190,240,.75);
  margin     : 4px 0 0;
  line-height: 1.6;
}

/* コース見出し（再利用） */
/* h2.content_title は既存スタイル */

/* SBコースリスト */
ul.course_list{
  list-style  : none;
  padding     : 0;
  margin      : 0 0 18px;
  display     : flex;
  flex-direction:column;
  gap         : 10px;
}
ul.course_list > li{
  border-radius: 10px;
  overflow     : hidden;
}

/* アクティブコースカード */
ul.course_list > li a{
  display        : flex;
  align-items    : center;
  justify-content: space-between;
  gap            : 12px;
  padding        : 16px;
  background     :
    linear-gradient(135deg,#0a0f1e,#15213a);
  border         : 1px solid rgba(80,130,220,.38);
  border-radius  : 10px;
  text-decoration: none !important;
  box-shadow     : 0 4px 0 rgba(0,20,60,.25);
  transition     : transform .12s, box-shadow .12s;
}
ul.course_list > li a:active{
  transform  : translateY(3px);
  box-shadow : 0 1px 0 rgba(0,20,60,.25);
}
ul.course_list > li a[href="#"]{
  background   : rgba(20,30,50,.5);
  border-color : rgba(80,100,150,.25);
  box-shadow   : none;
  cursor       : not-allowed;
  opacity      : .82;
}

/* コース内テキスト（.b span） */
ul.course_list span.b{
  display     : block;
  flex        : 1;
  font-family : var(--serif);
  font-size   : 13px;
  font-weight : 900;
  color       : rgba(200,225,255,.92);
  line-height : 1.7;
}
ul.course_list span.b span[style]{
  display    : inline-block;
  font-size  : 11px;
  font-weight: 700;
}

/* SBキャリアタグ */
.iq-sb-tag{
  display        : inline-flex;
  align-items    : center;
  gap            : 4px;
  padding        : 3px 10px;
  border-radius  : 20px;
  background     : rgba(80,130,220,.25);
  border         : 1px solid rgba(100,160,255,.3);
  color          : rgba(180,215,255,.9) !important;
  font-size      : 11px;
  font-weight    : 900;
  letter-spacing : .03em;
  margin-bottom  : 6px;
}

/* 料金テキスト */
.iq-sb-price{
  font-size    : 16px;
  font-weight  : 900;
  color        : rgba(220,235,255,.95) !important;
  letter-spacing:.02em;
}

/* 退会するテキスト + 矢印 */
.iq-sb-action{
  display        : inline-flex;
  align-items    : center;
  gap            : 4px;
  padding        : 5px 14px;
  border-radius  : 20px;
  background     : rgba(80,130,220,.25);
  border         : 1px solid rgba(100,160,255,.3);
  color          : rgba(180,215,255,.9) !important;
  font-size      : 12px;
  font-weight    : 900;
  white-space    : nowrap;
  flex-shrink    : 0;
}
.iq-sb-action::after{
  content  : "›";
  font-size: 16px;
}

/* 入会処理中バッジ */
.iq-sb-processing{
  display      : inline-flex;
  align-items  : center;
  gap          : 4px;
  padding      : 4px 10px;
  border-radius: 20px;
  background   : rgba(200,80,40,.15);
  border       : 1px solid rgba(200,80,40,.35);
  color        : rgba(255,160,130,.9) !important;
  font-size    : 11px;
  font-weight  : 900;
  white-space  : nowrap;
  flex-shrink  : 0;
}

/* コースなし */
ul.course_list > li.iq-no-course{
  padding      : 20px 16px;
  background   : rgba(20,30,50,.4);
  border       : 1px dashed rgba(80,100,150,.3);
  border-radius: 10px;
  text-align   : center;
  font-size    : 13px;
  color        : rgba(150,180,220,.7);
}

/* ══════════════════════════════════════════════════════
   retire_docomo_sp_1 — docomo d払い退会ページ固有スタイル
══════════════════════════════════════════════════════ */

/* d払いブランドバナー */
.iq-docomo-banner{
  position     : relative;
  margin       : 0 0 20px;
  padding      : 18px 16px;
  border-radius: 10px;
  background   :
    radial-gradient(ellipse 80% 55% at 50% 20%, rgba(220,30,30,.18), transparent 65%),
    linear-gradient(155deg,#1e0508,#3a0a12,#1e0508);
  border       : 1px solid rgba(220,60,60,.38);
  text-align   : center;
  overflow     : hidden;
  box-shadow   : 0 6px 22px rgba(80,0,10,.3);
}
.iq-docomo-banner::before{
  content   : "";
  position  : absolute; top:0; left:0; right:0;
  height    : 2px;
  background: linear-gradient(90deg,transparent,rgba(220,60,60,.7) 30%,rgba(255,140,140,.9) 50%,rgba(220,60,60,.7) 70%,transparent);
}
.iq-docomo-brand{
  display        : inline-flex;
  align-items    : center;
  gap            : 8px;
  padding        : 5px 18px;
  border-radius  : 20px;
  background     : rgba(200,40,40,.2);
  border         : 1px solid rgba(220,80,80,.38);
  color          : rgba(255,190,190,.95);
  font-family    : var(--serif);
  font-size      : 13px;
  font-weight    : 900;
  letter-spacing : .04em;
  margin-bottom  : 6px;
}
.iq-docomo-brand::before{
  content        : "d";
  display        : inline-flex;
  align-items    : center;
  justify-content: center;
  width          : 22px;
  height         : 22px;
  border-radius  : 50%;
  background     : rgba(220,40,40,.55);
  font-size      : 13px;
  font-weight    : 900;
  color          : #fff;
  font-style     : italic;
}
.iq-docomo-banner p{
  font-size  : 12px;
  color      : rgba(240,160,160,.7);
  margin     : 4px 0 0;
  line-height: 1.6;
}

/* docomoコースカード */
.iq-docomo-wrap ul.course_list > li a{
  background   :
    linear-gradient(135deg,#1e0508,#3a0a12);
  border-color : rgba(220,60,60,.35);
  box-shadow   : 0 4px 0 rgba(80,0,10,.25);
}
.iq-docomo-wrap ul.course_list > li a[href="#"]{
  background   : rgba(40,10,15,.5);
  border-color : rgba(180,80,80,.2);
}
.iq-docomo-wrap ul.course_list span.b{
  color: rgba(255,200,200,.92);
}

/* キャリアタグ */
.iq-docomo-tag{
  display        : inline-flex;
  align-items    : center;
  gap            : 4px;
  padding        : 3px 10px;
  border-radius  : 20px;
  background     : rgba(200,40,40,.2);
  border         : 1px solid rgba(220,80,80,.32);
  color          : rgba(255,190,190,.9) !important;
  font-size      : 11px;
  font-weight    : 900;
  letter-spacing : .03em;
  margin-bottom  : 6px;
}

/* 無料・お試し注記 */
.iq-docomo-free-note{
  display        : block;
  font-size      : 11px;
  font-weight    : 700;
  color          : rgba(255,160,130,.9);
  margin-bottom  : 4px;
  line-height    : 1.6;
}
.iq-docomo-free-note font[color="red"]{
  color: rgba(255,120,100,.95) !important;
}

/* 料金テキスト（docomo） */
.iq-docomo-price{
  font-size    : 16px;
  font-weight  : 900;
  color        : rgba(255,210,210,.95) !important;
  letter-spacing:.02em;
}

/* 解約アクションバッジ */
.iq-docomo-action{
  display        : inline-flex;
  align-items    : center;
  gap            : 4px;
  padding        : 5px 14px;
  border-radius  : 20px;
  background     : rgba(200,40,40,.22);
  border         : 1px solid rgba(220,80,80,.35);
  color          : rgba(255,190,190,.92) !important;
  font-size      : 12px;
  font-weight    : 900;
  white-space    : nowrap;
  flex-shrink    : 0;
}
.iq-docomo-action::after{
  content  : "›";
  font-size: 16px;
}

/* 入会処理中バッジ（docomo） */
.iq-docomo-processing{
  display      : inline-flex;
  align-items  : center;
  gap          : 4px;
  padding      : 4px 10px;
  border-radius: 20px;
  background   : rgba(200,80,40,.15);
  border       : 1px solid rgba(200,80,40,.35);
  color        : rgba(255,160,130,.9) !important;
  font-size    : 11px;
  font-weight  : 900;
  white-space  : nowrap;
  flex-shrink  : 0;
}

/* 入会処理中リンク */
.iq-shori-link{
  display        : flex;
  justify-content: flex-end;
  margin-top     : 10px;
  margin-right   : 8px;
}
.iq-shori-link a{
  color          : var(--muted) !important;
  font-size      : 12px;
  text-decoration: none !important;
  border-bottom  : 1px dotted rgba(150,100,100,.5);
  padding-bottom : 1px;
}

/* ══════════════════════════════════════════════════════
   retire_auone_sp_1 — au かんたん決済退会ページ固有スタイル
══════════════════════════════════════════════════════ */

/* auブランドバナー */
.iq-au-banner{
  position     : relative;
  margin       : 0 0 20px;
  padding      : 18px 16px;
  border-radius: 10px;
  background   :
    radial-gradient(ellipse 80% 55% at 50% 20%, rgba(232,83,0,.22), transparent 65%),
    linear-gradient(155deg,#1a0a00,#2e1500,#3a1a00);
  border       : 1px solid rgba(232,140,0,.45);
  text-align   : center;
  overflow     : hidden;
  box-shadow   : 0 6px 22px rgba(80,30,0,.32);
}
.iq-au-banner::before{
  content   : "";
  position  : absolute; top:0; left:0; right:0;
  height    : 2px;
  background: linear-gradient(90deg,transparent,rgba(232,120,0,.8) 25%,rgba(255,200,80,.95) 50%,rgba(232,120,0,.8) 75%,transparent);
  animation : subGoldPulse 3.5s ease-in-out infinite;
}
.iq-au-brand{
  display        : inline-flex;
  align-items    : center;
  gap            : 8px;
  padding        : 5px 18px;
  border-radius  : 20px;
  background     : rgba(232,100,0,.22);
  border         : 1px solid rgba(232,140,0,.4);
  color          : rgba(255,210,140,.95);
  font-family    : var(--serif);
  font-size      : 13px;
  font-weight    : 900;
  letter-spacing : .04em;
  margin-bottom  : 6px;
}
.iq-au-brand::before{
  content        : "au";
  display        : inline-flex;
  align-items    : center;
  justify-content: center;
  width          : 26px;
  height         : 22px;
  border-radius  : 6px;
  background     : linear-gradient(135deg,#e85300,#f59e0b);
  font-size      : 10px;
  font-weight    : 900;
  color          : #fff;
  letter-spacing : .05em;
}
.iq-au-banner p{
  font-size  : 12px;
  color      : rgba(255,190,110,.7);
  margin     : 4px 0 0;
  line-height: 1.6;
}

/* auコースカード */
.iq-au-wrap ul.course_list > li a{
  background   :
    linear-gradient(135deg,#1a0a00,#2e1500);
  border-color : rgba(232,130,0,.38);
  box-shadow   : 0 4px 0 rgba(80,30,0,.25);
}
.iq-au-wrap ul.course_list > li a[href="#"]{
  background   : rgba(40,20,0,.5);
  border-color : rgba(180,100,0,.2);
}
.iq-au-wrap ul.course_list span.b{
  color: rgba(255,225,175,.92);
}

/* キャリアタグ */
.iq-au-tag{
  display        : inline-flex;
  align-items    : center;
  gap            : 4px;
  padding        : 3px 10px;
  border-radius  : 20px;
  background     : rgba(232,100,0,.2);
  border         : 1px solid rgba(232,140,0,.35);
  color          : rgba(255,210,140,.9) !important;
  font-size      : 11px;
  font-weight    : 900;
  letter-spacing : .03em;
  margin-bottom  : 6px;
}

/* 料金テキスト */
.iq-au-price{
  font-size    : 16px;
  font-weight  : 900;
  color        : var(--gold-light) !important;
  letter-spacing:.02em;
}

/* 解約アクションバッジ */
.iq-au-action{
  display        : inline-flex;
  align-items    : center;
  gap            : 4px;
  padding        : 5px 14px;
  border-radius  : 20px;
  background     : rgba(232,100,0,.22);
  border         : 1px solid rgba(232,140,0,.38);
  color          : rgba(255,210,140,.92) !important;
  font-size      : 12px;
  font-weight    : 900;
  white-space    : nowrap;
  flex-shrink    : 0;
}
.iq-au-action::after{
  content  : "›";
  font-size: 16px;
}

/* 入会処理中バッジ */
.iq-au-processing{
  display      : inline-flex;
  align-items  : center;
  gap          : 4px;
  padding      : 4px 10px;
  border-radius: 20px;
  background   : rgba(200,80,20,.15);
  border       : 1px solid rgba(200,100,20,.35);
  color        : rgba(255,180,100,.9) !important;
  font-size    : 11px;
  font-weight  : 900;
  white-space  : nowrap;
  flex-shrink  : 0;
}

/* ══════════════════════════════════════════════════════
   regist_sp_1 — 会員登録（コース選択）ページ固有スタイル
══════════════════════════════════════════════════════ */

/* 利用規約・課金日 注記 */
.iq-regist-notice{
  margin      : 0 0 16px;
  padding     : 12px 14px;
  border-radius:8px;
  background  : var(--cream);
  border-left : 4px solid var(--gold);
  font-size   : 12px;
  line-height : 1.85;
  color       : var(--red-dark);
}
.iq-regist-notice a{
  color          : var(--red-dark) !important;
  font-weight    : 700;
  text-decoration: underline !important;
  text-underline-offset:2px;
}
.iq-regist-notice font{
  display    : block;
  margin-top : 4px;
  font-size  : 12px;
  font-weight: 700;
  color      : #c04020 !important;
}

/* 決済画像 */
.iq-regist-payment{
  text-align : center;
  margin     : 0 0 16px;
  padding    : 12px;
  background : var(--cream);
  border-radius:8px;
  border     : 1px solid rgba(190,140,60,.25);
}

/* セクション見出し（h2.title_3） */
h2.title_3{
  position     : relative;
  margin       : 18px 0 10px;
  padding      : 12px 16px 12px 14px;
  border-radius: 6px;
  background   :
    radial-gradient(ellipse 100% 100% at 0% 50%, rgba(240,195,62,.2), transparent 60%),
    linear-gradient(135deg,#3a0910,#5e0d1a);
  border-left  : 4px solid var(--gold);
  color        : #fff;
  font-family  : var(--serif);
  font-size    : 14px;
  font-weight  : 900;
  letter-spacing:.04em;
  overflow     : hidden;
}
h2.title_3::after{
  content   : "";
  position  : absolute; top:0; left:0; right:0;
  height    : 2px;
  background: linear-gradient(90deg,var(--gold),rgba(240,195,62,.4) 50%,transparent);
}

/* コース登録リスト */
ul.link.iq-regist-list{
  list-style : none;
  padding    : 0;
  margin     : 0 0 16px;
  display    : flex;
  flex-direction:column;
  gap        : 10px;
}
ul.link.iq-regist-list > li.arrow.list_3_2 a{
  display        : flex;
  align-items    : center;
  justify-content: space-between;
  gap            : 12px;
  padding        : 16px;
  border-radius  : 10px;
  background     :
    radial-gradient(ellipse 90% 70% at 0% 50%, rgba(240,195,62,.12), transparent 55%),
    linear-gradient(135deg,#1e0306,#3a0910 50%,#5e0d1a);
  border         : 1px solid rgba(212,173,85,.42);
  text-decoration: none !important;
  box-shadow     : 0 5px 0 rgba(51,2,10,.28), 0 8px 18px rgba(51,2,10,.15);
  transition     : transform .12s, box-shadow .12s;
}
ul.link.iq-regist-list > li.arrow.list_3_2 a:active{
  transform  : translateY(4px);
  box-shadow : 0 1px 0 rgba(51,2,10,.28);
}
ul.link.iq-regist-list > li.arrow.list_3_2 a[href="#"]{
  background   : rgba(30,10,10,.55);
  border-color : rgba(190,140,60,.2);
  box-shadow   : none;
  cursor       : not-allowed;
  opacity      : .75;
}

/* コース内テキスト */
ul.link.iq-regist-list span.b{
  display     : block;
  flex        : 1;
  font-family : var(--serif);
  font-size   : 14px;
  font-weight : 900;
  color       : rgba(255,225,170,.95);
  line-height : 1.7;
}
ul.link.iq-regist-list span.b small{
  display    : block;
  font-size  : 12px;
  font-weight: 700;
  color      : rgba(240,195,62,.8);
  margin-top : 3px;
}

/* 登録アクションバッジ（ゴールド） */
.iq-regist-btn{
  display        : inline-flex;
  align-items    : center;
  gap            : 4px;
  padding        : 7px 16px;
  border-radius  : 20px;
  background     : linear-gradient(135deg,var(--gold),#c9960a);
  color          : #3a0508 !important;
  font-size      : 12px;
  font-weight    : 900;
  white-space    : nowrap;
  flex-shrink    : 0;
  box-shadow     : 0 3px 0 rgba(100,60,0,.3);
  letter-spacing : .03em;
}
.iq-regist-btn::after{
  content  : "›";
  font-size: 16px;
}

/* 登録済みバッジ */
.iq-registered-badge{
  display      : inline-flex;
  align-items  : center;
  gap          : 4px;
  padding      : 4px 10px;
  border-radius: 20px;
  background   : rgba(212,173,85,.15);
  border       : 1px solid rgba(212,173,85,.3);
  color        : rgba(240,195,62,.85) !important;
  font-size    : 11px;
  font-weight  : 900;
  white-space  : nowrap;
  flex-shrink  : 0;
}

/* au情報セクション */
#user ul.link.iq-regist-list > li.arrow.list_3_2 a{
  background   : rgba(30,10,10,.4);
  border-color : rgba(190,140,60,.25);
  box-shadow   : none;
}

/* ══════════════════════════════════════════════════════
   regist_ok_sp_1 — 会員登録完了ページ固有スタイル
══════════════════════════════════════════════════════ */

/* 登録完了：歓迎カード */
.iq-welcome-card{
  position     : relative;
  margin       : 0 0 20px;
  padding      : 26px 20px 22px;
  border-radius: 14px;
  background   :
    radial-gradient(ellipse 90% 60% at 50% 10%, rgba(240,195,62,.22), transparent 60%),
    linear-gradient(145deg,#1a0205,#3a0910 55%,#5e0d1a);
  border       : 1px solid rgba(212,173,85,.45);
  box-shadow   : 0 8px 28px rgba(51,2,10,.3);
  text-align   : center;
  overflow     : hidden;
}
.iq-welcome-card::before{
  content   : "";
  position  : absolute; top:0; left:0; right:0;
  height    : 3px;
  background: linear-gradient(90deg,transparent,var(--gold),#f9e58b,var(--gold),transparent);
  animation : subGoldPulse 3s ease-in-out infinite;
}
.iq-welcome-card-icon{
  display     : block;
  font-size   : 46px;
  line-height : 1;
  margin-bottom: 14px;
  filter      : drop-shadow(0 0 8px rgba(240,195,62,.55));
}
.iq-welcome-card-title{
  display      : block;
  font-family  : var(--serif);
  font-size    : 18px;
  font-weight  : 900;
  color        : var(--gold);
  letter-spacing: .1em;
  margin-bottom : 10px;
  text-shadow  : 0 0 14px rgba(240,195,62,.4);
}
.iq-welcome-card-body{
  font-size   : 14px;
  line-height : 1.85;
  color       : rgba(255,225,170,.9);
}
.iq-welcome-card-body b{
  color      : rgba(255,235,185,1);
  font-weight: 700;
}

/* ログイン情報パネル */
.iq-login-info{
  margin       : 0 0 20px;
  padding      : 18px 16px;
  border-radius: 10px;
  background   :
    radial-gradient(ellipse 80% 50% at 50% 0%, rgba(240,195,62,.1), transparent 60%),
    rgba(20,3,6,.65);
  border       : 1px solid rgba(212,173,85,.35);
  backdrop-filter: blur(4px);
}
.iq-login-info-label{
  display      : flex;
  align-items  : center;
  gap          : 6px;
  font-family  : var(--serif);
  font-size    : 12px;
  font-weight  : 900;
  color        : var(--gold);
  letter-spacing: .1em;
  text-transform: uppercase;
  margin-bottom: 12px;
  padding-bottom: 8px;
  border-bottom : 1px solid rgba(212,173,85,.25);
}
.iq-login-info-label::before{
  content     : "🔑";
  font-size   : 15px;
}
.iq-login-info-note{
  font-size  : 12px;
  line-height: 1.75;
  color      : rgba(255,200,150,.8);
  margin-bottom: 14px;
}
.iq-login-info-table{
  width       : 100%;
  border-collapse: collapse;
}
.iq-login-info-table tr + tr td{
  border-top: 1px solid rgba(212,173,85,.15);
}
.iq-login-info-table td{
  padding   : 9px 8px;
  font-size : 13px;
  line-height:1.5;
}
.iq-login-info-table td:first-child{
  width      : 38%;
  color      : rgba(240,195,62,.85);
  font-weight: 700;
  font-size  : 12px;
  white-space: nowrap;
}
.iq-login-info-table td:last-child{
  color         : rgba(255,235,185,.95);
  font-family   : monospace;
  font-size     : 14px;
  font-weight   : 700;
  word-break    : break-all;
  letter-spacing: .03em;
}

/* ══════════════════════════════════════════════════════
   regist_docomo_sp_1 — docomo登録（1コース）カード
══════════════════════════════════════════════════════ */

/* 1コース時ラッパー */
.iq-docomo-single-card{
  margin       : 0 0 20px;
  border-radius: 12px;
  overflow     : hidden;
  background   : rgba(20,3,6,.6);
  border       : 1px solid rgba(180,60,80,.35);
}

/* キャンペーン画像 */
.iq-docomo-single-card .iq-doc-campaign-img{
  display   : block;
  width     : 100%;
  line-height: 0;
}
.iq-docomo-single-card .iq-doc-campaign-img img{
  width  : 100%;
  display: block;
}

/* キャンペーン注釈 */
.iq-docomo-single-card .iq-doc-campaign-note{
  padding    : 10px 14px;
  font-size  : 11px;
  line-height: 1.75;
  color      : rgba(255,200,170,.8);
  border-top : 1px solid rgba(180,60,80,.2);
}

/* 通常コース説明 */
.iq-docomo-single-card .iq-doc-desc{
  padding   : 14px 16px 6px;
  font-size : 13px;
  line-height:1.8;
  color     : rgba(255,220,180,.9);
}

/* ロゴ＋ボタン エリア */
.iq-docomo-single-card .iq-doc-btn-area{
  display        : flex;
  flex-direction : column;
  align-items    : center;
  gap            : 14px;
  padding        : 18px 16px 20px;
}
.iq-docomo-single-card .iq-doc-btn-area img{
  height: auto;
  max-width: 130px;
}

/* 登録ボタン（input） */
.iq-docomo-single-card .iq-doc-btn-area a input[type="button"],
.iq-docomo-single-card .iq-doc-btn-area input[type="button"]{
  appearance   : none;
  display      : block;
  min-width    : 180px;
  padding      : 14px 28px;
  border-radius: 40px;
  border       : none;
  background   : linear-gradient(135deg,var(--gold),#c9960a);
  color        : #3a0508;
  font-size    : 18px;
  font-weight  : 900;
  letter-spacing:.08em;
  cursor       : pointer;
  box-shadow   : 0 5px 0 rgba(100,60,0,.3), 0 8px 20px rgba(180,60,80,.2);
  transition   : transform .1s, box-shadow .1s;
}
.iq-docomo-single-card .iq-doc-btn-area a:active input[type="button"]{
  transform  : translateY(4px);
  box-shadow : 0 1px 0 rgba(100,60,0,.3);
}
.iq-docomo-single-card .iq-doc-btn-area input[type="button"][disabled]{
  background : rgba(80,50,55,.5);
  color      : rgba(200,180,180,.6);
  box-shadow : none;
  cursor     : not-allowed;
}

/* 注意事項フッター */
.iq-docomo-single-card .iq-doc-fine-print{
  padding    : 10px 14px 14px;
  font-size  : 11px;
  line-height: 1.8;
  color      : rgba(220,180,180,.7);
  border-top : 1px solid rgba(180,60,80,.2);
}
.iq-docomo-single-card .iq-doc-fine-print a{
  color          : rgba(240,195,62,.8) !important;
  text-decoration: underline !important;
  text-underline-offset:2px;
}

/* 都度課金セクション */
.iq-docomo-spot-wrap{
  margin-top: 8px;
}

/* ══════════════════════════════════════════════════════
   regist_auone_sp_1 — au登録（1コース）カード
   ※.iq-docomo-single-cardと同構造、auオレンジ配色
══════════════════════════════════════════════════════ */

.iq-au-single-card{
  margin       : 0 0 20px;
  border-radius: 12px;
  overflow     : hidden;
  background   : rgba(20,8,3,.6);
  border       : 1px solid rgba(220,120,20,.35);
}
.iq-au-single-card .iq-doc-campaign-img{
  display   : block;
  width     : 100%;
  line-height: 0;
}
.iq-au-single-card .iq-doc-campaign-img img{
  width  : 100%;
  display: block;
}
.iq-au-single-card .iq-doc-campaign-note{
  padding    : 10px 14px;
  font-size  : 11px;
  line-height: 1.75;
  color      : rgba(255,215,170,.8);
  border-top : 1px solid rgba(220,120,20,.2);
}
.iq-au-single-card .iq-doc-desc{
  padding   : 14px 16px 6px;
  font-size : 13px;
  line-height:1.8;
  color     : rgba(255,225,185,.9);
}
.iq-au-single-card .iq-doc-btn-area{
  display        : flex;
  flex-direction : column;
  align-items    : center;
  gap            : 14px;
  padding        : 18px 16px 20px;
}
.iq-au-single-card .iq-doc-btn-area img{
  height: auto;
  max-width: 130px;
}
.iq-au-single-card .iq-doc-btn-area a input[type="button"],
.iq-au-single-card .iq-doc-btn-area input[type="button"]{
  appearance   : none;
  display      : block;
  min-width    : 180px;
  padding      : 14px 28px;
  border-radius: 40px;
  border       : none;
  background   : linear-gradient(135deg,#f08000,#c96000);
  color        : #fff;
  font-size    : 18px;
  font-weight  : 900;
  letter-spacing:.08em;
  cursor       : pointer;
  box-shadow   : 0 5px 0 rgba(100,40,0,.35), 0 8px 20px rgba(200,80,0,.2);
  transition   : transform .1s, box-shadow .1s;
}
.iq-au-single-card .iq-doc-btn-area a:active input[type="button"]{
  transform  : translateY(4px);
  box-shadow : 0 1px 0 rgba(100,40,0,.35);
}
.iq-au-single-card .iq-doc-btn-area input[type="button"][disabled]{
  background : rgba(80,55,30,.5);
  color      : rgba(200,180,150,.6);
  box-shadow : none;
  cursor     : not-allowed;
}
.iq-au-single-card .iq-doc-fine-print{
  padding    : 10px 14px 14px;
  font-size  : 11px;
  line-height: 1.8;
  color      : rgba(220,190,160,.7);
  border-top : 1px solid rgba(220,120,20,.2);
}
.iq-au-single-card .iq-doc-fine-print a{
  color          : rgba(240,195,62,.8) !important;
  text-decoration: underline !important;
  text-underline-offset:2px;
}

/* ══════════════════════════════════════════════════════
   regist_docomo_sp_1 (リニューアル) — iq-dc-rg-* 専用スタイル
══════════════════════════════════════════════════════ */

@keyframes iq-hero-pulse {
  0%,100% { box-shadow:0 0 20px rgba(212,173,85,.2), 0 8px 28px rgba(51,2,10,.35); }
  50%      { box-shadow:0 0 42px rgba(212,173,85,.55), 0 8px 28px rgba(51,2,10,.35); }
}
@keyframes iq-ribbon-shine {
  0%   { background-position:200% center; }
  100% { background-position:-200% center; }
}
@keyframes iq-hero-free-bounce {
  0%,100% { transform:translateY(0) scale(1); }
  50%      { transform:translateY(-6px) scale(1.07); }
}
@keyframes iq-hero-spark {
  0%,100% { opacity:.2; transform:scale(.7) rotate(-15deg); }
  50%      { opacity:1;  transform:scale(1.3) rotate(15deg); }
}

/* キャリアロゴエリア */
.iq-dc-rg-carrier-wrap{
  text-align   : center;
  padding      : 14px 0 10px;
  margin-bottom: 12px;
}

/* ─── シングルコース：キャンペーンバナー ─── */
.iq-dc-rg-hero{
  position     : relative;
  margin       : 0 0 18px;
  padding      : 28px 16px 24px;
  border-radius: 14px;
  background   :
    radial-gradient(ellipse 110% 60% at 50% 0%, rgba(240,195,62,.22), transparent 55%),
    linear-gradient(145deg,#1a0204,#3a0910 60%,#5e0d1a);
  border       : 1px solid rgba(212,173,85,.5);
  text-align   : center;
  overflow     : hidden;
  animation    : iq-hero-pulse 2.4s ease-in-out infinite;
}
.iq-dc-rg-hero::before{
  content  :"";
  position :absolute; top:0; left:0; right:0;
  height   :3px;
  background:linear-gradient(90deg,transparent,var(--gold),#f9e58b,var(--gold),transparent);
}
.iq-dc-rg-hero::after{
  content  :"";
  position :absolute; bottom:0; left:0; right:0;
  height   :1px;
  background:linear-gradient(90deg,transparent,rgba(212,173,85,.35),transparent);
}

/* リボン */
.iq-dc-rg-ribbon{
  display      : inline-block;
  padding      : 3px 20px;
  border-radius: 20px;
  background   : linear-gradient(90deg,#FFD700 0%,#fff8c0 45%,#FFD700 55%,#FFD700 100%);
  background-size:200% auto;
  animation    : iq-ribbon-shine 2s linear infinite;
  color        : #3a0508;
  font-size    : 11px;
  font-weight  : 900;
  letter-spacing:.18em;
  margin-bottom: 12px;
  box-shadow   : 0 2px 10px rgba(240,195,62,.45);
}

/* キャンペーン種別ラベル */
.iq-dc-rg-hero-kind{
  display      : block;
  font-size    : 12px;
  font-weight  : 700;
  color        : rgba(255,215,160,.85);
  letter-spacing:.1em;
  margin-bottom: 8px;
}

/* "無料！" 大テキスト */
.iq-dc-rg-hero-free{
  display      : block;
  font-family  : var(--serif);
  font-size    : 26px;
  font-weight  : 900;
  color        : #fff;
  letter-spacing:.04em;
  margin-bottom: 10px;
  text-shadow  : 0 0 18px rgba(240,195,62,.55);
}
.iq-dc-rg-hero-free em{
  font-style   : normal;
  color        : var(--gold);
  font-size    : 36px;
  display      : inline-block;
  text-shadow  : 0 0 24px rgba(240,195,62,.9);
  animation    : iq-hero-free-bounce 1.6s ease-in-out infinite;
}

/* 価格比較ノート */
.iq-dc-rg-hero-note{
  display    : inline-block;
  font-size  : 13px;
  color      : rgba(255,220,180,.9);
  padding    : 6px 16px;
  border-radius:20px;
  background : rgba(0,0,0,.32);
  border     : 1px solid rgba(212,173,85,.3);
}
.iq-dc-rg-hero-note s{ opacity:.55; margin-right:4px; }
.iq-dc-rg-hero-note b{ color:var(--gold); font-weight:900; }

/* 登録ボタンラップ */
.iq-dc-rg-btn-wrap{
  text-align : center;
  margin     : 0 0 16px;
}
a.iq-dc-rg-btn,
.iq-dc-rg-btn{
  display        : inline-block;
  padding        : 15px 44px;
  border-radius  : 40px;
  background     : linear-gradient(135deg,var(--gold),#c9960a);
  color          : #3a0508 !important;
  font-family    : var(--serif);
  font-size      : 16px;
  font-weight    : 900;
  letter-spacing : .08em;
  text-decoration: none !important;
  box-shadow     : 0 6px 0 rgba(100,60,0,.3), 0 10px 24px rgba(51,2,10,.25);
  transition     : transform .1s, box-shadow .1s;
}
a.iq-dc-rg-btn:active{ transform:translateY(5px); box-shadow:0 1px 0 rgba(100,60,0,.3); }
.iq-dc-rg-btn--registered{
  background : rgba(60,30,30,.55);
  color      : rgba(190,165,165,.65) !important;
  box-shadow : none;
  cursor     : not-allowed;
}

/* サイト説明 */
.iq-dc-rg-desc-text{
  margin    : 0 0 10px;
  padding   : 12px 14px;
  border-radius:8px;
  background: rgba(20,3,6,.5);
  border    : 1px solid rgba(212,173,85,.2);
  font-size : 13px;
  line-height:1.75;
  color     : rgba(255,220,180,.85);
}

/* 無料説明注記 */
.iq-dc-rg-desc-note{
  margin    : 0 0 12px;
  padding   : 10px 13px;
  border-radius:7px;
  background: rgba(30,5,5,.5);
  border-left:3px solid rgba(212,173,85,.35);
  font-size : 11px;
  line-height:1.8;
  color     : rgba(220,190,160,.75);
}

/* 詳細情報フレーム */
.iq-dc-rg-info-frame{
  margin    : 0 0 16px;
  padding   : 12px 14px;
  border-radius:10px;
  background: rgba(15,2,4,.6);
  border    : 1px solid rgba(180,60,60,.22);
  font-size : 12px;
  line-height:1.8;
  color     : rgba(220,180,180,.75);
}
.iq-dc-rg-info-frame a{ color:rgba(240,195,62,.85) !important; text-decoration:underline !important; }
.iq-dc-rg-info-notice{
  margin    : 8px 0;
  padding   : 8px 10px;
  border-radius:6px;
  background: rgba(180,30,30,.1);
  border-left:3px solid rgba(180,60,60,.38);
  font-size : 11px;
  color     : rgba(255,190,180,.8);
}
.iq-dc-rg-trial-note{
  margin  : 6px 0 0;
  font-size:10px;
  color   : rgba(200,170,170,.6);
  line-height:1.75;
}
.iq-dc-rg-meta{
  font-size  : 10px;
  color      : rgba(200,170,170,.18);
  text-align : center;
  margin-bottom:4px;
}

/* ─── マルチコース ─── */

/* 注意バー */
.iq-dc-rg-notice-bar{
  margin    : 0 0 14px;
  padding   : 10px 14px;
  border-radius:8px;
  background: var(--cream);
  border-left:4px solid var(--gold);
  font-size : 12px;
  line-height:1.85;
  color     : var(--red-dark);
  display   : flex;
  flex-direction:column;
  gap       : 4px;
}
.iq-dc-rg-notice-bar a{ color:var(--red-dark) !important; font-weight:700; text-decoration:underline !important; }
.iq-dc-rg-billing-badge{
  display     : inline-block;
  padding     : 2px 8px;
  border-radius:4px;
  background  : rgba(192,64,32,.13);
  color       : #c04020;
  font-size   : 11px;
  font-weight : 700;
}

/* セクションタイトル */
.iq-dc-rg-section-title{
  margin    : 0 0 12px;
  display   : flex;
  align-items:center;
  gap       : 10px;
}
.iq-dc-rg-section-title-text{
  padding      : 10px 16px 10px 14px;
  border-radius: 6px;
  background   :
    radial-gradient(ellipse 100% 100% at 0% 50%, rgba(240,195,62,.2), transparent 60%),
    linear-gradient(135deg,#3a0910,#5e0d1a);
  border-left  : 4px solid var(--gold);
  color        : #fff;
  font-family  : var(--serif);
  font-size    : 13px;
  font-weight  : 900;
  letter-spacing:.06em;
  white-space  : nowrap;
}
.iq-dc-rg-section-title-line{
  flex      : 1;
  height    : 2px;
  background: linear-gradient(90deg,rgba(212,173,85,.4),transparent);
  border-radius:1px;
}

/* コースリスト */
.iq-dc-rg-course-list{
  list-style:none;
  padding:0;
  margin:0 0 16px;
  display:flex;
  flex-direction:column;
  gap:12px;
}

/* コースカード */
.iq-dc-rg-course-card{
  display       : block;
  border-radius : 12px;
  overflow      : hidden;
  border        : 1px solid rgba(212,173,85,.38);
  background    :
    radial-gradient(ellipse 80% 50% at 0% 0%, rgba(240,195,62,.1), transparent 50%),
    linear-gradient(145deg,#1a0204,#3a0910 70%);
  box-shadow    : 0 6px 0 rgba(51,2,10,.28), 0 10px 22px rgba(51,2,10,.15);
  text-decoration:none !important;
  transition    : transform .1s, box-shadow .1s;
  position      : relative;
}
.iq-dc-rg-course-card:not(.iq-dc-rg-course-card--registered):active{
  transform : translateY(5px);
  box-shadow: 0 1px 0 rgba(51,2,10,.28);
}
.iq-dc-rg-course-card--registered{
  background  : rgba(25,8,8,.55);
  border-color: rgba(180,140,140,.18);
  box-shadow  : none;
  cursor      : not-allowed;
  opacity     : .68;
}
.iq-dc-rg-course-card-head{
  display        : flex;
  align-items    : center;
  justify-content: space-between;
  padding        : 14px 16px 10px;
  border-bottom  : 1px solid rgba(212,173,85,.18);
}
.iq-dc-rg-course-point-label{
  font-size    : 11px;
  font-weight  : 700;
  color        : rgba(240,195,62,.7);
  letter-spacing:.06em;
  margin-bottom: 3px;
}
.iq-dc-rg-course-point{
  font-family: var(--serif);
  font-size  : 22px;
  font-weight: 900;
  color      : rgba(255,235,185,.95);
  line-height: 1;
}
.iq-dc-rg-course-point span{
  font-size  : 13px;
  font-weight: 700;
  color      : rgba(255,215,160,.7);
  margin-left: 3px;
}
.iq-dc-rg-course-arrow{
  width          : 34px;
  height         : 34px;
  border-radius  : 50%;
  background     : linear-gradient(135deg,var(--gold),#c9960a);
  color          : #3a0508;
  font-size      : 20px;
  font-weight    : 900;
  display        : flex;
  align-items    : center;
  justify-content: center;
  flex-shrink    : 0;
}
.iq-dc-rg-course-card-body{
  padding    : 10px 16px;
  background : rgba(0,0,0,.15);
  font-size  : 13px;
  line-height: 1.7;
}
.iq-dc-rg-price-free{
  display     : inline-block;
  color       : var(--gold);
  font-weight : 900;
  font-size   : 15px;
  margin-bottom:1px;
}
.iq-dc-rg-price-main{
  font-size  : 15px;
  font-weight: 700;
  color      : rgba(255,225,170,.9);
}
.iq-dc-rg-price-sub{
  font-size  : 12px;
  color      : rgba(240,195,62,.75);
}
.iq-dc-rg-course-card-action{
  padding    : 11px 16px;
  background : linear-gradient(90deg,rgba(160,25,25,.75),rgba(90,8,8,.92));
  color      : rgba(255,220,200,.9);
  font-size  : 13px;
  font-weight: 700;
  letter-spacing:.04em;
  text-align : center;
  border-top : 1px solid rgba(212,173,85,.15);
}
.iq-dc-rg-registered-badge{
  position     : absolute;
  top          : 10px;
  right        : 10px;
  padding      : 3px 10px;
  border-radius: 20px;
  background   : rgba(212,173,85,.18);
  border       : 1px solid rgba(212,173,85,.32);
  color        : rgba(240,195,62,.8);
  font-size    : 11px;
  font-weight  : 900;
}

/* サービス情報カード */
.iq-dc-rg-service-card{
  margin    : 0 0 20px;
  border-radius:10px;
  overflow  : hidden;
  border    : 1px solid rgba(212,173,85,.25);
}
.iq-dc-rg-service-card-head{
  padding    : 9px 14px;
  background : rgba(20,3,6,.7);
  font-family: var(--serif);
  font-size  : 12px;
  font-weight: 700;
  color      : rgba(240,195,62,.8);
  letter-spacing:.06em;
  border-bottom:1px solid rgba(212,173,85,.2);
}
a.iq-dc-rg-service-link{
  display        : block;
  padding        : 13px 16px;
  background     : rgba(15,2,4,.55);
  color          : rgba(255,220,180,.9) !important;
  font-size      : 13px;
  text-decoration: none !important;
  transition     : background .15s;
}
a.iq-dc-rg-service-link::after{
  content    : " ›";
  color      : var(--gold);
  font-size  : 16px;
  font-weight: 700;
}
a.iq-dc-rg-service-link:active{ background:rgba(40,5,8,.75); }

/* ══════════════════════════════════════════════════════
   regist_auone_sp_1 (リニューアル) — iq-au-rg-* 専用スタイル
   ※ アニメーションは iq-hero-pulse / iq-ribbon-shine 等を共用
══════════════════════════════════════════════════════ */

@keyframes iq-au-hero-pulse {
  0%,100% { box-shadow:0 0 20px rgba(240,140,20,.2), 0 8px 28px rgba(40,12,0,.35); }
  50%      { box-shadow:0 0 42px rgba(240,140,20,.55), 0 8px 28px rgba(40,12,0,.35); }
}

/* キャリアロゴエリア */
.iq-au-rg-carrier-wrap{
  text-align   : center;
  padding      : 14px 0 10px;
  margin-bottom: 12px;
}

/* ─── シングルコース：キャンペーンバナー ─── */
.iq-au-rg-hero{
  position     : relative;
  margin       : 0 0 18px;
  padding      : 28px 16px 24px;
  border-radius: 14px;
  background   :
    radial-gradient(ellipse 110% 60% at 50% 0%, rgba(240,140,20,.25), transparent 55%),
    linear-gradient(145deg,#1a0600,#3a1200 60%,#6b2800);
  border       : 1px solid rgba(240,140,20,.5);
  text-align   : center;
  overflow     : hidden;
  animation    : iq-au-hero-pulse 2.4s ease-in-out infinite;
}
.iq-au-rg-hero::before{
  content  :"";
  position :absolute; top:0; left:0; right:0;
  height   :3px;
  background:linear-gradient(90deg,transparent,#f08000,#FFD700,#f08000,transparent);
}
.iq-au-rg-hero::after{
  content  :"";
  position :absolute; bottom:0; left:0; right:0;
  height   :1px;
  background:linear-gradient(90deg,transparent,rgba(240,140,20,.35),transparent);
}

/* リボン */
.iq-au-rg-ribbon{
  display      : inline-block;
  padding      : 3px 20px;
  border-radius: 20px;
  background   : linear-gradient(90deg,#FFD700 0%,#fff8c0 45%,#FFD700 55%,#FFD700 100%);
  background-size:200% auto;
  animation    : iq-ribbon-shine 2s linear infinite;
  color        : #3a1500;
  font-size    : 11px;
  font-weight  : 900;
  letter-spacing:.18em;
  margin-bottom: 12px;
  box-shadow   : 0 2px 10px rgba(240,160,0,.45);
}

/* キャンペーン種別ラベル */
.iq-au-rg-hero-kind{
  display      : block;
  font-size    : 12px;
  font-weight  : 700;
  color        : rgba(255,215,160,.85);
  letter-spacing:.1em;
  margin-bottom: 8px;
}

/* "無料！" 大テキスト */
.iq-au-rg-hero-free{
  display      : block;
  font-family  : var(--serif);
  font-size    : 26px;
  font-weight  : 900;
  color        : #fff;
  letter-spacing:.04em;
  margin-bottom: 10px;
  text-shadow  : 0 0 18px rgba(240,140,20,.6);
}
.iq-au-rg-hero-free em{
  font-style   : normal;
  color        : #FFD700;
  font-size    : 36px;
  display      : inline-block;
  text-shadow  : 0 0 24px rgba(240,160,0,.9);
  animation    : iq-hero-free-bounce 1.6s ease-in-out infinite;
}

/* 価格比較ノート */
.iq-au-rg-hero-note{
  display    : inline-block;
  font-size  : 13px;
  color      : rgba(255,220,180,.9);
  padding    : 6px 16px;
  border-radius:20px;
  background : rgba(0,0,0,.32);
  border     : 1px solid rgba(240,140,20,.3);
}
.iq-au-rg-hero-note s{ opacity:.55; margin-right:4px; }
.iq-au-rg-hero-note b{ color:#FFD700; font-weight:900; }

/* 詳細情報フレーム */
.iq-au-rg-info-frame{
  margin    : 0 0 16px;
  padding   : 12px 14px;
  border-radius:10px;
  background: rgba(15,5,0,.6);
  border    : 1px solid rgba(220,100,20,.22);
  font-size : 12px;
  line-height:1.8;
  color     : rgba(220,190,160,.75);
}
.iq-au-rg-info-frame a{ color:rgba(240,195,62,.85) !important; text-decoration:underline !important; }
.iq-au-rg-info-notice{
  margin    : 8px 0 0;
  padding   : 8px 10px;
  border-radius:6px;
  background: rgba(200,90,10,.1);
  border-left:3px solid rgba(220,100,20,.38);
  font-size : 11px;
  color     : rgba(255,200,160,.8);
}
.iq-au-rg-trial-note{
  display  : block;
  margin   : 6px 0 0;
  font-size:10px;
  color    : rgba(200,175,155,.6);
  line-height:1.75;
}

/* サイト説明 */
.iq-au-rg-desc-text{
  margin    : 0 0 10px;
  padding   : 12px 14px;
  border-radius:8px;
  background: rgba(20,6,0,.5);
  border    : 1px solid rgba(240,140,20,.2);
  font-size : 13px;
  line-height:1.75;
  color     : rgba(255,220,180,.85);
}

/* 登録ボタンラップ */
.iq-au-rg-btn-wrap{
  text-align : center;
  margin     : 0 0 16px;
}
a.iq-au-rg-btn,
.iq-au-rg-btn{
  display        : inline-block;
  padding        : 15px 44px;
  border-radius  : 40px;
  background     : linear-gradient(135deg,#f08000,#c96000);
  color          : #fff !important;
  font-family    : var(--serif);
  font-size      : 16px;
  font-weight    : 900;
  letter-spacing : .08em;
  text-decoration: none !important;
  box-shadow     : 0 6px 0 rgba(100,40,0,.35), 0 10px 24px rgba(40,12,0,.28);
  transition     : transform .1s, box-shadow .1s;
}
a.iq-au-rg-btn:active{ transform:translateY(5px); box-shadow:0 1px 0 rgba(100,40,0,.35); }
.iq-au-rg-btn--registered{
  background : rgba(60,35,10,.55);
  color      : rgba(190,165,145,.65) !important;
  box-shadow : none;
  cursor     : not-allowed;
}

/* 注意バー */
.iq-au-rg-notice-bar{
  margin    : 0 0 14px;
  padding   : 10px 14px;
  border-radius:8px;
  background: var(--cream);
  border-left:4px solid #f08000;
  font-size : 12px;
  line-height:1.85;
  color     : var(--red-dark);
  display   : flex;
  flex-direction:column;
  gap       : 4px;
}
.iq-au-rg-notice-bar a{ color:var(--red-dark) !important; font-weight:700; text-decoration:underline !important; }
.iq-au-rg-billing-badge{
  display     : inline-block;
  padding     : 2px 8px;
  border-radius:4px;
  background  : rgba(200,80,0,.12);
  color       : #c05010;
  font-size   : 11px;
  font-weight : 700;
}

/* セクションタイトル */
.iq-au-rg-section-title{
  margin    : 0 0 12px;
  display   : flex;
  align-items:center;
  gap       : 10px;
}
.iq-au-rg-section-title-text{
  padding      : 10px 16px 10px 14px;
  border-radius: 6px;
  background   :
    radial-gradient(ellipse 100% 100% at 0% 50%, rgba(240,140,20,.22), transparent 60%),
    linear-gradient(135deg,#3a1200,#6b2800);
  border-left  : 4px solid #f08000;
  color        : #fff;
  font-family  : var(--serif);
  font-size    : 13px;
  font-weight  : 900;
  letter-spacing:.06em;
  white-space  : nowrap;
}
.iq-au-rg-section-title-line{
  flex      : 1;
  height    : 2px;
  background: linear-gradient(90deg,rgba(240,140,20,.4),transparent);
  border-radius:1px;
}

/* コースリスト */
.iq-au-rg-course-list{
  list-style:none;
  padding:0;
  margin:0 0 16px;
  display:flex;
  flex-direction:column;
  gap:12px;
}

/* コースカード */
.iq-au-rg-course-card{
  display       : block;
  border-radius : 12px;
  overflow      : hidden;
  border        : 1px solid rgba(240,140,20,.38);
  background    :
    radial-gradient(ellipse 80% 50% at 0% 0%, rgba(240,140,20,.12), transparent 50%),
    linear-gradient(145deg,#1a0600,#3a1200 70%);
  box-shadow    : 0 6px 0 rgba(40,12,0,.28), 0 10px 22px rgba(40,12,0,.15);
  text-decoration:none !important;
  transition    : transform .1s, box-shadow .1s;
  position      : relative;
}
.iq-au-rg-course-card:not(.iq-au-rg-course-card--registered):active{
  transform : translateY(5px);
  box-shadow: 0 1px 0 rgba(40,12,0,.28);
}
.iq-au-rg-course-card--registered{
  background  : rgba(25,10,0,.55);
  border-color: rgba(180,140,110,.18);
  box-shadow  : none;
  cursor      : not-allowed;
  opacity     : .68;
}
.iq-au-rg-course-card-head{
  display        : flex;
  align-items    : center;
  justify-content: space-between;
  padding        : 14px 16px 10px;
  border-bottom  : 1px solid rgba(240,140,20,.18);
}
.iq-au-rg-course-point-label{
  font-size    : 11px;
  font-weight  : 700;
  color        : rgba(255,180,80,.75);
  letter-spacing:.06em;
  margin-bottom: 3px;
}
.iq-au-rg-course-point{
  font-family: var(--serif);
  font-size  : 22px;
  font-weight: 900;
  color      : rgba(255,235,185,.95);
  line-height: 1;
}
.iq-au-rg-course-point span{
  font-size  : 13px;
  font-weight: 700;
  color      : rgba(255,215,160,.7);
  margin-left: 3px;
}
.iq-au-rg-course-arrow{
  width          : 34px;
  height         : 34px;
  border-radius  : 50%;
  background     : linear-gradient(135deg,#f08000,#c96000);
  color          : #fff;
  font-size      : 20px;
  font-weight    : 900;
  display        : flex;
  align-items    : center;
  justify-content: center;
  flex-shrink    : 0;
}
.iq-au-rg-course-card-body{
  padding    : 10px 16px;
  background : rgba(0,0,0,.15);
  font-size  : 13px;
  line-height: 1.7;
}
.iq-au-rg-price-free{
  display     : inline-block;
  color       : #FFD700;
  font-weight : 900;
  font-size   : 15px;
  margin-bottom:1px;
}
.iq-au-rg-price-main{
  font-size  : 15px;
  font-weight: 700;
  color      : rgba(255,225,170,.9);
}
.iq-au-rg-price-sub{
  font-size  : 12px;
  color      : rgba(255,185,100,.8);
}
.iq-au-rg-course-card-action{
  padding    : 11px 16px;
  background : linear-gradient(90deg,rgba(200,80,10,.75),rgba(130,45,0,.92));
  color      : rgba(255,230,200,.9);
  font-size  : 13px;
  font-weight: 700;
  letter-spacing:.04em;
  text-align : center;
  border-top : 1px solid rgba(240,140,20,.15);
}
.iq-au-rg-registered-badge{
  position     : absolute;
  top          : 10px;
  right        : 10px;
  padding      : 3px 10px;
  border-radius: 20px;
  background   : rgba(240,140,20,.18);
  border       : 1px solid rgba(240,140,20,.32);
  color        : rgba(255,190,80,.85);
  font-size    : 11px;
  font-weight  : 900;
}

/* サービス情報カード */
.iq-au-rg-service-card{
  margin    : 0 0 20px;
  border-radius:10px;
  overflow  : hidden;
  border    : 1px solid rgba(240,140,20,.25);
}
.iq-au-rg-service-card-head{
  padding    : 9px 14px;
  background : rgba(20,6,0,.7);
  font-family: var(--serif);
  font-size  : 12px;
  font-weight: 700;
  color      : rgba(255,185,80,.85);
  letter-spacing:.06em;
  border-bottom:1px solid rgba(240,140,20,.2);
}
.iq-au-rg-service-link{
  display     : block;
  padding     : 13px 16px;
  background  : rgba(15,5,0,.55);
  color       : rgba(255,220,180,.9);
  font-size   : 13px;
}
.iq-au-rg-service-link a{
  color          : rgba(255,220,180,.9) !important;
  text-decoration: none !important;
}
.iq-au-rg-service-link a::after{
  content    : " ›";
  color      : #FFD700;
  font-size  : 16px;
  font-weight: 700;
}

/* ══════════════════════════════════════════════════════
   no_login_sp_1 — キャリアログイン選択ページ固有スタイル
══════════════════════════════════════════════════════ */

@keyframes iq-login-btn-pulse-dc {
  0%,100% { box-shadow:0 6px 0 rgba(180,0,40,.3), 0 8px 24px rgba(180,0,40,.12); }
  50%      { box-shadow:0 6px 0 rgba(180,0,40,.3), 0 8px 32px rgba(200,0,50,.35); }
}
@keyframes iq-login-btn-pulse-au {
  0%,100% { box-shadow:0 6px 0 rgba(160,70,0,.3), 0 8px 24px rgba(200,90,0,.12); }
  50%      { box-shadow:0 6px 0 rgba(160,70,0,.3), 0 8px 32px rgba(220,100,0,.35); }
}
@keyframes iq-login-btn-pulse-sb {
  0%,100% { box-shadow:0 6px 0 rgba(60,60,60,.3), 0 8px 24px rgba(80,80,80,.12); }
  50%      { box-shadow:0 6px 0 rgba(60,60,60,.3), 0 8px 32px rgba(120,120,120,.3); }
}

/* ラッパー */
.iq-login-wrap{
  padding    : 0;
  max-width  : min(100%,430px);
  margin     : 0 auto;
}

/* 導入テキスト */
.iq-login-intro{
  margin       : 0 0 22px;
  padding      : 14px 16px;
  border-radius: 10px;
  background   :
    radial-gradient(ellipse 80% 60% at 50% 0%, rgba(240,195,62,.1), transparent 55%),
    rgba(20,3,6,.55);
  border       : 1px solid rgba(212,173,85,.28);
  font-size    : 13px;
  line-height  : 1.85;
  color        : rgba(255,215,170,.85);
  text-align   : center;
}

/* キャリアセクション */
.iq-login-carrier-section{
  margin-bottom: 18px;
}

/* セクションラベル */
.iq-login-carrier-label{
  font-size    : 11px;
  font-weight  : 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color        : rgba(200,175,155,.6);
  margin-bottom: 7px;
  padding-left : 4px;
}

/* ボタン共通 */
.iq-login-btn,
button.iq-login-btn{
  display        : flex;
  align-items    : stretch;
  width          : 100%;
  border-radius  : 12px;
  overflow       : hidden;
  text-decoration: none !important;
  border         : none;
  padding        : 0;
  background     : none;
  cursor         : pointer;
  transition     : transform .1s;
  position       : relative;
}
.iq-login-btn:active,
button.iq-login-btn:active{
  transform : translateY(5px);
}

/* ボタン左バー */
.iq-login-btn-bar{
  width     : 8px;
  flex-shrink:0;
  display   : block;
}

/* ボタン本体 */
.iq-login-btn-body{
  flex       : 1;
  display    : flex;
  flex-direction: column;
  justify-content: center;
  padding    : 16px 12px 16px 16px;
  gap        : 4px;
}

/* キャリア名 */
.iq-login-btn-carrier{
  display      : block;
  font-family  : var(--serif);
  font-size    : 22px;
  font-weight  : 900;
  line-height  : 1;
  letter-spacing:.03em;
}

/* サブラベル */
.iq-login-btn-sub{
  display    : block;
  font-size  : 11px;
  font-weight: 600;
  letter-spacing:.03em;
  opacity    : .8;
}

/* 矢印エリア */
.iq-login-btn-arrow{
  display        : flex;
  align-items    : center;
  justify-content: center;
  width          : 52px;
  flex-shrink    : 0;
  font-size      : 20px;
  font-weight    : 700;
}

/* フォームラッパー */
.iq-login-btn-form{
  margin  : 0;
  padding : 0;
  display : block;
  width   : 100%;
}
.iq-login-btn-form button.iq-login-btn{
  width: 100%;
}

/* ── docomo ── */
.iq-login-btn--dc{
  background :
    linear-gradient(90deg, rgba(194,0,50,.18) 0%, rgba(120,0,30,.08) 40%, rgba(12,2,4,.65) 100%);
  border     : 1px solid rgba(194,0,50,.45);
  box-shadow : 0 6px 0 rgba(180,0,40,.3), 0 8px 24px rgba(180,0,40,.12);
  animation  : iq-login-btn-pulse-dc 3s ease-in-out infinite;
}
.iq-login-btn--dc .iq-login-btn-bar{
  background: linear-gradient(180deg,#ff2a5e,#c20032);
}
.iq-login-btn--dc .iq-login-btn-carrier{
  color     : #ff4a6e;
  text-shadow:0 0 14px rgba(255,74,110,.45);
}
.iq-login-btn--dc .iq-login-btn-sub{
  color: rgba(255,180,190,.8);
}
.iq-login-btn--dc .iq-login-btn-arrow{
  background: linear-gradient(135deg,#c20032,#8a0022);
  color     : #fff;
  border-left:1px solid rgba(255,100,130,.25);
}
.iq-login-btn--dc:active{
  box-shadow: 0 1px 0 rgba(180,0,40,.3);
  animation : none;
}

/* ── au ── */
.iq-login-btn--au{
  background :
    linear-gradient(90deg, rgba(230,110,0,.18) 0%, rgba(140,60,0,.08) 40%, rgba(12,5,0,.65) 100%);
  border     : 1px solid rgba(230,110,0,.45);
  box-shadow : 0 6px 0 rgba(160,70,0,.3), 0 8px 24px rgba(200,90,0,.12);
  animation  : iq-login-btn-pulse-au 3s ease-in-out infinite;
}
.iq-login-btn--au .iq-login-btn-bar{
  background: linear-gradient(180deg,#ffad3a,#e86f00);
}
.iq-login-btn--au .iq-login-btn-carrier{
  color     : #ffad3a;
  text-shadow:0 0 14px rgba(255,160,50,.45);
}
.iq-login-btn--au .iq-login-btn-sub{
  color: rgba(255,210,160,.8);
}
.iq-login-btn--au .iq-login-btn-arrow{
  background: linear-gradient(135deg,#e86f00,#b35400);
  color     : #fff;
  border-left:1px solid rgba(255,160,50,.25);
}
.iq-login-btn--au:active{
  box-shadow: 0 1px 0 rgba(160,70,0,.3);
  animation : none;
}

/* ── SoftBank ── */
.iq-login-btn--sb{
  background :
    linear-gradient(90deg, rgba(180,180,180,.12) 0%, rgba(100,100,100,.06) 40%, rgba(12,10,10,.65) 100%);
  border     : 1px solid rgba(180,180,180,.38);
  box-shadow : 0 6px 0 rgba(60,60,60,.3), 0 8px 24px rgba(80,80,80,.1);
  animation  : iq-login-btn-pulse-sb 3s ease-in-out infinite;
}
.iq-login-btn--sb .iq-login-btn-bar{
  background: linear-gradient(180deg,#e0e0e0,#a0a0a0);
}
.iq-login-btn--sb .iq-login-btn-carrier{
  color     : #e8e8e8;
  text-shadow:0 0 12px rgba(220,220,220,.3);
}
.iq-login-btn--sb .iq-login-btn-sub{
  color: rgba(200,200,200,.75);
}
.iq-login-btn--sb .iq-login-btn-arrow{
  background: linear-gradient(135deg,#5a5a5a,#2e2e2e);
  color     : #e0e0e0;
  border-left:1px solid rgba(200,200,200,.15);
}
.iq-login-btn--sb:active{
  box-shadow: 0 1px 0 rgba(60,60,60,.3);
  animation : none;
}

/* キャリア区切り線 */
.iq-login-divider{
  display    : flex;
  align-items: center;
  gap        : 10px;
  margin     : 8px 0 20px;
  color      : rgba(200,175,155,.25);
  font-size  : 11px;
  letter-spacing:.1em;
}
.iq-login-divider::before,
.iq-login-divider::after{
  content   : "";
  flex      : 1;
  height    : 1px;
  background: rgba(212,173,85,.15);
}

/* ══════════════════════════════════════════════════════
   login_ng_id_sp_1 — IDログイン（退会用）ページ固有スタイル
══════════════════════════════════════════════════════ */

/* 退会メッセージパネル */
.iq-lngid-msg-panel{
  margin       : 0 0 18px;
  padding      : 16px 16px 14px;
  border-radius: 10px;
  background   :
    radial-gradient(ellipse 80% 50% at 50% 0%, rgba(212,173,85,.12), transparent 55%),
    rgba(20,3,6,.55);
  border       : 1px solid rgba(212,173,85,.28);
}
.iq-lngid-msg-main{
  font-family  : var(--serif);
  font-size    : 16px;
  font-weight  : 900;
  color        : rgba(255,225,170,.95);
  margin-bottom: 8px;
  letter-spacing:.04em;
}
.iq-lngid-msg-sub{
  font-size  : 12px;
  line-height: 1.8;
  color      : rgba(255,185,160,.75);
  padding-left: 1em;
  text-indent : -1em;
}
.iq-lngid-msg-sub::before{
  content: "※";
  margin-right:2px;
}

/* アラートパネル（要ログイン） */
.iq-lngid-alert-panel{
  display      : flex;
  align-items  : flex-start;
  gap          : 12px;
  margin       : 0 0 18px;
  padding      : 14px 14px;
  border-radius: 10px;
  background   : rgba(180,50,20,.12);
  border       : 1px solid rgba(220,100,60,.35);
  border-left  : 4px solid #e05020;
}
.iq-lngid-alert-icon{
  font-size  : 22px;
  line-height: 1;
  color      : #e8784a;
  flex-shrink: 0;
  margin-top : 1px;
}
.iq-lngid-alert-text{
  font-size  : 12px;
  line-height: 1.85;
  color      : rgba(255,210,185,.85);
  margin     : 0;
}

/* IDログインボタン変種（ゴールド） */
.iq-login-btn--id{
  background :
    linear-gradient(90deg, rgba(212,173,85,.2) 0%, rgba(180,130,40,.08) 40%, rgba(12,4,2,.65) 100%);
  border     : 1px solid rgba(212,173,85,.5);
  box-shadow : 0 6px 0 rgba(100,65,0,.35), 0 8px 24px rgba(180,120,0,.15);
  animation  : subGoldPulse 3s ease-in-out infinite;
}
.iq-login-btn--id .iq-login-btn-bar{
  background: linear-gradient(180deg,var(--gold),#c9960a);
}
.iq-login-btn--id .iq-login-btn-carrier{
  color     : var(--gold);
  text-shadow:0 0 14px rgba(240,195,62,.45);
}
.iq-login-btn--id .iq-login-btn-sub{
  color: rgba(255,225,160,.75);
}
.iq-login-btn--id .iq-login-btn-arrow{
  background: linear-gradient(135deg,var(--gold),#c9960a);
  color     : #3a0508;
  border-left:1px solid rgba(240,195,62,.3);
}
.iq-login-btn--id:active{
  box-shadow: 0 1px 0 rgba(100,65,0,.35);
  animation : none;
}

/* ID情報パネル */
.iq-lngid-info-panel{
  margin       : 20px 0 18px;
  padding      : 16px 16px 14px;
  border-radius: 10px;
  background   : rgba(15,2,4,.55);
  border       : 1px solid rgba(212,173,85,.2);
}
.iq-lngid-info-title{
  font-size    : 13px;
  font-weight  : 900;
  color        : rgba(240,195,62,.85);
  margin-bottom: 8px;
  letter-spacing:.03em;
}
.iq-lngid-info-text{
  font-size  : 12px;
  line-height: 1.85;
  color      : rgba(220,190,170,.75);
  margin-bottom: 12px;
}
.iq-lngid-info-text strong{
  color      : rgba(255,225,170,.95);
  font-weight: 700;
}

/* お問い合わせボタン */
a.iq-lngid-contact-btn{
  display        : inline-flex;
  align-items    : center;
  gap            : 6px;
  padding        : 10px 22px;
  border-radius  : 24px;
  background     : rgba(212,173,85,.15);
  border         : 1px solid rgba(212,173,85,.4);
  color          : rgba(240,195,62,.9) !important;
  font-size      : 13px;
  font-weight    : 700;
  text-decoration: none !important;
  transition     : background .15s;
}
a.iq-lngid-contact-btn:active{
  background: rgba(212,173,85,.28);
}

/* ══════════════════════════════════════════════════════
   login_info_sp_1 — ログイン情報表示ページ固有スタイル
══════════════════════════════════════════════════════ */

/* 保管注意バナー */
.iq-linfo-warning{
  display      : flex;
  align-items  : center;
  gap          : 10px;
  margin       : 0 0 20px;
  padding      : 13px 16px;
  border-radius: 10px;
  background   : rgba(200,100,10,.13);
  border       : 1px solid rgba(230,130,20,.4);
  border-left  : 4px solid #e88020;
}
.iq-linfo-warning-icon{
  font-size  : 20px;
  color      : #f0a030;
  flex-shrink: 0;
  line-height: 1;
}
.iq-linfo-warning-text{
  font-size    : 13px;
  font-weight  : 700;
  color        : rgba(255,210,155,.9);
  letter-spacing:.02em;
}

/* クレデンシャルカード */
.iq-linfo-card{
  margin       : 0 0 20px;
  border-radius: 12px;
  overflow     : hidden;
  border       : 1px solid rgba(212,173,85,.42);
  box-shadow   : 0 6px 24px rgba(51,2,10,.25), 0 0 0 1px rgba(212,173,85,.1);
}

/* カードヘッダー */
.iq-linfo-card-header{
  display        : flex;
  align-items    : center;
  justify-content: space-between;
  padding        : 12px 16px;
  background     :
    radial-gradient(ellipse 100% 100% at 0% 50%, rgba(240,195,62,.18), transparent 60%),
    linear-gradient(135deg,#2a0508,#4e0c16);
  border-bottom  : 1px solid rgba(212,173,85,.3);
}
.iq-linfo-card-title{
  font-family  : var(--serif);
  font-size    : 13px;
  font-weight  : 900;
  color        : rgba(255,225,170,.95);
  letter-spacing:.06em;
}
.iq-linfo-card-badge{
  font-size    : 9px;
  font-weight  : 900;
  letter-spacing:.2em;
  color        : rgba(212,173,85,.6);
  padding      : 3px 8px;
  border-radius: 3px;
  border       : 1px solid rgba(212,173,85,.3);
  background   : rgba(212,173,85,.06);
}

/* 各行 */
.iq-linfo-row{
  display    : flex;
  align-items: stretch;
  border-bottom:1px solid rgba(212,173,85,.15);
  background : rgba(12,2,4,.7);
}
.iq-linfo-row--last{
  border-bottom: none;
}
.iq-linfo-row-label{
  flex-shrink: 0;
  width      : 38%;
  padding    : 15px 12px 15px 16px;
  font-size  : 12px;
  font-weight: 700;
  color      : rgba(240,195,62,.75);
  letter-spacing:.04em;
  display    : flex;
  align-items: center;
  border-right:1px solid rgba(212,173,85,.15);
  background : rgba(240,195,62,.04);
}
.iq-linfo-row-value{
  flex       : 1;
  padding    : 14px 16px;
  font-family: monospace;
  font-size  : 16px;
  font-weight: 700;
  color      : rgba(255,240,200,.95);
  letter-spacing:.06em;
  word-break : break-all;
  display    : flex;
  align-items: center;
  text-shadow: 0 0 10px rgba(240,195,62,.25);
}

/* ══════════════════════════════════════════════════════
   login_id_sp_1 — IDログインフォームページ固有スタイル
══════════════════════════════════════════════════════ */

/* 導入テキスト */
.iq-lid-intro{
  margin       : 0 0 18px;
  padding      : 13px 16px;
  border-radius: 10px;
  background   :
    radial-gradient(ellipse 80% 60% at 50% 0%, rgba(240,195,62,.1), transparent 55%),
    rgba(20,3,6,.55);
  border       : 1px solid rgba(212,173,85,.26);
  font-size    : 13px;
  line-height  : 1.85;
  color        : rgba(255,215,170,.85);
  text-align   : center;
}

/* フォームカード */
.iq-lid-form-card{
  margin       : 0 0 20px;
  border-radius: 12px;
  overflow     : hidden;
  border       : 1px solid rgba(212,173,85,.4);
  box-shadow   : 0 6px 28px rgba(51,2,10,.25);
}

/* フォームヘッダー */
.iq-lid-form-header{
  display        : flex;
  align-items    : center;
  justify-content: space-between;
  padding        : 12px 16px;
  background     :
    radial-gradient(ellipse 100% 100% at 0% 50%, rgba(240,195,62,.18), transparent 60%),
    linear-gradient(135deg,#2a0508,#4e0c16);
  border-bottom  : 1px solid rgba(212,173,85,.28);
  font-family    : var(--serif);
  font-size      : 13px;
  font-weight    : 900;
  color          : rgba(255,225,170,.95);
  letter-spacing : .06em;
}
.iq-lid-form-header-badge{
  font-size    : 9px;
  font-weight  : 900;
  letter-spacing:.22em;
  color        : rgba(212,173,85,.6);
  padding      : 3px 8px;
  border-radius: 3px;
  border       : 1px solid rgba(212,173,85,.28);
  background   : rgba(212,173,85,.06);
}

/* フォームボディ */
.iq-lid-form-body{
  padding   : 20px 16px 16px;
  background: rgba(12,2,4,.72);
  display   : flex;
  flex-direction:column;
  gap       : 16px;
}

/* 各フィールド */
.iq-lid-field{
  display       : flex;
  flex-direction: column;
  gap           : 7px;
}

/* ラベル */
.iq-lid-label{
  font-size    : 11px;
  font-weight  : 700;
  color        : rgba(240,195,62,.75);
  letter-spacing:.1em;
}

/* 入力フィールド */
.iq-lid-input{
  appearance    : none;
  width         : 100%;
  padding       : 13px 14px;
  border-radius : 8px;
  background    : rgba(5,0,2,.7);
  border        : 1px solid rgba(212,173,85,.3);
  color         : rgba(255,240,200,.95);
  font-family   : monospace;
  font-size     : 15px;
  font-weight   : 700;
  letter-spacing: .06em;
  outline       : none;
  transition    : border-color .2s, box-shadow .2s;
  box-sizing    : border-box;
}
.iq-lid-input::placeholder{
  color      : rgba(200,170,140,.3);
  font-weight: 400;
  letter-spacing:.04em;
}
.iq-lid-input:focus{
  border-color: rgba(240,195,62,.7);
  box-shadow  : 0 0 0 3px rgba(240,195,62,.12), inset 0 0 6px rgba(240,195,62,.06);
}

/* フォームフッター（送信ボタン） */
.iq-lid-form-footer{
  padding   : 16px 16px;
  background: rgba(10,2,3,.6);
  border-top: 1px solid rgba(212,173,85,.18);
  text-align: center;
}
.iq-lid-submit{
  appearance    : none;
  display       : inline-block;
  width         : 100%;
  max-width     : 280px;
  padding       : 15px 28px;
  border-radius : 40px;
  border        : none;
  background    : linear-gradient(135deg,var(--gold),#c9960a);
  color         : #3a0508;
  font-family   : var(--serif);
  font-size     : 16px;
  font-weight   : 900;
  letter-spacing: .08em;
  cursor        : pointer;
  box-shadow    : 0 6px 0 rgba(100,60,0,.32), 0 10px 24px rgba(51,2,10,.2);
  transition    : transform .1s, box-shadow .1s;
}
.iq-lid-submit:active{
  transform : translateY(5px);
  box-shadow: 0 1px 0 rgba(100,60,0,.32);
}

/* ══════════════════════════════════════════════════════
   retire_sp_1 — 退会手続きページ（空メール方式）
══════════════════════════════════════════════════════ */

/* ヒーロー：danger トーン */
.iq-sub-hero--danger .iq-sub-kicker{
  color: #e05050;
}

/* ステップナビ */
.iq-retire-steps{
  display        : flex;
  align-items    : center;
  justify-content: center;
  gap            : 6px;
  margin         : 0 0 20px;
}
.iq-retire-step{
  display        : flex;
  flex-direction : column;
  align-items    : center;
  gap            : 4px;
}
.iq-retire-step-num{
  display        : flex;
  align-items    : center;
  justify-content: center;
  width          : 30px;
  height         : 30px;
  border-radius  : 50%;
  background     : linear-gradient(135deg,var(--gold),#a07820);
  color          : #fff;
  font-family    : var(--serif);
  font-size      : 13px;
  font-weight    : 900;
}
.iq-retire-step-label{
  font-size  : 10px;
  color      : var(--gold-dark);
  font-weight: 700;
  text-align : center;
  white-space: nowrap;
}
.iq-retire-step-arrow{
  color       : rgba(140,103,39,.5);
  font-size   : 11px;
  margin-top  : -12px;
}

/* 説明テキスト */
.iq-retire-desc{
  margin     : 0 0 18px;
  font-size  : 13px;
  line-height: 1.85;
  color      : #5a3010;
  text-align : center;
}
.iq-retire-desc strong{
  color      : var(--gold-dark);
  font-weight: 900;
}

/* 空メールボタン：アイコン追加 */
.iq-retire-mail-icon{
  font-size  : 20px;
  line-height: 1;
}

/* キャリアカード共通 */
.iq-retire-carrier{
  margin          : 0;
  padding         : 20px 18px;
  border-radius   : 12px;
  border          : 1px solid rgba(140,103,39,.3);
  background      : rgba(255,248,224,.7);
  box-shadow      : 0 2px 12px rgba(51,2,10,.07);
}
.iq-retire-carrier-head{
  display    : flex;
  align-items: center;
  gap        : 8px;
  margin     : 0 0 12px;
  font-size  : 14px;
  font-weight: 800;
  color      : var(--red-dark);
  font-family: var(--serif);
  letter-spacing: .04em;
}
.iq-retire-carrier-badge{
  display        : inline-flex;
  align-items    : center;
  justify-content: center;
  padding        : 2px 10px;
  border-radius  : 20px;
  font-size      : 11px;
  font-weight    : 900;
  letter-spacing : .06em;
}
.iq-retire-carrier-badge--dc{
  background: #d0021b;
  color     : #fff;
}
.iq-retire-carrier-badge--au{
  background: #e96a00;
  color     : #fff;
}
.iq-retire-carrier-badge--sb{
  background: #1a5296;
  color     : #fff;
}
.iq-retire-carrier-note{
  margin     : 0 0 14px;
  font-size  : 12px;
  color      : #6b3a18;
  line-height: 1.8;
}
.iq-retire-carrier-link{
  display        : block;
  text-align     : center;
  padding        : 12px 16px;
  border-radius  : 8px;
  border         : 1px solid rgba(140,103,39,.45);
  background     : rgba(140,103,39,.1);
  color          : #5a3a08;
  font-size      : 13px;
  font-weight    : 700;
  text-decoration: none;
  letter-spacing : .04em;
  transition     : background .18s;
}
.iq-retire-carrier-link:active{
  background: rgba(140,103,39,.2);
}
.iq-retire-carrier--dc .iq-retire-carrier-link{
  border-color: rgba(208,2,27,.45);
  background  : rgba(208,2,27,.07);
  color       : #a00018;
}
.iq-retire-carrier--au .iq-retire-carrier-link{
  border-color: rgba(180,80,0,.45);
  background  : rgba(180,80,0,.07);
  color       : #a04800;
}
.iq-retire-carrier--sb .iq-retire-carrier-link{
  border-color: rgba(26,82,150,.45);
  background  : rgba(26,82,150,.07);
  color       : #0a3a82;
}
.iq-retire-carrier-copy{
  margin-top : 16px;
  padding-top: 14px;
  border-top : 1px solid rgba(140,103,39,.18);
}
.iq-retire-carrier-copy-label{
  margin     : 0 0 8px;
  font-size  : 11px;
  color      : #8c6030;
}
.iq-retire-carrier input[type="text"],
.iq-retire-carrier-copy input[type="text"]{
  display      : block;
  width        : 100%;
  padding      : 10px 12px;
  border       : 1px solid rgba(140,103,39,.4);
  border-radius: 7px;
  background   : #fff;
  color        : #3b040b;
  font-size    : 13px;
  box-sizing   : border-box;
  text-align   : left;
  letter-spacing: .04em;
}

/* ══════════════════════════════════════════════════════
   retire_sp_1 — sub-dungeon スタイル
══════════════════════════════════════════════════════ */

/* ページ全体ラッパー */
.sub-main{
  padding: 0 22px 64px;
}

/* ダンジョン風ヘッダー */
.sub-dungeon-head{
  padding   : 28px 22px 20px;
  text-align: center;
}
.sub-dungeon-title{
  margin        : 10px 0;
  font-family   : var(--serif);
  font-size     : 20px;
  font-weight   : 900;
  color         : var(--gold-light);
  letter-spacing: .12em;
  text-shadow   : 0 2px 12px rgba(0,0,0,.5);
}
.sub-deco-row{
  color      : var(--gold);
  font-size  : 12px;
  opacity    : .7;
  letter-spacing: .08em;
}

/* パーチメント（羊皮紙）カード */
.sub-parchment{
  margin       : 0 0 28px;
  border-radius: 12px;
  border       : 1px solid rgba(212,173,85,.35);
  background   : linear-gradient(160deg,#fffdf4,#f5e8c0);
  box-shadow   : 0 4px 20px rgba(51,2,10,.18);
  overflow     : hidden;
}
.sub-parchment-body{
  padding   : 28px 20px 24px;
  text-align: center;
}
.sub-parchment-seal{
  font-size    : 36px;
  margin-bottom: 12px;
  line-height  : 1;
}
.sub-parchment-text{
  margin     : 0 0 20px;
  font-size  : 13px;
  color      : #5a3010;
  line-height: 1.85;
}

/* 空メール送信ボタン */
.sub-retire-mail-wrap{
  margin: 0;
}
.sub-retire-mail-btn{
  position      : relative;
  display       : flex;
  align-items   : center;
  justify-content: center;
  width         : 100%;
  min-height    : 62px;
  padding       : 14px 18px;
  border        : 1px solid var(--gold);
  border-radius : 10px;
  background    : linear-gradient(135deg,#a51d31,#620914);
  box-shadow    : 0 7px 0 #3b050d,0 14px 24px rgba(51,2,10,.24);
  color         : #fff;
  font-weight   : 900;
  font-size     : 15px;
  letter-spacing: .06em;
  text-decoration:none;
  box-sizing    : border-box;
}
.sub-retire-mail-btn::before{
  content      : "";
  position     : absolute; inset:3px;
  border       : 1px solid rgba(255,231,172,.35);
  border-radius: 7px;
  pointer-events:none;
}
.sub-retire-mail-btn:active{
  transform : translateY(4px);
  box-shadow: 0 3px 0 #3b050d;
}

/* キャリアカード */
.sub-carrier-card{
  margin       : 28px 0 0;
  padding      : 20px 18px;
  border-radius: 12px;
  border       : 1px solid rgba(140,103,39,.3);
  background   : rgba(255,248,224,.7);
  box-shadow   : 0 2px 12px rgba(51,2,10,.07);
}
.sub-carrier-copy-label{
  margin     : 0 0 10px;
  font-size  : 12px;
  font-weight: 700;
  color      : #6b3a18;
}
.sub-btn-carrier{
  display        : block;
  text-align     : center;
  padding        : 12px 16px;
  margin-bottom  : 16px;
  border-radius  : 8px;
  border         : 1px solid rgba(140,103,39,.45);
  background     : rgba(140,103,39,.1);
  color          : #5a3a08;
  font-size      : 13px;
  font-weight    : 700;
  text-decoration: none;
}
.sub-carrier-card--dc .sub-btn-carrier{ border-color:rgba(208,2,27,.45); background:rgba(208,2,27,.07); color:#a00018; }
.sub-carrier-card--au .sub-btn-carrier{ border-color:rgba(180,80,0,.45);  background:rgba(180,80,0,.07);  color:#a04800; }
.sub-carrier-card--sb .sub-btn-carrier{ border-color:rgba(26,82,150,.45); background:rgba(26,82,150,.07); color:#0a3a82; }
.sub-carrier-form{ margin:0; }
.sub-carrier-input{
  display      : block;
  width        : 100%;
  padding      : 10px 12px;
  border       : 1px solid rgba(140,103,39,.4);
  border-radius: 7px;
  background   : #fff;
  color        : #3b040b;
  font-size    : 13px;
  box-sizing   : border-box;
}

/* ホームへ戻るボタン */
.sub-home-btn{
  display        : flex;
  align-items    : center;
  justify-content: center;
  width          : 100%;
  margin-top     : 32px;
  padding        : 16px 20px;
  border         : 1px solid rgba(196,158,54,.45);
  border-radius  : 10px;
  background     : linear-gradient(135deg,rgba(255,248,224,.95),rgba(242,224,178,.85));
  color          : var(--red-dark);
  font-family    : var(--serif);
  font-size      : 15px;
  font-weight    : 900;
  text-decoration: none;
  letter-spacing : .06em;
  box-shadow     : 0 4px 14px rgba(59,4,11,.12);
  box-sizing     : border-box;
}
.sub-home-btn:active{ transform:translateY(2px); box-shadow:0 2px 6px rgba(59,4,11,.1); }
