/* =========================================================
   RCP Register Form - Blue Modern Theme (Light Fixed v2)
   Author: ChatGPT
   ========================================================= */

:root{
  --rcp-primary:#1e6fff;
  --rcp-primary-600:#1a63e5;
  --rcp-primary-700:#1557cc;
  --rcp-primary-50:#f3f7ff;
  --rcp-bg:#ffffff;
  --rcp-surface:#ffffff;
  --rcp-text:#0f172a;
  --rcp-text-sub:#475569;
  --rcp-border:#e2e8f0;
  --rcp-border-strong:#cbd5e1;
  --rcp-ring:rgba(30,111,255,.35);
  --rcp-success:#16a34a;
  --rcp-danger:#e11d48;
  --rcp-warning:#f59e0b;
  --rcp-muted:#94a3b8;
  --rcp-radius-lg:14px;
  --rcp-radius-md:10px;
  --rcp-shadow-sm:0 4px 14px rgba(15,23,42,.06);
  --rcp-shadow-md:0 12px 28px rgba(15,23,42,.08);
  --rcp-gap:16px;
  --rcp-container:860px;
  --rcp-label:13.5px;
  --rcp-body:15.5px;
  --rcp-small:12.5px;
  --rcp-ease:cubic-bezier(.2,.7,.2,1);
}

/* ---------- Container ---------- */
#rcp_registration_form{
  box-sizing:border-box;
  max-width:var(--rcp-container);
  margin:24px auto 40px;
  padding:24px;
  background:
    linear-gradient(180deg, rgba(30,111,255,.06), transparent 38%),
    var(--rcp-bg);
  border:1px solid var(--rcp-border);
  border-radius:20px;
  box-shadow:var(--rcp-shadow-sm);
  color:var(--rcp-text);
  font-size:var(--rcp-body);
}
#rcp_registration_form *{ box-sizing:border-box; }
#rcp_registration_form p{ margin:0; }
#rcp_registration_form fieldset{ border:0; margin:0 0 18px; padding:0; }

/* ---------- Section Cards ---------- */
#rcp_registration_form .rcp_user_fieldset,
#rcp_registration_form .rcp_subscription_fieldset,
#rcp_registration_form .rcp_discounts_fieldset,
#rcp_registration_form .rcp_gateways_fieldset,
#rcp_registration_form .rcp_agree_to_terms_fieldset,
#rcp_registration_form .rcp_agree_to_privacy_policy_fieldset{
  background:var(--rcp-surface);
  border:1px solid var(--rcp-border);
  border-radius:var(--rcp-radius-lg);
  padding:18px;
  box-shadow:var(--rcp-shadow-sm);
}

#rcp_registration_form legend{
  font-weight:700;
  letter-spacing:.02em;
  color:var(--rcp-text);
  margin-bottom:10px;
}

/* ---------- Labels & Inputs ---------- */
#rcp_registration_form label{
  display:block;
  font-size:var(--rcp-label);
  color:var(--rcp-text-sub);
  margin:0 0 8px;
  font-weight:600;
}

#rcp_registration_form input[type="text"],
#rcp_registration_form input[type="email"],
#rcp_registration_form input[type="password"],
#rcp_registration_form input[type="number"]{
  width:100%;
  padding:12px 14px;
  border:1px solid var(--rcp-border-strong);
  border-radius:var(--rcp-radius-md);
  background:#fff;
  color:var(--rcp-text);
  outline:none;
  transition:border-color .2s var(--rcp-ease), box-shadow .2s var(--rcp-ease), transform .06s var(--rcp-ease);
}
#rcp_registration_form input[type="text"]:focus,
#rcp_registration_form input[type="email"]:focus,
#rcp_registration_form input[type="password"]:focus,
#rcp_registration_form input[type="number"]:focus{
  border-color:var(--rcp-primary) !important;
  box-shadow:0 0 0 5px var(--rcp-ring) !important;
}
#rcp_registration_form input[type="text"]:hover,
#rcp_registration_form input[type="email"]:hover,
#rcp_registration_form input[type="password"]:hover,
#rcp_registration_form input[type="number"]:hover{
  transform:translateY(-1px);
}

/* ---------- Grid for user fieldset ---------- */
#rcp_registration_form .rcp_user_fieldset{
  display:grid;
  grid-template-columns:1fr;
  gap:var(--rcp-gap);
}
#rcp_registration_form .rcp_user_fieldset p.inline{ margin:0; }
@media (min-width:720px){
  #rcp_registration_form .rcp_user_fieldset{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  #rcp_registration_form .rcp_user_fieldset p:not(.inline){ grid-column:1 / -1; }
}

