/*!
 * fix_bootstrap5.css
 *
 * Bootstrap 5.3 のスタイルを、Bootstrap 3.3.5 の時と極力同じ見た目
 * (文字サイズ・行間・余白・角丸・幅など) になるように補正する。
 * bootstrap.css (Bootstrap 5) の直後に読み込むこと。
 *
 * ※ 色 (文字色・背景色・枠線色など) はこのファイルでは扱わない。
 *    色味は別のCSSで対応する。
 *
 * 各値の出典は Bootstrap 3.3.5 の bootstrap.css。
 * Bootstrap 5 のユーティリティクラスは !important 付きで定義されている
 * ため、それを上書きする箇所は !important を付けている。
 */

/* ------------------------------------------------------------------
 * 1. ルート・本文
 *    BS3: html 10px, body 14px / 1.42857143, "Helvetica Neue"...
 *    BS5: body 1rem(16px) / 1.5, system-ui フォントスタック
 * ------------------------------------------------------------------ */
:root,
[data-bs-theme=light] {
  --bs-body-font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  --bs-body-font-size: 14px;
  --bs-body-font-weight: 400;
  --bs-body-line-height: 1.42857143;
  --bs-border-radius: 4px;
  --bs-border-radius-sm: 3px;
  --bs-border-radius-lg: 6px;
}
html {
  font-size: 10px;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
}
body {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  line-height: 1.42857143;
}
input,
button,
select,
textarea {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}
/* BS3: リンクは通常時下線なし、hover/focus 時に下線 (BS5 は常に下線) */
a {
  text-decoration: none;
}
a:hover,
a:focus {
  text-decoration: underline;
}
a:focus {
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
/* コンポーネント内のリンクは hover でも下線を付けない (BS3 と同じ) */
.btn:hover, .btn:focus,
.navbar-brand:hover, .navbar-brand:focus,
.nav-link:hover, .nav-link:focus,
.dropdown-item:hover, .dropdown-item:focus,
.page-link:hover, .page-link:focus,
.list-group-item-action:hover, .list-group-item-action:focus,
a.badge:hover, a.badge:focus,
a.label:hover, a.label:focus,
a.thumbnail:hover, a.thumbnail:focus {
  text-decoration: none;
}
hr {
  margin-top: 20px;
  margin-bottom: 20px;
}

/* ------------------------------------------------------------------
 * 2. 見出し・段落・小文字
 *    BS3: h1 36px h2 30px h3 24px h4 18px h5 14px h6 12px, 行間 1.1
 *         h1-h3 margin 20px 0 10px, h4-h6 margin 10px 0
 *    BS5: h1 2.5rem ... 行間 1.2, margin-bottom .5rem, 1200px 未満は可変
 * ------------------------------------------------------------------ */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: inherit;
  font-weight: 500;
  line-height: 1.1;
}
h1, .h1, h2, .h2, h3, .h3 {
  margin-top: 20px;
  margin-bottom: 10px;
}
h4, .h4, h5, .h5, h6, .h6 {
  margin-top: 10px;
  margin-bottom: 10px;
}
h1, .h1 { font-size: 36px; }
h2, .h2 { font-size: 30px; }
h3, .h3 { font-size: 24px; }
h4, .h4 { font-size: 18px; }
h5, .h5 { font-size: 14px; }
h6, .h6 { font-size: 12px; }
@media (min-width: 1200px) {
  h1, .h1 { font-size: 36px; }
  h2, .h2 { font-size: 30px; }
  h3, .h3 { font-size: 24px; }
  h4, .h4 { font-size: 18px; }
}
h1 small, h2 small, h3 small,
.h1 small, .h2 small, .h3 small,
h1 .small, h2 .small, h3 .small,
.h1 .small, .h2 .small, .h3 .small {
  font-size: 65%;
}
h4 small, h5 small, h6 small,
.h4 small, .h5 small, .h6 small,
h4 .small, h5 .small, h6 .small,
.h4 .small, .h5 .small, .h6 .small {
  font-size: 75%;
}
h1 small, h2 small, h3 small, h4 small, h5 small, h6 small,
.h1 small, .h2 small, .h3 small, .h4 small, .h5 small, .h6 small {
  font-weight: normal;
  line-height: 1;
}
p {
  margin: 0 0 10px;
}
.lead {
  margin-bottom: 20px;
  font-size: 16px;
  font-weight: 300;
  line-height: 1.4;
}
@media (min-width: 768px) {
  .lead {
    font-size: 21px;
  }
}
small,
.small {
  font-size: 85%;
}
b,
strong {
  font-weight: bold;
}
abbr[title] {
  text-decoration: none;
  border-bottom: 1px dotted;
  cursor: help;
}
/* BS3 の .page-header 相当 (border-bottom pb-2 mb-4 として移植されている) */
.border-bottom.pb-2.mb-4 {
  padding-bottom: 9px !important;
  margin: 40px 0 20px !important;
}

