/* ==========================================================================
   Simple Membership フォーム カスタムスタイル
   IBLD（Inner Beauty Life Diet）
   メインカラー: ティール (#4ecfc3)
   ボタン角丸: 8px / カード角丸: 12px / 入力角丸: 8px
   ========================================================================== */

/* ---- カラー & 設定変数 ---- */
:root {
    --sc-tiffany:        #4ecfc3;
    --sc-tiffany-dark:   #3abfb3;
    --sc-tiffany-light:  #e8f4f2;
    --sc-text:           #1a1a1a;
    --sc-text-sub:       #6b6b6b;
    --sc-border:         #ebebeb;
    --sc-bg:             #ffffff;
    --sc-bg-soft:        #f8f8f7;
    --sc-error-bg:       #fff1f1;
    --sc-error-text:     #FF4D4F;
    --sc-success-bg:     #e8f4f2;
    --sc-success-text:   #1f8a7e;
    --sc-shadow:         0 4px 14px rgba(78, 207, 195, 0.18);
    --sc-shadow-soft:    0 2px 8px rgba(0, 0, 0, 0.06);
    --sc-radius-btn:     8px;
    --sc-radius-card:    12px;
    --sc-radius-input:   8px;
}

/* ==========================================================================
   SP時にテーマ側の padding を打ち消してフォーム幅を確保
   ========================================================================== */
.page-id-5025 .page-content,
.page-id-5025 .entry-content,
.page-id-5026 .page-content,
.page-id-5026 .entry-content,
.page-id-5028 .page-content,
.page-id-5028 .entry-content {
    box-sizing: border-box;
}

/* ==========================================================================
   フォームラッパー（ログイン / 登録）
   ========================================================================== */
.swpm-login-widget-form,
.swpm-registration-widget-form {
    max-width: 560px;
    margin: 2rem auto;
    padding: 2.5rem 2rem;
    background: var(--sc-bg);
    border-radius: var(--sc-radius-card);
    box-shadow: var(--sc-shadow-soft);
    font-family: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
    color: var(--sc-text);
    line-height: 1.7;
    box-sizing: border-box;
}

/* ==========================================================================
   ページタイトル（罫線付き中央見出し）
   ========================================================================== */
.page-id-5025 .page-title,
.page-id-5026 .page-title,
.page-id-5028 .page-title {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1em;
    max-width: 560px;
    margin: 2rem auto 0;
    padding: 0;
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--sc-text);
    text-align: center;
    letter-spacing: 0.05em;
}

.page-id-5025 .page-title::before,
.page-id-5025 .page-title::after,
.page-id-5026 .page-title::before,
.page-id-5026 .page-title::after,
.page-id-5028 .page-title::before,
.page-id-5028 .page-title::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--sc-tiffany);
}

/* ==========================================================================
   ラベル
   ========================================================================== */
#swpm-login-form .swpm-label,
#swpm-registration-form label {
    display: block;
    margin-bottom: 0.4em;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--sc-text-sub);
    letter-spacing: 0.03em;
}

/* ==========================================================================
   入力フィールド（テキスト / メール / パスワード）
   ========================================================================== */
#swpm-login-form .swpm-text-field,
#swpm-registration-form .swpm-form-field {
    width: 100%;
    padding: 0.75rem 1rem;
    font-size: 1rem;
    font-family: inherit;
    color: var(--sc-text);
    background: var(--sc-bg);
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius-input);
    outline: none;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    box-sizing: border-box;
    -webkit-appearance: none;
    appearance: none;
}

#swpm-login-form .swpm-text-field:focus,
#swpm-registration-form .swpm-form-field:focus {
    border-color: var(--sc-tiffany);
    box-shadow: 0 0 0 3px rgba(78, 207, 195, 0.15);
}

#swpm-login-form .swpm-text-field::placeholder,
#swpm-registration-form .swpm-form-field::placeholder {
    color: #b5b5b5;
}

/* ==========================================================================
   フォーム行の余白
   ========================================================================== */
#swpm-login-form .swpm-username-label,
#swpm-login-form .swpm-password-label {
    margin-top: 1.25rem;
}

