/* ============================================================
   WallpaperLover ? 下層ページ共通スタイルシート
   wl_subpage.css
   ヘッダー/フッターは wl_photo_hunt.css に定義済み
   ============================================================ */

/* ── リセット & ベース ── */
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:#0f0f0f}
body{
  display:flex;
  flex-direction:column; /* 縦積み：bodyendが右横に出ないよう */
  align-items:center;    /* .siteを横方向中央に */
  font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  color:#111;
}
img{display:block}
button,a{font:inherit;color:inherit}

/* ── デザイントークン（インデックスと共有） ── */
:root{
  --bg:#f7f7f4;
  --ink:#111;
  --sub:#777;
  --line:#dadad6;
  --lime:#c8ff32;
  --white:#fff;
  --header-h:58px;
  --sp:16px;        /* 基本余白 */
  --radius:0px;     /* 角丸なし（フラットデザイン） */
}

/* ── サイトラッパー ── */
.site{
  width:100%;
  max-width:768px;
  min-height:100vh;
  background:var(--bg);
  overflow:hidden;
}
@media(min-width:769px){.site{box-shadow:0 0 60px rgba(0,0,0,.35)}}

/* ============================================================
   下層共通: ページヒーロー
   ============================================================ */
.sub-hero{
  position:relative;
  overflow:hidden;
  background:var(--ink);
  padding:56px var(--sp) 44px;
  min-height:220px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
}
.sub-hero-bg{
  position:absolute;
  inset:0;
  width:100%;height:100%;
  object-fit:cover;
  opacity:.38;
  transform:scale(1.06);
}
.sub-hero-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(160deg,rgba(8,8,6,.72) 0%,rgba(8,8,6,.38) 60%,rgba(200,255,50,.08) 100%);
  pointer-events:none;
}
.sub-hero-body{
  position:relative;
  z-index:2;
}
.sub-hero-kicker{
  font-size:9px;
  font-weight:900;
  letter-spacing:2.8px;
  text-transform:uppercase;
  color:var(--lime);
  margin-bottom:10px;
}
.sub-hero-kicker::after{
  content:"";
  display:block;
  width:28px;height:1px;
  background:var(--lime);
  margin-top:6px;
  opacity:.7;
}
.sub-hero h1{
  margin:0;
  font-family:Georgia,"Yu Mincho",serif;
  font-size:clamp(26px,6.8vw,36px);
  line-height:1.1;
  letter-spacing:-1.2px;
  color:#fff;
}
.sub-hero-sub{
  margin:10px 0 0;
  font-size:12px;
  color:rgba(255,255,255,.62);
  line-height:1.8;
  max-width:320px;
}

/* ============================================================
   下層共通: セクション基本
   ============================================================ */
.sub-section{
  padding:48px var(--sp);
  background:var(--bg);
}
.sub-section + .sub-section{
  padding-top:36px;
}
.sub-section-label{
  font-size:9px;
  font-weight:900;
  letter-spacing:2.4px;
  text-transform:uppercase;
  color:var(--lime);
  background:var(--ink);
  display:inline-block;
  padding:4px 8px;
  margin-bottom:20px;
}
.sub-section h2{
  margin:0 0 14px;
  font-family:Georgia,"Yu Mincho",serif;
  font-size:clamp(24px,6vw,32px);
  line-height:1.1;
  letter-spacing:-1.2px;
}
.sub-section p{
  margin:0 0 12px;
  font-size:13px;
  line-height:1.9;
  color:var(--sub);
}
.sub-section p:last-child{margin-bottom:0}

