/* ==================== BODY ==================== */

body {
	overflow-y: scroll;
	/* 変数で指定しているためここで個別指定不要
	font-family: var(--font-family-sans-serif);
	font-size: 0.875rem;
	line-height: var(--bs-body-line-height);
  	color: #495057;
	*/
}

/* ==================== HEADER ==================== */

.header {
    margin-bottom: 8px;
}
@media (min-width: 768px) {
    .header {
        margin-top: 8px;
    }
}

.header .user-info {
	margin: 0px 0px 4px 0px;
	padding: 8px;
	border-style: none solid solid solid;
	border-width: 0 1px 1px 1px;
	border-radius: 0px;
	border-color: #e3e3e3;
	background-color: #f5f5f5;
}

.header .login-info {
	display: inline-block;
	margin: 16px 16px 4px 16px;
	font-size: small;
	color: gray;
}

.header .logo-small {
	padding: 0px 4px 4px 0px;
}

/* ==================== NAVBAR ==================== */

/* グローバルメニューのドロップダウンメニューをマウスオーバーで開く */

@media (min-width: 992px) {
	.dropdown:hover > .dropdown-menu {
		display: block;
	}
}

/* ドロップダウンをマウスオーバーで開くときにメニューまでの隙間をなくす */

.dropdown-menu {
	margin: 0rem;
	box-shadow: 0 0.25rem 0.25rem rgba(0, 0, 0, 0.175);
}

/* ブランドのみの画面でNavbarが細くならないようにする */

.navbar-brand {
	padding-top: 0rem;
	padding-bottom: 0rem;
}

.navbar-brand:hover, .navbar-brand:focus {

    text-decoration: none;
}

.nav-link {
	color: var(--bs-primary);
}

.nav-link:hover, .nav-link:focus {
    text-decoration: none;
    color: var(--bs-primary-avtive);
}

/* ==================== DROPDOWN ==================== */

.dropdown-item.active, .dropdown-item:active {
    color: #fff;
    text-decoration: none;
    background-color: #2FA4E7;
}

.dropdown-item:hover, .dropdown-item:focus {
  color: #fff;
  text-decoration: none;
  background-color: #2fa4e7;
}

/* ==================== FORM ==================== */

.form-group {
	margin-bottom: 0.4rem;
}

.form-control {
	font-size: 0.875rem;
}

.required:after {
	content:" *";
	font-weight: bold;
	color: #ff0000;
}

.col-form-label {
	font-weight: bold;
}

@media (min-width: 768px) {
	.col-form-label {
		text-align: right;
	}
}

/* 追加 */
.form-inline .label-inline {
	margin-bottom: 0.3rem;
	margin-top: 0.3rem;
}

.radio, .checkbox  {
	padding-top: 0.4rem;
	padding-bottom: 0.4rem;
}

input[type=radio], input[type=checkbox] {
	margin-right: 0.25rem;
}
/* ファイルインプットが必ず改行される件に対応（改行を解除） */

input[type=file] {
	display: inline-block;
}

/* 追加 */
.table .radio-cell {
	width: 3rem;
}

select.was-validated select.form-control:invalid,
select.form-control.is-invalid {
	background-position: right calc(1.2em + 0.2rem) center;
}

/* ==================== FORM ERROR ==================== */

.form-group.has-error {
	color: #C71C22;	/* テーマのカラーに合わせる */
}

.form-group.has-error input {
	border-color: #C71C22;	/* テーマのカラーに合わせる */
}

.form-group.has-warning {
	color: #DD5600;	/* テーマのカラーに合わせる */
}

.form-group.has-warning input {
	border-color: #DD5600;	/* テーマのカラーに合わせる */
}

/* 追加 */
.inline-invalid-feedback {
	font-size: 80%;
	color: #c71c22;
	width: 100%;
	margin-top: 0.25rem;
	margin-bottom: 0.15rem;
}

.was-validated .form-control:invalid,
.form-control.is-invalid {
	background-color: #efbfc1;
}