#swpm-login-form .swpm-username-label:first-child {
    margin-top: 0;
}

#swpm-registration-form .swpm-form-row {
    margin-bottom: 1.25rem;
}

/* ==========================================================================
   チェックボックス（ログイン情報を保存）
   ========================================================================== */
#swpm-login-form .swpm-remember-me {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 1rem;
}

#swpm-login-form .swpm-remember-me input[type="checkbox"] {
    width: 1.1em;
    height: 1.1em;
    margin: 0;
    accent-color: var(--sc-tiffany);
    cursor: pointer;
    flex-shrink: 0;
}

#swpm-login-form .swpm-rememberme-label {
    font-size: 0.875rem;
    color: var(--sc-text-sub);
    cursor: pointer;
}

/* ==========================================================================
   会員レベル表示（登録フォーム）
   ========================================================================== */
#swpm-registration-form .swpm-membership-level-row {
    padding: 0.75rem 1rem;
    background: var(--sc-tiffany-light);
    border-radius: var(--sc-radius-input);
    margin-bottom: 1.25rem;
}

#swpm-registration-form .swpm-form-membership-level-value {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--sc-tiffany-dark);
}

/* ==========================================================================
   送信ボタン（共通）
   ========================================================================== */
#swpm-login-form .swpm-login-form-submit,
#swpm-registration-form .swpm-registration-submit-button {
    display: inline-block;
    min-width: 200px;
    padding: 0.875rem 2.5rem;
    font-size: 1rem;
    font-weight: 600;
    font-family: inherit;
    color: #ffffff;
    background: var(--sc-tiffany);
    border: none;
    border-radius: var(--sc-radius-btn);
    box-shadow: var(--sc-shadow);
    cursor: pointer;
    letter-spacing: 0.06em;
    transition: background-color 0.2s ease, transform 0.1s ease, box-shadow 0.2s ease;
    -webkit-appearance: none;
    appearance: none;
    min-height: 48px;
}

#swpm-login-form .swpm-login-form-submit:hover,
#swpm-registration-form .swpm-registration-submit-button:hover {
    background: var(--sc-tiffany-dark);
    box-shadow: 0 6px 18px rgba(78, 207, 195, 0.28);
}

#swpm-login-form .swpm-login-form-submit:active,
#swpm-registration-form .swpm-registration-submit-button:active {
    transform: translateY(1px);
    box-shadow: 0 2px 8px rgba(78, 207, 195, 0.2);
}

#swpm-login-form .swpm-login-submit,
#swpm-registration-form .swpm-registration-submit-section {
    text-align: center;
    margin-top: 2rem;
}

/* ==========================================================================
   リンク類（パスワード忘れ / 会員について / 新規登録）
   ========================================================================== */
.swpm-login-widget-form a,
.swpm-registration-widget-form a,
.swpm-login-widget-form + p a {
    color: var(--sc-tiffany-dark);
    text-decoration: none;
    font-weight: 500;
    transition: color 0.2s ease;
}

.swpm-login-widget-form a:hover,
.swpm-registration-widget-form a:hover,
.swpm-login-widget-form + p a:hover {
    color: var(--sc-tiffany);
    text-decoration: underline;
}

#swpm-login-form .swpm-forgot-pass-link {
    margin-top: 1rem;
    text-align: center;
    font-size: 0.875rem;
}

#swpm-login-form .swpm-join-us-link {
    margin-top: 0.5rem;
    text-align: center;
    font-size: 0.875rem;
}

.swpm-login-widget-form + p {
    max-width: 560px;
    margin: 0 auto;
    padding: 1rem 0 0;
    text-align: center;
    font-size: 0.95rem;
}

.swpm-login-widget-form + p a {
    display: inline-block;
    padding: 0.625rem 1.5rem;
    background: var(--sc-tiffany-light);
    border: 1px solid var(--sc-tiffany);
    border-radius: var(--sc-radius-btn);
    color: var(--sc-tiffany-dark);
    font-weight: 600;
    font-size: 0.95rem;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.swpm-login-widget-form + p a:hover {
    background: var(--sc-tiffany);
    color: #ffffff;
    text-decoration: none;
}

/* ==========================================================================
   バリデーションエラー（入力フィールド単位）
   ========================================================================== */
#swpm-registration-form .swpm-form-row.error .swpm-form-field {
    border-color: var(--sc-error-text) !important;
    box-shadow: 0 0 0 3px rgba(255, 77, 79, 0.1) !important;
}