/* ダーク variant */
.sub-section--dark{
  background:var(--ink);
  color:#fff;
}
.sub-section--dark p{color:#777}
.sub-section--dark h2{color:#fff}

/* ============================================================
   下層共通: テキスト + 画像 レイアウト
   ============================================================ */
.sub-media{
  position:relative;
  margin:0 calc(var(--sp) * -1);  /* フルブリード */
  overflow:hidden;
  background:#ddd;
}
.sub-media img{
  width:100%;
  aspect-ratio:16/9;
  object-fit:cover;
  display:block;
}
.sub-media-caption{
  position:absolute;
  right:var(--sp);
  bottom:var(--sp);
  font-size:9px;
  font-weight:900;
  letter-spacing:1.8px;
  color:rgba(255,255,255,.72);
  pointer-events:none;
}

/* ============================================================
   下層共通: リスト（装飾なしフラット）
   ============================================================ */
.sub-list{
  list-style:none;
  margin:24px 0 0;
  padding:0;
}
.sub-list li{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:0 14px;
  align-items:baseline;
  padding:13px 0;
  border-bottom:1px solid var(--line);
}
.sub-list li:first-child{border-top:1px solid var(--line)}
.sub-list-num{
  font-size:10px;
  font-weight:900;
  letter-spacing:1px;
  color:var(--lime);
  background:var(--ink);
  padding:2px 6px;
  line-height:1.4;
  flex-shrink:0;
}
.sub-list-text{
  font-size:13px;
  line-height:1.8;
  color:var(--ink);
}
.sub-list-text strong{
  display:block;
  font-weight:900;
  font-size:14px;
  margin-bottom:2px;
}

/* ============================================================
   下層共通: グリッド（2カラム画像）
   ============================================================ */
.sub-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:4px;
  margin:20px 0;
}
.sub-grid-item{
  position:relative;
  aspect-ratio:3/4;
  overflow:hidden;
  background:#ddd;
  display:block;
  text-decoration:none;
}
.sub-grid-item img{
  width:100%;height:100%;
  object-fit:cover;
  transition:transform .45s cubic-bezier(.22,1,.36,1);
}
.sub-grid-item:hover img{transform:scale(1.05)}
.sub-grid-tag{
  position:absolute;
  left:8px;bottom:8px;
  font-size:9px;font-weight:900;letter-spacing:1.2px;
  background:rgba(200,255,50,.92);
  color:#111;
  padding:3px 7px;
  pointer-events:none;
}

/* ============================================================
   下層共通: CTA ブロック
   ============================================================ */
.sub-cta{
  padding:40px var(--sp);
  background:var(--ink);
  text-align:center;
}
.sub-cta-label{
  font-size:9px;font-weight:900;letter-spacing:2.4px;
  color:var(--lime);
  margin-bottom:14px;
  text-transform:uppercase;
}
.sub-cta h3{
  margin:0 0 8px;
  font-family:Georgia,"Yu Mincho",serif;
  font-size:22px;line-height:1.2;letter-spacing:-0.6px;
  color:#fff;
}
.sub-cta p{
  font-size:12px;color:#666;margin:0 0 24px;line-height:1.8;
}

/* ============================================================
   下層共通: テーブル（料金・スペック等）
   ============================================================ */
.sub-table{
  width:100%;
  border-collapse:collapse;
  margin:20px 0;
  font-size:13px;
}
.sub-table th{
  text-align:left;
  padding:12px 0;
  font-size:9px;font-weight:900;letter-spacing:2px;
  color:var(--lime);
  background:var(--ink);
  padding-left:12px;
}
.sub-table td{
  padding:13px 12px;
  border-bottom:1px solid var(--line);
  line-height:1.7;
  vertical-align:top;
}
.sub-table tr:first-child td{border-top:1px solid var(--line)}
.sub-table td:first-child{
  font-weight:700;
  font-size:12px;
  color:var(--ink);
  width:38%;
}
.sub-table td:last-child{color:var(--sub)}

/* ============================================================
   下層共通: パンくず
   ============================================================ */
.sub-breadcrumb{
  padding:12px var(--sp);
  font-size:10px;
  color:var(--sub);
  display:flex;
  align-items:center;
  gap:6px;
  background:var(--bg);
  border-bottom:1px solid var(--line);
}
.sub-breadcrumb a{
  color:var(--sub);
  text-decoration:none;
}
.sub-breadcrumb a:hover{color:var(--ink)}
.sub-breadcrumb-sep{
  font-size:8px;
  opacity:.5;
}

/* ============================================================
   下層共通: スコアカード / 特徴ブロック
   （斬新: 斜めクリップ + ライムアクセント）
   ============================================================ */
.sub-cards{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:3px;
  margin:20px 0;
}
.sub-card{
  position:relative;
  padding:22px 16px 18px;
  background:#fff;
  overflow:hidden;
}
.sub-card::before{
  content:"";
  position:absolute;
  top:0;right:0;
  width:0;height:0;
  border-style:solid;
  border-width:0 22px 22px 0;
  border-color:transparent var(--lime) transparent transparent;
}
.sub-card-num{
  font-size:32px;font-weight:900;
  line-height:1;letter-spacing:-2px;
  color:var(--lime);
  -webkit-text-stroke:1px var(--ink);
  margin-bottom:8px;
}
.sub-card-title{
  font-size:13px;font-weight:900;
  margin-bottom:4px;
  line-height:1.3;
}
.sub-card-body{
  font-size:11px;color:var(--sub);line-height:1.7;
}

/* ============================================================
   下層共通: 区切り（テキスト帯）
   ============================================================ */
.sub-divider{
  overflow:hidden;
  background:var(--lime);
  padding:9px 0;
}
.sub-divider-track{
  width:max-content;
  white-space:nowrap;
  font-size:10px;font-weight:900;letter-spacing:1.2px;
  animation:run 22s linear infinite;
}

/* ============================================================
   下層共通: 注意書き / 小テキスト
   ============================================================ */
.sub-note{
  padding:16px var(--sp);
  background:#f0f0ed;
  font-size:11px;color:#888;line-height:1.8;
}

/* ============================================================
   ユーティリティ
   ============================================================ */
.u-lime{color:var(--lime)}
.u-ink{color:var(--ink)}
.u-sub{color:var(--sub)}
.u-bold{font-weight:900}
.u-serif{font-family:Georgia,"Yu Mincho",serif}
.u-center{text-align:center}
.u-mt0{margin-top:0}
.u-mt8{margin-top:8px}
.u-mt16{margin-top:16px}
.u-mt24{margin-top:24px}

/* ============================================================
   アニメーション（インデックスと共有）
   ============================================================ */
@keyframes run{to{transform:translateX(-50%)}}
.sub-fadein{
  opacity:0;transform:translateY(16px);
  transition:opacity .75s ease,transform .85s cubic-bezier(.22,1,.36,1);
}
.sub-fadein.is-in{opacity:1;transform:none}

/* ============================================================
   reason_sp_1 ? 退会理由入力ページ
   ============================================================ */

/* ヒーロー小型 variant（既存ページ用に残す） */
.sub-hero--sm{
  min-height:160px;
  padding:44px var(--sp) 32px;
}
.sub-hero--sm h1{
  font-size:clamp(22px,5.8vw,30px);
  letter-spacing:-1px;
}

/* ─────────────────────────────────────
   タイトルバー（コンパクト）
───────────────────────────────────── */
.retire-titlebar{
  position:relative;
  background:var(--ink);
  padding:18px var(--sp) 16px;
  overflow:hidden;
}

/* ライムのスラッシュアクセント */
.retire-titlebar-accent{
  position:absolute;
  right:-20px;
  top:0;
  bottom:0;
  width:90px;
  background:var(--lime);
  transform:skewX(-14deg);
  opacity:.12;
  pointer-events:none;
}
.retire-titlebar-accent::before{
  content:"";
  position:absolute;
  right:18px;
  top:0;bottom:0;
  width:12px;
  background:var(--lime);
  opacity:1;
}

.retire-titlebar-inner{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  gap:12px;
}
.retire-titlebar-kicker{
  font-size:8px;
  font-weight:900;
  letter-spacing:2.4px;
  color:var(--lime);
  writing-mode:vertical-rl;
  text-orientation:mixed;
  line-height:1;
}
.retire-titlebar-h1{
  margin:0;
  font-size:18px;
  font-weight:900;
  letter-spacing:-0.5px;
  color:#fff;
  line-height:1.2;
}

/* 通知エリア */
.retire-notice-wrap{
  padding:0 var(--sp);
  background:var(--bg);
}
.retire-notice-wrap:empty{display:none}

/* フォームセクション */
.retire-section{
  padding:28px var(--sp) 36px;
  background:var(--bg);
}

/* セクションラベル */
.retire-section-label{
  display:inline-block;
  font-size:8px;
  font-weight:900;
  letter-spacing:3px;
  color:var(--ink);
  background:var(--lime);
  padding:4px 10px;
  margin-bottom:14px;
  position:relative;
}
.retire-section-label::after{
  content:"";
  position:absolute;
  bottom:-6px;
  left:0;
  width:100%;
  height:1px;
  background:var(--lime);
  opacity:.35;
}

/* リード文 */
.retire-lead{
  font-size:12px;
  color:var(--sub);
  line-height:1.8;
  margin:0 0 28px;
  padding-bottom:20px;
  border-bottom:1px solid var(--line);
}

/* フォーム全体 */
.retire-form{
  display:flex;
  flex-direction:column;
  gap:0;
}

/* localize 出力ラッパー
   textarea / ラジオボタン / チェックボックス を包括対応 */
.retire-reasons{
  margin-bottom:32px;
}

/* --- textarea が出力される場合 --- */
.retire-reasons textarea{
  width:100%;
  min-height:140px;
  padding:14px;
  background:#fff;
  border:none;
  border-bottom:2px solid var(--ink);
  font-size:14px;
  font-family:inherit;
  color:var(--ink);
  line-height:1.8;
  resize:vertical;
  outline:none;
  transition:border-color .2s;
}
.retire-reasons textarea:focus{
  border-bottom-color:var(--lime);
}

/* --- ラジオ / チェックボックスが出力される場合 --- */
.retire-reasons{
  counter-reset:reason-counter;
}
.retire-reasons label{
  display:flex;
  align-items:center;
  gap:12px;
  padding:13px 0;
  border-bottom:1px solid var(--line);
  font-size:13px;
  line-height:1.6;
  cursor:pointer;
  color:var(--ink);
  counter-increment:reason-counter;
  position:relative;
}
.retire-reasons label:first-of-type{
  border-top:1px solid var(--line);
}
/* カウンター番号（ライム地・黒数字） */
.retire-reasons label::before{
  content:counter(reason-counter, decimal-leading-zero);
  font-size:9px;
  font-weight:900;
  letter-spacing:.5px;
  color:var(--ink);
  background:var(--lime);
  min-width:22px;
  height:18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  transition:background .2s, color .2s;
}
/* 選択中はカウンター反転 */
.retire-reasons label:has(input:checked)::before{
  background:var(--ink);
  color:var(--lime);
}
.retire-reasons label:has(input:checked){
  color:var(--ink);
  font-weight:700;
}
.retire-reasons input[type="radio"],
.retire-reasons input[type="checkbox"]{
  appearance:none;
  -webkit-appearance:none;
  width:18px;height:18px;
  min-width:18px;
  border:2px solid #bbb;
  background:#fff;
  margin-top:2px;
  cursor:pointer;
  position:relative;
  transition:border-color .2s, background .2s;
  flex-shrink:0;
}
.retire-reasons input[type="radio"]{border-radius:50%}
.retire-reasons input[type="radio"]:checked,
.retire-reasons input[type="checkbox"]:checked{
  border-color:var(--ink);
  background:var(--ink);
}
.retire-reasons input[type="radio"]:checked::after{
  content:"";
  position:absolute;
  inset:3px;
  background:var(--lime);
  border-radius:50%;
}
.retire-reasons input[type="checkbox"]:checked::after{
  content:"&#10003;";
  position:absolute;
  top:50%;left:50%;
  transform:translate(-50%,-50%);
  font-size:10px;
  color:var(--lime);
  line-height:1;
}

/* --- テキスト入力が出力される場合 --- */
.retire-reasons input[type="text"]{
  width:100%;
  padding:12px 0;
  border:none;
  border-bottom:2px solid var(--ink);
  background:transparent;
  font-size:14px;
  font-family:inherit;
  color:var(--ink);
  outline:none;
  transition:border-color .2s;
}
.retire-reasons input[type="text"]:focus{
  border-bottom-color:var(--lime);
}

/* アクションエリア */
.retire-actions{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:12px;
}

/* 退会ボタン */
.retire-btn{
  appearance:none;
  -webkit-appearance:none;
  display:block;
  width:100%;
  padding:16px var(--sp);
  background:var(--ink);
  color:#fff;
  border:none;
  font-size:14px;
  font-weight:900;
  letter-spacing:1px;
  cursor:pointer;
  text-align:center;
  transition:background .2s, color .2s;
}
.retire-btn:hover,
.retire-btn:active{
  background:#333;
}

/* キャンセルリンク */
.retire-cancel{
  display:block;
  text-align:center;
  padding:14px;
  font-size:12px;
  font-weight:700;
  letter-spacing:.5px;
  color:var(--sub);
  text-decoration:none;
  border:1px solid var(--line);
  transition:color .2s, border-color .2s;
}
.retire-cancel:hover{
  color:var(--ink);
  border-color:var(--ink);
}

/* 注意書きエリア */
.retire-note{
  padding:16px var(--sp);
  background:#f0f0ed;
  border-top:1px solid var(--line);
}
.retire-note p{
  margin:0;
  font-size:11px;
  color:#999;
  line-height:1.8;
}

/* ============================================================
   レスポンシブ
   ============================================================ */
/* ============================================================
   共通タイトルバー（retire と同型・汎用版）
   ============================================================ */
.sp-titlebar{
  position:relative;
  background:var(--ink);
  padding:18px var(--sp) 16px;
  overflow:hidden;
}
.sp-titlebar-accent{
  position:absolute;
  right:-20px;
  top:0;bottom:0;
  width:90px;
  background:var(--lime);
  transform:skewX(-14deg);
  opacity:.12;
  pointer-events:none;
}
.sp-titlebar-accent::before{
  content:"";
  position:absolute;
  right:18px;top:0;bottom:0;
  width:12px;
  background:var(--lime);
  opacity:1;
}
.sp-titlebar-inner{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  gap:12px;
}
.sp-titlebar-kicker{
  font-size:8px;
  font-weight:900;
  letter-spacing:2.4px;
  color:var(--lime);
  writing-mode:vertical-rl;
  text-orientation:mixed;
  line-height:1;
}
.sp-titlebar-h1{
  margin:0;
  font-size:18px;
  font-weight:900;
  letter-spacing:-0.5px;
  color:#fff;
  line-height:1.2;
}

/* ============================================================
   no_member_sp_1 ? 会員登録誘導ページ
   ============================================================ */
.nomember-notice-wrap{padding:0 var(--sp);background:var(--bg)}
.nomember-notice-wrap:empty{display:none}

.nomember-section{
  padding:28px var(--sp) 40px;
  background:var(--bg);
}

/* セクションラベル */
.nomember-section-label{
  display:inline-block;
  font-size:8px;
  font-weight:900;
  letter-spacing:3px;
  color:var(--ink);
  background:var(--lime);
  padding:4px 10px;
  margin-bottom:14px;
  position:relative;
}
.nomember-section-label::after{
  content:"";
  position:absolute;
  bottom:-6px;left:0;
  width:100%;height:1px;
  background:var(--lime);
  opacity:.35;
}

/* リード文 */
.nomember-lead{
  font-size:13px;
  line-height:1.9;
  color:var(--sub);
  margin:0 0 28px;
  padding-bottom:22px;
  border-bottom:1px solid var(--line);
}

/* 登録CTAブロック */
.nomember-cta-block{
  margin-bottom:32px;
}

/* 登録ボタン（ライム・ポジティブ） */
.nomember-regist-btn{
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:100%;
  padding:18px var(--sp);
  background:var(--lime);
  color:var(--ink);
  text-decoration:none;
  transition:background .18s, transform .18s;
  position:relative;
  overflow:hidden;
}
.nomember-regist-btn::before{
  content:"";
  position:absolute;
  inset:0;
  background:var(--ink);
  transform:translateX(-101%);
  transition:transform .32s cubic-bezier(.22,1,.36,1);
  z-index:0;
}
.nomember-regist-btn:hover::before{
  transform:translateX(0);
}
.nomember-regist-btn:hover .nomember-regist-btn-label,
.nomember-regist-btn:hover .nomember-regist-btn-arrow{
  color:#fff;
}
.nomember-regist-btn-label{
  position:relative;
  z-index:1;
  font-size:15px;
  font-weight:900;
  letter-spacing:.5px;
  transition:color .32s;
}
.nomember-regist-btn-arrow{
  position:relative;
  z-index:1;
  font-size:18px;
  font-weight:900;
  transition:color .32s;
}

/* 規約リンクリスト */
.nomember-links{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:1px;
}
.nomember-link-item{
  display:flex;
  align-items:center;
  gap:10px;
  padding:13px 0;
  font-size:12px;
  color:var(--sub);
  text-decoration:none;
  border-bottom:1px solid var(--line);
  transition:color .18s;
}
.nomember-links li:first-child .nomember-link-item{
  border-top:1px solid var(--line);
}
.nomember-link-item:hover{color:var(--ink)}
.nomember-link-icon{
  font-size:7px;
  font-weight:900;
  letter-spacing:1px;
  background:var(--ink);
  color:var(--lime);
  padding:3px 5px;
  flex-shrink:0;
}

/* ============================================================
   confirm_retire_sp_1 ? 退会確認ページ
   ============================================================ */
.confirm-section{
  padding:28px var(--sp) 40px;
  background:var(--bg);
}

.confirm-section-label{
  display:inline-block;
  font-size:8px;
  font-weight:900;
  letter-spacing:3px;
  color:var(--ink);
  background:var(--lime);
  padding:4px 10px;
  margin-bottom:14px;
  position:relative;
}
.confirm-section-label::after{
  content:"";
  position:absolute;
  bottom:-6px;left:0;
  width:100%;height:1px;
  background:var(--lime);
  opacity:.35;
}

/* 確認メッセージブロック */
.confirm-msg-block{
  padding:24px 0 24px;
  margin-bottom:28px;
  position:relative;
}
/* ライム斜め装飾 */
.confirm-msg-block::before{
  content:"?";
  position:absolute;
  right:-4px;
  top:16px;
  font-size:96px;
  font-weight:900;
  line-height:1;
  color:var(--lime);
  opacity:.08;
  pointer-events:none;
  font-family:Georgia,serif;
  letter-spacing:-4px;
}

.confirm-question{
  margin:0 0 12px;
  font-size:17px;
  font-weight:900;
  letter-spacing:-0.4px;
  line-height:1.4;
  color:var(--ink);
}
.confirm-body{
  margin:0;
  font-size:12px;
  line-height:1.9;
  color:var(--sub);
  padding-bottom:24px;
  border-bottom:1px solid var(--line);
}
.confirm-point{
  font-weight:900;
  color:var(--ink);
}

/* アクションボタン群 */
.confirm-actions{
  display:flex;
  flex-direction:column;
  gap:10px;
}

/* 共通ボタン */
.confirm-btn{
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:100%;
  padding:18px var(--sp);
  text-decoration:none;
  font-weight:900;
  font-size:14px;
  letter-spacing:.3px;
  position:relative;
  overflow:hidden;
  transition:opacity .18s;
}
.confirm-btn::before{
  content:"";
  position:absolute;
  inset:0;
  transform:translateX(-101%);
  transition:transform .32s cubic-bezier(.22,1,.36,1);
  z-index:0;
}
.confirm-btn-text,
.confirm-btn-arrow{
  position:relative;
  z-index:1;
  transition:color .32s;
}

/* やっぱり退会しない（ライム→ホバーで黒） */
.confirm-btn--stay{
  background:var(--lime);
  color:var(--ink);
}
.confirm-btn--stay::before{background:var(--ink)}
.confirm-btn--stay:hover::before{transform:translateX(0)}
.confirm-btn--stay:hover .confirm-btn-text,
.confirm-btn--stay:hover .confirm-btn-arrow{color:#fff}

/* やっぱり退会する（グレー地・小さめ） */
.confirm-btn--go{
  background:#e8e8e5;
  color:#888;
  font-size:12px;
  padding:14px var(--sp);
  justify-content:center;
}
.confirm-btn--go::before{background:#ccc}
.confirm-btn--go:hover::before{transform:translateX(0)}
.confirm-btn--go:hover .confirm-btn-text{color:var(--ink)}

/* ============================================================
   tokutei_sp_1 ? 特定商取引法ページ
   ============================================================ */
.tokutei-section{
  padding:28px var(--sp) 40px;
  background:var(--bg);
}

.tokutei-lead{
  font-size:12px;
  color:var(--sub);
  line-height:1.8;
  margin:0 0 24px;
  padding-bottom:18px;
  border-bottom:2px solid var(--ink);
}

/* 定義リスト */
.tokutei-list{
  margin:0 0 32px;
  padding:0;
}
.tokutei-item{
  display:grid;
  grid-template-columns:1fr;
  border-bottom:1px solid var(--line);
  padding:0;
}
.tokutei-item:last-child{border-bottom:none}

.tokutei-item-label{
  font-size:9px;
  font-weight:900;
  letter-spacing:1.2px;
  color:var(--white);
  background:var(--ink);
  padding:6px 10px;
  margin:0;
  display:flex;
  align-items:center;
  gap:8px;
  /* ライムのカウンターアクセント */
  position:relative;
}
.tokutei-item-label::before{
  content:counter(tokutei-counter, decimal-leading-zero);
  font-size:8px;
  font-weight:900;
  color:var(--ink);
  background:var(--lime);
  padding:2px 5px;
  flex-shrink:0;
  line-height:1.4;
}

.tokutei-list{
  counter-reset:tokutei-counter;
}
.tokutei-item{
  counter-increment:tokutei-counter;
}

.tokutei-item-body{
  margin:0;
  padding:14px 10px;
  font-size:12px;
  line-height:1.9;
  color:var(--sub);
  background:#fff;
}
.tokutei-dynamic{
  background:var(--bg);
}
.tokutei-dynamic p{
  margin:0;
  font-size:12px;
  line-height:1.9;
  color:var(--sub);
}

/* 会社情報ブロック */
.tokutei-company{
  background:var(--ink);
  padding:22px var(--sp);
  position:relative;
  overflow:hidden;
}
.tokutei-company::after{
  content:"";
  position:absolute;
  right:-20px;top:0;bottom:0;
  width:80px;
  background:var(--lime);
  transform:skewX(-14deg);
  opacity:.07;
  pointer-events:none;
}

.tokutei-company-label{
  font-size:8px;
  font-weight:900;
  letter-spacing:3px;
  color:var(--lime);
  margin-bottom:16px;
}

.tokutei-company-list{
  margin:0 0 16px;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:0;
}
.tokutei-company-row{
  display:grid;
  grid-template-columns:80px 1fr;
  gap:0 12px;
  padding:10px 0;
  border-bottom:1px solid rgba(255,255,255,.08);
  align-items:baseline;
}
.tokutei-company-row:first-child{
  border-top:1px solid rgba(255,255,255,.08);
}
.tokutei-company-row dt{
  font-size:9px;
  font-weight:900;
  letter-spacing:.8px;
  color:#555;
}
.tokutei-company-row dd{
  margin:0;
  font-size:12px;
  color:#aaa;
  line-height:1.7;
}

.tokutei-company-note{
  margin:0;
  font-size:11px;
  color:#555;
  line-height:1.8;
}

/* ============================================================
   toiawase_thanks_sp_1 ? お問い合わせ送信完了ページ
   ============================================================ */
.thanks-section{
  padding:0 0 40px;
  background:var(--bg);
}

/* 完了アイコン */
.thanks-icon-block{
  display:flex;
  flex-direction:column;
  align-items:center;
  padding:32px var(--sp) 24px;
  background:var(--ink);
  position:relative;
  overflow:hidden;
}
.thanks-icon-block::after{
  content:"";
  position:absolute;
  right:-24px;top:0;bottom:0;
  width:100px;
  background:var(--lime);
  transform:skewX(-14deg);
  opacity:.06;
  pointer-events:none;
}
.thanks-icon{
  width:56px;height:56px;
  background:var(--lime);
  color:var(--ink);
  font-size:28px;
  font-weight:900;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  z-index:1;
  line-height:1;
}
.thanks-icon-label{
  margin:8px 0 0;
  font-size:8px;
  font-weight:900;
  letter-spacing:3px;
  color:#444;
  position:relative;
  z-index:1;
}

/* システムタグ出力エリア */
.thanks-note-wrap{
  padding:0 var(--sp);
  background:var(--bg);
}
.thanks-note-wrap:empty{display:none}

/* メッセージブロック */
.thanks-msg-block{
  padding:24px var(--sp) 22px;
  background:var(--bg);
  border-bottom:1px solid var(--line);
}

.thanks-section-label{
  display:inline-block;
  font-size:8px;
  font-weight:900;
  letter-spacing:3px;
  color:var(--ink);
  background:var(--lime);
  padding:4px 10px;
  margin-bottom:14px;
  position:relative;
}
.thanks-section-label::after{
  content:"";
  position:absolute;
  bottom:-6px;left:0;
  width:100%;height:1px;
  background:var(--lime);
  opacity:.35;
}

/* ※メール送信済み（元の.thanksを移植・強化） */
.thanks span{
  display:inline;
  background:linear-gradient(transparent 55%,rgba(200,255,50,.55) 55%);
  color:var(--ink);
  font-weight:900;
  font-size:14px;
  line-height:2;
}
.thanks{margin:0 0 14px}

.thanks-body{
  margin:0 0 8px;
  font-size:13px;
  line-height:1.8;
  color:var(--sub);
}
.thanks-body:last-child{margin-bottom:0}
.thanks-datebox{
  font-weight:900;
  color:var(--ink);
  font-size:13px;
}

/* チェックリストブロック */
.thanks-check-block{
  padding:22px var(--sp) 20px;
  background:#fff;
  border-bottom:1px solid var(--line);
}

.thanks-check-header{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin-bottom:16px;
}
.thanks-check-header-label{
  font-size:7px;
  font-weight:900;
  letter-spacing:1.5px;
  color:var(--lime);
  background:var(--ink);
  padding:4px 6px;
  flex-shrink:0;
  margin-top:1px;
  line-height:1.4;
}
.thanks-check-header-text{
  margin:0;
  font-size:11px;
  line-height:1.7;
  color:var(--sub);
}

.thanks-checklist{
  list-style:none;
  margin:0 0 14px;
  padding:0;
  counter-reset:check-counter;
}
.thanks-checklist-item{
  display:flex;
  align-items:center;
  gap:10px;
  padding:11px 0;
  border-bottom:1px solid var(--line);
  font-size:12px;
  line-height:1.6;
  color:var(--ink);
}
.thanks-checklist-item:first-child{
  border-top:1px solid var(--line);
}
.thanks-checklist-num{
  font-size:8px;
  font-weight:900;
  letter-spacing:.5px;
  background:var(--lime);
  color:var(--ink);
  padding:2px 6px;
  flex-shrink:0;
  line-height:1.5;
}

.thanks-check-footer{
  margin:0;
  font-size:11px;
  color:var(--sub);
  line-height:1.8;
}

/* トップへ戻るボタン */
.thanks-back{
  padding:24px var(--sp) 0;
}
.thanks-back-btn{
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:100%;
  padding:16px var(--sp);
  background:var(--ink);
  color:#fff;
  text-decoration:none;
  font-size:13px;
  font-weight:900;
  letter-spacing:.5px;
  position:relative;
  overflow:hidden;
  transition:background .2s;
}
.thanks-back-btn::before{
  content:"";
  position:absolute;
  inset:0;
  background:var(--lime);
  transform:translateX(-101%);
  transition:transform .32s cubic-bezier(.22,1,.36,1);
  z-index:0;
}
.thanks-back-btn:hover::before{transform:translateX(0)}
.thanks-back-btn span{
  position:relative;z-index:1;
  transition:color .32s;
  background:none !important;
  font-weight:900;
  font-size:13px;
}
.thanks-back-btn:hover span{color:var(--ink)}

/* ============================================================
   toiawase_sp_1 ? お問い合わせページ
   ============================================================ */

/* iframeリセット（元のインラインstyleから移植） */
iframe{border:none}

/* .info_tell（元のインラインstyleから移植・ライム統一） */
.info_tell{
  background:linear-gradient(transparent 55%, rgba(200,255,50,.55) 55%);
  color:var(--ink);
  font-weight:900;
}

.toiawase-section{
  padding:0 0 40px;
  background:var(--bg);
}

.toiawase-note-wrap{
  padding:0 var(--sp);
  background:var(--bg);
}
.toiawase-note-wrap:empty{display:none}

/* セレクトブロック */
.toiawase-select-block{
  padding:24px var(--sp) 22px;
  border-bottom:1px solid var(--line);
}

.toiawase-section-label{
  display:inline-block;
  font-size:8px;
  font-weight:900;
  letter-spacing:3px;
  color:var(--ink);
  background:var(--lime);
  padding:4px 10px;
  margin-bottom:14px;
  position:relative;
}
.toiawase-section-label::after{
  content:"";
  position:absolute;
  bottom:-6px;left:0;
  width:100%;height:1px;
  background:var(--lime);
  opacity:.35;
}

.toiawase-select-label{
  margin:0 0 12px;
  font-size:13px;
  font-weight:700;
  color:var(--ink);
  line-height:1.5;
}

/* カスタムセレクト */
.toiawase-select-wrap{
  position:relative;
}
.toiawase-select{
  appearance:none;
  -webkit-appearance:none;
  width:100%;
  padding:14px 40px 14px 14px;
  background:#fff;
  border:none;
  border-bottom:2px solid var(--ink);
  font-size:14px;
  font-family:inherit;
  color:var(--ink);
  cursor:pointer;
  outline:none;
  transition:border-color .2s;
}
.toiawase-select:focus{border-bottom-color:var(--lime)}
.toiawase-select-arrow{
  position:absolute;
  right:14px;top:50%;
  transform:translateY(-50%);
  font-size:10px;
  color:var(--ink);
  pointer-events:none;
}

/* iframeラッパー */
.toiawase-iframe-wrap{
  padding:0;
  background:var(--bg);
}
.toiawase-iframe-wrap iframe{
  display:block;
  width:100%;
}

/* 電話問い合わせブロック */
.toiawase-tell-block{
  background:var(--bg);
}
.toiawase-tell-inner{
  padding:24px var(--sp) 28px;
}

/* 注意メッセージ */
.toiawase-tell-notice{
  padding:16px 0 18px;
  border-bottom:1px solid var(--line);
  margin-bottom:20px;
}
.toiawase-tell-notice p{
  margin:0 0 6px;
  font-size:13px;
  line-height:1.8;
  color:var(--ink);
}
.toiawase-tell-notice p:last-child{margin-bottom:0}
.toiawase-tell-time{
  font-size:11px !important;
  color:var(--sub) !important;
}

/* チェックリスト */
.toiawase-check-block{
  margin-bottom:20px;
}
.toiawase-check-lead{
  font-size:10px;
  font-weight:900;
  letter-spacing:1px;
  color:var(--sub);
  margin:0 0 10px;
}
.toiawase-checklist{
  list-style:none;
  margin:0;padding:0;
}
.toiawase-checklist-item{
  border-bottom:1px solid var(--line);
}
.toiawase-checklist-item:first-child{
  border-top:1px solid var(--line);
}

.toiawase-check-label{
  display:flex;
  align-items:center;
  gap:12px;
  padding:13px 0;
  font-size:13px;
  color:var(--ink);
  cursor:pointer;
  line-height:1.5;
}
/* 元のinputを非表示にしてカスタムに */
.toiawase-checkbox{
  position:absolute;
  opacity:0;
  width:0;height:0;
}
.toiawase-check-custom{
  width:20px;height:20px;
  min-width:20px;
  border:2px solid #bbb;
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:border-color .2s, background .2s;
  flex-shrink:0;
}
.toiawase-checkbox:checked + .toiawase-check-custom{
  border-color:var(--ink);
  background:var(--ink);
}
.toiawase-checkbox:checked + .toiawase-check-custom::after{
  content:"&#10003;";
  color:var(--lime);
  font-size:12px;
  font-weight:900;
  line-height:1;
}

/* 電話ボタン */
.toiawase-tel-btn-wrap{
  margin-top:0;
}
.toiawase-tel-btn{
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:100%;
  padding:16px var(--sp);
  background:var(--lime);
  color:var(--ink);
  text-decoration:none;
  font-size:15px;
  font-weight:900;
  letter-spacing:.5px;
  position:relative;
  overflow:hidden;
  transition:background .2s;
}
.toiawase-tel-btn::before{
  content:"";
  position:absolute;
  inset:0;
  background:var(--ink);
  transform:translateX(-101%);
  transition:transform .32s cubic-bezier(.22,1,.36,1);
  z-index:0;
}
.toiawase-tel-btn:hover::before{transform:translateX(0)}
.toiawase-tel-icon{
  width:22px;height:22px;
  object-fit:contain;
  position:relative;z-index:1;
  flex-shrink:0;
}
.toiawase-tel-btn span{
  position:relative;z-index:1;
  transition:color .32s;
  background:none !important;
  font-size:15px;font-weight:900;
}
.toiawase-tel-btn:hover span{color:#fff}

/* ============================================================
   qr_sp_1 ? QRコードページ
   ============================================================ */
.qr-section{
  padding:32px var(--sp) 44px;
  background:var(--bg);
  display:flex;
  flex-direction:column;
  align-items:center;
}

.qr-section-label{
  display:inline-block;
  font-size:8px;
  font-weight:900;
  letter-spacing:3px;
  color:var(--ink);
  background:var(--lime);
  padding:4px 10px;
  margin-bottom:24px;
  align-self:flex-start;
  position:relative;
}
.qr-section-label::after{
  content:"";
  position:absolute;
  bottom:-6px;left:0;
  width:100%;height:1px;
  background:var(--lime);
  opacity:.35;
}

/* QRカード */
.qr-card{
  width:100%;
  max-width:280px;
  display:flex;
  flex-direction:column;
  align-items:center;
  background:#fff;
  padding:28px 24px 22px;
  position:relative;
}

.qr-site-name{
  font-size:10px;
  font-weight:900;
  letter-spacing:2px;
  color:var(--sub);
  margin:0 0 20px;
  text-transform:uppercase;
}

/* QR画像 + 四隅アクセント */
.qr-img-wrap{
  position:relative;
  display:inline-block;
  padding:8px;
  background:#fff;
}
.qr-img{
  display:block;
  width:180px;
  height:180px;
  object-fit:contain;
  image-rendering:pixelated;
}

/* 四隅ライムコーナー */
.qr-corner{
  position:absolute;
  width:16px;
  height:16px;
}
.qr-corner--tl{top:0;left:0;border-top:3px solid var(--lime);border-left:3px solid var(--lime)}
.qr-corner--tr{top:0;right:0;border-top:3px solid var(--lime);border-right:3px solid var(--lime)}
.qr-corner--bl{bottom:0;left:0;border-bottom:3px solid var(--lime);border-left:3px solid var(--lime)}
.qr-corner--br{bottom:0;right:0;border-bottom:3px solid var(--lime);border-right:3px solid var(--lime)}

.qr-url{
  margin:18px 0 0;
  font-size:10px;
  color:var(--sub);
  letter-spacing:.3px;
  word-break:break-all;
  text-align:center;
  line-height:1.6;
}

.qr-note{
  margin:24px 0 0;
  font-size:11px;
  color:var(--sub);
  line-height:1.8;
  text-align:center;
  max-width:280px;
}

/* ============================================================
   qa_sp_1 ? よくある質問ページ（CSS accordion）
   ============================================================ */
.qa-section{
  padding:24px var(--sp) 40px;
  background:var(--bg);
}

.qa-section-label{
  display:inline-block;
  font-size:8px;
  font-weight:900;
  letter-spacing:3px;
  color:var(--ink);
  background:var(--lime);
  padding:4px 10px;
  margin-bottom:20px;
  position:relative;
}
.qa-section-label::after{
  content:"";
  position:absolute;
  bottom:-6px;left:0;
  width:100%;height:1px;
  background:var(--lime);
  opacity:.35;
}

.qa-list{
  counter-reset:qa-counter;
}

/* アコーディオン本体 */
.qa-item{
  counter-increment:qa-counter;
  border-bottom:1px solid var(--line);
}
.qa-item:first-child{
  border-top:1px solid var(--line);
}

/* summary（質問） */
.qa-q{
  list-style:none;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:0 12px;
  padding:15px 0;
  font-size:13px;
  font-weight:700;
  color:var(--ink);
  cursor:pointer;
  line-height:1.5;
  user-select:none;
}
.qa-q::-webkit-details-marker{display:none}

/* Qナンバー（ライムタグ） */
.qa-q::before{
  content:"Q" counter(qa-counter, decimal-leading-zero);
  font-size:8px;
  font-weight:900;
  letter-spacing:.5px;
  background:var(--lime);
  color:var(--ink);
  padding:3px 6px;
  flex-shrink:0;
  line-height:1.5;
  align-self:flex-start;
  margin-top:1px;
}

/* 展開インジケーター */
.qa-q::after{
  content:"＋";
  font-size:16px;
  font-weight:300;
  color:var(--sub);
  flex-shrink:0;
  transition:transform .25s, color .25s;
  line-height:1;
}
.qa-item[open] > .qa-q::after{
  content:"−";
  color:var(--lime);
}
.qa-item[open] > .qa-q{
  color:var(--ink);
}
.qa-item[open] > .qa-q::before{
  background:var(--ink);
  color:var(--lime);
}

/* 回答エリア */
.qa-a{
  padding:4px 0 20px calc(8px + 12px + 36px); /* Qタグ幅 + gap に合わせて字下げ */
  font-size:12px;
  line-height:1.9;
  color:var(--sub);
  animation:qa-open .2s ease;
}
@keyframes qa-open{
  from{opacity:0;transform:translateY(-4px)}
  to{opacity:1;transform:none}
}
.qa-a p{
  margin:4px 0;
  font-size:12px;
  line-height:1.9;
  color:var(--sub);
}

/* リンク */
.qa-link{
  color:var(--ink);
  font-size:11px;
  word-break:break-all;
  text-decoration:underline;
  text-underline-offset:2px;
}
.qa-link:hover{color:var(--sub)}

/* ============================================================
   privacy_sp_1 ? プライバシーポリシーページ
   ============================================================ */
.privacy-section{
  padding:24px var(--sp) 40px;
  background:var(--bg);
}

/* リード文 */
.privacy-lead{
  font-size:12px;
  line-height:1.9;
  color:var(--sub);
  margin:0 0 24px;
  padding-bottom:20px;
  border-bottom:2px solid var(--ink);
}

/* 共通番号タグ */
.privacy-num{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:9px;
  font-weight:900;
  letter-spacing:.5px;
  background:var(--lime);
  color:var(--ink);
  padding:3px 7px;
  flex-shrink:0;
  line-height:1.4;
  min-width:32px;
}

/* 1〜7 ポリシーリスト */
.privacy-policy-list{
  list-style:none;
  margin:0 0 8px;
  padding:0;
  counter-reset:privacy-counter;
}
.privacy-policy-item{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:0 12px;
  align-items:baseline;
  padding:14px 0;
  border-bottom:1px solid var(--line);
}
.privacy-policy-item:first-child{
  border-top:1px solid var(--line);
}
.privacy-policy-item p{
  margin:0;
  font-size:12px;
  line-height:1.9;
  color:var(--sub);
}

/* セクションブロック（8,9,10） */
.privacy-block{
  margin-top:24px;
  padding-top:20px;
  border-top:1px solid var(--line);
}
.privacy-block--last{
  margin-bottom:0;
}

.privacy-block-head{
  display:flex;
  align-items:flex-start;
  gap:12px;
  margin-bottom:16px;
}
.privacy-block-title{
  margin:0;
  font-size:14px;
  font-weight:900;
  line-height:1.4;
  letter-spacing:-0.3px;
  color:var(--ink);
}

.privacy-block-body{}
.privacy-block-lead{
  font-size:12px;
  line-height:1.9;
  color:var(--sub);
  margin:0 0 14px;
}

/* サブグループ（利用目的の区分） */
.privacy-sub-group{
  margin-bottom:16px;
  padding-bottom:16px;
  border-bottom:1px dashed var(--line);
}
.privacy-sub-group:last-child{
  border-bottom:none;
  margin-bottom:0;
  padding-bottom:0;
}
.privacy-sub-title{
  margin:0 0 8px;
  font-size:11px;
  font-weight:900;
  color:var(--ink);
  letter-spacing:.2px;
}
.privacy-sub-note{
  margin:8px 0 0;
  font-size:11px;
  color:var(--sub);
  line-height:1.8;
}

/* サブリスト */
.privacy-sub-list{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.privacy-sub-list li{
  font-size:12px;
  line-height:1.8;
  color:var(--sub);
  padding-left:0;
}

/* 番号付きサブリスト（9章） */
.privacy-sub-list--num{
  gap:0;
}
.privacy-sub-list--num li{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:0 10px;
  align-items:baseline;
  padding:10px 0;
  border-bottom:1px solid var(--line);
}
.privacy-sub-list--num li:first-child{
  border-top:1px solid var(--line);
}
.privacy-sub-num{
  font-size:9px;
  font-weight:900;
  background:var(--ink);
  color:var(--lime);
  padding:2px 6px;
  flex-shrink:0;
  line-height:1.4;
}

/* 問い合わせ窓口ブロック（tokutei-companyと同型） */
.privacy-contact{
  margin-top:24px;
  background:var(--ink);
  padding:22px var(--sp);
  position:relative;
  overflow:hidden;
}
.privacy-contact::after{
  content:"";
  position:absolute;
  right:-20px;top:0;bottom:0;
  width:80px;
  background:var(--lime);
  transform:skewX(-14deg);
  opacity:.07;
  pointer-events:none;
}
.privacy-contact-label{
  font-size:8px;
  font-weight:900;
  letter-spacing:3px;
  color:var(--lime);
  margin-bottom:8px;
}
.privacy-contact-heading{
  font-size:12px;
  font-weight:900;
  color:#fff;
  margin:0 0 16px;
}
.privacy-contact-list{
  margin:0;padding:0;
  display:flex;
  flex-direction:column;
}
.privacy-contact-row{
  display:grid;
  grid-template-columns:100px 1fr;
  gap:0 12px;
  padding:10px 0;
  border-bottom:1px solid rgba(255,255,255,.08);
  align-items:baseline;
}
.privacy-contact-row:first-child{
  border-top:1px solid rgba(255,255,255,.08);
}
.privacy-contact-row dt{
  font-size:9px;
  font-weight:900;
  letter-spacing:.5px;
  color:#555;
}
.privacy-contact-row dd{
  margin:0;
  font-size:12px;
  color:#aaa;
  line-height:1.7;
  word-break:break-all;
}

/* ============================================================
   maintenance_sp_1 ? メンテナンスページ（フルスクリーン）
   ============================================================ */
.maintenance-body{
  display:block;
  background:var(--ink);
  min-height:100dvh;
}

.maintenance-wrap{
  min-height:100dvh;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:40px var(--sp);
  position:relative;
  overflow:hidden;
  /* 斜めストライプ背景 */
  background:repeating-linear-gradient(
    -55deg,
    #0f0f0f 0px,
    #0f0f0f 14px,
    #141414 14px,
    #141414 28px
  );
}

/* ライム光彩（左下） */
.maintenance-wrap::before{
  content:"";
  position:absolute;
  left:-80px;
  bottom:-80px;
  width:280px;
  height:280px;
  background:radial-gradient(circle,rgba(200,255,50,.12) 0%,transparent 70%);
  pointer-events:none;
}

/* ロゴ */
.maintenance-logo-wrap{
  margin-bottom:40px;
  position:relative;
  z-index:1;
}
.maintenance-logo{
  height:22px;
  width:auto;
  filter:brightness(0) invert(1);
  opacity:.7;
}

/* メインコンテンツ */
.maintenance-main{
  text-align:center;
  position:relative;
  z-index:1;
  margin-bottom:40px;
}

.maintenance-label{
  display:inline-block;
  font-size:8px;
  font-weight:900;
  letter-spacing:4px;
  color:var(--ink);
  background:var(--lime);
  padding:4px 12px;
  margin-bottom:20px;
}

.maintenance-h1{
  margin:0 0 20px;
  font-size:28px;
  font-weight:900;
  letter-spacing:-1px;
  color:#fff;
  font-family:Georgia,"Yu Mincho",serif;
  line-height:1.2;
}

.maintenance-msg{
  margin:0;
  font-size:13px;
  line-height:2;
  color:#666;
}

/* ローディングドット */
.maintenance-indicator{
  display:flex;
  gap:8px;
  align-items:center;
  margin-bottom:48px;
  position:relative;
  z-index:1;
}
.maintenance-indicator span{
  width:6px;
  height:6px;
  background:var(--lime);
  display:block;
  animation:maint-dot 1.4s ease-in-out infinite;
}
.maintenance-indicator span:nth-child(2){animation-delay:.2s}
.maintenance-indicator span:nth-child(3){animation-delay:.4s}

@keyframes maint-dot{
  0%,80%,100%{opacity:.2;transform:scale(.7)}
  40%{opacity:1;transform:scale(1)}
}

/* コピーライト */
.maintenance-copy{
  font-size:10px;
  color:#333;
  letter-spacing:.5px;
  position:relative;
  z-index:1;
  margin:0;
}

/* ============================================================
   kiyaku_sp_1 ? 利用規約ページ（qa-* アコーディオン流用）
   ============================================================ */
.kiyaku-section{
  padding:24px var(--sp) 40px;
  background:var(--bg);
}

.kiyaku-section-label{
  display:inline-block;
  font-size:8px;
  font-weight:900;
  letter-spacing:3px;
  color:var(--ink);
  background:var(--lime);
  padding:4px 10px;
  margin-bottom:14px;
  position:relative;
}
.kiyaku-section-label::after{
  content:"";
  position:absolute;
  bottom:-6px;left:0;
  width:100%;height:1px;
  background:var(--lime);
  opacity:.35;
}

.kiyaku-lead{
  font-size:12px;
  line-height:1.8;
  color:var(--sub);
  margin:0 0 20px;
  padding-bottom:16px;
  border-bottom:2px solid var(--ink);
}

/* アコーディオン（qa-itemと同構造） */
.kiyaku-list{
  counter-reset:kiyaku-counter;
}
.kiyaku-item{
  counter-increment:kiyaku-counter;
  border-bottom:1px solid var(--line);
}
.kiyaku-item:first-child{border-top:1px solid var(--line)}

.kiyaku-q{
  list-style:none;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:0 10px;
  padding:14px 0;
  font-size:13px;
  font-weight:700;
  color:var(--ink);
  cursor:pointer;
  line-height:1.5;
  user-select:none;
}
.kiyaku-q::-webkit-details-marker{display:none}

/* 条番号タグ */
.kiyaku-art{
  font-size:8px;
  font-weight:900;
  letter-spacing:.3px;
  background:var(--lime);
  color:var(--ink);
  padding:3px 6px;
  flex-shrink:0;
  line-height:1.5;
  white-space:nowrap;
  align-self:flex-start;
  margin-top:1px;
}
.kiyaku-item[open] > .kiyaku-q .kiyaku-art{
  background:var(--ink);
  color:var(--lime);
}

/* 展開インジケーター */
.kiyaku-q::after{
  content:"＋";
  font-size:16px;
  font-weight:300;
  color:var(--sub);
  flex-shrink:0;
  line-height:1;
}
.kiyaku-item[open] > .kiyaku-q::after{
  content:"−";
  color:var(--lime);
}

/* 回答 */
.kiyaku-a{
  padding:4px 0 18px calc(8px + 10px + 40px);
  font-size:12px;
  line-height:1.9;
  color:var(--sub);
  animation:qa-open .2s ease;
}
.kiyaku-a p{
  margin:4px 0;
  font-size:12px;
  line-height:1.9;
  color:var(--sub);
}

/* ============================================================
   kishu_sp_1 ? 対応機種ページ
   ============================================================ */
.kishu-notice-wrap{padding:0 var(--sp);background:var(--bg)}
.kishu-notice-wrap:empty{display:none}

.kishu-section{
  padding:24px var(--sp) 40px;
  background:var(--bg);
}

.kishu-section-label{
  display:inline-block;
  font-size:8px;
  font-weight:900;
  letter-spacing:3px;
  color:var(--ink);
  background:var(--lime);
  padding:4px 10px;
  margin-bottom:14px;
  position:relative;
}
.kishu-section-label::after{
  content:"";
  position:absolute;
  bottom:-6px;left:0;
  width:100%;height:1px;
  background:var(--lime);
  opacity:.35;
}

.kishu-lead{
  font-size:12px;
  line-height:1.8;
  color:var(--sub);
  margin:0 0 20px;
  padding-bottom:16px;
  border-bottom:1px solid var(--line);
}

/* デバイスカード */
.kishu-devices{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:4px;
  margin-bottom:20px;
}

.kishu-device-item{
  background:#fff;
  padding:20px 16px 16px;
  display:flex;
  flex-direction:column;
  gap:4px;
  position:relative;
  overflow:hidden;
}
/* 右上ライム三角アクセント */
.kishu-device-item::before{
  content:"";
  position:absolute;
  top:0;right:0;
  width:0;height:0;
  border-style:solid;
  border-width:0 20px 20px 0;
  border-color:transparent var(--lime) transparent transparent;
}

.kishu-device-os{
  font-size:18px;
  font-weight:900;
  letter-spacing:-0.5px;
  color:var(--ink);
  line-height:1.1;
}
.kishu-device-ver{
  font-size:11px;
  color:var(--sub);
  line-height:1.5;
}
.kishu-device-badge{
  margin-top:8px;
  display:inline-block;
  font-size:9px;
  font-weight:900;
  letter-spacing:1px;
  color:var(--ink);
  background:var(--lime);
  padding:3px 8px;
  align-self:flex-start;
}

/* 注意書き */
.kishu-note{
  font-size:11px;
  color:var(--sub);
  line-height:1.8;
  margin:0 0 0;
}

/* テスト情報ブロック */
.kishu-test-block{
  margin-top:24px;
  padding:16px;
  background:#f0f0ed;
  border-left:none;
  position:relative;
}
.kishu-test-label{
  font-size:8px;
  font-weight:900;
  letter-spacing:2px;
  color:#fff;
  background:#888;
  display:inline-block;
  padding:2px 8px;
  margin:0 0 10px;
}
.kishu-test-body{
  font-size:11px;
  color:#888;
  line-height:1.8;
  margin:0 0 4px;
}

/* ============================================================
   guide_sp_1 ? ご利用ガイドページ
   ============================================================ */
.guide-section{
  padding:0 0 40px;
  background:var(--bg);
}

/* 各ブロック */
.guide-block{
  padding:22px var(--sp) 20px;
  border-bottom:1px solid var(--line);
  background:var(--bg);
}
.guide-block:first-child{
  border-top:none;
}
.guide-block--last{
  border-bottom:none;
}
/* 偶数ブロックに白背景で交互メリハリ */
.guide-block:nth-child(even){
  background:#fff;
}

.guide-block-head{
  display:flex;
  align-items:flex-start;
  gap:12px;
  margin-bottom:12px;
}

/* 番号タグ */
.guide-num{
  font-size:9px;
  font-weight:900;
  letter-spacing:.5px;
  background:var(--lime);
  color:var(--ink);
  padding:3px 7px;
  flex-shrink:0;
  line-height:1.5;
  margin-top:2px;
}

.guide-block-title{
  margin:0;
  font-size:14px;
  font-weight:900;
  letter-spacing:-0.3px;
  color:var(--ink);
  line-height:1.4;
}

.guide-body{
  margin:0 0 10px;
  font-size:12px;
  line-height:1.9;
  color:var(--sub);
}
.guide-body:last-child{margin-bottom:0}

/* ※注釈リスト */
.guide-notes{
  list-style:none;
  margin:10px 0 0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.guide-notes li{
  font-size:11px;
  line-height:1.8;
  color:#999;
  padding-left:16px;
  position:relative;
}
.guide-notes li::before{
  content:"&#8251;";
  position:absolute;
  left:0;
  top:0;
  font-size:11px;
  color:var(--lime);
  font-weight:900;
}

/* 動的価格エリア */
.guide-dynamic{
  min-height:20px;
}
.guide-dynamic p{
  margin:0 0 4px;
  font-size:12px;
  line-height:1.9;
  color:var(--sub);
}

/* ============================================================
   tai05_sp_1 ? 退会理由送信完了ページ
   ============================================================ */

/* 完了アイコンブロック */
.tai-complete-block{
  display:flex;
  flex-direction:column;
  align-items:center;
  padding:28px var(--sp) 24px;
  background:var(--ink);
  position:relative;
  overflow:hidden;
  text-align:center;
}
.tai-complete-block::after{
  content:"";
  position:absolute;
  right:-24px;top:0;bottom:0;
  width:100px;
  background:var(--lime);
  transform:skewX(-14deg);
  opacity:.06;
  pointer-events:none;
}

.tai-complete-icon{
  width:52px;height:52px;
  background:rgba(255,255,255,.08);
  color:#555;
  font-size:24px;
  font-weight:900;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;z-index:1;
  line-height:1;
  border:1px solid #333;
}

.tai-complete-label{
  margin:8px 0 12px;
  font-size:8px;
  font-weight:900;
  letter-spacing:3px;
  color:#444;
  position:relative;z-index:1;
}

.tai-complete-msg{
  margin:0;
  font-size:12px;
  line-height:1.9;
  color:#666;
  position:relative;z-index:1;
}

/* iframeラッパー */
.tai-iframe-wrap{
  background:var(--bg);
  padding:0;
}
.tai-iframe-wrap iframe{
  display:block;
  width:100%;
}

/* 戻るボタン */
.tai-back{
  padding:20px var(--sp) 0;
  background:var(--bg);
}

/* ============================================================
   tai04x_sp_1 ? 退会手続きページ
   ============================================================ */

/* お礼メッセージ */
.tai04-thanks-block{
  padding:24px var(--sp) 22px;
  background:var(--bg);
  border-bottom:1px solid var(--line);
}
.tai04-thanks-section-label{
  display:inline-block;
  font-size:8px;font-weight:900;letter-spacing:3px;
  color:var(--ink);background:var(--lime);
  padding:4px 10px;margin-bottom:14px;
  position:relative;
}
.tai04-thanks-section-label::after{
  content:"";position:absolute;
  bottom:-6px;left:0;width:100%;height:1px;
  background:var(--lime);opacity:.35;
}
.tai04-thanks-msg{
  margin:0 0 10px;font-size:13px;font-weight:700;
  line-height:1.7;color:var(--ink);
}
.tai04-thanks-body{
  margin:0 0 8px;font-size:12px;
  line-height:1.9;color:var(--sub);
}
.tai04-thanks-body:last-child{margin-bottom:0}

/* キャリア確認セクション */
.tai04-carrier-section{
  padding:22px var(--sp) 24px;
  background:#fff;
}

.tai04-carrier-head{
  display:flex;align-items:center;
  justify-content:center;gap:10px;
  margin-bottom:14px;
  padding-bottom:14px;
  border-bottom:1px solid var(--line);
}
.tai04-carrier-head-icon{
  font-size:10px;color:var(--lime);
}
.tai04-carrier-head-text{
  margin:0;font-size:11px;font-weight:900;
  letter-spacing:1px;color:var(--ink);
}

.tai04-carrier-note{
  margin:0 0 16px;font-size:11px;
  line-height:1.8;color:var(--ink);
}

/* キャリア別アイテム */
.tai04-carrier-item{
  padding:14px 0;
  border-bottom:1px solid var(--line);
}
.tai04-carrier-item:last-child{border-bottom:none}

.tai04-carrier-badge{
  margin-bottom:8px;
}
/* au/docomo/softbank pタグ流用 */
.tai04-carrier-badge p{
  display:inline-flex;align-items:center;gap:6px;
  font-size:11px;font-weight:700;color:var(--ink);
  margin:0;
}
.tai04-carrier-badge p span{
  font-size:9px;font-weight:900;letter-spacing:.5px;
  padding:2px 7px;line-height:1.5;
}
.tai04-carrier-badge--au p span{background:#e63c00;color:#fff}
.tai04-carrier-badge--docomo p span{background:#cc0033;color:#fff}
.tai04-carrier-badge--softbank p span{background:#111;color:#fff}

.tai04-carrier-body{
  margin:0;font-size:11px;line-height:1.8;color:var(--sub);
}

/* 退会ボタン */
.tai04-action{
  padding:20px var(--sp);
  background:var(--bg);
}
/* blue01-fullを上書きしてサイトデザインに統合 */
.blue01-full,
.tai04-retire-btn{
  display:flex !important;
  align-items:center;
  justify-content:space-between;
  width:100%;
  padding:16px var(--sp);
  background:var(--ink) !important;
  color:#fff !important;
  text-decoration:none !important;
  font-size:14px;font-weight:900;
  letter-spacing:.5px;
  position:relative;overflow:hidden;
  border:none !important;
  border-radius:0 !important;
  transition:background .2s;
  box-sizing:border-box;
}
.tai04-retire-btn::before{
  content:"";position:absolute;inset:0;
  background:#333;
  transform:translateX(-101%);
  transition:transform .32s cubic-bezier(.22,1,.36,1);
  z-index:0;
}
.tai04-retire-btn:hover::before{transform:translateX(0)}
.tai04-retire-btn span{
  position:relative;z-index:1;
}

/* 広告エリア */
.tai04-ad-block{
  padding:16px var(--sp);
  background:var(--bg);
  text-align:center;
  min-height:60px;
}

/* ============================================================
   tai04d_sp_1 ? 退会完了ページ
   ============================================================ */

/* 完了メッセージブロック */
.tai04d-thanks-block{
  display:flex;flex-direction:column;align-items:center;
  text-align:center;
  padding:28px var(--sp) 24px;
  background:var(--ink);
  position:relative;overflow:hidden;
}
.tai04d-thanks-block::after{
  content:"";position:absolute;
  right:-24px;top:0;bottom:0;width:100px;
  background:var(--lime);transform:skewX(-14deg);
  opacity:.06;pointer-events:none;
}
.tai04d-thanks-icon{
  width:52px;height:52px;
  background:rgba(255,255,255,.06);
  border:1px solid #333;
  color:#555;font-size:22px;font-weight:900;
  display:flex;align-items:center;justify-content:center;
  position:relative;z-index:1;margin-bottom:12px;
}
.tai04d-thanks-title{
  margin:0 0 12px;
  font-size:13px;font-weight:700;line-height:1.8;color:#fff;
  position:relative;z-index:1;
}
.tai04d-thanks-body{
  margin:0;font-size:11px;line-height:1.8;color:#555;
  position:relative;z-index:1;
}

/* ステータスブロック */
.tai04d-status-block{
  padding:22px var(--sp) 20px;background:#fff;
  border-bottom:1px solid var(--line);
}
.tai04d-status-label{
  font-size:8px;font-weight:900;letter-spacing:3px;
  color:var(--ink);background:var(--lime);
  display:inline-block;padding:4px 10px;margin-bottom:14px;
}
.tai04d-status-list{
  margin:0;padding:0;
  display:flex;flex-direction:column;
}
.tai04d-status-row{
  display:grid;grid-template-columns:100px 1fr;
  gap:0 12px;padding:10px 0;
  border-bottom:1px solid var(--line);align-items:baseline;
}
.tai04d-status-row:first-child{border-top:1px solid var(--line)}
.tai04d-status-row dt{
  font-size:9px;font-weight:900;letter-spacing:.5px;color:var(--sub);
}
.tai04d-status-row dd{
  margin:0;font-size:12px;color:var(--ink);line-height:1.6;
}
.tai04d-status-val--gone{color:#c00;font-weight:900}

/* TOPボタン */
.tai04d-action{padding:20px var(--sp);background:var(--bg)}
.retire_button2,
.tai04d-top-btn{
  display:flex !important;
  align-items:center;justify-content:space-between;
  width:100%;padding:16px var(--sp);
  background:var(--lime) !important;color:var(--ink) !important;
  text-decoration:none !important;font-size:14px;font-weight:900;
  position:relative;overflow:hidden;border:none !important;
  border-radius:0 !important;box-sizing:border-box;
}
.tai04d-top-btn::before{
  content:"";position:absolute;inset:0;
  background:var(--ink);
  transform:translateX(-101%);
  transition:transform .32s cubic-bezier(.22,1,.36,1);z-index:0;
}
.tai04d-top-btn:hover::before{transform:translateX(0)}
.tai04d-top-btn span{position:relative;z-index:1;transition:color .32s}
.tai04d-top-btn:hover span{color:#fff}

/* 広告エリア */
.tai04d-ad-block{
  padding:12px var(--sp);background:var(--bg);
  text-align:center;min-height:48px;
}

/* 利用規約セクション */
.tai04d-kiyaku-section{background:var(--bg)}
.tai04d-kiyaku-titlebar{margin-top:0}

/* 退会リンクブロック */
.tai04d-retire-link-block{
  padding:22px var(--sp) 20px;
  background:#fff;border-bottom:1px solid var(--line);
}
.tai04d-retire-link-note{
  font-size:12px;line-height:1.9;color:var(--sub);margin:0 0 10px;
}
.tai04d-retire-link{
  display:flex;align-items:center;justify-content:space-between;
  width:100%;padding:14px var(--sp);
  background:#f0f0ed;color:#888;
  text-decoration:none;font-size:12px;font-weight:700;
  transition:background .2s,color .2s;
}
.tai04d-retire-link:hover{background:var(--ink);color:#fff}

.tai04d-kiyaku-list{margin-top:0}

/* ============================================================
   tai04_tj_sp_1 ? 会員削除ページ追加CSS
   ============================================================ */

/* キャリア手順内のリンク */
.tai04-carrier-link{
  color:var(--ink);
  font-weight:700;
  text-decoration:underline;
  text-underline-offset:2px;
}
.tai04-carrier-link:hover{color:var(--sub)}

/* FAQセクション */
.tai04tj-faq-section{
  background:var(--bg);
}

/* ============================================================
   tai03_sp_1 ? 退会確認画面
   ============================================================ */

/* ページ固有ロゴ */
.tai03-logo-block{
  background:var(--ink);
  padding:16px var(--sp);
  border-bottom:1px solid #222;
}
.tai03-logo-h1{margin:0}
.tai03-logo-img{
  display:block;width:100%;max-width:240px;
  margin:0 auto;
  filter:brightness(0) invert(1);
  opacity:.6;
}

/* コンテンツラッパー */
.tai03-wrap{
  padding:24px var(--sp) 32px;
  background:var(--bg);
}

/* 警告ヘッダー */
.tai03-warning-head{
  display:flex;align-items:center;gap:10px;
  margin-bottom:14px;
  padding-bottom:14px;
  border-bottom:2px solid var(--ink);
}
.tai03-warning-icon{
  width:28px;height:28px;
  background:var(--ink);color:var(--lime);
  font-size:16px;font-weight:900;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
  font-style:normal;
}
.tai03-warning-title{
  font-size:14px;font-weight:900;letter-spacing:.3px;
  color:var(--ink);
}

.tai03-warning-body{
  font-size:13px;font-weight:700;line-height:1.8;
  color:var(--ink);margin:0 0 20px;text-align:center;
}

/* 注意事項リスト */
.tai03-caution-list{
  list-style:none;margin:0 0 24px;padding:0;
  counter-reset:caution-counter;
}
.tai03-caution-item{
  counter-increment:caution-counter;
  display:grid;grid-template-columns:auto 1fr;
  gap:0 10px;align-items:baseline;
  padding:11px 0;
  border-bottom:1px solid var(--line);
  font-size:12px;line-height:1.8;color:var(--sub);
}
.tai03-caution-item:first-child{border-top:1px solid var(--line)}
.tai03-caution-item::before{
  content:"&#9632;";
  font-size:7px;color:var(--lime);
  background:var(--ink);
  padding:3px 5px;
  flex-shrink:0;
  align-self:flex-start;
  margin-top:3px;
  line-height:1;
}

/* アクションエリア */
.tai03-action{
  display:flex;flex-direction:column;gap:10px;
  margin-top:8px;
}

/* 決定ボタン */
.retire_button2,
.tai03-decide-btn{
  display:flex !important;
  align-items:center;justify-content:space-between;
  width:100%;padding:16px var(--sp);
  background:var(--ink) !important;color:#fff !important;
  text-decoration:none !important;font-size:14px;font-weight:900;
  letter-spacing:.5px;border:none !important;border-radius:0 !important;
  position:relative;overflow:hidden;box-sizing:border-box;
  transition:background .2s;
}
.tai03-decide-btn::before{
  content:"";position:absolute;inset:0;
  background:#333;
  transform:translateX(-101%);
  transition:transform .32s cubic-bezier(.22,1,.36,1);z-index:0;
}
.tai03-decide-btn:hover::before{transform:translateX(0)}
.tai03-decide-btn span{position:relative;z-index:1}

/* やめておくボタン */
.tai03-cancel-btn{
  display:block;text-align:center;
  padding:13px var(--sp);
  font-size:12px;font-weight:700;color:var(--sub);
  text-decoration:none;
  border:1px solid var(--line);
  transition:color .2s,border-color .2s;
}
.tai03-cancel-btn:hover{color:var(--ink);border-color:var(--ink)}

/* ============================================================
   tai01_sp_1 ? 退会コース選択（course-list）
   tai03_sp_1 の .tai03-* と共存するクラス群
   ============================================================ */
.tai03-course-list{
  padding:0 var(--sp) 8px;
  display:flex;flex-direction:column;gap:0;
}
.tai03-course-item{
  border-bottom:1px solid var(--line);
}
.tai03-course-item:first-child{
  border-top:1px solid var(--line);
}
.tai03-course-link{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 4px;
  text-decoration:none;
  color:var(--ink);
  transition:background .15s,color .15s;
  gap:12px;
}
.tai03-course-link:active{
  background:rgba(200,255,50,.07);
  color:var(--lime);
}
.tai03-course-meta{
  display:flex;flex-direction:column;gap:3px;flex:1;
}
.tai03-course-title{
  font-size:14px;font-weight:700;letter-spacing:.3px;
}
.tai03-course-point{
  font-size:11px;color:var(--sub);font-weight:500;
}
.tai03-course-arrow{
  font-size:18px;color:var(--lime);flex-shrink:0;
  transition:transform .15s;
}
.tai03-course-link:active .tai03-course-arrow{
  transform:translateX(4px);
}
.tai03-ad-block{
  padding:16px var(--sp);
  text-align:center;
}

/* ============================================================
   tai02_sp_1 ? 退会アンケートページ
   ============================================================ */
.tai02-wrap{
  padding:0 0 24px;
  background:var(--bg);
}

.tai02-lead{
  padding:20px var(--sp) 16px;
  margin:0;font-size:12px;line-height:1.8;color:var(--sub);
  border-bottom:1px solid var(--line);
  background:#fff;
}

/* フォームリスト */
.tai02-form-list{
  margin:0;padding:0;
}
.tai02-form-block{
  padding:18px var(--sp);
  border-bottom:1px solid var(--line);
  background:var(--bg);
}
.tai02-form-block:nth-child(even){background:#fff}

.tai02-form-label{
  display:flex;align-items:flex-start;gap:10px;
  font-size:12px;font-weight:700;color:var(--ink);
  margin-bottom:12px;line-height:1.5;
}
.tai02-form-num{
  font-size:8px;font-weight:900;letter-spacing:.5px;
  background:var(--lime);color:var(--ink);
  padding:3px 6px;flex-shrink:0;line-height:1.5;
  align-self:flex-start;margin-top:1px;
}
.tai02-form-body{
  margin:0;
}

/* ラジオボタン */
.tai02-radio-group{
  display:flex;gap:20px;align-items:center;
}
.tai02-radio-label{
  display:flex;align-items:center;gap:8px;
  font-size:13px;color:var(--ink);cursor:pointer;
}
.tai02-radio-label input[type="radio"]{
  position:absolute;opacity:0;width:0;height:0;
}
.tai02-radio-custom{
  width:18px;height:18px;min-width:18px;
  border:2px solid #bbb;border-radius:50%;
  background:#fff;position:relative;
  transition:border-color .18s;flex-shrink:0;
}
.tai02-radio-label input[type="radio"]:checked + .tai02-radio-custom{
  border-color:var(--ink);background:var(--ink);
}
.tai02-radio-label input[type="radio"]:checked + .tai02-radio-custom::after{
  content:"";position:absolute;
  inset:3px;border-radius:50%;background:var(--lime);
}

/* テキストエリア */
.tai02-textarea{
  width:100%;min-height:100px;
  padding:12px;
  border:none;border-bottom:2px solid var(--ink);
  background:#fff;font-size:13px;font-family:inherit;
  color:var(--ink);line-height:1.8;resize:vertical;
  outline:none;transition:border-color .2s;
}
.tai02-textarea:focus{border-bottom-color:var(--lime)}

/* チェックボックスリスト */
.tai02-check-list{
  display:flex;flex-direction:column;gap:0;
}
.tai02-check-label{
  display:flex;align-items:center;gap:10px;
  padding:11px 0;border-bottom:1px solid var(--line);
  font-size:12px;color:var(--ink);cursor:pointer;line-height:1.5;
}
.tai02-check-label:first-child{border-top:1px solid var(--line)}
.tai02-checkbox{position:absolute;opacity:0;width:0;height:0}
.tai02-check-custom{
  width:18px;height:18px;min-width:18px;
  border:2px solid #bbb;background:#fff;
  display:flex;align-items:center;justify-content:center;
  transition:border-color .18s,background .18s;flex-shrink:0;
}
.tai02-checkbox:checked + .tai02-check-custom{
  border-color:var(--ink);background:var(--ink);
}
.tai02-checkbox:checked + .tai02-check-custom::after{
  content:"&#10003;";color:var(--lime);font-size:11px;font-weight:900;
}

/* 注意文 */
.tai02-caution{
  padding:16px var(--sp);margin:0;
  font-size:11px;line-height:1.8;color:var(--sub);
  background:#f0f0ed;border-top:1px solid var(--line);
}

/* アクション */
.tai02-action{
  padding:16px var(--sp) 24px;
  display:flex;flex-direction:column;gap:10px;
}

/* スキップリンク */
.tai02-skip-link{
  display:flex;align-items:center;justify-content:flex-end;
  gap:6px;padding:10px 0;
  font-size:11px;color:var(--sub);text-decoration:none;
  border-top:1px solid var(--line);
  transition:color .18s;
}
.tai02-skip-link:hover{color:var(--ink)}
.tai02-skip-arrow{font-size:12px}

/* ============================================================
   tai01_sp_1 ? コース選択ページ
   ============================================================ */

/* システムIDを保持しつつ再スタイル */
.tai01-course-container{
  padding:0;background:var(--bg);
  /* システムfooter_containerのスタイルをリセット */
  all:unset;
  display:block;
}
.tai01-course-wrap{
  all:unset;display:block;
}

.tai01-course-title{
  padding:20px var(--sp) 0;
  margin:0 0 16px;
  font-size:11px;font-weight:900;letter-spacing:1px;
  color:var(--sub);
  /* システムtitle_footerのスタイルをリセット */
  border:none !important;background:none !important;
}

/* コースリスト */
.tai01-course-list{
  list-style:none;margin:0;padding:0;
  counter-reset:course-counter;
}
.tai01-course-item{
  counter-increment:course-counter;
  border-bottom:1px solid var(--line);
}
.tai01-course-item:first-child{border-top:1px solid var(--line)}

.tai01-course-link{
  display:flex;align-items:center;
  gap:0;
  padding:0;
  text-decoration:none;
  color:var(--ink);
  position:relative;overflow:hidden;
  transition:background .18s;
}
.tai01-course-link::before{
  content:counter(course-counter, decimal-leading-zero);
  font-size:9px;font-weight:900;letter-spacing:.5px;
  background:var(--lime);color:var(--ink);
  padding:0 10px;
  align-self:stretch;
  display:flex;align-items:center;
  flex-shrink:0;
  min-height:52px;
  transition:background .18s,color .18s;
}
.tai01-course-link:hover::before{
  background:var(--ink);color:var(--lime);
}
.tai01-course-name{
  flex:1;
  padding:16px 14px;
  font-size:14px;font-weight:700;
  line-height:1.4;
}
.tai01-course-arrow{
  padding:16px 14px;
  font-size:14px;color:var(--sub);
  flex-shrink:0;
  transition:color .18s,transform .18s;
}
.tai01-course-link:hover .tai01-course-arrow{
  color:var(--ink);transform:translateX(3px);
}

/* ============================================================
   retiretxt3_sp_1 ? iframe専用退会完了コンテンツ
   ============================================================ */
.rtxt-body{
  background:var(--bg);
  margin:0;padding:0;
  display:block;
  justify-content:unset;
}
.rtxt-wrap{
  width:100%;
  max-width:768px;
  margin:0 auto;
  background:var(--bg);
  overflow:hidden;
}

/* 感謝ブロック（tai04dより小型） */
.rtxt-thanks-block{
  display:flex;flex-direction:column;align-items:center;
  text-align:center;
  padding:22px 16px 18px;
  background:var(--ink);
  position:relative;overflow:hidden;
}
.rtxt-thanks-block::after{
  content:"";position:absolute;
  right:-24px;top:0;bottom:0;width:100px;
  background:var(--lime);transform:skewX(-14deg);
  opacity:.06;pointer-events:none;
}
.rtxt-thanks-icon{
  width:44px;height:44px;
  background:rgba(255,255,255,.06);
  border:1px solid #333;
  color:#555;font-size:20px;font-weight:900;
  display:flex;align-items:center;justify-content:center;
  position:relative;z-index:1;margin-bottom:10px;
}
.rtxt-thanks-title{
  margin:0 0 10px;font-size:12px;font-weight:700;
  line-height:1.8;color:#fff;position:relative;z-index:1;
}
.rtxt-thanks-body{
  margin:0;font-size:11px;line-height:1.8;color:#555;
  position:relative;z-index:1;
}

/* アクション */
.rtxt-action{padding:16px;background:var(--bg)}
.rtxt-top-btn{font-size:13px !important;padding:14px 16px !important}

/* ============================================================
   account_sp_1 ? アカウント情報ページ
   (inline <style>をここに集約。クラス名・ID完全保持)
   ============================================================ */
#myinfo-member-page,
#myinfo-member-page * { box-sizing:border-box }

#myinfo-member-page {
  width:92%;max-width:620px;
  margin:0 auto;
  padding:24px 0 40px;
  color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Yu Gothic",sans-serif;
  line-height:1.7;
}

/* Home リンク */
#myinfo-member-page .myinfo-member-home {
  display:inline-flex;align-items:center;gap:6px;
  margin-bottom:22px;
  padding:8px 14px;
  border:1px solid var(--line);
  background:var(--bg);
  color:var(--ink);
  font-size:12px;font-weight:900;letter-spacing:.08em;
  text-decoration:none;
  transition:background .18s,color .18s;
}
#myinfo-member-page .myinfo-member-home:hover {
  background:var(--ink);color:var(--lime);
}

/* パネル（枠なし・透明） */
#myinfo-member-page .myinfo-member-panel {
  margin:0;padding:0;
  border:none;border-radius:0;
  background:transparent;box-shadow:none;
}

/* タイトル：sp-titlebar ルックに統一 */
#myinfo-member-page .myinfo-member-title {
  display:flex !important;
  align-items:center;
  justify-content:flex-start;
  width:100%;
  height:auto !important;
  min-height:52px;
  margin:0 0 1px;
  padding:15px 20px;
  border:0;border-radius:0;
  background:var(--ink);
  box-shadow:none;
  color:var(--bg);
  font-size:15px;font-weight:900;letter-spacing:.1em;
  line-height:1.3 !important;
  overflow:visible;
  text-align:left !important;text-indent:0;
  position:relative;
}
#myinfo-member-page .myinfo-member-title::before {
  content:"ACCOUNT";
  font-size:9px;font-weight:900;letter-spacing:2px;
  color:var(--lime);margin-right:14px;flex-shrink:0;
}
/* ライムのスラッシュアクセント */
#myinfo-member-page .myinfo-member-title::after {
  content:"";
  position:absolute;right:0;top:0;bottom:0;width:36px;
  background:var(--lime);
  clip-path:polygon(24px 0,100% 0,100% 100%,0 100%);
}

/* カード */
#myinfo-member-page .myinfo-member-card {
  margin:0;padding:0;
  border:1px solid var(--line);border-top:none;
  border-radius:0;
  background:var(--bg);
  box-shadow:none;
}

/* 行 */
#myinfo-member-page .myinfo-member-row {
  display:block;margin:0;
  padding:14px 16px;
  border-bottom:1px solid var(--line);
  text-align:left;
}
#myinfo-member-page .myinfo-member-row:last-child { border-bottom:0 }

/* ラベル */
#myinfo-member-page .myinfo-member-label {
  display:flex;align-items:center;gap:8px;
  margin:0 0 8px;
  font-size:10px;font-weight:900;letter-spacing:1.5px;
  color:var(--ink);
  text-align:left;
  -webkit-user-select:text !important;user-select:text !important;
}
#myinfo-member-page .myinfo-member-label::before {
  content:"";
  display:inline-block;
  width:8px;height:8px;
  background:var(--lime);flex-shrink:0;
}

/* 値フィールド */
#myinfo-member-page .myinfo-member-value {
  display:block;flex:1 1 auto;
  min-width:0;min-height:42px;
  padding:10px 12px;
  border:1px solid var(--line);border-radius:0;
  background:#f8f8f8;
  color:var(--ink);
  font-size:13px;font-weight:500;
  font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;
  line-height:1.6;
  overflow-wrap:anywhere;word-break:break-all;
  text-align:left;
  -webkit-touch-callout:default;
  -webkit-user-select:text !important;user-select:text !important;
  cursor:text;
}

/* 値行（flex） */
#myinfo-member-page .myinfo-member-value-line {
  display:flex;gap:6px;align-items:stretch;
}