.warning-feedback {
	font-size: 80%;
	color: #ccbe00; /* テーマのカラーに合わせる */
}

.info-feedback {
	font-size: 80%;
}

/* ==================== TABLE ==================== */

/* テーブルヘッダの改行禁止 */

table.table tr th {
	white-space: nowrap;
}

/* table にボーダーを追加 */

table.table tr, table.table tr th, table.table tr td {
	border-width: 1px;
	border-style: solid;
	border-color: #ddd;
	vertical-align: middle;
}

/* 追加 */
.table .thead-light th {
	background-color: #ebebeb;
}

/* ==================== CARD ==================== */

.card {
	margin-bottom: 0.5rem;
	word-wrap: break-word;
}

/* テーブルレイアウトを固定化し、長い英単語も強制的に改行する */

.card .card-header, .card .card-body {
	padding: 0.5rem 0.5rem;
}

.card legend {
	font-size: large;
	border: 0;
	border-bottom: 1px solid #e5e5e5;
	margin-bottom: 0.5rem;
}

/* card 内のテーブル表現 */

.card .table {
	table-layout: fixed;
	margin-bottom: 0rem;
}

.card .card-table {
	margin: 0rem 1rem 0rem 1rem;
	width: auto;
}

.card .card-table .table tr th {
	background-color: #317eac;
	border-style: none;
	color: white;
}

.card .card-table .table tr td {
	background-color: white;
}

/* ceruleanのcard背景色(bg-light)のグラデーションをとる */

.bg-light {
	background-image: none;
	background-repeat: no-repeat;
}

.table > :not(:first-child) {
  border-top: initial;
}

/* ==================== LIST GROUP ==================== */

/* 無効化
.list-group {
	margin-bottom: 0.5rem;
} */

.list-group-item {
	padding: 0.5rem;
}

/* 追加 */
.list-group-item .d-flex .label-cell {
	width: 4rem;
	display: inline-table;
}

/* ==================== DIALOG ==================== */

.modal-body-term {
	padding: 1rem;
}

/* ==================== MEDIA SIZE ==================== */

@media (min-width: 1400px) {
  .container, .container-sm, .container-md, .container-lg, .container-xl, .container-xxl {
    max-width: 1140px;
  }
}

@media (min-width: 1200px) {
  h1, .h1 {
    font-size: 1.575rem;
  }
}

@media (min-width: 1200px) {
  h2, .h2 {
    font-size: 1.3125rem;
  }
}

@media (min-width: 1200px) {
  h3, .h3 {
    font-size: 1.09375rem;
  }
}

@media (min-width: 1200px) {
  h4, .h4 {
    font-size: 0.9625rem;
  }
}

h1, .h1 {
  font-size: 1.575rem; }

h2, .h2 {
  font-size: 1.3125rem; }

h3, .h3 {
  font-size: 1.09375rem; }

h4, .h4 {
  font-size: 0.9625rem; }

h5, .h5 {
  font-size: 0.875rem; }

h6, .h6 {
  font-size: 0.7875rem; }

/* ==================== LINK ==================== */
a {
    color: var(--bs-primary);
    text-decoration: none;
    background-color: transparent;
}
a:hover {
    color: var(--bs-primary-active);
    text-decoration: underline;
}
a:not([href]):not([tabindex]) {
  color: inherit;
  text-decoration: none;
  }
a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {
  color: inherit;
  text-decoration: none;
}
a:not([href]):not([tabindex]):focus {
  outline: 0;
}

/* ==================== BUTTON ==================== */

.btn {
    font-size: 0.875rem;
}

.btn:hover {
    text-decoration: none;
}

/* ==================== OTHER ==================== */

h1, h2, h3 {
	margin-top: 1rem;
	margin-bottom: 0.5rem;
	color: var(--bs-primary);
}

p {
	line-height: 1.25rem;
	margin-bottom: 0.5rem;
}

.w-20 {
	width: 20% !important;
}