/* ---------- Subscription Levels ---------- */
#rcp_subscription_levels{
  list-style:none; padding:0; margin:6px 0 0;
  display:grid; grid-template-columns:1fr; gap:var(--rcp-gap);
}
@media (min-width:720px){
  #rcp_subscription_levels{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
#rcp_subscription_levels .rcp_subscription_level{ margin:0; }
#rcp_subscription_levels .rcp_subscription_level input[type="radio"]{
  position:absolute; opacity:0; pointer-events:none;
}
#rcp_subscription_levels .rcp_subscription_level label{
  display:block; cursor:pointer;
  border:1.5px solid var(--rcp-border-strong);
  border-radius:16px;
  background:#fff;
  padding:16px 18px;
  box-shadow:0 6px 18px rgba(17,24,39,.05);
  transition:border-color .2s var(--rcp-ease), box-shadow .2s var(--rcp-ease), transform .06s var(--rcp-ease);
}
#rcp_subscription_levels .rcp_subscription_level label:hover{
  transform:translateY(-1px);
  box-shadow:var(--rcp-shadow-md);
}
#rcp_subscription_levels .rcp_subscription_level .rcp_subscription_level_name{
  display:inline-block; font-weight:800; color:var(--rcp-text); margin-right:6px; font-size:16px;
}
#rcp_subscription_levels .rcp_subscription_level .rcp_level_description{
  margin-top:10px; font-size:13.5px; color:#4b5874; line-height:1.6;
  background:#f7faff; border:1px dashed #d7e3ff; padding:10px 12px; border-radius:10px;
}
#rcp_subscription_levels .rcp_separator,
#rcp_subscription_levels .rcp_level_duration,
#rcp_subscription_levels .rcp_level_bill_times{
  color:#5b6b84; font-size:13.5px; font-weight:600;
}
#rcp_subscription_levels .rcp_subscription_level input[type="radio"]:checked + label{
  border-color:var(--rcp-primary) !important;
  box-shadow:0 0 0 5px var(--rcp-ring), var(--rcp-shadow-md) !important;
  background:linear-gradient(180deg, var(--rcp-primary-50), #fff 40%) !important;
}

/* ---------- Discount Code ---------- */
#rcp_discount_code_wrap label{ display:flex; align-items:center; gap:8px; }
#rcp_discount_code_wrap .rcp_discount_code_field_wrap{
  display:grid; grid-template-columns:1fr auto; gap:8px; margin-top:6px;
}

/* ---------- Buttons ---------- */
#rcp_registration_form .rcp_button,
#rcp_registration_form #rcp_apply_discount,
#rcp_registration_form #rcp_submit{
  display:inline-flex; align-items:center; justify-content:center; gap:.5ch;
  border:1px solid var(--rcp-primary); background:var(--rcp-primary); color:#fff;
  font-weight:700; letter-spacing:.01em; border-radius:999px; padding:11px 16px; line-height:1;
  cursor:pointer; transition:transform .06s var(--rcp-ease), box-shadow .2s var(--rcp-ease), background-color .2s var(--rcp-ease), border-color .2s var(--rcp-ease);
}
#rcp_registration_form .rcp_button:hover,
#rcp_registration_form #rcp_apply_discount:hover,
#rcp_registration_form #rcp_submit:hover{
  transform:translateY(-1px);
  box-shadow:0 8px 24px rgba(30,111,255,.25);
  background:var(--rcp-primary-600); border-color:var(--rcp-primary-600);
}
#rcp_registration_form .rcp_button:active,
#rcp_registration_form #rcp_apply_discount:active,
#rcp_registration_form #rcp_submit:active{ transform:translateY(0); }

#rcp_payment_gateways{ display:flex; flex-wrap:wrap; gap:10px 16px; }
#rcp_payment_gateways .rcp_gateway_option_label{
  display:inline-flex; align-items:center; gap:8px; padding:10px 12px;
  border-radius:999px; border:1px solid var(--rcp-border-strong); background:#fff; color:var(--rcp-text);
  cursor:pointer; transition:border-color .2s var(--rcp-ease), box-shadow .2s var(--rcp-ease), transform .06s var(--rcp-ease);
}
#rcp_payment_gateways input[type="radio"]{ accent-color:var(--rcp-primary); }
#rcp_registration_form input[type="checkbox"]{ accent-color:var(--rcp-primary); }
#rcp_payment_gateways .rcp_gateway_option_label:hover{ transform:translateY(-1px); box-shadow:var(--rcp-shadow-sm); }

/* ---------- Terms / Privacy ---------- */
#rcp_agree_to_terms_wrap, #rcp_agree_to_privacy_policy_wrap{
  display:flex; align-items:flex-start; gap:10px; padding:6px 0 0;
}
#rcp_agree_to_terms_wrap label, #rcp_agree_to_privacy_policy_wrap label{
  margin:0; color:var(--rcp-text);
}

/* ---------- Totals (強化セレクタ) ---------- */
#rcp_registration_form #rcp_registration_total,
#rcp_registration_form #rcp_registration_total_details{
  background:var(--rcp-surface);
  border:1px solid var(--rcp-border);
  border-radius:var(--rcp-radius-lg);
  box-shadow:var(--rcp-shadow-sm);
  overflow:hidden; margin:18px 0;
}

/* 表そのものに当たるように、考えられる全パターンへ */
#rcp_registration_form #rcp_registration_total table,
#rcp_registration_form #rcp_registration_total .rcp-table,
#rcp_registration_form #rcp_registration_total .rcp_table,
#rcp_registration_form #rcp_registration_total_details table,
#rcp_registration_form #rcp_registration_total_details .rcp-table,
#rcp_registration_form #rcp_registration_total_details .rcp_table{
  width:100% !important;
  border-collapse:collapse !important;
  font-size:14px !important;
}