#swpm-registration-form .swpm-form-row.error .swpm-form-desc {
    color: var(--sc-error-text) !important;
    font-size: 0.8rem !important;
    margin-top: 0.3em;
}

#swpm-registration-form .swpm-form-row.error .swpm-form-desc > ul {
    list-style: none !important;
    padding: 0 !important;
    margin: 4px 0 0 !important;
}

/* ==========================================================================
   システムメッセージ（ログインエラー等）
   ========================================================================== */
.swpm-login-widget-form .swpm-login-action-msg,
.swpm-registration-widget-form .swpm-registration-action-msg {
    margin-top: 1rem;
    text-align: center;
}

.swpm-login-widget-form .swpm-green-box,
.swpm-registration-widget-form .swpm-green-box {
    padding: 1rem 1.5rem;
    background: var(--sc-success-bg);
    color: var(--sc-success-text);
    border-radius: 4px;
    font-size: 0.95rem;
    line-height: 1.6;
}

.swpm-login-widget-form .swpm-red-box,
.swpm-registration-widget-form .swpm-red-box {
    padding: 1rem 1.5rem;
    background: var(--sc-error-bg);
    color: var(--sc-error-text);
    border-radius: 4px;
    font-size: 0.95rem;
    line-height: 1.6;
}

/* ==========================================================================
   名前の注意書き
   ========================================================================== */
.swpm-name-notice {
    max-width: 100%;
    margin-bottom: 1.25rem;
    padding: 0.75rem 1rem;
    background: var(--sc-tiffany-light);
    border-left: 3px solid var(--sc-tiffany);
    border-radius: 4px;
    font-size: 0.8rem;
    color: var(--sc-text-sub);
    line-height: 1.6;
}

/* ==========================================================================
   登録完了メッセージ
   ========================================================================== */
.swpm-registration-success-msg {
    max-width: 560px;
    margin: 2rem auto;
    padding: 2rem 1.5rem;
    background: var(--sc-success-bg);
    border-radius: var(--sc-radius-card);
    text-align: center;
    font-size: 1rem;
    font-weight: 500;
    color: var(--sc-text);
    line-height: 1.8;
}

.swpm-registration-success-msg a {
    display: inline-block;
    margin-top: 1.25rem;
    min-width: 200px;
    padding: 0.875rem 2.5rem;
    font-size: 1rem;
    font-weight: 600;
    font-family: inherit;
    color: #ffffff;
    background: var(--sc-tiffany);
    border: none;
    border-radius: var(--sc-radius-btn);
    box-shadow: var(--sc-shadow);
    text-decoration: none;
    letter-spacing: 0.06em;
    transition: background-color 0.2s ease, transform 0.1s ease, box-shadow 0.2s ease;
    min-height: 48px;
    line-height: 1.5;
}

.swpm-registration-success-msg a:hover {
    background: var(--sc-tiffany-dark);
    box-shadow: 0 6px 18px rgba(78, 207, 195, 0.28);
    color: #ffffff;
    text-decoration: none;
}

.swpm-registration-success-msg a:active {
    transform: translateY(1px);
    box-shadow: 0 2px 8px rgba(78, 207, 195, 0.2);
}

/* ==========================================================================
   .entry-content 直下のエラーメッセージ
   ========================================================================== */
.entry-content > .swpm-red-box,
.entry-content > .swpm-error-box,
.entry-content > div[style*="color: red"],
.entry-content > p:has(> span[style*="color: red"]),
.entry-content > .swpm-registration-error-msg,
.page-content > .swpm-red-box,
.page-content > .swpm-error-box,
.page-content > div[style*="color: red"] {
    max-width: 560px;
    margin: 1.5rem auto;
    padding: 1rem 1.5rem;
    background: var(--sc-error-bg);
    color: var(--sc-error-text);
    border-radius: 4px;
    font-size: 0.9rem;
    line-height: 1.7;
    text-align: left;
    box-sizing: border-box;
}