/* ------------------------------------------------------------------
 * 3. リスト・定義リスト・引用・コード
 * ------------------------------------------------------------------ */
ul,
ol {
  margin-top: 0;
  margin-bottom: 10px;
}
ul ul, ol ul, ul ol, ol ol {
  margin-bottom: 0;
}
dl {
  margin-top: 0;
  margin-bottom: 20px;
}
dt,
dd {
  line-height: 1.42857143;
}
dt {
  font-weight: bold;
}
dd {
  margin-left: 0;
  margin-bottom: 0;
}
blockquote {
  padding: 10px 20px;
  margin: 0 0 20px;
  font-size: 17.5px;
  border-left: 5px solid;
}
address {
  margin-bottom: 20px;
  font-style: normal;
  line-height: 1.42857143;
}
code,
kbd,
pre,
samp {
  font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
}
code {
  padding: 2px 4px;
  font-size: 90%;
  border-radius: 4px;
}
kbd {
  padding: 2px 4px;
  font-size: 90%;
  border-radius: 3px;
}
pre {
  display: block;
  padding: 9.5px;
  margin: 0 0 10px;
  font-size: 13px;
  line-height: 1.42857143;
  word-break: break-all;
  word-wrap: break-word;
  border: 1px solid;
  border-radius: 4px;
}

/* ------------------------------------------------------------------
 * 4. コンテナ・グリッド
 *    BS3: container 750/970/1170px (768/992/1200px), padding 15px,
 *         gutter 30px (col padding 15px, row margin -15px)
 *    BS5: 540/720/960/1140/1320px, gutter 1.5rem(24px)
 * ------------------------------------------------------------------ */
.container,
.container-fluid,
.container-sm,
.container-md,
.container-lg,
.container-xl,
.container-xxl {
  --bs-gutter-x: 30px;
  padding-right: 15px;
  padding-left: 15px;
}
.row {
  --bs-gutter-x: 30px;
  --bs-gutter-y: 0;
}
@media (min-width: 576px) {
  .container, .container-sm {
    max-width: none;
  }
}
@media (min-width: 768px) {
  .container, .container-sm, .container-md {
    max-width: 750px;
  }
}
@media (min-width: 992px) {
  .container, .container-sm, .container-md, .container-lg {
    max-width: 970px;
  }
}
@media (min-width: 1200px) {
  .container, .container-sm, .container-md, .container-lg, .container-xl {
    max-width: 1170px;
  }
}
@media (min-width: 1400px) {
  .container, .container-sm, .container-md, .container-lg, .container-xl, .container-xxl {
    max-width: 1170px;
  }
}

/* ------------------------------------------------------------------
 * 5. テーブル
 *    BS3: セル padding 8px, line-height 1.42857143, 上罫線 1px,
 *         thead th 下罫線 2px, margin-bottom 20px
 *    BS5: セル padding .5rem, 下罫線, margin-bottom 1rem
 * ------------------------------------------------------------------ */
.table {
  width: 100%;
  max-width: 100%;
  margin-bottom: 20px;
}
.table > :not(caption) > * > * {
  padding: 8px;
  line-height: 1.42857143;
  vertical-align: top;
  border-top-width: 1px;
  border-bottom-width: 0;
}
.table > thead > tr > th {
  vertical-align: bottom;
  border-bottom-width: 2px;
}
.table > caption + thead > tr:first-child > th,
.table > colgroup + thead > tr:first-child > th,
.table > thead:first-child > tr:first-child > th,
.table > caption + thead > tr:first-child > td,
.table > colgroup + thead > tr:first-child > td,
.table > thead:first-child > tr:first-child > td {
  border-top-width: 0;
}
.table > tbody + tbody {
  border-top-width: 2px;
}
.table .table {
  margin-bottom: 0;
}
.table-sm > :not(caption) > * > * {
  padding: 5px;
}
.table-bordered > :not(caption) > * > * {
  border-width: 1px;
}
.table-bordered > thead > tr > th,
.table-bordered > thead > tr > td {
  border-bottom-width: 2px;
}
.table-responsive {
  min-height: .01%;
  overflow-x: auto;
}
@media screen and (max-width: 767px) {
  .table-responsive {
    width: 100%;
    margin-bottom: 15px;
    overflow-y: hidden;
    -ms-overflow-style: -ms-autohiding-scrollbar;
    border: 1px solid;
  }
  .table-responsive > .table {
    margin-bottom: 0;
  }
  .table-responsive > .table > :not(caption) > * > * {
    white-space: nowrap;
  }
}
th {
  text-align: left;
}

