.card-img {
    display: flex; /* Flexコンテナとして設定 */
    align-items: center; /* 縦方向に中央揃え */
}

#card-select-img-coupon {
    flex: 1; /* img要素が可変幅となるように設定 */
    max-width: 50%; /* img要素の最大幅を50%に制限 */
    height: auto; /* 高さを自動調整 */
    padding: 10px;
}

.label-container {
    flex: 1; /* label要素が可変幅となるように設定 */
}

/* globalにplaceholderの色を薄くする */
input.form-control::placeholder  {
    color: rgba(0, 0, 0, 0.2);
}
/*フラッシュメッセージ*/
.alert-message {
    position: relative;
    padding: 0.75rem 1.25rem;
    margin-bottom: 1rem;
    border: 1px solid transparent;
    border-radius: 0.25rem;
    opacity: 1;
    transition: opacity 0.3s ease-in-out;
}
.alert-success {
    position: fixed;
    top: 2.5%;
    left: 0%;
    width: 100%;
    color: #1d643b;
    background-color: #d7f3e3;
    border-color: #c7eed8;
    transform: translateY(-50%);
    text-align: center;
    z-index: 99;
    font-weight: bold;
}
.alert-error {
    position: fixed;
    /* position: sticky; */
    top: 2.5%;
    left: 0%;
    width: 100%;
    color: #f00;
    background-color: #f3d7e4;
    border-color: #eec7cf;
    transform: translateY(-50%);
    text-align: center;
    z-index: 99;
    font-weight: bold;
}
/* 入力項目の表示アニメーション */
.fade-in {
animation: fade-in 0.3s ease-in;
}

.fade-out {
animation: fade-out 0.3s ease-out;
}

@keyframes fade-in {
from {
    opacity: 0;
}
to {
    opacity: 1;
}
}

@keyframes fade-out {
from {
    opacity: 1;
}
to {
    opacity: 0;
}
}
/* ご利用方法 */
.step {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 50px;
}

.step-content {
    display: flex;
    align-items: center;
    margin-right: 10px;
}

.step-image {
    width: 50%;
}

.gift-label {
display: flex;
align-items: center;
gap: 10px;
}

.gift-label .gift-text {
font-weight: 500;
font-size: clamp(12px, 5vw, 24px); /* 画面幅でフォント自動調整 */
white-space: nowrap;               /* 改行させない */
/*overflow: hidden;*/
/*text-overflow: ellipsis;          /* はみ出したら省略記号 */
max-width: 65vw;                   /* 長すぎる場合に制限 */
}

.gift-label input[type="radio"] {
width: 20px;
height: 20px;
flex-shrink: 0; /* サイズを縮めない */
}

.no-wrap-text {
    /*overflow: hidden;*/
    /*text-overflow: ellipsis;*/
    font-size: clamp(8px, 2vw, 16px); /* 画面幅に応じて文字サイズ自動調整 */
    word-break: keep-all; /* 単語内改行を禁止 */
    
    /* 日本語の禁則処理を無効化（対応ブラウザ限定） */
    -webkit-line-break: after-white-space;
    line-break: strict; /* 一部の句読点改行を防ぐ（対応ブラウザ） */
    text-wrap: nowrap; /* 新しいプロパティ（対応ブラウザ） */
}

.confirmation-text {

    font-weight: 500;
    font-size: clamp(12px, 3vw, 20px); /* 画面幅に応じて文字サイズ自動調整 */
    word-break: keep-all; /* 単語内改行を禁止 */
    margin-bottom: 10px;
    margin-top: 10px;

    /* 日本語の禁則処理を無効化（対応ブラウザ限定） */
    -webkit-line-break: after-white-space;
    line-break: strict; /* 一部の句読点改行を防ぐ（対応ブラウザ） */
    text-wrap: nowrap; /* 新しいプロパティ（対応ブラウザ） */
}