/* ==========================================================================
   #swpm_message エラーメッセージ（サーバーバリデーション）
   ========================================================================== */
#swpm_message.swpm_error {
    max-width: 560px;
    margin: 0 auto 2rem;
    padding: 0;
    background: linear-gradient(135deg, #fff5f5 0%, #fff0f0 100%);
    border: 1px solid rgba(255, 77, 79, 0.15);
    border-radius: var(--sc-radius-input);
    box-shadow: 0 2px 12px rgba(255, 77, 79, 0.08);
    font-family: "Noto Sans JP", sans-serif;
    overflow: hidden;
    position: relative;
    font-size: 0;
    line-height: 0;
    color: transparent;
}

#swpm_message.swpm_error::before {
    content: "\f06a\00a0\00a0 入力内容をご確認ください";
    display: block;
    padding: 0.875rem 1.25rem;
    font-family: "Font Awesome 5 Free", "Noto Sans JP", sans-serif;
    font-size: 0.85rem;
    font-weight: 700;
    line-height: 1.5;
    color: var(--sc-error-text);
    background: rgba(255, 77, 79, 0.06);
    border-bottom: 1px solid rgba(255, 77, 79, 0.1);
    letter-spacing: 0.04em;
}

#swpm_message.swpm_error ul {
    margin: 0;
    padding: 1rem 1.25rem;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

#swpm_message.swpm_error ul li {
    position: relative;
    padding: 0.625rem 0.875rem 0.625rem 2.25rem;
    font-size: 0.85rem;
    font-weight: 500;
    line-height: 1.6;
    color: #5c2020;
    background: rgba(255, 255, 255, 0.7);
    border: 1px solid rgba(255, 77, 79, 0.12);
    border-radius: 6px;
    transition: background 0.2s, border-color 0.2s;
}

#swpm_message.swpm_error ul li:hover {
    background: #fff;
    border-color: rgba(255, 77, 79, 0.25);
}

#swpm_message.swpm_error ul li::before {
    content: "\f00d";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: 0.7rem;
    position: absolute;
    left: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    width: 1.1rem;
    height: 1.1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--sc-error-text);
    color: #fff;
    border-radius: 50%;
}

/* ==========================================================================
   パスワードリセット（メール入力フォーム）
   ========================================================================== */
.swpm-pw-reset-widget-form {
    max-width: 560px;
    margin: 2rem auto;
    padding: 2.5rem 2rem;
    background: var(--sc-bg);
    border-radius: var(--sc-radius-card);
    box-shadow: var(--sc-shadow-soft);
    font-family: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
    color: var(--sc-text);
    line-height: 1.7;
    box-sizing: border-box;
}

.swpm-pw-reset-widget-form .swpm_label,
.swpm-pw-reset-widget-form .swpm-pw-reset-email-label {
    display: block;
    margin-bottom: 0.4em;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--sc-text-sub);
    letter-spacing: 0.03em;
}

.swpm-pw-reset-widget-form .swpm-text-field,
.swpm-pw-reset-widget-form .swpm-pw-reset-text {
    width: 100%;
    padding: 0.75rem 1rem;
    font-size: 1rem;
    font-family: inherit;
    color: var(--sc-text);
    background: var(--sc-bg);
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius-input);
    outline: none;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    box-sizing: border-box;
    -webkit-appearance: none;
    appearance: none;
}

.swpm-pw-reset-widget-form .swpm-text-field:focus,
.swpm-pw-reset-widget-form .swpm-pw-reset-text:focus {
    border-color: var(--sc-tiffany);
    box-shadow: 0 0 0 3px rgba(78, 207, 195, 0.15);
}

.swpm-pw-reset-widget-form .swpm-text-field::placeholder,
.swpm-pw-reset-widget-form .swpm-pw-reset-text::placeholder {
    color: #b5b5b5;
}

.swpm-pw-reset-widget-form .swpm-margin-top-10 {
    margin-top: 0;
}

.swpm-pw-reset-widget-form .swpm-pw-reset-email-input {
    margin-top: 0.25rem;
}