/* コピーボタン */
#myinfo-member-page .myinfo-member-copy {
  position:relative;
  display:flex !important;
  flex:0 0 42px;
  align-items:center;justify-content:center;
  width:42px;min-width:42px;
  height:auto !important;min-height:42px;
  margin:0;padding:0;
  border:1px solid var(--line);border-radius:0;
  appearance:none;
  background:var(--bg);box-shadow:none;
  color:var(--ink);cursor:pointer;
  transition:background .18s,color .18s,border-color .18s;
  -webkit-user-select:none !important;user-select:none !important;
}
#myinfo-member-page .myinfo-member-copy:hover {
  border-color:var(--ink);
  background:var(--ink);color:var(--lime);
}
#myinfo-member-page .myinfo-member-copy:disabled {
  border-color:var(--line);
  background:var(--bg);color:#ccc;
  cursor:not-allowed;opacity:1;
}
#myinfo-member-page .myinfo-member-copy:focus-visible {
  outline:2px solid var(--lime);outline-offset:2px;
}
#myinfo-member-page .myinfo-member-copy svg {
  display:block;width:16px;height:16px;
  fill:none;stroke:currentColor;
  stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8;
}
/* コピー完了状態 */
#myinfo-member-page .myinfo-member-copy[data-copy-state="copied"] {
  border-color:var(--lime);
  background:var(--lime);color:var(--ink);
}
#myinfo-member-page .myinfo-member-copy[data-copy-state="copied"]::after {
  content:"コピーしました";
  position:absolute;right:0;bottom:calc(100% + 7px);z-index:2;
  width:max-content;
  padding:5px 8px;
  border-radius:0;
  background:var(--ink);color:var(--lime);
  font-size:10px;font-weight:900;letter-spacing:1px;
  line-height:1.4;
  pointer-events:none;white-space:nowrap;
}