/* ------------------------------------------------------------------
 * 6. フォーム
 *    BS3: label bold margin-bottom 5px, form-group margin-bottom 15px,
 *         form-control 高さ 34px, padding 6px 12px, 14px, 角丸 4px,
 *         help-block margin 5px 0 10px
 *    BS5: form-label margin-bottom .5rem, mb-3 1rem,
 *         form-control padding .375rem .75rem, 1rem, 角丸 .375rem
 * ------------------------------------------------------------------ */
fieldset {
  min-width: 0;
  padding: 0;
  margin: 0;
  border: 0;
}
legend {
  display: block;
  width: 100%;
  padding: 0;
  margin-bottom: 20px;
  font-size: 21px;
  line-height: inherit;
  border: 0;
  border-bottom: 1px solid;
}
label,
.form-label {
  display: inline-block;
  max-width: 100%;
  margin-bottom: 5px;
  font-weight: bold;
}
/* ラジオ・チェックボックスのラベルは BS3 では通常の太さ */
.radio label,
.checkbox label,
.radio-inline,
.checkbox-inline,
.form-check-label {
  font-weight: normal;
}
/* form-group 相当 (mb-3 として移植されている) */
.mb-3 {
  margin-bottom: 15px !important;
}
input[type="radio"],
input[type="checkbox"] {
  margin: 4px 0 0;
  margin-top: 1px \9;
  line-height: normal;
}
.form-control,
.form-select {
  display: block;
  width: 100%;
  height: 34px;
  padding: 6px 12px;
  font-size: 14px;
  line-height: 1.42857143;
  border-radius: 4px;
}
.form-control::-webkit-input-placeholder,
.form-control::placeholder {
  opacity: 1;
}
/* BS5 の .form-control は appearance:none のため select の矢印が消える。
   BS3 と同様にブラウザ標準の矢印を表示する */
select.form-control {
  -webkit-appearance: menulist;
  -moz-appearance: menulist;
  appearance: auto;
}
textarea.form-control,
select[multiple].form-control,
select[size].form-control,
select[multiple].form-select,
select[size].form-select {
  height: auto;
}
.form-control-plaintext {
  padding-top: 7px;
  padding-bottom: 7px;
  margin-bottom: 0;
  min-height: 34px;
  line-height: 1.42857143;
}
.form-control-sm,
.form-select-sm {
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 3px;
}
.form-control-lg,
.form-select-lg {
  height: 46px;
  padding: 10px 16px;
  font-size: 18px;
  line-height: 1.3333333;
  border-radius: 6px;
}
select.form-control-sm,
select.form-select-sm {
  height: 30px;
  line-height: 30px;
}
select.form-control-lg,
select.form-select-lg {
  height: 46px;
  line-height: 46px;
}
textarea.form-control-sm,
textarea.form-control-lg,
select[multiple].form-control-sm,
select[multiple].form-control-lg {
  height: auto;
}
.form-text,
.help-block,
.invalid-feedback,
.valid-feedback {
  display: block;
  margin-top: 5px;
  margin-bottom: 10px;
  font-size: 14px;
}
.radio,
.checkbox,
.form-check {
  position: relative;
  display: block;
  margin-top: 10px;
  margin-bottom: 10px;
  min-height: 0;
}
.radio label,
.checkbox label {
  min-height: 20px;
  padding-left: 20px;
  margin-bottom: 0;
  cursor: pointer;
}
.radio input[type="radio"],
.checkbox input[type="checkbox"] {
  position: absolute;
  margin-left: -20px;
}
.radio + .radio,
.checkbox + .checkbox {
  margin-top: -5px;
}
.input-group-text {
  padding: 6px 12px;
  font-size: 14px;
  line-height: 1;
  border-radius: 4px;
}
/* 横並びフォーム (BS3 .form-horizontal .control-label 相当) */
.col-form-label {
  padding-top: 7px;
  padding-bottom: 7px;
  margin-bottom: 0;
  font-size: 14px;
  line-height: 1.42857143;
  font-weight: bold;
}