#rcp_registration_form #rcp_registration_total tr,
#rcp_registration_form #rcp_registration_total .rcp-table tr,
#rcp_registration_form #rcp_registration_total .rcp_table tr,
#rcp_registration_form #rcp_registration_total_details tr,
#rcp_registration_form #rcp_registration_total_details .rcp-table tr,
#rcp_registration_form #rcp_registration_total_details .rcp_table tr{
  border-bottom:1px solid var(--rcp-border) !important;
}

#rcp_registration_form #rcp_registration_total td,
#rcp_registration_form #rcp_registration_total .rcp-table td,
#rcp_registration_form #rcp_registration_total .rcp_table td,
#rcp_registration_form #rcp_registration_total_details td,
#rcp_registration_form #rcp_registration_total_details .rcp-table td,
#rcp_registration_form #rcp_registration_total_details .rcp_table td{
  padding:12px 16px !important;
  color:var(--rcp-text) !important;
  vertical-align:middle !important;
}

/* 合計行の強調（rcp-total クラス／data-attr 両対応） */
#rcp_registration_form #rcp_registration_total .rcp-total td,
#rcp_registration_form #rcp_registration_total_details .rcp-total td{
  font-weight:800 !important;
  color:var(--rcp-primary-700) !important;
  background:linear-gradient(180deg, var(--rcp-primary-50), #fff 60%) !important;
}

/* 予備：最後の行が合計の場合 */
#rcp_registration_form #rcp_registration_total tr:last-child td,
#rcp_registration_form #rcp_registration_total_details tr:last-child td{
  font-weight:700;
}

/* スマホ：行をスタック */
@media (max-width:560px){
  #rcp_registration_form #rcp_registration_total tr,
  #rcp_registration_form #rcp_registration_total_details tr{
    display:grid; grid-template-columns:1fr 1fr; gap:6px 12px; padding:10px 12px;
  }
  #rcp_registration_form #rcp_registration_total td[data-title]::before,
  #rcp_registration_form #rcp_registration_total_details td[data-title]::before,
  #rcp_registration_form #rcp_registration_total td[data-th]::before,
  #rcp_registration_form #rcp_registration_total_details td[data-th]::before{
    content:attr(data-title) attr(data-th);
    font-weight:600; color:var(--rcp-text-sub); margin-right:6px;
  }
}

/* ---------- Submit Row ---------- */
#rcp_submit_wrap{ margin-top:18px; display:flex; justify-content:flex-end; }

/* ---------- Messages / Links ---------- */
#rcp_registration_form .rcp_login_link{
  margin:10px 0 14px; font-size:14px; color:var(--rcp-text-sub);
}
#rcp_registration_form .rcp_login_link a{
  color:var(--rcp-primary-700); font-weight:700; text-decoration:none; border-bottom:1px solid rgba(30,111,255,.35);
}
#rcp_registration_form .rcp_login_link a:hover{ border-bottom-color:var(--rcp-primary); }

/* ---------- Generic messages ---------- */
#rcp_registration_form .rcp-error,
#rcp_registration_form .rcp_error,
#rcp_registration_form .error{ color:var(--rcp-danger); }
#rcp_registration_form .rcp-success,
#rcp_registration_form .rcp_success{ color:var(--rcp-success); }

/* =========================================================
   Auth Pages - Blue Modern Theme
   Target: login.php / lostpassword.php / lostpassword_checkemail.php
   ========================================================= */

/* ---- Card wrapper ---- */
.auth-card {
  max-width: 520px;
  margin: 28px auto 40px;
  padding: 24px;
  background: var(--rcp-surface);
  border: 1px solid var(--rcp-border);
  border-radius: 20px;
  box-shadow: var(--rcp-shadow-sm);
  color: var(--rcp-text);
  font-size: var(--rcp-body);
}
.auth-card * { box-sizing: border-box; }

.auth-header {
  text-align: center;
  margin-bottom: 14px;
}
.auth-title {
  font-weight: 800;
  font-size: 20px;
  color: var(--rcp-text);
}

/* ---- タブ（ログイン / 登録 / パスワード再発行） ---- */
.auth-tabs {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin: 6px 0 18px;
}
.auth-tabs a {
  padding: 8px 12px;
  border: 1px solid var(--rcp-border);
  border-radius: 999px;
  background: #fff;
  color: #1f2a44;
  text-decoration: none;
  font-weight: 600;
  transition: box-shadow .2s var(--rcp-ease), border-color .2s var(--rcp-ease), transform .06s var(--rcp-ease);
}
.auth-tabs a:hover {
  transform: translateY(-1px);
  box-shadow: var(--rcp-shadow-sm);
}
.auth-tabs .is-active {
  border-color: var(--rcp-primary);
  color: var(--rcp-primary-700);
  background: linear-gradient(180deg, var(--rcp-primary-50), #fff 70%);
}

/* ---- フォーム共通 ---- */
.auth-card form,
#loginform, .rcp_login_form, form.login,
#lostpasswordform, .rcp_lostpassword_form {
  display: grid;
  gap: 14px;
}

.auth-card label,
#loginform label, .rcp_login_form label, form.login label,
#lostpasswordform label, .rcp_lostpassword_form label {
  display: block;
  margin: 0 0 6px;
  font-size: var(--rcp-label);
  color: #1f2a44;
  font-weight: 600;
}