/* フッター */
#myinfo-member-page .myinfo-member-footer {
  margin-top:26px;padding:0;
  color:var(--sub);font-size:11px;text-align:center;
}

/* ============================================================
   list_sp_1 ? コンテンツ一覧ページ
   ============================================================ */

/* コンテンツラッパー */
.list-content,.list-section {
  padding:0 0 40px;
  background:var(--bg);
}
.list-empty-block {
  padding:32px var(--sp);
  text-align:center;
}
.list-empty-text {
  font-size:13px;color:var(--sub);
  margin:0;
}

/* メッセージ */
.list-msg {
  padding:10px var(--sp);
  margin:0;
  font-size:12px;color:var(--sub);
  min-height:0;
}
.list-msg:empty { display:none }

/* コンテンツなし */
.list-empty {
  list-style:none;margin:0;padding:var(--sp);
}
.list-empty li {
  padding:32px 16px;
  text-align:center;
  font-size:13px;color:var(--sub);
  border:1px solid var(--line);
  background:var(--bg);
}
.list-empty li .header { display:none }

/* アイテムグリッド */
.list-grid {
  list-style:none;
  margin:0;
  padding:var(--sp);
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:10px;
}

/* 1アイテム */
.list-item {
  margin:0;padding:0;
  background:var(--bg);
  border:1px solid var(--line);
  position:relative;overflow:hidden;
}
/* ライム三角アクセント（右上） */
.list-item::after {
  content:"";
  position:absolute;top:0;right:0;
  width:0;height:0;
  border-style:solid;
  border-width:0 12px 12px 0;
  border-color:transparent var(--lime) transparent transparent;
  pointer-events:none;z-index:1;
}

