:root {
    /* ==================== */
    /*  Color               */
    /* ==================== */

    /* 基本のカラー */
    --bs-primary: #EA5514;
    --bs-secondary: #5F5f5f;
    --bs-success: #28a745;
    --bs-info: #17a2b8;
    --bs-warning: #ffc107;
    --bs-danger: #dc3545;
    --bs-light: #f8f9fa;
    --bs-dark: #343a40;

    /* RGB値 (ボタンの透明度などに使用) */
    --bs-primary-rgb: 234, 85, 20;
    --bs-secondary-rgb: 95, 95, 95;
    --bs-success-rgb: 40, 167, 69;
    --bs-info-rgb: 23, 162, 184;
    --bs-warning-rgb: 255, 193, 7;
    --bs-danger-rgb: 220, 53, 69;
    --bs-light-rgb: 248, 249, 250;
    --bs-dark-rgb: 52, 58, 64;

    /* ホバー時の色 (暗めの色) */
    --bs-primary-hover: #da4f14;
    --bs-secondary-hover: #4d4d4d;
    --bs-success-hover: #218838;
    --bs-info-hover: #138496;
    --bs-warning-hover: #e0a800;
    --bs-danger-hover: #c82333;
    --bs-light-hover: #e2e6ea;
    --bs-dark-hover: #23272b;

    /* ==================== */
    /*  Font                */
    /* ==================== */
    /* Google Fontsの適用 */
    --bs-font-sans-serif: "Noto Sans JP", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    /* フォントサイズと行間のカスタマイズ */
    /* 倍数指定する */
    --bs-font-size-multiplier: 1.20;
    --bs-body-font-size: calc(1rem * var(--bs-font-size-multiplier));
    --bs-body-line-height: calc(1.5 * var(--bs-font-size-multiplier));

    /* 見出しのフォントサイズ */
    --bs-h1-font-size: calc(2.5rem * var(--bs-font-size-multiplier));
    --bs-h2-font-size: calc(2rem * var(--bs-font-size-multiplier));
    --bs-h3-font-size: calc(1.75rem * var(--bs-font-size-multiplier));
    --bs-h4-font-size: calc(1.5rem * var(--bs-font-size-multiplier));
    --bs-h5-font-size: calc(1.25rem * var(--bs-font-size-multiplier));
    --bs-h6-font-size: calc(1rem * var(--bs-font-size-multiplier));
}

/* ボタンスタイル */
.btn-primary {
    --bs-btn-bg: var(--bs-primary);
    --bs-btn-border-color: var(--bs-primary);
    --bs-btn-hover-bg: var(--bs-primary-hover);
    --bs-btn-hover-border-color: var(--bs-primary-hover);
    --bs-btn-active-bg: var(--bs-primary-hover);
    --bs-btn-active-border-color: var(--bs-primary-hover);
}

.btn-secondary,
.btn-success,
.btn-info,
.btn-warning,
.btn-danger,
.btn-light,
.btn-dark {
    --bs-btn-bg: var(--bs-secondary);
    --bs-btn-border-color: var(--bs-secondary);
    --bs-btn-hover-bg: var(--bs-secondary-hover);
    --bs-btn-hover-border-color: var(--bs-secondary-hover);
    --bs-btn-active-bg: var(--bs-secondary-hover);
    --bs-btn-active-border-color: var(--bs-secondary-hover);
}

/* アウトラインボタンスタイル */
.btn-outline-primary {
    --bs-btn-color: var(--bs-primary);
    --bs-btn-border-color: var(--bs-primary);
    --bs-btn-hover-bg: var(--bs-primary);
    --bs-btn-hover-border-color: var(--bs-primary);
    --bs-btn-active-bg: var(--bs-primary);
    --bs-btn-active-border-color: var(--bs-primary);
}

/* テキストカラー */
.text-primary {
    color: var(--bs-primary) !important;
}

.text-secondary {
    color: var(--bs-secondary) !important;
}

.text-success {
    color: var(--bs-success) !important;
}

.text-info {
    color: var(--bs-info) !important;
}

.text-warning {
    color: var(--bs-warning) !important;
}

.text-danger {
    color: var(--bs-danger) !important;
}

.text-light {
    color: var(--bs-light) !important;
}

.text-dark {
    color: var(--bs-dark) !important;
}

/* 背景色 */
.bg-primary {
    background-color: var(--bs-primary) !important;
}

.bg-secondary {
    background-color: var(--bs-secondary) !important;
}

.bg-success {
    background-color: var(--bs-success) !important;
}

.bg-info {
    background-color: var(--bs-info) !important;
}

.bg-warning {
    background-color: var(--bs-warning) !important;
}

.bg-danger {
    background-color: var(--bs-danger) !important;
}