.auth-card input[type="text"],
.auth-card input[type="email"],
.auth-card input[type="password"],
#loginform input[type="text"], #loginform input[type="password"],
.rcp_login_form input[type="text"], .rcp_login_form input[type="password"],
#lostpasswordform input[type="text"], #lostpasswordform input[type="email"],
.rcp_lostpassword_form input[type="text"], .rcp_lostpassword_form input[type="email"] {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--rcp-border-strong);
  border-radius: var(--rcp-radius-md);
  background: #fff;
  color: var(--rcp-text);
  transition: border-color .2s var(--rcp-ease), box-shadow .2s var(--rcp-ease), transform .06s var(--rcp-ease);
}
.auth-card input:focus,
#loginform input:focus, .rcp_login_form input:focus, form.login input:focus,
#lostpasswordform input:focus, .rcp_lostpassword_form input:focus {
  border-color: var(--rcp-primary);
  box-shadow: 0 0 0 5px var(--rcp-ring);
}
.auth-card input:hover,
#loginform input:hover, .rcp_login_form input:hover, form.login input:hover,
#lostpasswordform input:hover, .rcp_lostpassword_form input:hover {
  transform: translateY(-1px);
}

/* ---- Remember me / 補助行 ---- */
#loginform .forgetmenot {
  display: flex;
  align-items: center;
  gap: 6px;
}
#loginform .forgetmenot label {
  margin: 0;
  font-weight: 500;
  color: var(--rcp-text-sub);
}
#loginform .forgetmenot input[type="checkbox"] {
  accent-color: var(--rcp-primary);
}

/* ---- ボタン ---- */
.auth-primary-btn,
#loginform p.submit input[type="submit"],
#lostpasswordform p.submit input[type="submit"],
.rcp_login_form input[type="submit"],
.rcp_lostpassword_form input[type="submit"] {
  -webkit-appearance: none;
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5ch;
  background: var(--rcp-primary);
  border: 1px solid var(--rcp-primary);
  color: #fff;
  font-weight: 700;
  border-radius: 999px;
  padding: 11px 18px;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 8px 18px rgba(30,111,255,.22);
  transition: transform .06s var(--rcp-ease), box-shadow .2s var(--rcp-ease),
              background-color .2s var(--rcp-ease), border-color .2s var(--rcp-ease);
}
.auth-primary-btn:hover,
#loginform p.submit input[type="submit"]:hover,
#lostpasswordform p.submit input[type="submit"]:hover,
.rcp_login_form input[type="submit"]:hover,
.rcp_lostpassword_form input[type="submit"]:hover {
  transform: translateY(-1px);
  background: var(--rcp-primary-600);
  border-color: var(--rcp-primary-600);
}

/* ---- 補助リンク ---- */
.auth-links {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-top: 6px;
  font-size: 14px;
  color: var(--rcp-text-sub);
}
.auth-links a {
  color: var(--rcp-primary-700);
  text-decoration: none;
  border-bottom: 1px solid rgba(30,111,255,.35);
}
.auth-links a:hover {
  border-bottom-color: var(--rcp-primary);
}

/* ---- メッセージ ---- */
.auth-message, .message,
.login .message {
  margin: 10px 0 14px;
  padding: 12px 14px;
  border-radius: 12px;
  background: linear-gradient(180deg, #f0f7ff, #eef4ff);
  border: 1px solid var(--rcp-border);
  color: #143e8a;
  font-size: 14px;
}
.auth-error, .error, .login .notice-error {
  margin: 10px 0 14px;
  padding: 12px 14px;
  border-radius: 12px;
  background: #fff1f2;
  border: 1px solid #fecdd3;
  color: #9f1239;
  font-size: 14px;
}
.auth-success, .login .notice-success {
  margin: 10px 0 14px;
  padding: 12px 14px;
  border-radius: 12px;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  color: #166534;
  font-size: 14px;
}

/* ---- 確認メール画面 ---- */
.auth-checkemail {
  max-width: 520px;
  margin: 28px auto 40px;
  padding: 24px;
  background: var(--rcp-surface);
  border: 1px solid var(--rcp-border);
  border-radius: 20px;
  box-shadow: var(--rcp-shadow-sm);
  color: var(--rcp-text);
}
.auth-checkemail h1, .auth-checkemail h2 {
  font-size: 20px;
  font-weight: 800;
  margin: 0 0 8px;
  color: var(--rcp-text);
}
.auth-checkemail p {
  margin: 0 0 10px;
  color: var(--rcp-text-sub);
}
/* =========================================================
   RCP Login – Blue Modern Theme (attach to rcp-register.css)
   Markup: <form id="rcp_login_form" class="rcp_form">…</form>
   ========================================================= */

/* カード化（必要なら親に .auth-card を付ける代わりにフォーム自体を装飾） */
#rcp_login_form{
  max-width: 520px;
  margin: 28px auto 40px;
  padding: 24px;
  background: var(--rcp-surface);
  border: 1px solid var(--rcp-border);
  border-radius: 20px;
  box-shadow: var(--rcp-shadow-sm);
  font-size: var(--rcp-body);
  color: var(--rcp-text);
}
#rcp_login_form *{ box-sizing: border-box; }

/* 行レイアウト */
#rcp_login_form fieldset{ border:0; padding:0; margin:0; }
#rcp_login_form .rcp_login_data{ display:grid; gap:14px; }