/* リンク全体 */
.list-item-link {
  display:flex;flex-direction:column;
  text-decoration:none;color:var(--ink);
  height:100%;
  transition:opacity .18s;
}
.list-item-link:hover { opacity:.8 }

/* サムネイルラッパー */
.list-thumb-wrap {
  width:100%;
  aspect-ratio:1 / 1;
  overflow:hidden;
  background:#111;
  position:relative;
}
.list-thumb-wrap .clear { display:none }

/* サムネイル画像 */
.list-thumb {
  width:100% !important;
  height:100%;
  object-fit:cover;
  display:block;
}

/* アイテム名 */
.list-item-name {
  display:block;
  padding:8px 8px 10px;
  font-size:11px;font-weight:700;
  line-height:1.4;
  color:var(--ink);
  background:var(--bg);
  letter-spacing:.02em;
  flex:1;
}

/* ============================================================
   histories_list_sp_1 ? マイページ・ダウンロード履歴
   ============================================================ */

/* ポイント・件数バー */
.hist-info-bar {
  display:flex;align-items:stretch;
  border-bottom:1px solid var(--line);
  background:var(--ink);
}

/* ポイントブロック */
.hist-point-block {
  display:flex;flex-direction:column;justify-content:center;
  padding:14px 20px;
  border-right:1px solid #333;
  min-width:0;flex:0 0 auto;
}
.hist-point-label {
  font-size:9px;font-weight:900;letter-spacing:1.5px;
  color:var(--lime);text-transform:uppercase;
  margin-bottom:3px;
}
.hist-point-val {
  font-size:22px;font-weight:900;
  color:#fff;letter-spacing:.02em;
  font-family:"SFMono-Regular",Consolas,monospace;
  white-space:nowrap;
}
.hist-point-unit {
  font-size:11px;font-weight:700;
  color:var(--lime);margin-left:2px;letter-spacing:1px;
}

/* 件数ブロック */
.hist-count-block {
  display:flex;align-items:center;gap:6px;
  padding:14px 16px;
  flex:1;
}
.hist-count-num {
  font-size:24px;font-weight:900;
  color:#fff;font-family:"SFMono-Regular",Consolas,monospace;
  letter-spacing:.02em;
}
.hist-count-suffix {
  font-size:11px;color:#888;font-weight:500;
}

/* コンテンツエリア */
.hist-content { padding:0 0 40px;background:var(--bg) }

/* コンテンツなし */
.hist-empty {
  padding:40px var(--sp);
  text-align:center;
  font-size:13px;color:var(--sub);
}

/* アイテムグリッド */
.hist-grid {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:10px;
  padding:var(--sp);
}

/* 1アイテム */
.hist-item {
  background:var(--bg);
  border:1px solid var(--line);
  position:relative;overflow:hidden;
}
.hist-item::after {
  content:"";
  position:absolute;top:0;right:0;
  width:0;height:0;
  border-style:solid;
  border-width:0 12px 12px 0;
  border-color:transparent var(--lime) transparent transparent;
  pointer-events:none;z-index:1;
}

/* リンク全体 */
.hist-item-link {
  display:flex;flex-direction:column;
  text-decoration:none;color:var(--ink);
  height:100%;
  transition:opacity .18s;
}
.hist-item-link:hover { opacity:.8 }

/* サムネイルラッパー */
.hist-thumb-wrap {
  width:100%;
  aspect-ratio:1 / 1;
  overflow:hidden;
  background:#111;
}
.hist-thumb {
  width:100% !important;height:100%;
  object-fit:cover;display:block;
}

/* フッター（名前+DLボタン） */
.hist-item-footer {
  display:flex;align-items:center;justify-content:space-between;
  padding:8px 8px 10px;
  gap:4px;
}
.hist-item-name {
  font-size:11px;font-weight:700;
  line-height:1.4;color:var(--ink);
  overflow:hidden;text-overflow:ellipsis;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
}
.hist-dl-btn {
  flex-shrink:0;
  font-size:9px;font-weight:900;letter-spacing:.5px;
  background:var(--lime);color:var(--ink);
  padding:3px 6px;white-space:nowrap;
}

/* ============================================================
   histories_detail_sp_1 ? 詳細ページ（汎用CRUDビュー）
   ============================================================ */

/* アクション上部バー（Home / 編集） */
.detail-action-bar {
  display:flex;align-items:center;justify-content:space-between;
  padding:10px var(--sp);
  border-bottom:1px solid var(--line);
  background:var(--bg);
}
.detail-nav-home,.detail-nav-edit { line-height:1 }
.detail-nav-link {
  font-size:12px;font-weight:700;color:var(--ink);
  text-decoration:none;letter-spacing:.05em;
  display:inline-flex;align-items:center;gap:4px;
  transition:color .18s;
}
.detail-nav-link:hover { color:var(--lime) }
.detail-edit-link {
  font-size:11px;font-weight:900;letter-spacing:1px;
  color:var(--ink);text-decoration:none;
  padding:5px 10px;
  border:1px solid var(--ink);
  transition:background .18s,color .18s;
}
.detail-edit-link:hover {
  background:var(--ink);color:var(--lime);
}

/* サブタイトル */
.detail-subtitle {
  padding:8px var(--sp) 0;
  background:var(--bg);
}
.detail-h2 {
  font-size:11px;font-weight:900;letter-spacing:1.5px;
  color:var(--sub);text-transform:uppercase;
  margin:0;padding:0;
  border:none;background:none;
}

/* テーブルセクション */
.detail-section { padding:16px var(--sp) 0 }

/* 詳細テーブル */
.detail-table {
  width:100%;
  border-collapse:collapse;
  margin-bottom:2px;
}
.detail-table--cont { margin-top:0 }

/* セクションラベル（# キーの場合） */
.detail-section-label {
  font-size:10px;font-weight:900;letter-spacing:1.5px;
  color:var(--ink);
  padding:14px 0 6px;
  display:flex;align-items:center;gap:8px;
}
.detail-section-label::before {
  content:"";display:inline-block;
  width:8px;height:8px;background:var(--lime);flex-shrink:0;
}

/* 行 */
.detail-row { border-bottom:1px solid var(--line) }
.detail-row:last-child { border-bottom:none }

/* ヘッダーセル */
.detail-th {
  padding:11px 12px;
  font-size:11px;font-weight:900;letter-spacing:.05em;
  color:var(--ink);
  background:#f4f4f4;
  text-align:left;
  white-space:nowrap;
  width:38%;
  vertical-align:top;
  border-right:2px solid var(--lime);
}

/* データセル */
.detail-td {
  padding:11px 12px;
  font-size:13px;color:var(--ink);
  vertical-align:top;
  word-break:break-all;
  background:var(--bg);
}

/* アクションボタン */
.detail-actions {
  padding:20px var(--sp) 0;
  display:flex;flex-direction:column;gap:10px;
}
.detail-btn {
  display:block !important;
  width:100%;
  padding:14px;
  border:none;border-radius:0;
  font-size:13px;font-weight:900;letter-spacing:.1em;
  cursor:pointer;
  transition:background .18s,color .18s;
  appearance:none;
}
.detail-btn--edit {
  background:var(--lime);color:var(--ink);
}
.detail-btn--edit:hover {
  background:var(--ink);color:var(--lime);
}
.detail-btn--destroy {
  background:#555;color:#fff;
}
.detail-btn--destroy:hover {
  background:#222;color:#fff;
}

/* ナビリスト */
.detail-nav-list {
  list-style:none;margin:20px 0 0;padding:0 var(--sp);
  display:flex;flex-direction:column;gap:0;
}
.detail-nav-item {
  border-bottom:1px solid var(--line);
}
.detail-nav-item:first-child { border-top:1px solid var(--line) }
.detail-nav-item .detail-nav-link {
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 4px;
  font-size:13px;font-weight:700;color:var(--ink);
  text-decoration:none;
  transition:color .18s;
}
.detail-nav-item .detail-nav-link:hover { color:var(--lime) }
.detail-nav-arrow { font-size:14px;color:var(--sub);flex-shrink:0 }

/* ============================================================
   detail_img_sp_1 ? 壁紙ダウンロード詳細ページ
   ============================================================ */

.dlimg-wrap { padding:0 0 40px }

/* デバッグ（テスト端末のみ） */
.dlimg-debug {
  padding:8px var(--sp);
  background:#111;color:#0f0;
  font-size:10px;font-family:monospace;
  border-bottom:1px solid #333;
}

/* プレビューカード */
.dlimg-preview-card {
  display:flex;flex-direction:column;align-items:center;
  padding:28px var(--sp) 20px;
  background:var(--ink);
  position:relative;overflow:hidden;
}
/* スラッシュアクセント */
.dlimg-preview-card::after {
  content:"";position:absolute;
  right:-30px;top:0;bottom:0;width:80px;
  background:var(--lime);transform:skewX(-12deg);
  opacity:.06;pointer-events:none;
}
/* 画像フレーム（L字コーナー） */
.dlimg-preview-frame {
  position:relative;
  padding:8px;
  background:transparent;
}
.dlimg-preview-frame::before,
.dlimg-preview-frame::after {
  content:"";position:absolute;
  width:12px;height:12px;
  border-color:var(--lime);border-style:solid;
}
.dlimg-preview-frame::before {
  top:0;left:0;
  border-width:2px 0 0 2px;
}
.dlimg-preview-frame::after {
  bottom:0;right:0;
  border-width:0 2px 2px 0;
}
.dlimg-preview-img {
  display:block;width:180px !important;height:auto;
  max-width:100%;
}
/* コンテンツ名 */
.dlimg-title {
  margin:14px 0 0;
  font-size:14px;font-weight:700;
  color:#fff;text-align:center;
  position:relative;z-index:1;
}
/* ポイント行 */
.dlimg-point-row {
  display:flex;align-items:center;gap:10px;
  margin-top:10px;
  padding:8px 14px;
  background:rgba(255,255,255,.05);
  border:1px solid #333;
  position:relative;z-index:1;
}
.dlimg-point-label {
  font-size:10px;font-weight:900;letter-spacing:1px;
  color:var(--lime);flex-shrink:0;
}
.dlimg-point-val {
  font-size:18px;font-weight:900;
  color:#fff;font-family:"SFMono-Regular",Consolas,monospace;
}
.dlimg-point-unit {
  font-size:10px;font-weight:900;
  color:var(--lime);margin-left:2px;letter-spacing:1px;
}

/* アクションブロック共通 */
.dlimg-action-block {
  padding:24px var(--sp);
  background:var(--bg);
  border-bottom:1px solid var(--line);
}
.dlimg-action-label {
  font-size:9px;font-weight:900;letter-spacing:2px;
  color:var(--sub);margin-bottom:14px;
}

/* ダウンロードボタン（通常） */
.dlimg-dl-btn {
  display:flex;align-items:center;justify-content:center;gap:10px;
  width:100%;
  padding:16px;
  background:var(--lime);color:var(--ink);
  font-size:15px;font-weight:900;letter-spacing:.1em;
  text-decoration:none;
  position:relative;overflow:hidden;
  transition:background .18s,color .18s;
}
.dlimg-dl-btn::after {
  content:"";position:absolute;
  right:0;top:0;bottom:0;width:0;
  background:var(--ink);
  transition:width .25s;
  z-index:0;
}
.dlimg-dl-btn:hover::after { width:100% }
.dlimg-dl-btn:hover { color:var(--lime) }
.dlimg-dl-btn span { position:relative;z-index:1 }
.dlimg-dl-btn-icon { font-size:18px;line-height:1 }

