:root {
    --primary-color: #016fcd;
}
  
#campaign-join-box.with-background {
    background-color: #fff;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
    border-radius: 16px;
    max-width: 500px;
    margin: 3em auto;
    padding: 2em;
    text-align: center;
}
/* 見出しや質問文もやや元気に */
#campaign-join-box p {
    font-size: 1rem;
    font-weight: 500;
    color: #444;
    margin-bottom: 1em;
}

/* ボタン共通スタイル */
#campaign-join-button,
#survey-submit-button {
    background-color: #f95480;
    color: #fff;
    border: none;
    padding: 0.75em 1.5em;
    font-size: 14px !important;
    font-weight: 600;
    border-radius: 45px;
    cursor: pointer;
    display: block;
    margin: 1em auto;
    position: relative;

    z-index: 10;
    transition: box-shadow .25s, background-color 0.3s ease;
    box-shadow: 
    0 4px 8px rgba(0, 0, 0, 0.25), 
    0 6px 16px rgba(0, 0, 0, 0.2);
}
  
#campaign-join-button:hover,
#survey-submit-button:hover {
    background-color: #e14470;
    box-shadow: 
    0 6px 12px rgba(0, 0, 0, 0.3),
    0 10px 20px rgba(0, 0, 0, 0.25);
}
  
/* チェックボックスのラベル */
#campaign-survey-form label {
    display: flex;
    align-items: center;
    gap: 0.4em; /* チェックボックスとの距離だけ確保 */
    margin-bottom: 0.3em; /* 余白を少なくする */
    font-size: 0.95rem;
}
  
/* フォームの余白と幅 */
#campaign-survey-form {
    margin-top: 1.5em;
    max-width: 100%;
    padding: 1em;
    border: 1px solid #eee;
    border-radius: 6px;
    background: #f9f9f9;
    text-align: left; /* ← 追加でOK！ */
}
  
/* テキスト入力欄 */
#referral_details {
    padding: 0.5em;
    font-size: 1rem;
    border-radius: 4px;
    border: 1px solid #ccc;
}

.campaign-login-button {
    background-color: #f95480;
    color: #fff;
    padding: 0.75em 1.5em;
    border-radius: 45px;
    font-size: 1rem;
    text-decoration: none;
    display: block;         /* ← ブロック要素に変更！ */
    width: fit-content;     /* 内容にフィットさせる */
    margin: 1em auto;       /* ← 中央揃え */
    transition: background-color 0.3s ease;
}
  
.campaign-login-button:hover {
    background-color: #e14470; /* 少し濃くして引き締めた印象に */
    color: #fff;
    box-shadow: 0 0 0 3px rgba(249, 84, 128, 0.3);
}

.alert.alert-success.post-message {
    background-color: #e7f5ff;
    border-color: #b3e0f9;
}
  
.alert.alert-success.pre-message {
    background-color: #e6f6e8;
    border-color: #b4e2bb;
    color: #267a3e;
}
  

.campaign-status-message.success {
    background-color: #e6f6e8;
    border: 1px solid #b4e2bb;
    color: #267a3e;
    padding: 1.2em;
    border-radius: 6px;
    font-weight: 500;
    text-align: center;
    margin: 2em auto;
    width: fit-content;
    max-width: 90%;  
}
  
/* スマホ対応 */
@media (max-width: 600px) {
    #campaign-join-box {
      padding: 1em;
    }
  

    #campaign-survey-form label {
      font-size: 1rem;
    }
  
    #campaign-join-button,
    #survey-submit-button {
      width: 100%;
      font-size: 1.1rem;
    }
    .alert.alert-success.pre-message,
    .alert.alert-success.post-message {
        font-size: 12px;
    }
}
  