/* ラベル・入力 */
#rcp_login_form label{
  display:block;
  margin:0 0 6px;
  font-size:var(--rcp-label);
  color:#1f2a44;
  font-weight:600;
}
#rcp_login_form input[type="text"],
#rcp_login_form input[type="password"]{
  width:100%;
  padding:12px 14px !important;
  border:1px solid var(--rcp-border-strong) !important;
  border-radius: var(--rcp-radius-md) !important;
  background:#fff !important;
  color:var(--rcp-text) !important;
  transition:border-color .2s var(--rcp-ease), box-shadow .2s var(--rcp-ease), transform .06s var(--rcp-ease);
}
#rcp_login_form input[type="text"]:focus,
#rcp_login_form input[type="password"]:focus{
  border-color: var(--rcp-primary) !important;
  box-shadow: 0 0 0 5px var(--rcp-ring) !important;
}
#rcp_login_form input[type="text"]:hover,
#rcp_login_form input[type="password"]:hover{
  transform: translateY(-1px);
}

/* チェックボックス行 */
#rcp_login_form #rcp_user_remember{ accent-color: var(--rcp-primary); }
#rcp_login_form label[for="rcp_user_remember"]{
  display:inline-block; margin-left:6px; color: var(--rcp-text-sub); font-weight:500;
}

/* 「パスワードを忘れましたか？」リンク */
#rcp_login_form .rcp_lost_password{
  margin-top: -4px;
}
#rcp_login_form .rcp_lost_password a{
  color: var(--rcp-primary-700);
  text-decoration: none;
  border-bottom: 1px solid rgba(30,111,255,.35);
}
#rcp_login_form .rcp_lost_password a:hover{ border-bottom-color: var(--rcp-primary); }

/* エラーメッセージ */
.entry-content .rcp_message.error,
#rcp_login_form .rcp_message.error{
  margin: 0 0 14px;
  padding: 12px 14px;
  border-radius: 12px;
  background:#fff1f2;
  border:1px solid #fecdd3;
  color:#9f1239;
  font-size:14px;
}

/* 送信ボタン */
#rcp_login_submit.rcp-button{
  -webkit-appearance:none; appearance:none;
  display:inline-flex; align-items:center; justify-content:center; gap:.5ch;
  background: var(--rcp-primary) !important;
  border: 1px solid var(--rcp-primary) !important;
  color:#fff !important; font-weight:700;
  border-radius:999px !important;
  padding:11px 18px !important; line-height:1;
  cursor:pointer;
  box-shadow:0 8px 18px rgba(30,111,255,.22);
  transition: transform .06s var(--rcp-ease), box-shadow .2s var(--rcp-ease),
              background-color .2s var(--rcp-ease), border-color .2s var(--rcp-ease);
}
#rcp_login_submit.rcp-button:hover{
  transform: translateY(-1px);
  background: var(--rcp-primary-600) !important;
  border-color: var(--rcp-primary-600) !important;
}

/* スマホ整形 */
@media (max-width:560px){
  #rcp_login_form{ padding:20px 16px; border-radius:16px; }
}


/* =========================================================
   RCP Lost Password – Blue Modern Theme
   Markup: <form id="rcp_lostpassword_form" class="rcp_form">…</form>
   ========================================================= */

/* フォーム全体をカード化（loginと同テイスト） */
#rcp_lostpassword_form{
  max-width: 520px;
  margin: 28px auto 40px;
  padding: 24px;
  background: var(--rcp-surface);
  border: 1px solid var(--rcp-border);
  border-radius: 20px;
  box-shadow: var(--rcp-shadow-sm);
  font-size: var(--rcp-body);
  color: var(--rcp-text);
}
#rcp_lostpassword_form *{ box-sizing: border-box; }
#rcp_lostpassword_form fieldset{ border:0; padding:0; margin:0; }
#rcp_lostpassword_form .rcp_lostpassword_data{ display:grid; gap:14px; }

/* ラベル & 入力 */
#rcp_lostpassword_form label{
  display:block;
  margin:0 0 6px;
  font-size:var(--rcp-label);
  color:#1f2a44;
  font-weight:600;
}
#rcp_lostpassword_form input[type="text"],
#rcp_lostpassword_form input[type="email"]{
  width:100%;
  padding:12px 14px !important;
  border:1px solid var(--rcp-border-strong) !important;
  border-radius: var(--rcp-radius-md) !important;
  background:#fff !important;
  color:var(--rcp-text) !important;
  transition:border-color .2s var(--rcp-ease), box-shadow .2s var(--rcp-ease), transform .06s var(--rcp-ease);
}
#rcp_lostpassword_form input[type="text"]:focus,
#rcp_lostpassword_form input[type="email"]:focus{
  border-color: var(--rcp-primary) !important;
  box-shadow: 0 0 0 5px var(--rcp-ring) !important;
}
#rcp_lostpassword_form input[type="text"]:hover,
#rcp_lostpassword_form input[type="email"]:hover{
  transform: translateY(-1px);
}