.swpm-pw-reset-widget-form .swpm-pw-reset-submit {
    display: inline-block;
    min-width: 200px;
    padding: 0.875rem 2.5rem;
    font-size: 1rem;
    font-weight: 600;
    font-family: inherit;
    color: #ffffff;
    background: var(--sc-tiffany);
    border: none;
    border-radius: var(--sc-radius-btn);
    box-shadow: var(--sc-shadow);
    cursor: pointer;
    letter-spacing: 0.06em;
    transition: background-color 0.2s ease, transform 0.1s ease, box-shadow 0.2s ease;
    -webkit-appearance: none;
    appearance: none;
    min-height: 48px;
}

.swpm-pw-reset-widget-form .swpm-pw-reset-submit:hover {
    background: var(--sc-tiffany-dark);
    box-shadow: 0 6px 18px rgba(78, 207, 195, 0.28);
}

.swpm-pw-reset-widget-form .swpm-pw-reset-submit:active {
    transform: translateY(1px);
    box-shadow: 0 2px 8px rgba(78, 207, 195, 0.2);
}

.swpm-pw-reset-widget-form .swpm-pw-reset-submit-button {
    text-align: center;
    margin-top: 2rem;
}

.swpm-pw-reset-widget-form a {
    color: var(--sc-tiffany-dark);
    text-decoration: none;
    font-weight: 500;
    transition: color 0.2s ease;
}

.swpm-pw-reset-widget-form a:hover {
    color: var(--sc-tiffany);
    text-decoration: underline;
}

.swpm_pass_reset_processing_msg_section {
    max-width: 560px;
    margin: 0 auto;
    text-align: center;
}

.swpm_pass_reset_processing_msg_section p {
    padding: 1rem 1.5rem;
    background: var(--sc-tiffany-light);
    color: var(--sc-tiffany-dark);
    border-radius: var(--sc-radius-input);
    font-size: 0.9rem;
    font-weight: 500;
}

.swpm-pw-reset-widget-form .swpm-green-box,
.page-id-5028 .entry-content .swpm-green-box {
    max-width: 560px;
    margin: 1.5rem auto;
    padding: 1rem 1.5rem;
    background: var(--sc-success-bg);
    color: var(--sc-success-text);
    border-radius: 4px;
    font-size: 0.95rem;
    line-height: 1.6;
}

.swpm-pw-reset-widget-form .swpm-red-box,
.page-id-5028 .entry-content .swpm-red-box {
    max-width: 100%;
    margin: 1rem 0;
    padding: 1rem 1.5rem;
    background: var(--sc-error-bg);
    color: var(--sc-error-text);
    border-radius: 4px;
    font-size: 0.95rem;
    line-height: 1.6;
}

/* ログインページへ戻るリンク */
.swpm-pw-reset-back-to-login {
    max-width: 560px;
    margin: 0 auto;
    padding: 1rem 0 0;
    text-align: center;
    font-size: 0.95rem;
}

.swpm-pw-reset-back-to-login a {
    display: inline-block;
    padding: 0.625rem 1.5rem;
    background: var(--sc-tiffany-light);
    border: 1px solid var(--sc-tiffany);
    border-radius: var(--sc-radius-btn);
    color: var(--sc-tiffany-dark);
    font-weight: 600;
    font-size: 0.95rem;
    transition: background-color 0.2s ease, color 0.2s ease;
    text-decoration: none;
}

.swpm-pw-reset-back-to-login a:hover {
    background: var(--sc-tiffany);
    color: #ffffff;
    text-decoration: none;
}

/* ==========================================================================
   パスワードリセット（リンク経由 – 新パスワード入力）
   ========================================================================== */
.swpm-pw-reset-using-link-widget-form {
    max-width: 560px;
    margin: 2rem auto;
    padding: 2.5rem 2rem;
    background: var(--sc-bg);
    border-radius: var(--sc-radius-card);
    box-shadow: var(--sc-shadow-soft);
    font-family: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
    color: var(--sc-text);
    line-height: 1.7;
    box-sizing: border-box;
}