/* ------------------------------------------------------------------
 * 7. ボタン
 *    BS3: padding 6px 12px, 14px, 1.42857143, 角丸 4px
 *    BS5: padding .375rem .75rem, 1rem, 1.5, 角丸 .375rem
 * ------------------------------------------------------------------ */
.btn {
  display: inline-block;
  padding: 6px 12px;
  margin-bottom: 0;
  font-size: 14px;
  font-weight: normal;
  line-height: 1.42857143;
  text-align: center;
  white-space: nowrap;
  vertical-align: middle;
  border: 1px solid transparent;
  border-radius: 4px;
  -webkit-user-select: none;
  user-select: none;
}
.btn-lg,
.btn-group-lg > .btn {
  padding: 10px 16px;
  font-size: 18px;
  line-height: 1.3333333;
  border-radius: 6px;
}
.btn-sm,
.btn-group-sm > .btn {
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 3px;
}
.btn-xs {
  padding: 1px 5px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 3px;
}
.btn-link {
  font-weight: normal;
  border-radius: 0;
  text-decoration: none;
}
.btn-link:hover,
.btn-link:focus {
  text-decoration: underline;
}
.btn.disabled,
.btn:disabled,
fieldset:disabled .btn {
  cursor: not-allowed;
  opacity: .65;
}
.btn .caret {
  margin-left: 0;
}
.btn-lg .caret {
  border-width: 5px 5px 0;
}

/* ------------------------------------------------------------------
 * 8. ナビゲーションバー
 *    BS3: 高さ 50px, margin-bottom 20px, brand 18px / padding 15px,
 *         nav link padding 15px, 角丸 4px (768px 以上)
 *    BS5: padding .5rem 0, brand 1.25rem, nav link padding .5rem
 * ------------------------------------------------------------------ */
.navbar {
  position: relative;
  min-height: 50px;
  padding-top: 0;
  padding-bottom: 0;
  margin-bottom: 20px;
  border: 1px solid transparent;
  --bs-navbar-padding-x: 0;
  --bs-navbar-padding-y: 0;
  --bs-navbar-brand-padding-y: 15px;
  --bs-navbar-brand-margin-end: 0;
  --bs-navbar-brand-font-size: 18px;
  --bs-navbar-nav-link-padding-x: 15px;
  --bs-navbar-toggler-padding-y: 9px;
  --bs-navbar-toggler-padding-x: 10px;
  --bs-navbar-toggler-font-size: 14px;
  --bs-navbar-toggler-border-radius: 4px;
}
@media (min-width: 768px) {
  .navbar {
    border-radius: 4px;
  }
}
.navbar > .container,
.navbar > .container-fluid {
  --bs-gutter-x: 30px;
}
.navbar-brand {
  float: left;
  height: 50px;
  padding: 15px 15px;
  margin-right: 0;
  font-size: 18px;
  line-height: 20px;
  white-space: normal; /* BS5 は nowrap。BS3 同様に折り返す */
}
.navbar-brand > img {
  display: block;
}
@media (min-width: 768px) {
  .navbar > .container .navbar-brand,
  .navbar > .container-fluid .navbar-brand {
    margin-left: -15px;
  }
}
/* BS3 ではブランドが左、トグルボタンが右 (float:right)。
   BS5 は flex で DOM 順 (トグル→ブランド) になるため order で並べ替える */
.navbar-brand {
  order: 1;
}
.navbar-toggler {
  order: 2;
  position: relative;
  float: right;
  padding: 9px 10px;
  margin-top: 8px;
  margin-right: 15px;
  margin-bottom: 8px;
  margin-left: auto;
  border: 1px solid transparent;
  border-radius: 4px;
  line-height: 1;
}
.navbar-collapse {
  order: 3;
}
.navbar-nav {
  margin: 0;
}
.navbar-nav .nav-link,
.navbar-nav > li > a {
  display: block;
  padding-top: 15px;
  padding-bottom: 15px;
  line-height: 20px;
}
@media (min-width: 992px) {
  .navbar-expand-lg .navbar-nav .nav-link {
    padding-right: 15px;
    padding-left: 15px;
  }
}
@media (max-width: 991.98px) {
  .navbar-nav .nav-link {
    padding-top: 10px;
    padding-bottom: 10px;
  }
  .navbar-collapse {
    max-height: 340px;
    overflow-x: visible;
    overflow-y: auto;
  }
}
/* BS3 のドロップダウン矢印 (.caret) の復元 (BS5 には存在しない) */
.caret {
  display: inline-block;
  width: 0;
  height: 0;
  margin-left: 2px;
  vertical-align: middle;
  border-top: 4px dashed;
  border-top: 4px solid \9;
  border-right: 4px solid transparent;
  border-left: 4px solid transparent;
}
/* テンプレート側で使われている BS3 のクラスの互換 */
.navbar-right {
  margin-left: auto;
}
.icon-bar {
  display: block;
  width: 22px;
  height: 2px;
  border-radius: 1px;
}
.icon-bar + .icon-bar {
  margin-top: 4px;
}