/* 送信ボタン */
#rcp_lostpassword_submit.rcp-button{
  -webkit-appearance:none; appearance:none;
  display:inline-flex; align-items:center; justify-content:center; gap:.5ch;
  background: var(--rcp-primary) !important;
  border: 1px solid var(--rcp-primary) !important;
  color:#fff !important; font-weight:700;
  border-radius:999px !important;
  padding:11px 18px !important; line-height:1;
  cursor:pointer;
  box-shadow:0 8px 18px rgba(30,111,255,.22);
  transition: transform .06s var(--rcp-ease), box-shadow .2s var(--rcp-ease),
              background-color .2s var(--rcp-ease), border-color .2s var(--rcp-ease);
}
#rcp_lostpassword_submit.rcp-button:hover{
  transform: translateY(-1px);
  background: var(--rcp-primary-600) !important;
  border-color: var(--rcp-primary-600) !important;
}

/* エラーメッセージ（存在する場合） */
.entry-content .rcp_message.error,
#rcp_lostpassword_form .rcp_message.error{
  margin: 0 0 14px;
  padding: 12px 14px;
  border-radius: 12px;
  background:#fff1f2;
  border:1px solid #fecdd3;
  color:#9f1239;
  font-size:14px;
}

/* モバイル微調整 */
@media (max-width:560px){
  #rcp_lostpassword_form{ padding:20px 16px; border-radius:16px; }
}


/* =========================================================
   RCP Profile Editor – Blue Modern Theme
   Markup: <form id="rcp_profile_editor_form" class="rcp_form">…</form>
   ========================================================= */

#rcp_profile_editor_form {
  max-width: 720px;
  margin: 28px auto 40px;
  padding: 24px;
  background: var(--rcp-surface);
  border: 1px solid var(--rcp-border);
  border-radius: 20px;
  box-shadow: var(--rcp-shadow-sm);
  font-size: var(--rcp-body);
  color: var(--rcp-text);
}
#rcp_profile_editor_form * { box-sizing: border-box; }
#rcp_profile_editor_form fieldset { border: 0; padding: 0; margin: 0 0 18px; }
#rcp_profile_editor_form legend {
  font-weight: 700;
  font-size: 15px;
  margin-bottom: 12px;
  color: var(--rcp-text);
}

/* ---- フォーム行 ---- */
#rcp_profile_editor_form p {
  margin: 0 0 16px;
}
#rcp_profile_editor_form label {
  display: block;
  margin: 0 0 6px;
  font-size: var(--rcp-label);
  color: #1f2a44;
  font-weight: 600;
}
#rcp_profile_editor_form input[type="text"],
#rcp_profile_editor_form input[type="email"],
#rcp_profile_editor_form input[type="password"],
#rcp_profile_editor_form select,
#rcp_profile_editor_form textarea {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--rcp-border-strong);
  border-radius: var(--rcp-radius-md);
  background: #fff;
  color: var(--rcp-text);
  transition: border-color .2s var(--rcp-ease), box-shadow .2s var(--rcp-ease), transform .06s var(--rcp-ease);
}
#rcp_profile_editor_form input:focus,
#rcp_profile_editor_form select:focus,
#rcp_profile_editor_form textarea:focus {
  border-color: var(--rcp-primary) !important;
  box-shadow: 0 0 0 5px var(--rcp-ring) !important;
}
#rcp_profile_editor_form input:hover,
#rcp_profile_editor_form select:hover,
#rcp_profile_editor_form textarea:hover {
  transform: translateY(-1px);
}

/* ---- チェックボックス/ラジオ ---- */
#rcp_profile_editor_form input[type="checkbox"],
#rcp_profile_editor_form input[type="radio"] {
  accent-color: var(--rcp-primary);
}

/* ---- 送信ボタン ---- */
#rcp_profile_editor_form input[type="submit"],
#rcp_profile_editor_form button[type="submit"] {
  -webkit-appearance: none;
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5ch;
  background: var(--rcp-primary) !important;
  border: 1px solid var(--rcp-primary) !important;
  color: #fff !important;
  font-weight: 700;
  border-radius: 999px !important;
  padding: 12px 20px !important;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 8px 18px rgba(30,111,255,.22);
  transition: transform .06s var(--rcp-ease), box-shadow .2s var(--rcp-ease),
              background-color .2s var(--rcp-ease), border-color .2s var(--rcp-ease);
}
#rcp_profile_editor_form input[type="submit"]:hover,
#rcp_profile_editor_form button[type="submit"]:hover {
  transform: translateY(-1px);
  background: var(--rcp-primary-600) !important;
  border-color: var(--rcp-primary-600) !important;
}

/* ---- メッセージ（成功/エラー） ---- */
#rcp_profile_editor_form .rcp_message {
  margin: 0 0 16px;
  padding: 12px 14px;
  border-radius: 12px;
  font-size: 14px;
}
#rcp_profile_editor_form .rcp_message.error {
  background: #fff1f2;
  border: 1px solid #fecdd3;
  color: #9f1239;
}
#rcp_profile_editor_form .rcp_message.success {
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  color: #166534;
}

/* ---- スマホ調整 ---- */
@media (max-width: 560px) {
  #rcp_profile_editor_form { padding: 20px 16px; border-radius: 16px; }
}

/* =========================================================
   RCP Subscription – Blue Modern Theme
   Target (想定マークアップ):
     #rcp_subscription, #rcp_subscription_details, .rcp_subscription,
     .rcp_subscription_section, .rcp_membership_details
     取消/更新フォーム: #rcp_cancel_subscription_form, #rcp_renew_subscription_form
     ボタン: .rcp-button, input[type=submit]
     テーブル: table, .rcp-table, .rcp_table
   ========================================================= */

