/* ============================
   Urban Connect Payment – フロント共通スタイル
   ============================ */

/* --- 決済フォーム --- */
.uc-payment-form {
    max-width: 480px;
    margin: 2em auto;
    padding: 1.5em 2em;
    background: #fafafa;
    border: 1px solid #e0e0e0;
    border-radius: 12px;
}

/* --- ボタンのみ表示時 --- */
.uc-payment-form-minimal {
    max-width: none;
    margin: 0.5em auto;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 0;
    text-align: center;
}

.uc-payment-form-minimal .uc-payment-button {
    max-width: 480px;
}

.uc-payment-form p {
    margin: 0.8em 0;
    font-size: 0.95em;
    color: #333;
}

.uc-payment-form label {
    font-weight: 600;
    font-size: 0.9em;
    color: #555;
}

.uc-payment-form input[type="email"],
.uc-payment-form input[type="text"] {
    width: 100%;
    padding: 0.6em 0.8em;
    border: 1px solid #ccc;
    border-radius: 6px;
    font-size: 1em;
    box-sizing: border-box;
    transition: border-color 0.2s;
}

.uc-payment-form input[type="email"]:focus,
.uc-payment-form input[type="text"]:focus {
    border-color: #3a9e3f;
    outline: none;
    box-shadow: 0 0 0 2px rgba(58, 158, 63, 0.15);
}

/* --- 決済ボタン --- */
.uc-payment-button {
    display: block;
    width: 100%;
    margin: 1.5em auto 0;
    padding: 0.9em 2em;
    background-color: #3a9e3f;
    color: #fff;
    font-size: 1.15em;
    font-weight: 700;
    letter-spacing: 0.04em;
    border: none;
    border-radius: 999px;
    cursor: pointer;
    transition: background-color 0.25s, box-shadow 0.25s, transform 0.15s;
    box-shadow: 0 4px 12px rgba(58, 158, 63, 0.35);
}

.uc-payment-button:hover {
    background-color: #2e8633;
    box-shadow: 0 6px 18px rgba(46, 134, 51, 0.45);
    transform: translateY(-1px);
}

.uc-payment-button:active {
    background-color: #267a2c;
    transform: translateY(0);
    box-shadow: 0 2px 6px rgba(46, 134, 51, 0.3);
}

/* --- バリデーションエラー --- */
.uc-payment-errors {
    max-width: 480px;
    margin: 1.5em auto;
    padding: 1em 1.2em;
    background: #fff5f5;
    border: 1px solid #e8b4b4;
    border-left: 4px solid #d32f2f;
    border-radius: 8px;
    color: #c62828;
    font-size: 0.92em;
}

.uc-payment-errors ul {
    margin: 0;
    padding-left: 1.2em;
}

.uc-payment-errors li {
    margin-bottom: 0.3em;
}

/* --- 決済結果ページ共通 --- */
.uc-payment-result {
    max-width: 520px;
    margin: 3em auto;
    padding: 2em 2.5em;
    text-align: center;
    border-radius: 12px;
    border: 1px solid #e0e0e0;
    background: #fff;
}

.uc-payment-result h2 {
    margin: 0 0 0.5em;
    font-size: 1.4em;
}

.uc-payment-result p {
    margin: 0.5em 0;
    color: #555;
    font-size: 1em;
    line-height: 1.6;
}

/* --- 結果ページ リンクボタン --- */
.uc-result-link {
    display: inline-block;
    margin-top: 1.2em;
    padding: 0.7em 2em;
    border-radius: 999px;
    font-weight: 600;
    font-size: 0.95em;
    text-decoration: none;
    transition: background-color 0.25s, box-shadow 0.25s;
}

/* --- 成功 --- */
.uc-payment-result-success {
    border-color: #c8e6c9;
    background: #f1f8f1;
}

.uc-payment-result-success h2 {
    color: #2e7d32;
}

.uc-payment-result-success h2::before {
    content: "\2714\0020";
}

.uc-payment-result-success .uc-result-link {
    background-color: #3a9e3f;
    color: #fff;
}

.uc-payment-result-success .uc-result-link:hover {
    background-color: #2e8633;
    box-shadow: 0 4px 12px rgba(58, 158, 63, 0.3);
}

/* --- 失敗 --- */
.uc-payment-result-failure {
    border-color: #f5c6cb;
    background: #fef5f5;
}

.uc-payment-result-failure h2 {
    color: #c62828;
}

.uc-payment-result-failure h2::before {
    content: "\2716\0020";
}

.uc-payment-result-failure .uc-result-link {
    background-color: #d32f2f;
    color: #fff;
}

.uc-payment-result-failure .uc-result-link:hover {
    background-color: #b71c1c;
    box-shadow: 0 4px 12px rgba(211, 47, 47, 0.3);
}

/* --- キャンセル --- */
.uc-payment-result-cancel {
    border-color: #e0e0e0;
    background: #fafafa;
}

.uc-payment-result-cancel h2 {
    color: #f57f17;
}

.uc-payment-result-cancel h2::before {
    content: "\26A0\0020";
}

.uc-payment-result-cancel .uc-result-link {
    background-color: #757575;
    color: #fff;
}

.uc-payment-result-cancel .uc-result-link:hover {
    background-color: #616161;
    box-shadow: 0 4px 12px rgba(117, 117, 117, 0.3);
}