/* ------------------------------------------------------------------
 * 9. ドロップダウンメニュー
 *    BS3: min-width 160px, padding 5px 0, margin 2px 0 0, 14px,
 *         項目 padding 3px 20px, line-height 1.42857143, 角丸 4px
 *    BS5: min-width 10rem, padding .5rem 0, 1rem, 項目 .25rem 1rem
 * ------------------------------------------------------------------ */
.dropdown-menu {
  min-width: 160px;
  padding: 5px 0;
  margin: 2px 0 0;
  font-size: 14px;
  text-align: left;
  border-radius: 4px;
  --bs-dropdown-min-width: 160px;
  --bs-dropdown-padding-y: 5px;
  --bs-dropdown-spacer: 2px;
  --bs-dropdown-font-size: 14px;
  --bs-dropdown-border-radius: 4px;
  --bs-dropdown-item-padding-x: 20px;
  --bs-dropdown-item-padding-y: 3px;
}
.dropdown-item {
  display: block;
  padding: 3px 20px;
  clear: both;
  font-weight: normal;
  line-height: 1.42857143;
  white-space: nowrap;
}
.dropdown-divider {
  height: 1px;
  margin: 9px 0;
  overflow: hidden;
}
.dropdown-header {
  display: block;
  padding: 3px 20px;
  font-size: 12px;
  line-height: 1.42857143;
  white-space: nowrap;
}
.dropdown-toggle::after {
  display: none; /* BS3 の .caret を使用するため BS5 の矢印は非表示 */
}

/* ------------------------------------------------------------------
 * 10. ナビ (タブ・ピル)
 * ------------------------------------------------------------------ */
.nav {
  padding-left: 0;
  margin-bottom: 0;
  list-style: none;
}
.nav-link {
  padding: 10px 15px;
  font-size: 14px;
}
.nav-tabs .nav-link {
  margin-right: 2px;
  line-height: 1.42857143;
  border: 1px solid transparent;
  border-radius: 4px 4px 0 0;
}
.nav-pills .nav-link {
  border-radius: 4px;
}
.nav-pills .nav-item + .nav-item {
  margin-left: 2px;
}
.tab-content > .tab-pane {
  display: none;
}
.tab-content > .active {
  display: block;
}

/* ------------------------------------------------------------------
 * 11. パンくずリスト
 *    BS3: padding 8px 15px, margin-bottom 20px, 角丸 4px, 区切り "/"
 *    BS5: padding 0, margin-bottom 1rem, 区切り padding .5rem
 * ------------------------------------------------------------------ */
.breadcrumb {
  padding: 8px 15px;
  margin-bottom: 20px;
  list-style: none;
  border-radius: 4px;
  --bs-breadcrumb-padding-x: 15px;
  --bs-breadcrumb-padding-y: 8px;
  --bs-breadcrumb-margin-bottom: 20px;
  --bs-breadcrumb-border-radius: 4px;
  --bs-breadcrumb-item-padding-x: 5px;
  --bs-breadcrumb-divider: "/";
}
.breadcrumb-item {
  display: inline-block;
}
.breadcrumb-item + .breadcrumb-item {
  padding-left: 0;
}
.breadcrumb-item + .breadcrumb-item::before {
  float: none;
  padding: 0 5px;
  content: "/\00a0";
}

/* ------------------------------------------------------------------
 * 12. ページネーション
 *    BS3: margin 20px 0, 角丸 4px, リンク padding 6px 12px,
 *         line-height 1.42857143, margin-left -1px
 *    BS5: リンク padding .375rem .75rem, 1rem
 * ------------------------------------------------------------------ */