.w-40 {
	width: 40% !important;
}

.col-md-12 > .w-100 {
	width: unset !important;
}
/*
.col-sm-12 > .w-100 {
	width: unset !important;
}
*/
.col-md-12 > form > .w-100 {
	width: unset !important;
}

:root {
	/* 追加 */
	--font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
	--bs-primary-active: #088069;
	--bs-loginhub1-active: #0d9e47;
	--bs-loginhub2-active: #0b4c89;
	--bs-loginhub3-active: #ca210b;
	/* 以下、差分
	--bs-blue: #033C73;
	/*
	--bs-indigo: #6610f2;
	--bs-purple: #6f42c1;
	--bs-pink: #d63384;
	*/
	--bs-red: #C71C22;
	--bs-yellow: #DD5600;
	--bs-green: #73A839;
	/*
	--bs-teal: #20c997;
	 */
	--bs-cyan: #009075;
	--bs-white: #fff;
	--bs-gray: #868e96;
	/*
	--bs-gray-dark: #343a40;
	--bs-gray-100: #f8f9fa;
	--bs-gray-200: #e9ecef;
	--bs-gray-300: #dee2e6;
	--bs-gray-400: #ced4da;
	--bs-gray-500: #adb5bd;
	--bs-gray-600: #6c757d;
	--bs-gray-700: #495057;
	--bs-gray-800: #343a40;
	--bs-gray-900: #212529;
	*/
	--bs-primary: #009075;
	--bs-secondary: #e9ecef;
	--bs-success: #73A839;
	--bs-info: #033C73;
	--bs-warning: #DD5600;
	--bs-danger: #C71C22;
	--bs-loginhub1: #01B248;
	--bs-loginhub2: #0055A2;
	--bs-loginhub3: #E81B00;

	/*
	--bs-light: #f8f9fa;
	--bs-dark: #212529;
	 */
	/* -rgb無しに対応させる。 */
	--bs-primary-rgb: 0, 144, 117;
	--bs-secondary-rgb: 233, 236, 239;
	--bs-success-rgb: 115, 168, 57;
	--bs-info-rgb: 3, 60, 115;
	--bs-warning-rgb: 221, 86, 0;
	--bs-danger-rgb: 199, 28, 34;
	--bs-loginhub1-rgb: 1, 178, 72;
	--bs-loginhub2-rgb: 0, 85, 162;
	--bs-loginhub3-rgb: 232, 27, 0;
	/*
	--bs-light-rgb: 248, 249, 250;
	--bs-dark-rgb: 33, 37, 41;
	--bs-white-rgb: 255, 255, 255;
	--bs-black-rgb: 0, 0, 0;
	 */
	--bs-body-color-rgb: 73, 80, 87;
	/*
	--bs-body-bg-rgb: 255, 255, 255;
	--bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
	--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
	--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
	 */
	--bs-body-font-family: var(--font-family-sans-serif);
	--bs-body-font-size: 0.875rem;
	/*
	--bs-body-font-weight: 400;
	--bs-body-line-height: 1.5;
	 */
	--bs-body-color: #495057;
	/*
	--bs-body-bg: #fff;
	 */
}

/* 追加 */
.h-bl {
	border-left: solid 4px;
	padding-left: 0.65rem;
}

.nav-tabs .nav-link.active,
.nav-tabs .nav-item.show .nav-link {
	background-color: var(--bs-primary);
	color: #fff;
}

.user-panel {
	padding: 1.25rem;
}

.user-panel .name {
	font-weight: bold;
	font-size: 1.25rem;
	margin-bottom: 0;
}

/* info */
.info-card {
	padding: 1rem;
	border: solid 7px #eeeeee;
}

.user-panel-point {
	font-size: 1.5rem;
	line-height: 1.2;
	margin-bottom: 1rem;
}

/* ダイアログ内ウィンドウ用 */
.pre-scrollable {
	max-height: 340px;
	overflow-y: scroll;

	padding-left: 0.4rem;
}

