@charset "UTF-8";

html {
	height: 100%;
	/*font-size: 0px !important;*/
	/*font-size: calc(7px + 0.45vw);*/
	/*font-size: calc(70.5% + 0.25vw);*/

}
body {
	min-height: 100%;
	display: flex;
	flex-direction: column;
	margin: 0;
}

/*##############################*/

.hospital-card {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 1rem;
	padding: 1rem;
	border: 1px solid #ccc;
	border-radius: 0.75rem;
	box-shadow: 0 2px 8px rgba(0,0,0,0.05);
	margin-bottom: 1.5rem;
	background-color: #fff;
	min-height: 100px;
	/*color: #00403f;*/
}

.hospital-info {
	flex: 1 1 300px;
	min-width: 380px;
	max-width: 100%;
	position: relative;
	border: 1px solid #efefef;
	border-radius: 0.75rem;
	background: white;
	padding: 1em;
	box-shadow: 0 3px 7px rgba(0, 0, 0, 0.1);

}

.hospital-info i {
	width: 1.2rem;
	text-align: center;
}

.hospital-info .btn {
	font-size: 0.8rem;
	white-space: normal;
	padding: 0.5rem 0.75rem;
}
.hospital-info:hover {

	box-shadow: 0 3px 7px rgba(0, 0, 0, 0.1);
	/*transform: translateY(-2px);*/
}

.hospital-address a:hover,
.hospital-tel a:hover {
	color: #0d6efd;
	background-color: #d7e7e7;
	text-decoration: underline;
}

.hospital-name {
	font-size: 1.15rem;
	font-weight: bold;
	margin-bottom: 0.3em;
	color: #3564ea;
}

.hospital-address,
.hospital-tel {
	font-size: 0.5rem;
	display: flex;
	align-items: center;
}




.hospital-code {
  font-size: 0.75rem;
  color: #6c757d;
  display: flex;
  gap: 0.5rem;
  align-items: center;
  justify-content: flex-end;
}


.hospital-code-name {
	font-weight: 600;
	color: #495057;
}


.hospital-services {
	flex: 1 1 100px;
	min-width: 200px;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1rem;
}

.service-item {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: calc(50% - 0.5rem);
	padding: 0.6rem 0.8rem;
	border-radius: 0.5rem;
	font-size: 0.8rem;
	font-weight: 500;
	transition: background-color 0.3s ease;
	max-height: 90px;

}


.hospital-schedule-time {
  display: grid;
  grid-template-columns: max-content 1fr;
  column-gap: 0.5rem; /* ラベルと内容の隙間 */
  align-items: start;
}

.hospital-schedule-time .value br {
  display: block;
  margin: 0; /* 改行後も左端を揃える */
}


@media (max-width: 968px) {
	.service-item { 
		width: calc(100% - 0.5rem);
	}
}

@media (max-width: 768px) {
	.service-item { 
		width: calc(50% - 0.5rem);
	}
}

.service-item span {
	display: flex;
	align-items: center;
	gap: 0.3rem;
}

.br-sp {
	display: none;
}

/* 画面幅が小さいときだけ改行 */
@media (max-width: 768px) {
	.br-sp {
		display: block;
	}
}


/* OK（○）用背景 */
.service-item.ok {
	background-color: #e6f7e9;
	color: #20734c;
}

.service-item.ng {
	background-color: #fcebea;
	color: #b94a48;
}


.service-item.click {
	justify-content: center;
	background-color: #d85507;
	color: #fff;
	cursor: pointer;
	user-select: none;
	text-align: center;
	font-size: 1.4rem;
}



.service-item.click:hover {
	background-color: #7c3104;
}

.service-item.note {
	flex: 1 1 100%;
	background: #f9f9f9;
	font-size: 1rem;
	max-height: unset;

	overflow-wrap: break-word;
	word-break: break-word;
	white-space: normal;
}

.status-mark {
	font-size: 1.5rem;
	font-weight: bold;
}


.custom-select-lg {
	font-size: 1.25rem;
	padding: 0.75rem 1rem;
	border-radius: 0.75rem;
	border: 1px solid #ccc;
	background-color: #fdfdfd;
	box-shadow: 0 2px 4px rgba(0,0,0,0.05);
	appearance: none;
	background-image: url('data:image/svg+xml;charset=UTF8,<svg fill="%23999" height="16" viewBox="0 0 24 24" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M7 10l5 5 5-5z"/></svg>');
	background-repeat: no-repeat;
	background-position: right 1rem center;
	background-size: 1rem;
}