.swpm-pw-reset-using-link-widget-form .swpm_label,
.swpm-pw-reset-using-link-widget-form .swpm-pw-reset-email-label {
    display: block;
    margin-bottom: 0.4em;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--sc-text-sub);
    letter-spacing: 0.03em;
}

.swpm-pw-reset-using-link-widget-form input[type="password"] {
    width: 100%;
    padding: 0.75rem 1rem;
    font-size: 1rem;
    font-family: inherit;
    color: var(--sc-text);
    background: var(--sc-bg);
    border: 1px solid var(--sc-border);
    border-radius: var(--sc-radius-input);
    outline: none;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    box-sizing: border-box;
    -webkit-appearance: none;
    appearance: none;
}

.swpm-pw-reset-using-link-widget-form input[type="password"]:focus {
    border-color: var(--sc-tiffany);
    box-shadow: 0 0 0 3px rgba(78, 207, 195, 0.15);
}

.swpm-pw-reset-using-link-widget-form .swpm-margin-top-10 {
    margin-top: 1.25rem;
}

.swpm-pw-reset-using-link-widget-form .swpm-pw-reset-email-input {
    margin-top: 0.25rem;
}

.swpm-pw-reset-using-link-widget-form .swpm-pw-reset-widget-inside > .swpm-pw-reset-email:first-child {
    margin-top: 0;
}

.swpm-pw-reset-using-link-widget-form .swpm-pw-reset-submit {
    display: inline-block;
    min-width: 200px;
    padding: 0.875rem 2.5rem;
    font-size: 1rem;
    font-weight: 600;
    font-family: inherit;
    color: #ffffff;
    background: var(--sc-tiffany);
    border: none;
    border-radius: var(--sc-radius-btn);
    box-shadow: var(--sc-shadow);
    cursor: pointer;
    letter-spacing: 0.06em;
    transition: background-color 0.2s ease, transform 0.1s ease, box-shadow 0.2s ease;
    -webkit-appearance: none;
    appearance: none;
    min-height: 48px;
}

.swpm-pw-reset-using-link-widget-form .swpm-pw-reset-submit:hover {
    background: var(--sc-tiffany-dark);
    box-shadow: 0 6px 18px rgba(78, 207, 195, 0.28);
}

.swpm-pw-reset-using-link-widget-form .swpm-pw-reset-submit:active {
    transform: translateY(1px);
    box-shadow: 0 2px 8px rgba(78, 207, 195, 0.2);
}

.swpm-pw-reset-using-link-widget-form .swpm-pw-reset-submit-button {
    text-align: center;
    margin-top: 2rem;
}

.swpm-pw-reset-using-link-widget-form .swpm-pw-reset-widget-error {
    margin-bottom: 1rem;
    padding: 0;
}

.swpm-pw-reset-using-link-widget-form .swpm-pw-reset-widget-error:not(:empty) {
    padding: 1rem 1.5rem;
    background: var(--sc-error-bg);
    color: var(--sc-error-text);
    border-radius: 4px;
    font-size: 0.9rem;
    line-height: 1.6;
}

/* ==========================================================================
   パスワードリセット 成功メッセージ
   ========================================================================== */
#swpm_message.swpm_success {
    max-width: 560px;
    margin: 2rem auto;
    padding: 2rem 1.5rem;
    background: var(--sc-success-bg);
    border-radius: var(--sc-radius-card);
    text-align: center;
    font-family: "Noto Sans JP", sans-serif;
    box-sizing: border-box;
}

.swpm-reset-pw-success-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
}

.swpm-reset-pw-success {
    font-size: 1rem;
    font-weight: 500;
    color: var(--sc-text);
    line-height: 1.8;
}

.swpm-reset-pw-success-email {
    font-size: 0.875rem;
    color: var(--sc-text-sub);
    line-height: 1.6;
}

.swpm-reset-pw-back-to-login {
    margin-top: 1.5rem;
}

.swpm-reset-pw-back-to-login a {
    display: inline-block;
    min-width: 200px;
    padding: 0.875rem 2.5rem;
    font-size: 1rem;
    font-weight: 600;
    color: #ffffff;
    background: var(--sc-tiffany);
    border-radius: var(--sc-radius-btn);
    box-shadow: var(--sc-shadow);
    text-decoration: none;
    letter-spacing: 0.06em;
    transition: background-color 0.2s ease, transform 0.1s ease, box-shadow 0.2s ease;
}