.pagination {
  display: inline-block;
  padding-left: 0;
  margin: 20px 0;
  border-radius: 4px;
  --bs-pagination-padding-x: 12px;
  --bs-pagination-padding-y: 6px;
  --bs-pagination-font-size: 14px;
  --bs-pagination-border-radius: 4px;
}
/* styles.css の div.pagination (右寄せ用の外枠) は width:100% を維持 */
div.pagination {
  display: block;
  margin: 0;
}
div.pagination > ul.pagination {
  margin: 20px 0;
}
.pagination > li,
.page-item {
  display: inline;
}
.pagination > li > a,
.pagination > li > span,
.page-link {
  position: relative;
  float: left;
  padding: 6px 12px;
  margin-left: -1px;
  font-size: 14px;
  line-height: 1.42857143;
  text-decoration: none;
}
.pagination > li:first-child > a,
.pagination > li:first-child > span,
.page-item:first-child .page-link {
  margin-left: 0;
  border-top-left-radius: 4px;
  border-bottom-left-radius: 4px;
}
.pagination > li:last-child > a,
.pagination > li:last-child > span,
.page-item:last-child .page-link {
  border-top-right-radius: 4px;
  border-bottom-right-radius: 4px;
}
.pagination-lg .page-link {
  padding: 10px 16px;
  font-size: 18px;
  line-height: 1.3333333;
}
.pagination-sm .page-link {
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
}

/* ------------------------------------------------------------------
 * 13. アラート
 *    BS3: padding 15px, margin-bottom 20px, 角丸 4px
 *    BS5: padding 1rem, margin-bottom 1rem, 角丸 .375rem
 * ------------------------------------------------------------------ */
.alert {
  padding: 15px;
  margin-bottom: 20px;
  border: 1px solid transparent;
  border-radius: 4px;
  --bs-alert-padding-x: 15px;
  --bs-alert-padding-y: 15px;
  --bs-alert-margin-bottom: 20px;
  --bs-alert-border-radius: 4px;
}
.alert h4 {
  margin-top: 0;
}
.alert > p,
.alert > ul {
  margin-bottom: 0;
}
.alert > p + p {
  margin-top: 5px;
}
/* BS3 の .alert > .close 相当: 閉じるボタンは右に float
   (BS3 は 21px 太字の "×" 文字。BS5 は SVG 画像のため、文字の見た目の
   大きさに合わせて 12px 角にしている) */
.alert .btn-close {
  float: right;
  padding: 0;
  margin: 2px 0 0;
  font-size: 12px;
  line-height: 1;
}
/* BS3 の .alert-dismissable 相当 */
.alert-dismissible {
  padding-right: 35px;
}
.alert-dismissible .btn-close {
  position: relative;
  top: -2px;
  right: -21px;
  padding: 0;
  margin: 0;
}

/* ------------------------------------------------------------------
 * 14. カード (BS3 パネル相当)
 *    BS3 panel: margin-bottom 20px, 角丸 4px, heading padding 10px 15px,
 *               body padding 15px, title 16px, footer padding 10px 15px
 *    BS5 card: 角丸 .375rem, header padding .5rem 1rem, body 1rem
 * ------------------------------------------------------------------ */
.card {
  margin-bottom: 20px;
  border-radius: 4px;
  --bs-card-spacer-y: 15px;
  --bs-card-spacer-x: 15px;
  --bs-card-title-spacer-y: 0;
  --bs-card-border-radius: 4px;
  --bs-card-inner-border-radius: 3px;
  --bs-card-cap-padding-y: 10px;
  --bs-card-cap-padding-x: 15px;
}
.card-body {
  padding: 15px;
}
.card-header {
  padding: 10px 15px;
  border-top-left-radius: 3px;
  border-top-right-radius: 3px;
}
.card-header > .dropdown .dropdown-toggle {
  color: inherit;
}
.card-title {
  margin-top: 0;
  margin-bottom: 0;
  font-size: 16px;
}
.card-footer {
  padding: 10px 15px;
  border-bottom-right-radius: 3px;
  border-bottom-left-radius: 3px;
}
.card > .table,
.card > .table-responsive > .table,
.card > .list-group {
  margin-bottom: 0;
}
.card > .card-body + .table,
.card > .card-body + .table-responsive {
  border-top: 1px solid;
}
.card-header + .list-group .list-group-item:first-child {
  border-top: 0;
}
.card-group {
  margin-bottom: 20px;
}

/* ------------------------------------------------------------------
 * 15. リストグループ・バッジ・ラベル
 * ------------------------------------------------------------------ */