.pre-scrollable > label {
	padding-top: 0.2rem;
	padding-bottom: 0.2rem;
}

@media (max-width: 992px) {
	.user-panel-point {
		font-size: 1.2rem;
		line-height: 1;
		margin-bottom: 0.5rem;
	}
	.info-card {
		padding: 0.8rem;
		border: solid 4px #eeeeee;
	}
	.user-panel {
		padding: 0.8rem;
	}
	.user-panel .name {
		font-size: 1rem;
	}
	.pt-nav .fab,
	.pt-nav .fas {
		font-size: 2rem;
	}
	.pt-nav .col-3:nth-of-type(n + 2) {
		padding-left: 8px;
	}
	.pt-nav .col-3:not(:last-child) {
		padding-right: 8px;
	}
	.pt-nav-text-bleak {
		display: block;
	}
}


.col-xs-1-5, .col-sm-1-5, .col-md-1-5, .col-lg-1-5,
.col-xs-2-5, .col-sm-2-5, .col-md-2-5, .col-lg-2-5,
.col-xs-3-5, .col-sm-3-5, .col-md-3-5, .col-lg-3-5,
.col-xs-4-5, .col-sm-4-5, .col-md-4-5, .col-lg-4-5 {
    position: relative;
    min-height: 1px;
    padding-right: 15px;
    padding-left: 15px;
}
.col-xs-1-5 {
    width: 20%;
    float: left;
}
.col-xs-2-5 {
    width: 40%;
    float: left;
}

.col-xs-3-5 {
    width: 60%;
    float: left;
}

.col-xs-4-5 {
    width: 80%;
    float: left;
}
@media (min-width: 768px) {
    .col-sm-1-5 {
        width: 20%;
        float: left;
    }
    .col-sm-2-5 {
        width: 40%;
        float: left;
    }
    .col-sm-3-5 {
        width: 60%;
        float: left;
    }
    .col-sm-4-5 {
        width: 80%;
        float: left;
    }
}
@media (min-width: 992px) {
    .col-md-1-5 {
        width: 20%;
        float: left;
    }
    .col-md-2-5 {
        width: 40%;
        float: left;
    }
    .col-md-3-5 {
        width: 60%;
        float: left;
    }
    .col-md-4-5 {
        width: 80%;
        float: left;
    }
}
@media (min-width: 1200px) {
    .col-lg-1-5 {
        width: 20%;
        float: left;
    }
    .col-lg-2-5 {
        width: 40%;
        float: left;
    }
    .col-lg-3-5 {
        width: 60%;
        float: left;
    }
    .col-lg-4-5 {
        width: 80%;
        float: left;
    }
}

caption {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  color: #868e96;
  text-align: left;
  caption-side: bottom;
}

label {
  display: inline-block;
  margin-bottom: 0.4rem;
}

/* 追加（要適用箇所確認） */
abbr[title],
abbr[data-original-title] {
  text-decoration: underline;
  /* -webkit-text-decoration: underline dotted; */
  text-decoration: underline dotted;
  cursor: help;
  border-bottom: 0;
  /* -webkit-text-decoration-skip-ink: none; */
  text-decoration-skip-ink: none;
}

.blockquote {
  margin-bottom: 1rem;
  font-size: 1.09375rem; }

.blockquote-footer {
  display: block;
  font-size: 80%;
  color: #868e96;
}

.img-thumbnail {
  padding: 0.25rem;
  background-color: #fff;
  border: 1px solid #dee2e6;
  border-radius: inherit;
  max-width: 100%;
  height: auto;
}

.figure-caption {
  font-size: 90%;
  color: #868e96;
}

.navbar-brand.btn-primary {
    color: #fff;
    background-color: transparent;
}

.btn-primary {
  color: #fff;
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
}
.btn-primary:hover {
  color: #fff;
  background-color: var(--bs-primary-active);
  border-color: var(--bs-primary-active);
}