.bg-light {
    background-color: var(--bs-light) !important;
}

.bg-dark {
    background-color: var(--bs-dark) !important;
}

/* ボーダー色 */
.border-primary {
    border-color: var(--bs-primary) !important;
}

.border-secondary {
    border-color: var(--bs-secondary) !important;
}

.border-success {
    border-color: var(--bs-success) !important;
}

.border-info {
    border-color: var(--bs-info) !important;
}

.border-warning {
    border-color: var(--bs-warning) !important;
}

.border-danger {
    border-color: var(--bs-danger) !important;
}

.border-light {
    border-color: var(--bs-light) !important;
}

.border-dark {
    border-color: var(--bs-dark) !important;
}

/* ベースとなるフォントサイズと行間の設定 */
body {
    font-size: var(--bs-body-font-size);
    line-height: var(--bs-body-line-height);
}

/* 見出しのフォントサイズ設定 */
h1,
.h1 {
    font-size: var(--bs-h1-font-size);
}

h2,
.h2 {
    font-size: var(--bs-h2-font-size);
}

h3,
.h3 {
    font-size: var(--bs-h3-font-size);
}

h4,
.h4 {
    font-size: var(--bs-h4-font-size);
}

h5,
.h5 {
    font-size: var(--bs-h5-font-size);
}

h6,
.h6 {
    font-size: var(--bs-h6-font-size);
}

/* ボタンのフォントサイズ調整 */
.btn {
    font-size: calc(0.875rem * var(--bs-font-size-multiplier));
}

/* フォームコントロールのフォントサイズ調整 */
.form-control {
    font-size: var(--bs-body-font-size);
}

/* ナビゲーションバーのフォントサイズ調整 */
.navbar-brand {
    font-size: calc(1.25rem * var(--bs-font-size-multiplier));
}

.nav-link {
    font-size: calc(1rem * var(--bs-font-size-multiplier));
}

/* ドロップダウンメニューのフォントサイズ調整 */
.dropdown-item {
    font-size: calc(1rem * var(--bs-font-size-multiplier));
}

/* カードのフォントサイズ調整 */
.card-title {
    font-size: calc(1.25rem * var(--bs-font-size-multiplier));
}

.card-subtitle {
    font-size: calc(0.875rem * var(--bs-font-size-multiplier));
}

.card-text {
    font-size: var(--bs-body-font-size);
}

/* アラートのフォントサイズ調整 */
.alert {
    font-size: calc(1rem * var(--bs-font-size-multiplier));
}

/* バッジのフォントサイズ調整 */
.badge {
    font-size: calc(0.75em * var(--bs-font-size-multiplier));
}

/* リストグループのフォントサイズ調整 */
.list-group-item {
    font-size: var(--bs-body-font-size);
}

/* モーダルのフォントサイズ調整 */
.modal-title {
    font-size: calc(1.25rem * var(--bs-font-size-multiplier));
}

.modal-body {
    font-size: var(--bs-body-font-size);
}

/* トーストのフォントサイズ調整 */
.toast-header {
    font-size: calc(0.875rem * var(--bs-font-size-multiplier));
}

.toast-body {
    font-size: var(--bs-body-font-size);
}

/* ページネーションのフォントサイズ調整 */
.pagination {
    font-size: var(--bs-body-font-size);
}

/* ブレッドクラムのフォントサイズ調整 */
.breadcrumb {
    font-size: calc(1rem * var(--bs-font-size-multiplier));
}

/* フォームラベルのフォントサイズ調整 */
.form-label {
    font-size: var(--bs-body-font-size);
}

/* 入力グループのフォントサイズ調整 */
.input-group-text {
    font-size: var(--bs-body-font-size);
}

/* カスタムフォームコントロールのフォントサイズ調整 */
.form-check-label {
    font-size: var(--bs-body-font-size);
}

/* テーブルのフォントサイズ調整 */
.table {
    font-size: var(--bs-body-font-size);
}

/* ツールチップとポポーバーのフォントサイズ調整 */
.tooltip,
.popover {
    font-size: calc(0.875rem * var(--bs-font-size-multiplier));
}

/* アコーディオンのカスタマイズ */
.accordion-button {
    background-color: var(--bs-light);
    color: var(--bs-dark);
    font-size: var(--bs-body-font-size);
}

.accordion-button:not(.collapsed) {
    background-color: var(--bs-primary);
    color: white;
}

.accordion-button:focus {
    box-shadow: 0 0 0 0.25rem rgba(var(--bs-primary-rgb), 0.25);
}

.accordion-button::after {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23333'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
}

.accordion-button:not(.collapsed)::after {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
}

.accordion-body {
    background-color: var(--bs-light);
    font-size: var(--bs-body-font-size);
}