body {
    font-family: 'Arial', sans-serif;
    background-color: #f8f9fa;
}

.container {
    max-width: 600px;
    margin: 50px auto;
    padding: 20px;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}

h1 {
    text-align: center;
    margin-bottom: 30px;
}

.form-group {
    margin-bottom: 15px;
}

.form-group label {
    display: block;
    margin-bottom: 5px;
}

.form-group input {
    width: 100%;
    padding: 10px;
    box-sizing: border-box;
}

.btn {
    width: 100%;
    padding: 10px;
    //background: #007bff;
    border: none;
    color: #fff;
    border-radius: 5px;
    cursor: pointer;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
    border-radius: 6px;
}

.btn:hover {
    transform: scale(1.03);
//    background: #0056b3;
}

.alert {
    margin-top: 20px;
    padding: 10px;
    background: #f8d7da;
    color: #721c24;
    border-radius: 5px;
}

.alert-success {
    background: #d4edda;
    color: #155724;
}

.section {
    margin-bottom: 20px;
}

.section-title {
    font-weight: bold;
}

.options {
    margin-bottom: 10px;
}

.error {
    color: red;
    font-weight: bold;
    white-space: pre-wrap; /* 改行を保持するため */
}

.success {
    color: green;
    font-weight: bold;
}

button {
    margin-top: 20px;
}

.preview {
    margin-top: 20px;
}

.btn-adjust {
    margin-top: 0; /* ボタン上部の余白をなくす */
    padding: 3px 3px; /* 必要に応じてボタンの内側の余白を調整 */
}

.form-label {
    background-color: #e3f2fd; /* 水色の背景 */
    padding: 10px;
    font-weight: bold;
    display: flex;
    align-items: center;
    gap: 5px;
    color: #385A84;
}

.required {
    background-color: white; /* 赤い背景 */
    color: #d9534f;
    font-size: 12px;
    font-weight: bold;
    padding: 3px 6px;
    border-radius: 3px;
    border: 1px solid #d9534f; /* 枠線を指定 */
    display: inline-block;
}

.required2 {
    background-color: #d9534f; /* 赤い背景 */
    color: white;
    font-weight: bold;
    padding: 3px 6px;
    border-radius: 3px;
    display: inline-block;
}

.any {
    background-color: white;
    color: #385A84;
    font-size: 12px;
    font-weight: bold;
    padding: 3px 6px;
    border-radius: 3px;
    border: 1px solid #385A84; /* 枠線を指定 */
    display: inline-block;
}

.form-row {
    display: flex;
    gap: 5px; /* 入力欄の間隔を狭める */
    margin: 0; /* 余分なマージンを削除 */
}
.form-card {
    border: 2 solid #e3f2fd; /* 枠線の色を指定 */
    border-radius: 8px;
    /*background-color: #e3f2fd;*/ /* 水色の背景 */
    margin-bottom: 10px;
}

.card-body {
    padding: 8px 12px; /* 上下の余白を小さく */
}

.card-header {
    font-weight: bold;
    background-color: #e3f2fd;
    color: #385A84;
    padding: 5px;
    border-top-left-radius: 8px;
    border-top-right-radius: 8px;
}

.triangle {
    width: 0;
    height: 0;
    border-left: 60px solid transparent;  /* 左の斜め線 */
    border-right: 60px solid transparent; /* 右の斜め線 */
    border-top: 25px solid #ffebcd; /* 上の直線（背景色を指定） */
}

.separator {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    margin: 10px 0;
}

.separator span {
    font-size: 16px;
    font-weight: bold;
    color: #333;
    padding: 0 15px; /* 罫線との間隔を調整 */
    white-space: nowrap; /* 折り返しを防ぐ */
}

.separator::before,
.separator::after {
    content: "";
    flex-grow: 1;
    height: 1px;
    background-color: #ccc;
}

.progress-container {
    width: 100%;
    text-align: center;
    margin-bottom: 20px;
}

.progress {
    width: 80%;
    margin: 0 auto;
    height: 20px;
    background-color: #e9ecef;
    border-radius: 10px;
    position: relative;
}

.progress-bar {
    height: 100%;
    background-color: #007bff;
    color: white;
    font-weight: bold;
    text-align: center;
    line-height: 20px;
    border-radius: 10px;
}

.progress-steps {
    display: flex;
    justify-content: space-between;
    width: 80%;
    margin: 15px auto 0;
    padding: 0;
    list-style: none;
    font-size: 14px;
}

.progress-steps .step {
    color: #999; /* デフォルトは薄いグレー */
    position: relative;
    padding: 0 5px; /* 文字の間隔を調整 */
    white-space: nowrap; /* 改行を防ぐ */
}

.progress-steps .step.completed {
    color: #7db4ff; /* 通過したページは薄い青 */
}

.progress-steps .step.active {
    font-weight: bold;
    color: #007bff; /* 現在のページのみ濃い青 */
    font-size: 16px; /* 強調 */
}

@media (max-width: 768px) {
    .progress-steps {
        flex-wrap: wrap;
        text-align: center;
        font-size: 12px; /* 小さい画面では文字を縮小 */
    }
}

.table_result {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid #ccc;
}

.table_result th {
    background-color: #214F8A; /* ヘッダーの背景色（濃い青） */
    color: white; /* 文字色を白に */
    text-align: left;
    padding: 10px;
    font-weight: bold;
}

.table_result td {
    border: 1px solid #ccc;
    padding: 10px;
}

/* カラム名（左側の項目名）の背景色を薄い青に */
.table_result td:first-child {
    background-color: #e3f2fd; /* 画像に近い薄い青 */
    font-weight: bold;
    color: #385A84;
}

/* 右側のセル（データ部分）は白背景 */
.table_result td:nth-child(2) {
    background-color: #ffffff;
}


.logo {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto; /* 中央揃え */
}


.bg-custom-gray {
    background-color: #D9D9D9; /* 少し濃いグレー */
    /*color: #fff;*/ /* 文字色を白に */
    /*padding: 10px;*/
    /*border-radius: 5px;*/
}