.btn-loginhub1 {
	color: #fff;
	background-color: var(--bs-loginhub1);
	border-color: var(--bs-loginhub1);
}
.btn-loginhub1:hover {
	color: #fff;
	background-color: var(--bs-loginhub1-active);
	border-color: var(--bs-loginhub1-active);
}

.btn-loginhub2 {
	color: #fff;
	background-color: var(--bs-loginhub2);
	border-color: var(--bs-loginhub2);
}
.btn-loginhub2:hover {
	color: #fff;
	background-color: var(--bs-loginhub2-active);
	border-color: var(--bs-loginhub2-active);
}

.btn-loginhub3 {
	color: #fff;
	background-color: var(--bs-loginhub3);
	border-color: var(--bs-loginhub3);
}
.btn-loginhub3:hover {
	color: #fff;
	background-color: var(--bs-loginhub3-active);
	border-color: var(--bs-loginhub3-active);
}

.bg-secondary {
    color: #212529;
    background-color: var(--bs-secondary) !important;
}

a.bg-secondary:hover,
a.bg-secondary:focus,
button.bg-secondary:hover,
button.bg-secondary:focus {
    color: #212529;
    background-color: #cbd3da !important;
}


.page-link {
  color: var(--bs-primary);
  background-color: #fff;
}

.page-link:hover {
  color: var(--bs-primary-active);
  background-color: #e9ecef;
  border-color: #dee2e6;
}
.page-link:focus {
  color: var(--bs-primary-active);
  background-color: #e9ecef;
  box-shadow: 0 0 0 0.25rem rgba(var(--bs-primary-rgb), 0.25);
}
.page-item.active .page-link {
  color: #fff;
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
}


.btn-outline-primary {
  color: var(--bs-primary);
  border-color: var(--bs-primary);
}
.btn-outline-primary:hover {
  color: #fff;
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
}
.btn-check:focus + .btn-outline-primary, .btn-outline-primary:focus {
  box-shadow: 0 0 0 0.25rem rgba(var(--bs-primary-rgb), 0.5);
}
.btn-check:checked + .btn-outline-primary, .btn-check:active + .btn-outline-primary, .btn-outline-primary:active, .btn-outline-primary.active, .btn-outline-primary.dropdown-toggle.show {
  color: #fff;
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
}
.btn-check:checked + .btn-outline-primary:focus, .btn-check:active + .btn-outline-primary:focus, .btn-outline-primary:active:focus, .btn-outline-primary.active:focus, .btn-outline-primary.dropdown-toggle.show:focus {
  box-shadow: 0 0 0 0.25rem rgba(var(--bs-primary-rgb), 0.5);
}
.btn-outline-primary:disabled, .btn-outline-primary.disabled {
  color: var(--bs-primary);
}

/* ロゴ用 */
.pt4-logo-color {
	color: #fff;
	background-color: var(--bs-primary);
}


/* 追加 */
/* 日付要素サイズ調整用 */
.calendar {
	min-width:8rem !important;
}

.date-input {
	min-width:8rem !important;
}

.date-form-adjust {
	min-width:8rem !important;
}

.time-form-adjust {
	min-width:4rem !important;
}

/* text-center指定時に左寄せになるのをリセット */
.form-check.text-center .form-check-input {
	float: initial;
}

/* inline禁止対応 */
.color_red {
	color: red; /* has_errorと合わせるならば、 #C71C22 */
}

.w-60px {
	width: 60px;
}

.h-340px {
	height: 340px;
}

.mt-10 {
	margin-top: 10rem;
}

.pt-modal-def-size {
	max-width: 550px;
}

.ps-sm-10 {
    padding-left: 5rem !important;
  }

.pt-prefecture-select-area {
	width: 100%;
	display: inline-block;
	padding-left: 0.4rem;
	height: 150px;
	border: ridge;
	border-width: thin;
	border-color: black
}

/* モーダル画面のリスト用 */
.modal-store-select-area > label,
.modal-group-select-area > label {
	display: block;
}
.pt-prefecture-select-area > label {
	display: block;
}