.swpm-reset-pw-back-to-login a:hover {
    background: var(--sc-tiffany-dark);
    box-shadow: 0 6px 18px rgba(78, 207, 195, 0.28);
    color: #ffffff;
    text-decoration: none;
}

.swpm-reset-pw-back-to-login a:active {
    transform: translateY(1px);
}

/* ==========================================================================
   レスポンシブ（600px 以下）
   ========================================================================== */
@media (max-width: 600px) {

    .page-id-5025 .page-content,
    .page-id-5025 .entry-content,
    .page-id-5026 .page-content,
    .page-id-5026 .entry-content,
    .page-id-5028 .page-content,
    .page-id-5028 .entry-content {
        padding-left: 0 !important;
        padding-right: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .swpm-login-widget-form,
    .swpm-registration-widget-form,
    .swpm-pw-reset-widget-form,
    .swpm-pw-reset-using-link-widget-form {
        margin: 1rem 10px !important;
        padding: 1.5rem 1rem !important;
        border-radius: 8px;
        max-width: calc(100% - 20px) !important;
        box-sizing: border-box;
    }

    #swpm-login-form .swpm-login-form-submit,
    #swpm-registration-form .swpm-registration-submit-button,
    .swpm-pw-reset-widget-form .swpm-pw-reset-submit,
    .swpm-pw-reset-using-link-widget-form .swpm-pw-reset-submit {
        width: 100% !important;
        min-width: 0 !important;
    }

    .page-id-5025 .page-title,
    .page-id-5026 .page-title,
    .page-id-5028 .page-title {
        font-size: 1rem;
        gap: 0.75em;
        margin: 2rem 10px 0 !important;
        max-width: calc(100% - 20px);
    }

    .swpm-login-widget-form + p {
        margin: 0 10px !important;
        max-width: calc(100% - 20px);
    }

    .swpm-name-notice {
        margin-left: 0;
        margin-right: 0;
    }

    .swpm-registration-success-msg {
        max-width: calc(100% - 20px) !important;
        margin: 2rem auto !important;
        padding: 1.5rem 1rem;
    }

    .swpm-registration-success-msg a {
        width: 100%;
        min-width: 0;
    }

    #swpm_message.swpm_success {
        max-width: calc(100% - 20px) !important;
        margin: 1.5rem auto !important;
        padding: 1.5rem 1rem;
    }

    .swpm-reset-pw-back-to-login a {
        width: 100%;
        min-width: 0;
    }

    #swpm_message.swpm_error {
        max-width: calc(100% - 20px) !important;
        margin: 0 auto 1.5rem !important;
        border-radius: 6px;
    }

    #swpm_message.swpm_error::before {
        padding: 0.75rem 1rem;
        font-size: 0.8rem;
    }

    #swpm_message.swpm_error ul {
        padding: 0.75rem;
    }

    #swpm_message.swpm_error ul li {
        padding: 0.5rem 0.75rem 0.5rem 2rem;
        font-size: 0.8rem;
    }

    #swpm_message.swpm_error ul li::before {
        left: 0.6rem;
        width: 1rem;
        height: 1rem;
        font-size: 0.6rem;
    }

    .entry-content > .swpm-red-box,
    .entry-content > .swpm-error-box,
    .entry-content > div[style*="color: red"],
    .entry-content > p:has(> span[style*="color: red"]),
    .entry-content > .swpm-registration-error-msg,
    .page-content > .swpm-red-box,
    .page-content > .swpm-error-box,
    .page-content > div[style*="color: red"] {
        max-width: calc(100% - 20px) !important;
        margin: 1rem auto !important;
        padding: 0.75rem 1rem;
    }

    .swpm_pass_reset_processing_msg_section {
        margin: 0 10px;
    }

    .swpm-pw-reset-back-to-login {
        margin: 0 10px;
    }
}


/* ログインページ「会員について」リンクを非表示 */
.swpm-join-us-link {
    display: none !important;
}