.list-group {
  padding-left: 0;
  margin-bottom: 20px;
  --bs-list-group-border-radius: 4px;
  --bs-list-group-item-padding-x: 15px;
  --bs-list-group-item-padding-y: 10px;
}
.list-group-item {
  padding: 10px 15px;
  margin-bottom: -1px;
}
.list-group-item:first-child {
  border-top-left-radius: 4px;
  border-top-right-radius: 4px;
}
.list-group-item:last-child {
  margin-bottom: 0;
  border-bottom-right-radius: 4px;
  border-bottom-left-radius: 4px;
}
.list-group-item-heading {
  margin-top: 0;
  margin-bottom: 5px;
}
.list-group-item-text {
  margin-bottom: 0;
  line-height: 1.3;
}
.badge {
  display: inline-block;
  min-width: 10px;
  padding: 3px 7px;
  font-size: 12px;
  font-weight: bold;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
  vertical-align: middle;
  border-radius: 10px;
}
/* BS3 の .label (BS5 には無い) */
.label {
  display: inline;
  padding: .2em .6em .3em;
  font-size: 75%;
  font-weight: bold;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
  vertical-align: baseline;
  border-radius: .25em;
}

/* ------------------------------------------------------------------
 * 16. モーダル
 *    BS3: dialog margin 10px / 768px 以上 width 600px margin 30px auto,
 *         header padding 15px, title line-height 1.42857143,
 *         body padding 15px, footer padding 15px, 角丸 6px
 *    BS5: dialog max-width 500px, header/body/footer padding 1rem,
 *         角丸 .5rem
 * ------------------------------------------------------------------ */
.modal {
  --bs-modal-margin: 10px;
  --bs-modal-padding: 15px;
  --bs-modal-header-padding: 15px;
  --bs-modal-border-radius: 6px;
  --bs-modal-inner-border-radius: 5px;
  --bs-modal-title-line-height: 1.42857143;
  --bs-modal-footer-gap: 5px;
}
.modal-dialog {
  position: relative;
  width: auto;
  margin: 10px;
}
.modal-content {
  border-radius: 6px;
}
.modal-header {
  padding: 15px;
}
.modal-title {
  margin: 0;
  line-height: 1.42857143;
  font-size: 18px;
}
.modal-body {
  position: relative;
  padding: 15px;
}
.modal-footer {
  padding: 15px;
  text-align: right;
}
.modal-footer > * {
  margin: 0;
}
.modal-footer .btn + .btn {
  margin-bottom: 0;
  margin-left: 5px;
}
.modal-footer .btn-group .btn + .btn {
  margin-left: -1px;
}
.modal-footer .btn-block + .btn-block {
  margin-left: 0;
}
@media (min-width: 576px) {
  .modal-dialog {
    max-width: none;
    margin: 10px;
  }
}
@media (min-width: 768px) {
  .modal-dialog {
    width: 600px;
    max-width: 600px;
    margin: 30px auto;
  }
  .modal-sm {
    width: 300px;
    max-width: 300px;
  }
}
@media (min-width: 992px) {
  .modal-lg {
    width: 900px;
    max-width: 900px;
  }
}
@media (min-width: 1200px) {
  .modal-xl {
    width: 900px;
    max-width: 900px;
  }
}
/* BS3 の .close 相当: モーダルヘッダの閉じるボタン */
.modal-header .btn-close {
  margin: 0 0 0 auto;
  padding: 0;
  font-size: 12px;
  line-height: 1;
}

/* ------------------------------------------------------------------
 * 17. 画像・サムネイル
 *    BS3 の .img-rounded (角丸 6px)、.img-circle は BS5 に無いため復元
 * ------------------------------------------------------------------ */
img {
  vertical-align: middle;
}
.img-rounded {
  border-radius: 6px;
}
.img-circle {
  border-radius: 50%;
}
.img-thumbnail {
  padding: 4px;
  line-height: 1.42857143;
  border-radius: 4px;
}

/* ------------------------------------------------------------------
 * 18. ツールチップ・ポップオーバー・プログレスバー
 * ------------------------------------------------------------------ */
.tooltip {
  font-size: 12px;
  line-height: 1.4;
  --bs-tooltip-font-size: 12px;
  --bs-tooltip-padding-x: 8px;
  --bs-tooltip-padding-y: 3px;
  --bs-tooltip-border-radius: 4px;
}
.popover {
  font-size: 14px;
  line-height: 1.42857143;
  --bs-popover-font-size: 14px;
  --bs-popover-border-radius: 6px;
  --bs-popover-header-padding-x: 14px;
  --bs-popover-header-padding-y: 8px;
  --bs-popover-header-font-size: 14px;
  --bs-popover-body-padding-x: 14px;
  --bs-popover-body-padding-y: 9px;
}
.popover-header {
  font-weight: normal;
  line-height: 18px;
}
.progress {
  height: 20px;
  margin-bottom: 20px;
  border-radius: 4px;
  --bs-progress-height: 20px;
  --bs-progress-font-size: 12px;
  --bs-progress-border-radius: 4px;
}
.progress-bar {
  font-size: 12px;
  line-height: 20px;
}