/* スマホ向けレスポンシブ調整 */
@media (max-width: 768px) {
	.custom-select-lg {
		font-size: 1.1rem;
		padding: 0.65rem 1rem;
	}

	.hospital-card {
		flex-direction: column;
		align-items: stretch;
		gap: 1.25rem;
		padding: 1rem;

	}

	.hospital-services {
		justify-content: space-between;
	}


	.hospital-info {
		flex: 1 1 100%;
		min-width: 100%;
	}
	.hospital-code {
		position: static;
		margin-top: 0.5rem;
		text-align: right;
	}

	.hospital-info h4 {
		font-size: 1.1rem;
		margin-bottom: 8px;
	}

	.hospital-info p {
		margin-bottom: 6px;
	}
}



form {
	margin: 0 auto;

	padding: 5px;
	border: 1px solid #CCC;
	border-radius: 5px;
}



.form_search{
	padding: 25px;
	color: #39272e;
	background-color: #efefef;
	position: relative;

}
.form_search p{
	font-size: 1.0em;
}

.form_search .update-date{
	font-size: 0.6em;
	position: absolute;
}


.form_wrapper{
	margin:0 auto;
	width: 100%;
	padding: 0px;
	text-align: left;
	margin-bottom:20px;
}


.form_label{
	font: 90% sans-serif;
	width: 35%;min-width: 104px;
	text-align: left;
}

.form-text {
	color: #404040;
}
.form-control:focus {
	border-color: #ff85e2;
	outline: 0;
	box-shadow: 0 0 0 .25rem rgba(255, 11, 106.31,.25);
}

.label-h {
	font-weight: bold;
	font-size: 1.5em;
}



.onlyNum {
	ime-mode: disabled; /* 非推奨・将来的には効かない可能性あり */
}

.desc-wrap {
	text-align: center;
}

.desc-list {
	display: inline-block;
	text-align: left;
	margin: 0 auto 1em;
	padding-left: 1.2em;
}

#desc {
	display: none;
	text-align: left;
	width: 80%;
	max-width: 500px;
	margin: 0 auto;

}

/* ---------------------------- */
/* --- btn --- */
/* ---------------------------- */

.btn-oa {
	padding: 0.6rem 1.4rem;
	border: 1px solid #A0C4FF;
	border-radius: 12px;
	background-color: #E0F7FA;
	color: #0077B6;
	font-weight: 500;
	cursor: pointer;
	transition: all 0.2s ease;
	display: inline-block;
	font-size: 0.95rem;
	flex: 1 1 auto;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);

}

.btn-oa:hover {
	background-color: #0077B6;
	color: #E0F7FA;
	box-shadow: 0 4px 10px rgba(0,0,0,0.15);
}


.center-checkbox {
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
}

.big-checkbox .form-check-input {
  width: 1.6em;
  height: 1.6em;
  cursor: pointer;
  border: 3px solid #444;   /* 枠を太く・濃く */
  border-radius: 4px;       /* 少し角丸 */
}

/* ホバーしたらさらに強調 */
.big-checkbox .form-check-input:hover {
  border-color: #007bff;
  box-shadow: 0 0 4px rgba(0,123,255,0.6);
}

/* チェック入った時 */
.big-checkbox .form-check-input:checked {
  background-color: #007bff; 
  border-color: #007bff;
}

/* ラベル */
.big-checkbox .form-check-label {
  font-size: 1rem;
  margin-left: 0.6em;
  cursor: pointer;
}
/* ---------------------------- */
/* --- 東振協 --- */
/* ---------------------------- */


.d-content {
	margin: 0.2rem;
	padding: 0 1rem 0 1rem;
	border: 2px solid;
	font-family: 游明朝,"Yu Mincho",YuMincho,"Hiragino Mincho ProN","Hiragino Mincho Pro",HGS明朝E,メイリオ,Meiryo,serif;
}

.d-title {
	padding: 1em 0 0 0;
	text-align: center;
	font-size: 20px !important;
	font-weight: bold;
}