/* 再ダウンロードボタン */
.dlimg-action-block--re { background:#f8f8f8 }
.dlimg-dl-btn--re {
  background:var(--ink);color:var(--lime);
}
.dlimg-dl-btn--re::after { background:var(--lime) }
.dlimg-dl-btn--re:hover { color:var(--ink) }

/* 保存の注意書き */
.dlimg-save-note {
  margin:10px 0 0;
  font-size:11px;color:var(--sub);text-align:center;
  line-height:1.6;
}

/* ポイント不足ブロック */
.dlimg-action-block--lack { background:#fafafa }
.dlimg-lack-msg { display:flex;flex-direction:column;gap:12px }
.dlimg-lack-current {
  display:flex;align-items:center;gap:10px;
  padding:10px 14px;
  border:1px solid var(--line);background:var(--bg);
}
.dlimg-lack-label {
  font-size:10px;font-weight:900;letter-spacing:1px;color:var(--sub);
}
.dlimg-lack-val {
  font-size:18px;font-weight:900;color:#c00;
  font-family:"SFMono-Regular",Consolas,monospace;
}
.dlimg-lack-text {
  margin:0;font-size:12px;color:var(--ink);line-height:1.8;
}
.dlimg-add-btn {
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 16px;
  background:var(--ink);color:var(--lime);
  font-size:13px;font-weight:900;letter-spacing:.08em;
  text-decoration:none;
  transition:opacity .18s;
}
.dlimg-add-btn:hover { opacity:.8 }

/* 確認メモ */
.dlimg-confirm-note {
  padding:16px var(--sp);
  background:#f4f4f4;
  border-top:1px solid var(--line);
}
.dlimg-confirm-label {
  display:inline-block;
  font-size:9px;font-weight:900;letter-spacing:1.5px;
  color:var(--ink);margin-bottom:6px;
}
.dlimg-confirm-note p {
  margin:0;font-size:11px;color:var(--sub);line-height:1.7;
}

/* ============================================================
   detail_fla_utas_sp_1 ? 楽曲ダウンロード詳細ページ
   (dlimg-* クラスを流用、追加スタイルのみ定義)
   ============================================================ */

/* 楽曲情報カード */
.dlfla-meta-card {
  padding:22px var(--sp) 20px;
  background:var(--ink);
  position:relative;overflow:hidden;
  border-bottom:2px solid var(--lime);
}
.dlfla-meta-card::after {
  content:"";position:absolute;
  right:-30px;top:0;bottom:0;width:80px;
  background:var(--lime);transform:skewX(-12deg);
  opacity:.06;pointer-events:none;
}
/* ラベル */
.dlfla-meta-label {
  font-size:9px;font-weight:900;letter-spacing:2px;
  color:var(--lime);margin-bottom:8px;position:relative;z-index:1;
}
/* タイトル */
.dlfla-meta-title {
  font-size:17px;font-weight:900;
  color:#fff;margin:0 0 16px;
  letter-spacing:.04em;line-height:1.4;
  position:relative;z-index:1;
  border:none !important;background:none !important;
  padding:0 !important;
}
/* メタデータリスト */
.dlfla-meta-list {
  margin:0 0 14px;padding:0;
  display:flex;flex-direction:column;gap:0;
  position:relative;z-index:1;
}
.dlfla-meta-row {
  display:flex;align-items:baseline;gap:0;
  border-bottom:1px solid #2a2a2a;
  padding:7px 0;
}
.dlfla-meta-row:first-child { border-top:1px solid #2a2a2a }
.dlfla-meta-key {
  flex:0 0 90px;
  font-size:10px;font-weight:900;letter-spacing:.08em;
  color:var(--lime);
}
.dlfla-meta-val {
  flex:1;
  font-size:12px;color:#ccc;
  margin:0;word-break:break-all;line-height:1.5;
}
.dlfla-meta-val:empty::before { content:"?";color:#444 }

/* ポイント行（dlimg流用・カード内用） */
.dlfla-point-row {
  position:relative;z-index:1;
  border:1px solid #333 !important;
  background:rgba(255,255,255,.05) !important;
}

/* ============================================================
   retire_ssbps_sp_1 ? ソフトバンク月額コース退会ページ
   ============================================================ */

/* 確認メッセージ */
.retire-ssbp-confirm {
  padding:14px var(--sp);
  background:var(--bg);
  border-bottom:1px solid var(--line);
}
.retire-ssbp-confirm-msg {
  margin:0;font-size:13px;color:var(--ink);line-height:1.7;
}

/* キャリア見出し */
.retire-ssbp-carrier-head {
  display:flex;align-items:center;justify-content:center;gap:10px;
  padding:12px var(--sp);
  background:var(--ink);
  color:#fff;
}
.retire-ssbp-carrier-icon {
  font-size:10px;color:var(--lime);
}
.retire-ssbp-carrier-name {
  font-size:12px;font-weight:900;letter-spacing:.1em;color:#fff;
}

/* セクション */
.retire-ssbp-section { background:var(--bg) }
.retire-ssbp-section-label {
  padding:14px var(--sp) 0;
}
.retire-ssbp-h2 {
  margin:0;
  font-size:11px;font-weight:900;letter-spacing:1.5px;
  color:var(--sub);
  border:none;background:none;padding:0;
}

/* リスト */
.retire-ssbp-list {
  list-style:none;margin:12px 0 0;padding:0 var(--sp);
  display:flex;flex-direction:column;gap:10px;
}

/* アイテム共通 */
.retire-ssbp-item {
  border:1px solid var(--line);
  border-radius:4px;
  overflow:hidden;
}

/* リンク */
.retire-ssbp-link {
  display:block;text-decoration:none;color:var(--ink);
  transition:background .18s;
}
.retire-ssbp-link:hover { background:#f4f4f4 }

/* 処理中リンク（クリック不可） */
.retire-ssbp-link--pending {
  cursor:default;pointer-events:none;
  background:#fafafa;
}

/* アイテム内部 */
.retire-ssbp-item-inner {
  padding:18px 20px;
  display:flex;flex-direction:column;gap:8px;
}

/* キャリアタグ */
.retire-ssbp-carrier-tag {
  display:inline-flex;align-items:center;
  font-size:9px;font-weight:900;letter-spacing:1px;
  padding:3px 8px;
  background:#333;color:#fff;
  width:fit-content;
}
/* Softbankカラー */
.retire-ssbp-carrier-tag::before {
  content:"SB";
  display:inline-block;
  background:#fff;color:#000;
  font-size:8px;font-weight:900;
  padding:1px 4px;margin-right:6px;
}

/* 金額 */
.retire-ssbp-amount {
  font-size:16px;font-weight:500;color:var(--ink);
  letter-spacing:.02em;
}
.retire-ssbp-amount .b {
  font-size:22px;font-weight:900;
  font-family:"SFMono-Regular",Consolas,monospace;
}

/* 状態バッジ（処理中） */
.retire-ssbp-status {
  font-size:11px;font-weight:900;
}
.retire-ssbp-status--pending {
  color:#cc3300;letter-spacing:.05em;
}

/* 処理中・待ちメモ */
.retire-ssbp-wait-note {
  margin:0;font-size:11px;color:var(--sub);line-height:1.6;
}

/* 退会CTAテキスト */
.retire-ssbp-cta {
  font-size:12px;font-weight:900;letter-spacing:.08em;
  color:var(--ink);
  border-top:1px solid var(--line);
  padding-top:8px;margin-top:2px;
}
.retire-ssbp-item:not(.retire-ssbp-item--pending) {
  border-color:var(--lime);
  border-width:2px;
}

/* コースなし */
.retire-ssbp-empty {
  padding:32px var(--sp);
  text-align:center;
  font-size:13px;color:var(--sub);
  border-top:1px solid var(--line);
}

/* ============================================================
   retire_ok_sp_1 ? 退会完了ページ
   (tai-complete-* 流用、追加スタイルのみ)
   ============================================================ */
.retire-ok-block {
  display:flex;flex-direction:column;align-items:center;
  padding:36px var(--sp) 28px;
  background:var(--ink);
  position:relative;overflow:hidden;
  text-align:center;
}
.retire-ok-block::after {
  content:"";position:absolute;
  right:-24px;top:0;bottom:0;width:100px;
  background:var(--lime);transform:skewX(-14deg);
  opacity:.06;pointer-events:none;
}
.retire-ok-block .tai-complete-icon {
  position:relative;z-index:1;
}
.retire-ok-block .tai-complete-label {
  position:relative;z-index:1;
}
.retire-ok-msg {
  margin:14px 0 0;
  font-size:13px;color:#aaa;
  line-height:1.9;
  position:relative;z-index:1;
}

/* ============================================================
   retire_ng_sp_1 ? 退会キャンセルページ
   ============================================================ */
.retire-ng-block {
  display:flex;flex-direction:column;align-items:center;
  padding:36px var(--sp) 28px;
  background:var(--bg);
  border-bottom:1px solid var(--line);
  text-align:center;
}
.retire-ng-icon {
  width:52px;height:52px;
  border:2px solid var(--line);
  background:var(--bg);
  color:var(--sub);
  font-size:22px;font-weight:900;
  display:flex;align-items:center;justify-content:center;
  margin-bottom:10px;
}
.retire-ng-label {
  font-size:9px;font-weight:900;letter-spacing:2px;
  color:var(--sub);margin:0 0 12px;
}
.retire-ng-msg {
  margin:0;font-size:13px;color:var(--ink);line-height:1.8;
}

/* ============================================================
   retire_docomo_sp_1 ? docomo d払い退会ページ
   (retire-ssbp-* 流用、docomo固有スタイルのみ追加)
   ============================================================ */

/* 補足注意書き */
.retire-docomo-sub-note {
  margin:6px 0 0;
  font-size:11px;color:var(--sub);line-height:1.6;
}

/* docomoキャリア見出し（赤アクセント） */
.retire-docomo-carrier-head {
  background:#c00;
}
.retire-docomo-carrier-head .retire-ssbp-carrier-name,
.retire-docomo-carrier-head .retire-ssbp-carrier-icon {
  color:#fff;
}

/* docomoキャリアタグ */
.retire-docomo-tag {
  background:#c00 !important;
}
.retire-docomo-tag::before {
  content:"d" !important;
  background:#fff;color:#c00 !important;
}

/* 価格ラップ */
.retire-docomo-price-wrap {
  display:flex;flex-direction:column;gap:4px;
}

/* 初月無料・お試しバッジ */
.retire-docomo-badge {
  display:inline-block;
  font-size:10px;font-weight:900;letter-spacing:.5px;
  padding:3px 8px;
  background:#fff0f0;color:#c00;
  border:1px solid #f5c0c0;
  width:fit-content;
}

/* 退会日翌々日注意 */
.retire-docomo-caution {
  margin:2px 0 0;
  font-size:10px;color:#c00;line-height:1.6;
}

/* docomo退会可能アイテムの左アクセント */
/* ============================================================
   retire_auone_sp_1 ? AUかんたん決済退会ページ
   (retire-ssbp-* 流用、au固有スタイルのみ追加)
   ============================================================ */

/* auキャリア見出し（橙） */
.retire-au-carrier-head { background:#e85e00 }
.retire-au-carrier-head .retire-ssbp-carrier-name,
.retire-au-carrier-head .retire-ssbp-carrier-icon { color:#fff }

/* auキャリアタグ */
.retire-au-tag { background:#e85e00 !important }
.retire-au-tag::before {
  content:"au" !important;
  background:#fff;color:#e85e00 !important;
}

/* 初回/次月以降 価格（小） */
.retire-au-price-sm {
  font-size:12px;color:var(--ink);line-height:1.7;
}

/* au退会可能アイテムの左アクセント（橙） */
/* ============================================================
   registered_sp_1 ? 会員登録失敗ページ
   ============================================================ */
.registered-err-block {
  display:flex;flex-direction:column;align-items:center;
  padding:36px var(--sp) 28px;
  background:var(--bg);
  border-bottom:1px solid var(--line);
  text-align:center;
}
.registered-err-icon {
  width:52px;height:52px;
  border:2px solid #c00;
  background:#fff5f5;
  color:#c00;
  font-size:26px;font-weight:900;font-style:italic;
  display:flex;align-items:center;justify-content:center;
  margin-bottom:10px;
}
.registered-err-label {
  font-size:9px;font-weight:900;letter-spacing:2px;
  color:#c00;margin:0 0 16px;
}
.registered-err-body {
  display:flex;flex-direction:column;gap:6px;
  max-width:340px;
}
.registered-err-msg {
  margin:0;font-size:14px;font-weight:700;
  color:var(--ink);line-height:1.7;
}
.registered-err-sub {
  margin:0;font-size:12px;color:var(--sub);line-height:1.8;
}

/* ============================================================
   regist_stop_sp_1 ? 会員登録制限ページ
   ============================================================ */
.regstop-block {
  display:flex;flex-direction:column;align-items:center;
  justify-content:center;
  padding:60px var(--sp) 50px;
  background:var(--ink);
  min-height:60vh;
  text-align:center;
  position:relative;overflow:hidden;
}
/* バックグラウンドのストライプ */
.regstop-block::before {
  content:"";position:absolute;inset:0;
  background:repeating-linear-gradient(
    -45deg,
    transparent,transparent 18px,
    rgba(255,255,255,.02) 18px,rgba(255,255,255,.02) 19px
  );pointer-events:none;
}
.regstop-icon {
  font-size:12px;color:var(--lime);
  letter-spacing:4px;
  margin-bottom:14px;
  position:relative;z-index:1;
  opacity:.7;
}
.regstop-label {
  font-size:9px;font-weight:900;letter-spacing:2.5px;
  color:var(--lime);margin:0 0 20px;
  position:relative;z-index:1;
}
.regstop-msg {
  font-size:13px;color:#aaa;
  margin:0 0 8px;line-height:1.8;
  position:relative;z-index:1;
}
.regstop-sub {
  font-size:14px;font-weight:700;color:#fff;
  margin:0 0 28px;line-height:1.8;
  position:relative;z-index:1;
}
/* ローディングドット（maintenance流用） */
.regstop-indicator {
  display:flex;gap:8px;
  position:relative;z-index:1;
}
.regstop-indicator span {
  width:7px;height:7px;
  background:var(--lime);
  border-radius:50%;
  animation:regstop-dot .9s infinite ease-in-out both;
}
.regstop-indicator span:nth-child(2) { animation-delay:.18s }
.regstop-indicator span:nth-child(3) { animation-delay:.36s }
@keyframes regstop-dot {
  0%,80%,100% { transform:scale(.6);opacity:.3 }
  40%         { transform:scale(1);opacity:1 }
}

/* ============================================================
   regist_ssbps_sp_1 ? SoftBank登録ページ
   ============================================================ */

/* 利用規約・課金日バー */
.regist-notice-bar {
  padding:12px var(--sp);
  background:#f8f8f8;
  border-bottom:1px solid var(--line);
  display:flex;flex-direction:column;gap:4px;
}
.regist-notice-terms {
  margin:0;font-size:12px;color:var(--ink);line-height:1.6;
}
.regist-notice-terms a { color:var(--ink);font-weight:700 }
.regist-notice-billing {
  margin:0;font-size:11px;font-weight:700;
  color:#c00;letter-spacing:.03em;
}

/* 警告ブロック（SoftBank B注意） */
/* ---- WARNING BLOCK ---- */
.regist-warning-block {
  margin:0 var(--sp) 4px;
  background:#fffcf2;
  border:1px solid #e8d080;
  border-top:3px solid #c89000;
  padding:16px 18px 18px;
}
.regist-warning-kicker {
  display:inline-block;
  font-size:9px;font-weight:900;letter-spacing:2px;
  color:#c89000;
  border:1px solid #c89000;
  padding:2px 8px;
  margin-bottom:8px;
}
.regist-warning-title {
  font-size:12px;font-weight:700;color:#5a4000;
  margin:0 0 10px;
  line-height:1.5;
}
.regist-warning-list {
  list-style:none;margin:0;padding:0;
  display:flex;flex-direction:column;gap:10px;
}
.regist-warning-list > li {
  font-size:11px;color:#5a4000;line-height:1.8;
  padding-left:14px;
  position:relative;
}
.regist-warning-list > li::before {
  content:"";
  position:absolute;left:0;top:7px;
  width:5px;height:5px;
  background:#c89000;
  transform:rotate(45deg);
}
.regist-warning-sub {
  list-style:none;margin:6px 0 0;padding:0 0 0 10px;
  display:flex;flex-direction:column;gap:3px;
}
.regist-warning-sub li {
  font-size:11px;color:#5a4000;
  padding-left:12px;position:relative;
}
.regist-warning-sub li::before {
  content:"?";
  position:absolute;left:0;color:#c89000;font-size:10px;
}

/* キャリアヘッド（SB黒） */
.regist-sb-carrier-head { background:#1a1a1a }

/* SBキャリアタグ（共通クラス拡張） */
.retire-ssbp-carrier-tag--sb {
  background:#333 !important;
  font-size:10px;font-weight:900;letter-spacing:1px;
  color:#fff;
  padding:3px 8px;
  display:inline-block;
  width:fit-content;
  margin-bottom:6px;
}

/* ポイント表示 */
.regist-sb-point {
  font-size:16px;font-weight:700;color:var(--ink);
  display:flex;align-items:baseline;gap:4px;
}
.regist-sb-point .b { font-size:22px;font-weight:900;font-family:"SFMono-Regular",Consolas,monospace }
.regist-sb-pt { font-size:11px;font-weight:900;color:var(--sub);letter-spacing:1px }

/* 価格ラップ */
.regist-sb-price-wrap {
  display:flex;flex-direction:column;gap:4px;margin-top:2px;
}

/* 無料バッジ（docomo流用・SBカラー） */
.regist-sb-badge {
  background:#fff5e0 !important;
  color:#7a5800 !important;
  border-color:#f0dfa0 !important;
}

/* 無料期間注意 */
.regist-sb-caution {
  margin:2px 0 0;
  font-size:10px;color:#c00;line-height:1.6;
}

/* 登録CTAテキスト */
.regist-sb-cta {
  color:var(--ink);font-weight:900;font-size:12px;letter-spacing:.08em;
  border-top:1px solid var(--line);
  padding-top:8px;margin-top:4px;
}

/* 登録済みバッジ */
.regist-sb-done-badge {
  font-size:10px;font-weight:900;letter-spacing:.5px;
  background:#eee;color:#999;
  padding:2px 6px;
}

/* 登録可能アイテム左アクセント（黒） */
/* SoftBankとは？セクション */
.regist-sb-info-section { background:var(--bg) }

/* ============================================================
   regist_ok_sp_1 ? 会員登録完了ページ
   ============================================================ */

/* 完了ブロック（retire_ok流用＋ライム強調） */
.regist-ok-block {
  background:var(--ink);
  border-bottom:3px solid var(--lime);
}
.regist-ok-block .tai-complete-icon {
  color:var(--lime);
  border-color:var(--lime);
  background:rgba(214,255,0,.08);
}
.regist-ok-block .tai-complete-label {
  color:var(--lime);
}

/* ログイン情報ブロック */
.regist-ok-logininfo {
  margin:0;
  border-bottom:1px solid var(--line);
}
.regist-ok-logininfo-head {
  padding:16px var(--sp) 12px;
  background:#f8f8f8;
  border-bottom:1px solid var(--line);
}
.regist-ok-logininfo-label {
  display:inline-flex;align-items:center;gap:8px;
  font-size:10px;font-weight:900;letter-spacing:1.5px;
  color:var(--ink);margin-bottom:8px;
}
.regist-ok-logininfo-label::before {
  content:"";display:inline-block;
  width:8px;height:8px;background:var(--lime);flex-shrink:0;
}
.regist-ok-logininfo-note {
  margin:0;font-size:12px;color:var(--ink);line-height:1.8;
}

/* ログイン情報リスト */
.regist-ok-logininfo-list {
  margin:0;padding:0;
}
.regist-ok-logininfo-row {
  display:flex;align-items:stretch;
  border-bottom:1px solid var(--line);
}
.regist-ok-logininfo-row:last-child { border-bottom:none }
.regist-ok-logininfo-key {
  flex:0 0 120px;
  font-size:11px;font-weight:900;letter-spacing:.05em;
  color:var(--ink);
  background:#f4f4f4;
  padding:12px var(--sp);
  display:flex;align-items:center;
  border-right:2px solid var(--lime);
}
.regist-ok-logininfo-val {
  flex:1;
  font-size:13px;font-weight:500;
  color:var(--ink);
  padding:12px var(--sp);
  font-family:"SFMono-Regular",Consolas,monospace;
  word-break:break-all;
  display:flex;align-items:center;
  margin:0;
}

/* ============================================================
   regist_docomo_sp_1 ? docomo d払い登録ページ
   ============================================================ */

/* 1コースラッパー */
.regist-dcm-single { background:var(--bg) }

/* キャンペーンバナー */
.regist-dcm-campaign {
  padding:28px var(--sp) 22px;
  background:var(--ink);
  text-align:center;
  position:relative;overflow:hidden;
  border-bottom:3px solid #c00;
}
.regist-dcm-campaign::after {
  content:"";position:absolute;
  right:-30px;top:0;bottom:0;width:80px;
  background:#c00;transform:skewX(-12deg);
  opacity:.12;pointer-events:none;
}
.regist-dcm-campaign-sub {
  font-size:11px;font-weight:700;color:#888;
  margin:0 0 6px;letter-spacing:.05em;
  position:relative;z-index:1;
}
.regist-dcm-campaign-main {
  font-size:17px;font-weight:700;color:#fff;
  margin:0;line-height:1.5;
  position:relative;z-index:1;
}
.regist-dcm-campaign-free {
  font-size:26px;font-weight:900;color:#c00;
  display:inline-block;
  text-shadow:0 0 20px rgba(200,0,0,.3);
}

/* dotted注意BOX（docomo d払い説明） */
.regist-dcm-note {
  border:2px dotted #c00;
  margin:16px var(--sp);
  padding:12px 14px;
  background:#fff5f5;
}
.regist-dcm-note p {
  margin:0;font-size:11px;color:#7a0000;line-height:1.8;
}

/* 1コース登録ボタン */
.regist-dcm-single-action {
  padding:20px var(--sp);
}
.regist-dcm-single-btn {
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 20px;
  text-decoration:none;
  font-size:14px;font-weight:900;letter-spacing:.08em;
  position:relative;overflow:hidden;
  transition:opacity .18s;
}
.regist-dcm-single-btn--active {
  background:#c00;color:#fff;
}
.regist-dcm-single-btn--active:hover { opacity:.85 }
.regist-dcm-single-btn--done {
  background:#eee;color:#999;
  cursor:default;
}
.regist-dcm-btn-label { flex:1 }
.regist-dcm-btn-arrow { font-size:16px;flex-shrink:0 }

/* 注意事項フッター */
.regist-dcm-footnote {
  padding:12px var(--sp) 20px;
  background:#f8f8f8;
  border-top:1px solid var(--line);
  display:flex;flex-direction:column;gap:6px;
}
.regist-dcm-footnote p {
  margin:0;font-size:10px;color:var(--sub);line-height:1.8;
}
.regist-dcm-footnote a { color:var(--ink);font-weight:700 }

/* 複数コースリスト（retire_docomo流用） */
/* ============================================================
   regist_auone_sp_1 ? AU登録ページ
   (regist_dcm-* 流用、au固有スタイルのみ追加)
   ============================================================ */

/* auキャンペーンバナー（橙） */
.regist-au-campaign { border-bottom:3px solid #e85e00 }
.regist-au-campaign-free { color:#e85e00 !important }

/* auキャリア見出し */
.regist-au-carrier-head { background:#e85e00 }
.regist-au-carrier-head .retire-ssbp-carrier-name,
.regist-au-carrier-head .retire-ssbp-carrier-icon { color:#fff }

/* dotted注意BOX（au グレー点線） */
.regist-au-note {
  border:2px dotted #aaa !important;
  background:#f8f8f8 !important;
}
.regist-au-note p { color:#555 !important }

/* auかんたん決済ロゴ */
.regist-au-payment-logo {
  display:flex;align-items:center;justify-content:center;
  padding:14px var(--sp);
  background:#fff;
  border-bottom:1px solid var(--line);
}
.regist-au-payment-logo img { max-width:249px;height:auto }

/* au登録ボタン（橙） */
.regist-au-single-btn--active {
  background:#e85e00;color:#fff;
}
.regist-au-single-btn--active:hover { opacity:.85 }

/* auバッジ */
.regist-sb-badge.regist-au-badge {
  background:#fff5ee !important;
  color:#7a3200 !important;
  border-color:#f0c090 !important;
}

/* au登録可能アイテム左アクセント（橙） */
/* ============================================================
   no_login_sp_1 ? ログインページ
   ============================================================ */

/* 案内文 */
.login-lead {
  padding:16px var(--sp);
  background:var(--bg);
  border-bottom:1px solid var(--line);
}
.login-lead p {
  margin:0;font-size:13px;color:var(--ink);line-height:1.8;
}

/* キャリアセクション群 */
.login-carriers {
  display:flex;flex-direction:column;
  background:var(--bg);
  padding:0 0 40px;
}

/* 各キャリアブロック */
.login-carrier-block {
  border-bottom:1px solid var(--line);
  overflow:hidden;
}
.login-carrier-block:first-child { border-top:1px solid var(--line) }

/* キャリアバッジ行 */
.login-carrier-badge {
  padding:12px var(--sp) 10px;
}
.login-carrier-badge p { margin:0 }

/* ボタンラップ */
.login-carrier-btn-wrap {
  padding:12px var(--sp) 20px;
  display:flex;align-items:center;justify-content:center;
}
.login-carrier-btn-wrap form { margin:0 }

/* 画像ボタン */
.login-carrier-img-btn {
  display:block;
  max-width:200px;height:auto;
  transition:opacity .18s;
}
.login-carrier-img-btn:hover { opacity:.8 }

/* キャリア別アクセント（左ボーダー） */
.login-carrier-block--docomo { border-left:3px solid #c00 }
.login-carrier-block--au     { border-left:3px solid #e85e00 }
.login-carrier-block--softbank { border-left:3px solid #1a1a1a }

/* ============================================================
   login_ng_id_sp_1 ? IDログイン要求ページ
   ============================================================ */
.login-ng-block {
  display:flex;flex-direction:column;align-items:center;
  padding:32px var(--sp) 24px;
  background:var(--bg);
  border-bottom:1px solid var(--line);
  text-align:center;
}
.login-ng-icon {
  width:52px;height:52px;
  border:2px solid #e8a000;
  background:#fffbf0;
  color:#e8a000;
  font-size:26px;font-weight:900;font-style:italic;
  display:flex;align-items:center;justify-content:center;
  margin-bottom:10px;
}
.login-ng-label {
  font-size:9px;font-weight:900;letter-spacing:2px;
  color:#e8a000;margin:0 0 12px;
}
.login-ng-msg {
  margin:0;font-size:13px;color:var(--ink);line-height:1.8;
}

/* ログイン案内 */
.login-ng-guide {
  padding:20px var(--sp) 32px;
  display:flex;flex-direction:column;gap:14px;
  background:var(--bg);
}
.login-ng-note {
  margin:0;font-size:12px;color:var(--sub);line-height:1.7;
}

/* ログインボタン */
.login-ng-btn {
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 20px;
  background:var(--ink);color:var(--lime);
  font-size:14px;font-weight:900;letter-spacing:.08em;
  text-decoration:none;
  transition:opacity .18s;
}
.login-ng-btn:hover { opacity:.8 }

/* 問い合わせテキスト */
.login-ng-contact {
  margin:0;font-size:12px;color:var(--sub);line-height:1.7;
  text-align:center;
}
.login-ng-contact a {
  color:var(--ink);font-weight:700;text-decoration:none;
}
.login-ng-contact a:hover { text-decoration:underline }

/* ============================================================
   login_info_sp_1 ? ログイン情報表示ページ
   ============================================================ */
.login-info-lead {
  padding:14px var(--sp);
  background:#f8f8f8;
  border-bottom:1px solid var(--line);
}
.login-info-lead p {
  margin:0;font-size:13px;font-weight:700;
  color:var(--ink);line-height:1.7;
}

/* ============================================================
   login_id_sp_1 ? IDログインフォームページ
   ============================================================ */
.login-id-form-wrap {
  padding:24px var(--sp) 40px;
  background:var(--bg);
}
.login-id-form {
  display:flex;flex-direction:column;gap:0;
  border:1px solid var(--line);
}
.login-id-form-label {
  padding:10px 14px;
  font-size:9px;font-weight:900;letter-spacing:2px;
  color:var(--ink);
  background:#f4f4f4;
  border-bottom:1px solid var(--line);
  display:flex;align-items:center;gap:8px;
}
.login-id-form-label::before {
  content:"";display:inline-block;
  width:8px;height:8px;
  background:var(--lime);flex-shrink:0;
}

/* フィールド行 */
.login-id-field {
  display:flex;align-items:center;
  border-bottom:1px solid var(--line);
}
.login-id-key {
  flex:0 0 110px;
  padding:14px 14px;
  font-size:12px;font-weight:900;letter-spacing:.05em;
  color:var(--ink);
  background:#f8f8f8;
  border-right:2px solid var(--lime);
  cursor:pointer;
}
.login-id-input {
  flex:1;
  padding:14px 12px;
  border:none;outline:none;
  font-size:16px;font-weight:500;
  color:var(--ink);
  background:var(--bg);
  font-family:"SFMono-Regular",Consolas,monospace;
  width:100%;
  -webkit-appearance:none;
}
.login-id-input:focus {
  background:#fffde8;
  box-shadow:inset 0 0 0 2px var(--lime);
}

/* 送信ボタン行 */
.login-id-submit-wrap {
  padding:16px 14px;
  background:var(--bg);
}
.login-id-submit-btn {
  display:block;
  width:100%;
  padding:16px;
  border:none;border-radius:0;
  background:var(--lime);color:var(--ink);
  font-size:15px;font-weight:900;letter-spacing:.1em;
  cursor:pointer;
  appearance:none;
  position:relative;overflow:hidden;
  transition:background .18s,color .18s;
}
.login-id-submit-btn:hover {
  background:var(--ink);color:var(--lime);
}

/* ============================================================
   docomo_connect_sp_1 ? docomoログアウトページ
   ============================================================ */
.dcm-logout-block {
  padding:24px var(--sp) 8px;
  background:var(--bg);
}
.dcm-logout-btn-wrap { width:100% }
.dcm-logout-btn {
  font-size:14px !important;
  background:#c00 !important;color:#fff !important;
}
.dcm-logout-btn:hover {
  background:#900 !important;
}

/* 規約・プライバシーリンク */
.dcm-doc-links {
  padding:8px var(--sp) 32px;
  display:flex;flex-direction:column;gap:0;
  background:var(--bg);
}
.dcm-doc-link {
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 4px;
  font-size:13px;font-weight:700;color:var(--ink);
  text-decoration:none;
  border-bottom:1px solid var(--line);
  transition:color .18s;
}
.dcm-doc-link:first-child { border-top:1px solid var(--line) }
.dcm-doc-link:hover { color:var(--lime) }
.dcm-doc-link-arrow { font-size:14px;color:var(--sub);flex-shrink:0 }

/* ============================================================
   dc-* ? docomo d払い登録ページ（新デザイン・派手版）
   ============================================================ */
.dc-wrap { background:var(--bg) }

/* ─── キャンペーンバナー ─── */
.dc-campaign {
  position:relative;overflow:hidden;
  background:#080808;
  padding:52px 20px 44px;
  text-align:center;
}

/* Aura */
.dc-aura { position:absolute;inset:0;pointer-events:none;z-index:0 }

/* Orbs */
.dc-orb {
  position:absolute;border-radius:50%;
  filter:blur(48px);
  animation:dc-orb-float 7s ease-in-out infinite;
}
.dc-orb--1 {
  width:240px;height:240px;
  background:rgba(200,0,0,.28);
  top:-80px;left:-60px;animation-delay:0s;
}
.dc-orb--2 {
  width:180px;height:180px;
  background:rgba(214,255,0,.14);
  bottom:-50px;right:-30px;animation-delay:2.4s;
}
.dc-orb--3 {
  width:140px;height:140px;
  background:rgba(180,0,0,.22);
  top:50%;left:50%;
  transform:translate(-50%,-50%);animation-delay:4.8s;
}
@keyframes dc-orb-float {
  0%,100% { transform:translateY(0) scale(1) }
  50%     { transform:translateY(-22px) scale(1.12) }
}
.dc-orb--3 {
  animation-name:dc-orb-float3;
}
@keyframes dc-orb-float3 {
  0%,100% { transform:translate(-50%,-50%) scale(1) }
  50%     { transform:translate(-50%,-58%) scale(1.12) }
}

/* Stars */
.dc-star {
  position:absolute;
  width:3px;height:3px;
  background:#fff;border-radius:50%;
  animation:dc-star-twinkle 2.2s ease-in-out infinite;
}
.dc-star--1 { top:12%;left:8%;animation-delay:0s }
.dc-star--2 { top:22%;right:12%;animation-delay:.35s }
.dc-star--3 { top:55%;left:6%;animation-delay:.7s }
.dc-star--4 { bottom:18%;right:8%;animation-delay:1.05s }
.dc-star--5 { top:38%;left:88%;animation-delay:1.4s }
.dc-star--6 { bottom:28%;left:18%;animation-delay:1.75s }
@keyframes dc-star-twinkle {
  0%,100% { opacity:.15;transform:scale(1) }
  50%     { opacity:1;transform:scale(2.5) }
}

/* Inner content */
.dc-campaign-inner { position:relative;z-index:1 }

.dc-kikan {
  font-size:11px;font-weight:900;letter-spacing:2.5px;
  color:#c00;margin:0 0 10px;
  text-shadow:0 0 10px rgba(200,0,0,.6);
}
.dc-copy {
  font-size:15px;color:#888;
  margin:0 0 6px;letter-spacing:.06em;
}

/* Free badge */
.dc-free-badge {
  display:inline-block;
  font-size:30px;font-weight:900;
  letter-spacing:.04em;
  color:#fff;
  background:linear-gradient(135deg,#990000 0%,#cc0000 40%,#ff3333 60%,#cc0000 100%);
  background-size:200% 200%;
  padding:14px 32px;
  margin:6px 0 10px;
  position:relative;
  box-shadow:0 0 32px rgba(200,0,0,.65),0 0 70px rgba(200,0,0,.25),inset 0 1px 0 rgba(255,255,255,.15);
  animation:dc-badge-pulse 2.4s ease-in-out infinite,dc-badge-shift 4s linear infinite;
  clip-path:polygon(6px 0,100% 0,calc(100% - 6px) 100%,0 100%);
}
@keyframes dc-badge-pulse {
  0%,100% { box-shadow:0 0 32px rgba(200,0,0,.65),0 0 70px rgba(200,0,0,.25) }
  50%     { box-shadow:0 0 55px rgba(255,50,50,.95),0 0 110px rgba(200,0,0,.5) }
}
@keyframes dc-badge-shift {
  0%   { background-position:0% 50% }
  50%  { background-position:100% 50% }
  100% { background-position:0% 50% }
}
/* キラキラ擬似要素 */
.dc-free-badge::before {
  content:"?";
  position:absolute;top:-8px;left:-8px;
  font-size:14px;color:var(--lime);
  animation:dc-star-twinkle 1.8s ease-in-out infinite;
}
.dc-free-badge::after {
  content:"?";
  position:absolute;bottom:-8px;right:-8px;
  font-size:14px;color:var(--lime);
  animation:dc-star-twinkle 1.8s ease-in-out infinite .9s;
}

.dc-copy2 {
  font-size:15px;color:#aaa;
  margin:6px 0 18px;letter-spacing:.06em;
}

/* Attention note */
.dc-attention {
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  padding:10px 14px;
  font-size:10px;color:#666;
  line-height:1.9;text-align:left;
  margin:0 auto;max-width:420px;
}

/* 登録ボタン */
.dc-regist-btn {
  padding:20px var(--sp) 12px;
  background:var(--bg);
}
.dc-btn-large {
  display:flex;align-items:center;justify-content:center;gap:8px;
  width:100%;
  padding:20px;
  background:var(--lime);color:var(--ink);
  font-size:16px;font-weight:900;letter-spacing:.12em;
  text-decoration:none;
  border:none;cursor:pointer;
  position:relative;overflow:hidden;
  transition:background .22s,color .22s;
}
.dc-btn-large::after {
  content:"";position:absolute;
  right:0;top:0;bottom:0;width:0;
  background:var(--ink);
  transition:width .28s;z-index:0;
}
.dc-btn-large:hover::after { width:100% }
.dc-btn-large:hover { color:var(--lime) }
.dc-btn-large span { position:relative;z-index:1 }
.dc-btn-registered {
  background:#222;color:#555 !important;
  cursor:not-allowed;
}
.dc-btn-registered::after { display:none }

/* キャリアバッジ */
.dc-carrier-badge {
  display:flex;align-items:center;justify-content:center;gap:8px;
  padding:10px var(--sp);
  background:#f0f0f0;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  font-size:11px;font-weight:900;color:#c00;
  letter-spacing:1.5px;
}
.dc-carrier-dot {
  width:7px;height:7px;
  background:#c00;border-radius:50%;
  box-shadow:0 0 6px rgba(200,0,0,.6);
  animation:dc-dot-blink 1.6s ease-in-out infinite;
}
@keyframes dc-dot-blink {
  0%,100% { opacity:1;box-shadow:0 0 6px rgba(200,0,0,.6) }
  50%     { opacity:.4;box-shadow:0 0 2px rgba(200,0,0,.2) }
}

/* 注記 */
.dc-note-small {
  padding:14px var(--sp);
  font-size:10px;color:var(--sub);
  line-height:1.9;background:var(--bg);
  border-bottom:1px solid var(--line);
}
.dc-note-small a { color:var(--ink);font-weight:700 }
.dc-single-desc {
  padding:16px var(--sp);
  font-size:13px;color:var(--ink);
  border-bottom:1px solid var(--line);margin:0;
}

/* 複数コース */
.dc-note {
  padding:12px var(--sp);margin:0;
  font-size:12px;color:var(--ink);
  background:#f8f8f8;border-bottom:1px solid var(--line);
}
.dc-note a { color:var(--ink);font-weight:700 }
.dc-billing-day {
  display:block;margin-top:4px;
  font-weight:700;color:#c00;font-size:11px;
}
.dc-course-title {
  padding:14px var(--sp) 0;margin:0;
  font-size:11px;font-weight:900;letter-spacing:1.5px;color:var(--sub);
}

/* コースカードリスト */
.dc-course-list {
  padding:var(--sp);
  display:flex;flex-direction:column;gap:8px;
}
.dc-course-card {
  display:flex;flex-direction:column;gap:6px;
  padding:16px 16px 16px 18px;
  border:1px solid var(--line);
  border-left:3px solid #c00;
  background:var(--bg);
  text-decoration:none;color:var(--ink);
  position:relative;overflow:hidden;
  transition:background .18s;
}
.dc-course-card::after {
  content:"";position:absolute;
  top:0;right:0;
  width:0;height:0;
  border-style:solid;
  border-width:0 10px 10px 0;
  border-color:transparent #c00 transparent transparent;
}
.dc-course-card:hover { background:#fff5f5 }
.dc-course-card--done {
  border-left-color:#ccc;background:#f8f8f8;
  pointer-events:none;
}
.dc-course-card--done::after { border-top-color:transparent;border-right-color:#ccc }
.dc-card-point {
  font-size:20px;font-weight:900;color:var(--ink);
  font-family:"SFMono-Regular",Consolas,monospace;
  letter-spacing:.02em;
}
.dc-card-price {
  font-size:12px;color:var(--sub);line-height:1.7;
}
.dc-free-tag {
  display:inline-block;
  background:#fff0f0;color:#c00;
  font-size:10px;font-weight:900;
  padding:2px 6px;
  border:1px solid #f5c0c0;
  margin-right:4px;
}
.dc-registered-label {
  font-size:10px;font-weight:900;
  background:#ddd;color:#999;
  padding:2px 6px;margin-left:6px;
}

/* d払いとは */
.dc-info-section {
  padding:20px var(--sp) 32px;
  border-top:1px solid var(--line);
}
.dc-info-section h3 {
  font-size:11px;font-weight:900;letter-spacing:1.5px;
  color:var(--sub);margin:0 0 10px;
}
.dc-info-link a {
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 0;
  font-size:13px;font-weight:700;color:var(--ink);
  text-decoration:none;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  transition:color .18s;
}
.dc-info-link a:hover { color:#c00 }

/* ============================================================
   dc-page--au ? AU版カラーオーバーライド
   (.dc-* の赤をすべて橙 #e85e00 に上書き)
   ============================================================ */
.dc-page--au .dc-orb--1 { background:rgba(232,94,0,.28) }
.dc-page--au .dc-orb--2 { background:rgba(255,180,60,.16) }
.dc-page--au .dc-orb--3 { background:rgba(200,70,0,.22) }

.dc-page--au .dc-kikan {
  color:#e85e00;
  text-shadow:0 0 10px rgba(232,94,0,.6);
}

.dc-page--au .dc-free-badge {
  background:linear-gradient(135deg,#b34400 0%,#e85e00 40%,#ff8533 60%,#e85e00 100%);
  box-shadow:0 0 32px rgba(232,94,0,.65),0 0 70px rgba(232,94,0,.25),inset 0 1px 0 rgba(255,255,255,.15);
}
@keyframes dc-badge-pulse-au {
  0%,100% { box-shadow:0 0 32px rgba(232,94,0,.65),0 0 70px rgba(232,94,0,.25) }
  50%     { box-shadow:0 0 55px rgba(255,100,20,.95),0 0 110px rgba(232,94,0,.5) }
}
.dc-page--au .dc-free-badge { animation:dc-badge-pulse-au 2.4s ease-in-out infinite,dc-badge-shift 4s linear infinite }

.dc-page--au .dc-carrier-badge {
  color:#e85e00;
  background:#fff8f2;
  border-top:1px solid #f0c090;
  border-bottom:1px solid #f0c090;
}
.dc-page--au .dc-carrier-dot {
  background:#e85e00;
  box-shadow:0 0 6px rgba(232,94,0,.6);
}
@keyframes dc-dot-blink-au {
  0%,100% { opacity:1;box-shadow:0 0 6px rgba(232,94,0,.6) }
  50%     { opacity:.4;box-shadow:0 0 2px rgba(232,94,0,.2) }
}
.dc-page--au .dc-carrier-dot { animation:dc-dot-blink-au 1.6s ease-in-out infinite }

/* auキャリアロゴ画像 */
.dc-carrier-logo {
  height:16px;width:auto;
  margin-right:6px;vertical-align:middle;
}

.dc-page--au .dc-billing-day { color:#e85e00 }

.dc-page--au .dc-course-card {
  border-left-color:#e85e00;
}
.dc-page--au .dc-course-card::after {
  border-right-color:#e85e00;
}
.dc-page--au .dc-course-card:hover { background:#fff8f2 }

.dc-page--au .dc-free-tag {
  background:#fff5ee;color:#b34400;border-color:#f0c090;
}

.dc-page--au .dc-info-link a:hover { color:#e85e00 }

/* ── スマホ（〜430px） ── */
@media(max-width:430px){
  .sub-hero{padding:52px var(--sp) 36px;min-height:180px}
  .sub-hero h1{font-size:24px}
  .sub-hero--sm{min-height:140px;padding:40px var(--sp) 28px}
  .sub-hero--sm h1{font-size:22px}
  .sub-cards{grid-template-columns:1fr}
  .sub-grid{grid-template-columns:1fr 1fr}
  .sub-section{padding:28px var(--sp) 32px}
  .retire-titlebar{padding:16px var(--sp) 14px}
  .retire-titlebar-h1{font-size:16px}
  .retire-section{padding:20px var(--sp) 28px}
  .retire-lead{font-size:11px;margin-bottom:18px;padding-bottom:14px}
  .retire-reasons label{font-size:12px;padding:11px 0}
  .retire-reasons textarea{min-height:100px;font-size:13px}
  .retire-btn{font-size:13px;padding:15px var(--sp)}
  .retire-cancel{font-size:11px;padding:12px}
  .retire-note p{font-size:10px}
  /* no_member / confirm */
  .sp-titlebar{padding:16px var(--sp) 14px}
  .sp-titlebar-h1{font-size:16px}
  .nomember-section{padding:20px var(--sp) 32px}
  .nomember-lead{font-size:12px;margin-bottom:22px;padding-bottom:16px}
  .nomember-regist-btn{padding:16px var(--sp)}
  .nomember-regist-btn-label{font-size:14px}
  .confirm-section{padding:20px var(--sp) 32px}
  .confirm-question{font-size:15px}
  .confirm-btn{padding:16px var(--sp)}
  .confirm-btn--go{padding:13px var(--sp)}
  .confirm-msg-block::before{font-size:72px}
  /* tokutei */
  .tokutei-section{padding:20px var(--sp) 32px}
  .tokutei-lead{font-size:11px;margin-bottom:18px;padding-bottom:14px}
  .tokutei-item-label{font-size:8px;padding:5px 8px}
  .tokutei-item-body{font-size:11px;padding:12px 8px}
  .tokutei-company{padding:18px var(--sp)}
  .tokutei-company-row{grid-template-columns:72px 1fr}
  .tokutei-company-row dt{font-size:8px}
  .tokutei-company-row dd{font-size:11px}
  .tokutei-company-note{font-size:10px}
  /* thanks */
  .thanks-icon-block{padding:24px var(--sp) 18px}
  .thanks-icon{width:48px;height:48px;font-size:22px}
  .thanks-msg-block{padding:20px var(--sp) 18px}
  .thanks span{font-size:13px}
  .thanks-body{font-size:12px}
  .thanks-check-block{padding:18px var(--sp) 16px}
  .thanks-checklist-item{font-size:11px;padding:10px 0}
  .thanks-back{padding:20px var(--sp) 0}
  /* toiawase */
  .toiawase-select-block{padding:20px var(--sp) 18px}
  .toiawase-select{padding:12px 36px 12px 12px;font-size:13px}
  .toiawase-tell-inner{padding:20px var(--sp) 24px}
  .toiawase-tell-notice p{font-size:12px}
  .toiawase-check-label{font-size:12px;padding:11px 0}
  .toiawase-tel-btn{font-size:14px;padding:15px var(--sp)}
  /* qa */
  .qa-section{padding:20px var(--sp) 32px}
  .qa-q{font-size:12px;padding:13px 0}
  .qa-a{font-size:11px;padding-bottom:16px;padding-left:calc(6px + 10px + 32px)}
  /* tai04d */
  .tai04d-thanks-block{padding:22px var(--sp) 18px}
  .tai04d-thanks-title{font-size:12px}
  .tai04d-status-block{padding:18px var(--sp) 16px}
  .tai04d-status-row{grid-template-columns:86px 1fr}
  /* tai04x */
  .tai04-thanks-block{padding:20px var(--sp) 18px}
  .tai04-thanks-msg{font-size:12px}
  .tai04-carrier-section{padding:18px var(--sp) 20px}
  .tai04-carrier-body{font-size:10px}
  /* guide */
  .guide-block{padding:18px var(--sp) 16px}
  .guide-block-title{font-size:13px}
  .guide-body{font-size:11px}
  .guide-notes li{font-size:10px}
  /* kishu */
  .kishu-section{padding:20px var(--sp) 28px}
  .kishu-device-os{font-size:16px}
  .kishu-devices{gap:3px}
  /* kiyaku */
  .kiyaku-section{padding:20px var(--sp) 32px}
  .kiyaku-q{font-size:12px;padding:12px 0}
  .kiyaku-a{font-size:11px;padding-bottom:14px;padding-left:calc(6px + 8px + 36px)}
  /* privacy */
  .privacy-section{padding:20px var(--sp) 32px}
  .privacy-lead{font-size:11px}
  .privacy-policy-item p{font-size:11px}
  .privacy-block-title{font-size:13px}
  .privacy-sub-title{font-size:10px}
  .privacy-sub-list li{font-size:11px}
  .privacy-contact{padding:18px var(--sp)}
  .privacy-contact-row{grid-template-columns:88px 1fr}
  .privacy-contact-row dd{font-size:11px}
}

/* ── タブレット（431px〜768px） ── */
@media(min-width:431px) and (max-width:768px){
  .sub-hero--sm{min-height:180px;padding:48px var(--sp) 36px}
  .retire-section{padding:36px 24px 44px}
  .retire-reasons label{font-size:13px}
}

/* ── 768px以上はサイト幅制限 ── */
@media(min-width:769px){
  .site{box-shadow:0 0 60px rgba(0,0,0,.35)}
  .sub-hero--sm{min-height:200px}
}

/* ========================================
   NO LOGIN PAGE  (no_login_sp_1.html)
   ======================================== */

.nl-shell {
  padding: 0 var(--sp) 56px;
  max-width: 480px;
  margin: 0 auto;
}

/* ── ヘッド ── */
.nl-head {
  text-align: center;
  padding: 36px 0 32px;
  position: relative;
}
.nl-head::after {
  content: '';
  display: block;
  width: 32px;
  height: 2px;
  background: var(--lime);
  margin: 20px auto 0;
}
.nl-kicker {
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 3px;
  color: var(--lime);
  margin: 0 0 10px;
}
.nl-title {
  font-size: 24px;
  font-weight: 900;
  letter-spacing: 2px;
  color: var(--ink);
  margin: 0 0 12px;
}
.nl-lead {
  font-size: 13px;
  color: var(--sub);
  line-height: 1.9;
  margin: 0;
}

/* ── ボタンリスト ── */
.nl-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.nl-item form {
  display: block;   /* button width:100% の親を確実にブロック化 */
  margin: 0;
  padding: 0;
}

/* ── ベースボタン（立体共通） ── */
.nl-btn {
  position: relative;
  display: flex;
  align-items: center;
  gap: 14px;
  width: 100%;
  padding: 18px 20px 18px 18px;
  border: none;
  border-radius: 10px;
  font-size: 15px;
  font-weight: 700;
  font-family: inherit;      /* button要素はfont継承しないため必須 */
  line-height: 1.2;
  cursor: pointer;
  text-decoration: none;
  box-sizing: border-box;
  letter-spacing: .3px;
  overflow: hidden;          /* ::before の光沢をborder-radiusでクリップ */
  appearance: none;
  -webkit-appearance: none;
  /* 立体感 */
  transform: translateY(0);
  transition: transform .1s ease, box-shadow .1s ease;
}
/* 押し込み */
.nl-btn:active {
  transform: translateY(4px);
}
/* 光沢ライン（上端） */
.nl-btn::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 50%;
  background: linear-gradient(180deg,
    rgba(255,255,255,.22) 0%,
    rgba(255,255,255,0) 100%
  );
  pointer-events: none;
}

/* キャリアラベル共通 */
.nl-btn-carrier {
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 1.5px;
  padding: 4px 9px;
  border-radius: 3px;
  flex-shrink: 0;
  white-space: nowrap;
  text-transform: uppercase;
  background: rgba(0,0,0,.18);
  color: rgba(255,255,255,.9);
  font-family: inherit;
}
.nl-btn-text {
  flex: 1;
  text-align: left;
  font-size: 14px;
  color: #fff;
}
.nl-btn-arrow {
  font-size: 24px;
  line-height: 1;
  flex-shrink: 0;
  color: rgba(255,255,255,.55);
}

/* ── docomo ? 深紅・立体 ── */
.nl-btn--docomo {
  background: linear-gradient(160deg, #ff2233 0%, #c8000e 100%);
  box-shadow:
    0 6px 0 #8c0009,
    0 8px 18px rgba(200,0,14,.38);
}
.nl-btn--docomo:active {
  box-shadow:
    0 2px 0 #8c0009,
    0 3px 8px rgba(200,0,14,.25);
}

/* ── au ? 琥珀・立体 ── */
.nl-btn--au {
  background: linear-gradient(160deg, #ff8e1f 0%, #d96400 100%);
  box-shadow:
    0 6px 0 #9a4500,
    0 8px 18px rgba(217,100,0,.38);
}
.nl-btn--au:active {
  box-shadow:
    0 2px 0 #9a4500,
    0 3px 8px rgba(217,100,0,.25);
}

/* ── SoftBank ? 夜紺・立体 ── */
.nl-btn--softbank {
  background: linear-gradient(160deg, #2e2e52 0%, #12122a 100%);
  box-shadow:
    0 6px 0 #060614,
    0 8px 18px rgba(6,6,20,.5);
}
.nl-btn--softbank:active {
  box-shadow:
    0 2px 0 #060614,
    0 3px 8px rgba(6,6,20,.35);
}
.nl-btn--softbank .nl-btn-carrier {
  background: rgba(168,192,255,.15);
  color: #a8c0ff;
}

/* ========================================
   LOGIN INFO PAGE  (login_info_sp_1.html)
   ======================================== */

.li-shell {
  padding: 0 var(--sp) 56px;
  max-width: 480px;
  margin: 0 auto;
}

/* ── ヘッド ── */
.li-head {
  text-align: center;
  padding: 36px 0 28px;
}
.li-head::after {
  content: '';
  display: block;
  width: 32px;
  height: 2px;
  background: var(--lime);
  margin: 18px auto 0;
}
.li-kicker {
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 3px;
  color: var(--lime);
  margin: 0 0 10px;
}
.li-title {
  font-size: 22px;
  font-weight: 900;
  letter-spacing: 2px;
  color: var(--ink);
  margin: 0;
}

/* ── クレデンシャルカード ── */
.li-card {
  background: #13131f;
  border-radius: 10px;
  overflow: hidden;
  box-shadow:
    0 6px 0 #09090f,
    0 8px 24px rgba(0,0,0,.45);
  margin-bottom: 20px;
}
.li-card-label {
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 3px;
  color: #13131f;
  background: var(--lime);
  padding: 7px 18px;
}
.li-cred-list {
  margin: 0;
  padding: 0;
}
.li-cred-row {
  padding: 18px 20px 16px;
  border-bottom: 1px solid rgba(255,255,255,.07);
}
.li-cred-row:last-child {
  border-bottom: none;
}
.li-cred-key {
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 2px;
  color: rgba(255,255,255,.38);
  margin: 0 0 7px;
}
.li-cred-val {
  font-size: 17px;
  font-weight: 700;
  color: #fff;
  letter-spacing: .5px;
  word-break: break-all;
  margin: 0;
  font-family: 'Courier New', Courier, monospace;
}

/* ── 注意書き ── */
.li-notice {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  background: #fffbec;
  border-left: 3px solid #d4a800;
  padding: 14px 16px;
  border-radius: 0 4px 4px 0;
  margin-bottom: 32px;
}
.li-notice-icon {
  font-size: 18px;
  line-height: 1.4;
  color: #d4a800;
  margin: 0;
  flex-shrink: 0;
}
.li-notice-text {
  font-size: 12px;
  color: #6a5000;
  line-height: 1.8;
  margin: 0;
}

/* ── TOPボタン ── */
.li-action {
  text-align: center;
}
.li-top-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 36px;
  background: var(--ink);
  color: var(--lime);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 2px;
  border-radius: 4px;
  text-decoration: none;
  transition: opacity .18s;
}
.li-top-btn:hover { opacity: .78; }

/* ========================================
   LOGIN ID PAGE  (login_id_sp_1.html)
   ======================================== */

.lid-shell {
  padding: 0 var(--sp) 56px;
  max-width: 480px;
  margin: 0 auto;
}

/* ── ヘッド ── */
.lid-head {
  text-align: center;
  padding: 36px 0 28px;
}
.lid-head::after {
  content: '';
  display: block;
  width: 32px;
  height: 2px;
  background: var(--lime);
  margin: 18px auto 0;
}
.lid-kicker {
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 3px;
  color: var(--lime);
  margin: 0 0 10px;
}
.lid-title {
  font-size: 22px;
  font-weight: 900;
  letter-spacing: 2px;
  color: var(--ink);
  margin: 0 0 10px;
}
.lid-lead {
  font-size: 13px;
  color: var(--sub);
  line-height: 1.8;
  margin: 0;
}

/* ── フォームカード ── */
.lid-form { margin: 0; }

.lid-card {
  background: #13131f;
  border-radius: 10px;
  overflow: hidden;
  box-shadow:
    0 6px 0 #09090f,
    0 8px 24px rgba(0,0,0,.45);
  margin-bottom: 20px;
}
.lid-card-label {
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 3px;
  color: #13131f;
  background: var(--lime);
  padding: 7px 18px;
}

/* ── 入力フィールド ── */
.lid-field {
  padding: 18px 20px 16px;
  border-bottom: 1px solid rgba(255,255,255,.07);
}
.lid-field:last-child { border-bottom: none; }

.lid-label {
  display: block;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 2px;
  color: rgba(255,255,255,.38);
  margin: 0 0 8px;
}
.lid-input {
  width: 100%;
  background: transparent;
  border: none;
  border-bottom: 1px solid rgba(255,255,255,.22);
  color: #fff;
  font-size: 16px;
  font-weight: 500;
  padding: 6px 0 9px;
  box-sizing: border-box;
  outline: none;
  transition: border-color .18s;
  -webkit-appearance: none;
}
.lid-input::placeholder {
  color: rgba(255,255,255,.2);
  font-size: 14px;
}
.lid-input:focus {
  border-bottom-color: var(--lime);
}

/* ── 送信ボタン（立体） ── */
.lid-submit-wrap { padding: 0; }

.lid-submit-btn {
  display: block;
  width: 100%;
  padding: 18px;
  background: linear-gradient(160deg, #d4f040 0%, #a8cc00 100%);
  color: #13131f;
  font-size: 15px;
  font-weight: 900;
  letter-spacing: 2px;
  border: none;
  border-radius: 10px;
  cursor: pointer;
  box-shadow:
    0 6px 0 #6a8a00,
    0 8px 18px rgba(160,200,0,.35);
  transform: translateY(0);
  transition: transform .1s ease, box-shadow .1s ease;
  -webkit-appearance: none;
  /* 光沢 */
  position: relative;
  overflow: hidden;
}
.lid-submit-btn::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg,
    rgba(255,255,255,.25) 0%,
    rgba(255,255,255,0) 55%
  );
  border-radius: 10px;
  pointer-events: none;
}
.lid-submit-btn:active {
  transform: translateY(5px);
  box-shadow:
    0 1px 0 #6a8a00,
    0 2px 6px rgba(160,200,0,.2);
}

/* ============================================================
   画像保護 ? 長押し・右クリック・ドラッグによる保存防止
   iOS / Android / PC 全対応
   ============================================================ */

/* @ iOS 長押しコールアウト（Save Image ダイアログ）を抑制 */
img {
  -webkit-touch-callout: none;
}

/* A ドラッグ保存を防止 */
.site img {
  -webkit-user-drag: none;
  user-drag: none;
  /* B 右クリックのターゲットを img 要素から除去
        （親 <a> がクリックを受け取るので遷移は壊れない） */
  pointer-events: none;
}

/* C 透明オーバーレイ ? Android 長押しメニュー防止
      img の上に空の ::after を重ね、長押し対象を画像以外にする */
.hist-thumb-wrap,
.list-thumb-wrap,
.dlimg-preview-frame {
  position: relative; /* 既存定義の念押し */
}
.hist-thumb-wrap::after,
.list-thumb-wrap::after,
.dlimg-preview-frame::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 3; /* img より前面 */
  /* pointer-events: auto がデフォルト → 長押しはここで受け取る（imgに届かない） */
}