/* ---- ラッパーをカード化（出力のどれが来ても拾う） ---- */
#rcp_subscription,
#rcp_subscription_details,
.rcp_subscription,
.rcp_subscription_section,
.rcp_membership_details{
  max-width: 860px;
  margin: 28px auto 40px;
  padding: 24px;
  background: var(--rcp-surface);
  border: 1px solid var(--rcp-border);
  border-radius: 20px;
  box-shadow: var(--rcp-shadow-sm);
  color: var(--rcp-text);
  font-size: var(--rcp-body);
}
#rcp_subscription * ,
#rcp_subscription_details * ,
.rcp_subscription * ,
.rcp_subscription_section * ,
.rcp_membership_details * { box-sizing: border-box; }

#rcp_subscription h2,
#rcp_subscription_details h2,
.rcp_subscription h2,
.rcp_subscription_section h2,
.rcp_membership_details h2{
  margin: 0 0 12px;
  font-size: 20px;
  font-weight: 800;
  color: var(--rcp-text);
}

/* ---- テーブル（詳細・請求など） 強化セレクタ ---- */
#rcp_subscription table,
#rcp_subscription .rcp-table,
#rcp_subscription .rcp_table,
#rcp_subscription_details table,
#rcp_subscription_details .rcp-table,
#rcp_subscription_details .rcp_table,
.rcp_subscription table,
.rcp_subscription .rcp-table,
.rcp_subscription .rcp_table,
.rcp_membership_details table,
.rcp_membership_details .rcp-table,
.rcp_membership_details .rcp_table{
  width: 100% !important;
  border-collapse: collapse !important;
  font-size: 14px !important;
  background: #fff;
  border: 1px solid var(--rcp-border);
  border-radius: 14px;
  overflow: hidden;
}
#rcp_subscription tr,
#rcp_subscription .rcp-table tr,
#rcp_subscription .rcp_table tr,
#rcp_subscription_details tr,
#rcp_subscription_details .rcp-table tr,
#rcp_subscription_details .rcp_table tr,
.rcp_subscription tr,
.rcp_subscription .rcp-table tr,
.rcp_subscription .rcp_table tr,
.rcp_membership_details tr,
.rcp_membership_details .rcp-table tr,
.rcp_membership_details .rcp_table tr{
  border-bottom: 1px solid var(--rcp-border) !important;
}
#rcp_subscription td, #rcp_subscription th,
#rcp_subscription .rcp-table td, #rcp_subscription .rcp-table th,
#rcp_subscription .rcp_table td, #rcp_subscription .rcp_table th,
#rcp_subscription_details td, #rcp_subscription_details th,
#rcp_subscription_details .rcp-table td, #rcp_subscription_details .rcp-table th,
#rcp_subscription_details .rcp_table td, #rcp_subscription_details .rcp_table th,
.rcp_subscription td, .rcp_subscription th,
.rcp_subscription .rcp-table td, .rcp_subscription .rcp-table th,
.rcp_subscription .rcp_table td, .rcp_subscription .rcp_table th,
.rcp_membership_details td, .rcp_membership_details th,
.rcp_membership_details .rcp-table td, .rcp_membership_details .rcp-table th,
.rcp_membership_details .rcp_table td, .rcp_membership_details .rcp_table th{
  padding: 12px 16px !important;
  color: var(--rcp-text) !important;
  text-align: left;
}
#rcp_subscription th,
#rcp_subscription_details th,
.rcp_subscription th,
.rcp_membership_details th{
  background: linear-gradient(180deg, var(--rcp-primary-50), #fff 70%);
  color: #143ea9;
  font-weight: 800;
}
#rcp_subscription tr:last-child,
#rcp_subscription_details tr:last-child,
.rcp_subscription tr:last-child,
.rcp_membership_details tr:last-child{
  border-bottom: none !important;
}

/* ---- 重要値（合計・ステータス等）を強調 ---- */
#rcp_subscription .rcp-total td,
#rcp_subscription_details .rcp-total td,
.rcp_subscription .rcp-total td,
.rcp_membership_details .rcp-total td{
  background: linear-gradient(180deg, var(--rcp-primary-50), #fff 60%) !important;
  color: var(--rcp-primary-700) !important;
  font-weight: 800 !important;
}

/* ---- アクション行（更新／解約／アップグレード） ---- */
#rcp_cancel_subscription_form,
#rcp_renew_subscription_form,
#rcp_upgrade_subscription_form,
#rcp_downgrade_subscription_form,
#rcp_subscription .rcp_actions,
#rcp_subscription_details .rcp_actions,
.rcp_subscription .rcp_actions,
.rcp_membership_details .rcp_actions{
  margin-top: 16px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

/* ---- ボタン（入力/リンク両方想定） ---- */
#rcp_cancel_subscription_form input[type="submit"],
#rcp_renew_subscription_form input[type="submit"],
#rcp_upgrade_subscription_form input[type="submit"],
#rcp_downgrade_subscription_form input[type="submit"],
#rcp_subscription .rcp-button,
#rcp_subscription_details .rcp-button,
.rcp_subscription .rcp-button,
.rcp_membership_details .rcp-button,
#rcp_subscription a.button, #rcp_subscription_details a.button,
.rcp_subscription a.button, .rcp_membership_details a.button{
  -webkit-appearance:none; appearance:none;
  display:inline-flex; align-items:center; justify-content:center; gap:.5ch;
  background: var(--rcp-primary) !important;
  border: 1px solid var(--rcp-primary) !important;
  color:#fff !important; font-weight:700;
  border-radius:999px !important;
  padding:11px 18px !important; line-height:1;
  cursor:pointer;
  box-shadow:0 8px 18px rgba(30,111,255,.22);
  text-decoration:none !important;
  transition: transform .06s var(--rcp-ease), box-shadow .2s var(--rcp-ease),
              background-color .2s var(--rcp-ease), border-color .2s var(--rcp-ease);
}
#rcp_cancel_subscription_form input[type="submit"]:hover,
#rcp_renew_subscription_form input[type="submit"]:hover,
#rcp_upgrade_subscription_form input[type="submit"]:hover,
#rcp_downgrade_subscription_form input[type="submit"]:hover,
#rcp_subscription .rcp-button:hover,
#rcp_subscription_details .rcp-button:hover,
.rcp_subscription .rcp-button:hover,
.rcp_membership_details .rcp-button:hover,
#rcp_subscription a.button:hover, #rcp_subscription_details a.button:hover,
.rcp_subscription a.button:hover, .rcp_membership_details a.button:hover{
  transform: translateY(-1px);
  background: var(--rcp-primary-600) !important;
  border-color: var(--rcp-primary-600) !important;
}

/* ---- 注意系ボタン（解約など）色味だけ変更できるようクラス想定） ---- */
#rcp_cancel_subscription_form .rcp-button,
.rcp_subscription .rcp-button.is-danger{
  background: #ef4444 !important;
  border-color: #ef4444 !important;
  box-shadow: 0 8px 18px rgba(239,68,68,.22);
}
#rcp_cancel_subscription_form .rcp-button:hover,
.rcp_subscription .rcp-button.is-danger:hover{
  background:#dc2626 !important;
  border-color:#dc2626 !important;
}

/* ---- フォームの行／ラベル ---- */
#rcp_cancel_subscription_form p,
#rcp_renew_subscription_form p,
#rcp_upgrade_subscription_form p,
#rcp_downgrade_subscription_form p{ margin: 0 0 12px; }

#rcp_cancel_subscription_form label,
#rcp_renew_subscription_form label,
#rcp_upgrade_subscription_form label,
#rcp_downgrade_subscription_form label{
  display:block; margin:0 0 6px; font-size:var(--rcp-label); color:#1f2a44; font-weight:600;
}

#rcp_cancel_subscription_form input[type="text"],
#rcp_cancel_subscription_form input[type="email"],
#rcp_cancel_subscription_form textarea{
  width:100%; padding:12px 14px !important;
  border:1px solid var(--rcp-border-strong) !important;
  border-radius: var(--rcp-radius-md) !important;
  background:#fff !important; color:var(--rcp-text) !important;
}
#rcp_cancel_subscription_form input:focus,
#rcp_cancel_subscription_form textarea:focus{
  border-color: var(--rcp-primary) !important;
  box-shadow: 0 0 0 5px var(--rcp-ring) !important;
}