/* ------------------------------------------------------------------
 * 19. BS5 に存在しない BS3 のユーティリティ / 互換クラス
 * ------------------------------------------------------------------ */
.hidden {
  display: none !important;
}
.show-inline {
  display: inline !important;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}
.sr-only-focusable:active,
.sr-only-focusable:focus {
  position: static;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  clip: auto;
}
.text-left {
  text-align: left !important;
}
.text-right {
  text-align: right !important;
}
.pull-right {
  float: right !important;
}
.pull-left {
  float: left !important;
}
.center-block {
  display: block;
  margin-right: auto;
  margin-left: auto;
}
.clearfix::before,
.clearfix::after {
  display: table;
  content: " ";
}
.clearfix::after {
  clear: both;
}
.well {
  min-height: 20px;
  padding: 19px;
  margin-bottom: 20px;
  border: 1px solid;
  border-radius: 4px;
}
.well-lg {
  padding: 24px;
  border-radius: 6px;
}
.well-sm {
  padding: 9px;
  border-radius: 3px;
}
.jumbotron {
  padding: 30px 15px;
  margin-bottom: 30px;
}
.jumbotron h1,
.jumbotron .h1 {
  font-size: 63px;
}
.jumbotron p {
  margin-bottom: 15px;
  font-size: 21px;
  font-weight: 200;
}
@media screen and (min-width: 768px) {
  .jumbotron {
    padding: 48px 0;
  }
  .container .jumbotron,
  .container-fluid .jumbotron {
    padding-right: 60px;
    padding-left: 60px;
  }
}
/* BS3 の .form-inline / .form-horizontal 互換 (最低限) */
@media (min-width: 768px) {
  .form-inline .form-group,
  .form-inline .mb-3 {
    display: inline-block;
    margin-bottom: 0 !important;
    vertical-align: middle;
  }
  .form-inline .form-control {
    display: inline-block;
    width: auto;
    vertical-align: middle;
  }
  .form-inline label,
  .form-inline .form-label {
    margin-bottom: 0;
    vertical-align: middle;
  }
}
.form-horizontal .form-group,
.form-horizontal .mb-3 {
  margin-right: -15px;
  margin-left: -15px;
}
.form-horizontal .form-group::before,
.form-horizontal .form-group::after,
.form-horizontal .mb-3::before,
.form-horizontal .mb-3::after {
  display: table;
  content: " ";
}
.form-horizontal .form-group::after,
.form-horizontal .mb-3::after {
  clear: both;
}
@media (min-width: 768px) {
  .form-horizontal .control-label {
    padding-top: 7px;
    margin-bottom: 0;
    text-align: right;
  }
}

/* ------------------------------------------------------------------
 * 20. 本システムの自作スタイル (寸法のみ。色は theme*.css)
 *     旧テーマCSS (Bootstrap 3 全文) の末尾に置かれていたもの
 * ------------------------------------------------------------------ */
.profile-thumbnail {
  position: absolute;
}
.profile-header {
  min-height: 260px;
  margin-left: 10%;
  margin-right: 10%;
}
div.post-tabs {
  margin-top: 16px;
}
div.post-tabs ul.posts {
  margin: 0;
  border-top: none;
}
div.striped {
  border-top-width: 1px;
  border-top-style: solid;
  padding: 8px;
}
div.striped:nth-of-type(2n) {
  margin-right: 0;
  margin-left: 0;
}
div.title {
  font-weight: bold;
  vertical-align: bottom;
  border-bottom-width: 2px;
  border-bottom-style: solid;
  margin-right: 0;
  margin-left: 0;
  padding: 8px;
}
/* パンくずは本システムでは padding 8px に変更されていた */
.breadcrumb {
  padding: 8px;
  --bs-breadcrumb-padding-x: 8px;
  --bs-breadcrumb-padding-y: 8px;
}
/* .panel-primary 相当の枠線 (色は theme*.css) */
.border-panel-primary {
  border-width: 1px;
  border-style: solid;
}

/* ------------------------------------------------------------------
 * 21. 印刷時 (BS3 の印刷スタイル)
 * ------------------------------------------------------------------ */
@media print {
  .navbar {
    display: none;
  }
  .table {
    border-collapse: collapse !important;
  }
  .table-bordered th,
  .table-bordered td {
    border-width: 1px !important;
  }
}