.d-address {
	margin-top: 15px;
	margin-bottom: 20px;
	font-size: 15px !important;
}

.right {
	text-align: right;
}
.left {
	text-align: left;
}

.d-pre {
	margin-bottom: 15px;
	font-size: 18px;
}

.lev1 {
	margin-bottom: 15px;
}

.lev1-title {
	margin-top: 5px;
	margin-bottom: 5px;
	font-weight: bold;
	font-size: 18px;
}
.d-param {
	margin-left: 2em;
	font-size: 15px !important;
}

.lev2 {
	margin: 0;
	padding: 0;
	margin-bottom: 3px;
	font-size: 15px !important;
}

.d-support {
	margin-top: 1em;
	font-size: 15px !important;
}

/* ---------------------------- */
/* --- バージョンバッジ --- */
/* ---------------------------- */

	.text_icon{
		background-color: #c31c9c;
		color: #FFF;
		border-radius: 7px;
		font-weight: bold;
		font-size: 50%;
		margin: 5px;
		padding: 5px;
	}


/* ---------------------------- */
/* --- トースト --- */
/* ---------------------------- */

	/*#toast {
		display: none;
		position: fixed;
		max-height: 80vh;
		width: 60%;
		min-width: 300px;
		border: 1px solid rgba(0, 0, 0, 0.1);
		border-radius: 6px;
		z-index: 99999;
		background-color: #d7dbe7;
		top: 70px;
		left: 50%;
		transform: translateX(-50%);
		box-shadow: 0 5px 10px -1px rgba(0, 0, 0, 0.4);
		padding: 10px 15px;
		box-sizing: border-box;
		overflow-y: auto;
	}

	#toast > p {
		text-align: center;
		margin: 0;
		font-size: 17px;
		font-weight: bold;
		color: #3c4664;
		word-break: break-word;
		white-space: pre-wrap;
	}*/


	#toast-container {
		position: fixed;
		top: 40px;
		left: 50%;
		transform: translateX(-50%);
		z-index: 99999;
		display: flex;
		flex-direction: column;
		gap: 10px;
		pointer-events: none;
		align-items: center;
		width: 90vw;
    max-width: 1200px;
    min-width: 300px;
	}

	.toast-item {
		opacity: 0;
		transform: translateY(-20px);
		min-width: 300px;
		max-width: 90vw;
		width: fit-content;
		border: 1px solid rgba(0, 0, 0, 0.1);
		border-radius: 6px;
		background-color: #d7dbe7;
		box-shadow: 0 5px 10px -1px rgba(0,0,0,0.4);
		padding: 10px 15px;
		box-sizing: border-box;
		cursor: pointer;
		pointer-events: auto;
		transition: transform 0.25s ease, opacity 0.25s ease;
		white-space: pre-wrap;
		word-break: break-word;
	}

	.toast-item.show {
		opacity: 1;
		transform: translateY(0);
	}

	.toast-item > p {
		text-align: center;
		margin: 0;
		font-size: 17px;
		font-weight: bold;
		color: #3c4664;
	}


/* ---------------------------- */
/* --- common --- */
/* ---------------------------- */

	.container2 {
		min-height: -webkit-calc(100dvh  - 35px);
		min-height: calc(100dvh  - 35px);
		/*background-color: #e9f5f5;*/
		background-color: #ebf5e9;
		color: #001140;
		width: 100%;
		margin-left: auto;
		margin-right: auto;
		border-bottom-width: 0px;
		padding-left: 0px;
		padding-top: 0px;
		padding-right: 0px;
		padding-bottom: 0px;
	}
	.headerTitle{
		color: #FFF;
	}

	.row2 {
		width: 100%;
		margin: 0;
		padding: 0;
		display: inline-block;
	}

	footer {
		position: relative;
		z-index: 999;
		width: 100%;
		background: #222529;
		color:#CCC;

		height: 35px;
		text-align: center;
	}

	footer div{
		position: absolute;
		font-size: clamp(15px, 1.5vw, 20px);

		width: 100%;

		top: 50%;
		left: 50%;
		-webkit- transform: translateY(-50%) translateX(-50%);
		transform: translateY(-50%) translateX(-50%);
	}