/* ---- メッセージ（成功/エラー/注意） ---- */
#rcp_subscription .rcp_message,
#rcp_subscription_details .rcp_message,
.rcp_subscription .rcp_message,
.rcp_membership_details .rcp_message{
  margin: 10px 0 14px;
  padding: 12px 14px;
  border-radius: 12px;
  font-size: 14px;
  border: 1px solid var(--rcp-border);
  background: linear-gradient(180deg, #f0f7ff, #eef4ff);
  color: #143e8a;
}
#rcp_subscription .rcp_message.error,
#rcp_subscription_details .rcp_message.error,
.rcp_subscription .rcp_message.error,
.rcp_membership_details .rcp_message.error{
  background:#fff1f2; border-color:#fecdd3; color:#9f1239;
}
#rcp_subscription .rcp_message.success,
#rcp_subscription_details .rcp_message.success,
.rcp_subscription .rcp_message.success,
.rcp_membership_details .rcp_message.success{
  background:#f0fdf4; border-color:#bbf7d0; color:#166534;
}

/* ---- スマホ用：テーブルをスタック表示 ---- */
@media (max-width:560px){
  #rcp_subscription tr,
  #rcp_subscription_details tr,
  .rcp_subscription tr,
  .rcp_membership_details tr{
    display:grid; grid-template-columns: 1fr 1fr; gap:6px 12px; padding:10px 12px;
  }
  #rcp_subscription td[data-title]::before,
  #rcp_subscription_details td[data-title]::before,
  .rcp_subscription td[data-title]::before,
  .rcp_membership_details td[data-title]::before,
  #rcp_subscription td[data-th]::before,
  #rcp_subscription_details td[data-th]::before,
  .rcp_subscription td[data-th]::before,
  .rcp_membership_details td[data-th]::before{
    content: attr(data-title) attr(data-th);
    font-weight: 600; color: var(--rcp-text-sub); margin-right: 6px;
  }
  #rcp_subscription, #rcp_subscription_details,
  .rcp_subscription, .rcp_membership_details{ padding:20px 16px; border-radius:16px; }
}
