@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Alice&family=Noto+Sans+JP:wght@100..900&family=Noto+Serif+JP:wght@200..900&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap');

/* リスト要素をリセットする ---------------- */
dl,dt,dd,ol,ul,li	{
	list-style-position: outside;
	list-style-type: none;
}


/* ===================================================================

	スタイルの設定

=================================================================== */
html {
	font-size: var(--font-size--bs);
	height: 100%;
}
body{
	height: 100%;
	margin:0;
/*	padding-top: 60px;*/
	background: var(--main-bg-color) url(../img/bk.jpeg) no-repeat center center;
	background-attachment: fixed;
	background-size: cover;
	color:var(--main-txt-color);
	line-height:1.5;
	font-family: var(--def-font-family);
	font-weight: 400;
}

img {
	max-width: 100%;
}


/* ===================================================================
	通常のリンク
=================================================================== */
a {
	text-decoration: underline;
	color: var(--bs-link);
	transition: all .3s ease;
}
a:link {
	
}
a:visited {
	color: var(--bs-link);
/*	text-decoration:none;*/
}
a:hover {
	color: var(--bs-link-light);
/*	text-decoration:none;*/
}
a:active {
	color: var(--bs-link-light);
/*	text-decoration:none;*/
}
/* メインエリアはリンクにアンダーライン */
/*#main a{
	text-decoration:underline;
}*/

/* ===================================================================
	#header
	ヘッダー
=================================================================== */
header {
	position: fixed;
	top: var(--def-margin-side);
	left: var(--def-margin-side);
	right: var(--def-margin-side);
	display: flex;
	justify-content: space-between;
	align-items: center;
	height: 60px;
	z-index: 100;
	background: var(--bs-white-transparent);
	border-radius: var(--bs-radius);
	backdrop-filter: var(--bs-blur);
	border: var(--bs-glass-border);
	filter: var(--bs-filter02);
}
header a {
	color: var(--bs-primary);
	text-decoration: none;
}
.logo {
	padding: 10px 20px;
	font-weight: 700;;
}
.logo a {
	color: var(--bs-primary);
}
.logo img {
	height: 40px;
}


/*
.header_name {
	display: flex;
	align-items: center;
	padding-right: 80px;
	font-weight: 500;
}*/

.header_info {
	margin-left: 5px;
	display: inline-block;
	position: relative;
}
.header_info img {
}
.header_info_num {
	display: inline-block;
	width: 1.4em;
	height: 1.4em;
	line-height: 1.4em;
	position: absolute;
	top: 0;
	right: -0.2em;
	border-radius: 0.7em;
	font-size: 10px;
	color: var(--bs-white);
	background: var(--bs-danger);
	text-align: center;
}

.header_menu {
	position: fixed;
	top: 0;
	right: 0;
	background: var(--bs-primary);
	border-radius: 0 0 0 20px;
	width: 60px;
	height: 60px;
	z-index: 99;
	transition: 0.6s;
}
/*
.header_menu.open {
	width: 90%;
	height: 100%;
}
*/
.header_sp_btn {
	position: fixed;
	top: 0;
	right: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 60px;
	height: 60px;
	z-index: 999;
	cursor: pointer;
}
.sp_menu_line {
	display: block;
	width: 30px;
	height: 30px;
	margin: 0 auto;
	position: relative;
}
.sp_menu_line span,
.sp_menu_line::before,
.sp_menu_line::after {
	content: "";
	display: block;
	position: absolute;
	left: 0;
	background-color: var(--bs-white);
	width: 30px;
	height: 2px;
	transition: 0.3s;
}
.sp_menu_line span {
	top: calc(50% - 1px);
}
.sp_menu_line::before {
	top: calc(50% - 9px);
}
.sp_menu_line::after {
	top: calc(50% + 7px);
}
.header_sp_btn.open .sp_menu_line span {
	opacity: 0;
}
.header_sp_btn.open .sp_menu_line::before {
	transform: translateY(8px) rotate(-45deg);
}
.header_sp_btn.open .sp_menu_line::after {
	transform: translateY(-8px) rotate(45deg);
}

.sp_nav {
	position: fixed;
	z-index: 3;
	inset: 0;
	overflow-y: auto;
	transition: opacity 0.3s ease;
	background: rgba(0, 0, 0, 0.4);
	opacity: 0;
	pointer-events: none;
}
.sp_nav.open {
	opacity: 1;
	pointer-events: auto;
}

.sp_nav_inner {
	background-color: var(--main-bg-color);
	z-index: 3;
	position: relative;
	padding: 100px 3% 60px 3%;
	border-radius: 0 0 40px 40px;
	transform: translateY(-100%);
	transition: transform 0.2s ease;
}
.sp_nav.open .sp_nav_inner {
	transform: translateY(0%);
}

.login_user_info {
	display: flex;
	justify-content: flex-end;
	align-items: flex-end;
	margin: 0 0 2rem;
}
.login_user_name span {
	font-size: var(--font-size--md);
	font-weight: 600;
}

.logout_link {
	margin-left: 2rem;
}
.logout_link a {

}
.logout_link a i {
	margin-right: 0.5em;
}


.sp_menulist {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1rem;
	margin: 0 auto;
	padding: 0;
}
.sp_menulist li {
}
.sp_menulist li a {
	display: flex;
	align-items: center;
	height: 100%;
	padding: 0.75em 1em;
	background: var(--bs-white);
	border-radius: 0.5rem;
	text-decoration: none;
	color: var(--main-txt-color);
	filter: var(--bs-filter);
	font-size: var(--font-size--bs);
}
.sp_menulist_icon {
	margin-right: 0.5rem;
	font-size: 125%;
	color: var(--bs-primary);
	text-align: center;
}
.sp_menulist_txt {
	line-height: 1.2;
	text-align: center;
	
}

/* Large devices (desktops, 992px and up) */
@media (max-width: 992px) {
}
/* Medium devices (tablets, 768px and up) */
@media (max-width: 768px) {
}
/* Small devices (landscape phones, 576px and up) */
@media (max-width: 576px) {
	.sp_menulist {
		grid-template-columns: repeat(1, 1fr);
	}
}



/* ===================================================================
	#footer
	フッター
=================================================================== */
address {
	padding: 10px;
	font-style: normal;
	text-align: center;
}

.footer_menu {
	display: none;
	position: fixed;
	bottom: var(--def-margin-side);
	left: var(--def-margin-side);
	right: var(--def-margin-side);
	background: var(--bs-white-transparent);
	border-radius: var(--bs-radius);
	backdrop-filter: var(--bs-blur);
	border: var(--bs-glass-border);
	filter: var(--bs-filter02);
	z-index: 10;
}
.footer_nav {
	display: flex;
	margin: 0;
	padding: 0;
}
.footer_nav li {
	width: calc((100% - 80px ) / 4 );
	flex-shrink: 1;
	flex-grow: 1;
}
.footer_nav li a {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 0.2em 0 0.6em;
	text-decoration: none;
	color: var(--main-txt-color);
	text-align: center;
}
.footer_menu_icon {
	margin-bottom: 0px;
	font-size: var(--font-size--lg);
}
.footer_menu_txt { 
	font-size: var(--font-size--sm);
	font-weight: 500;
}

.footer_nav li.footer_nav_card {
	width: 80px;
	flex-shrink: 0;
	flex-grow: 0;
}
.footer_nav li.footer_nav_card a {
	justify-content: center;
	width: 80px;
	height: 80px;
	background: var(--bs-white);
	color: var(--bs-primary);
	border-radius: 50%;
	margin-top: -30px;
	border: 2px solid var(--bs-primary);
}



/* Large devices (desktops, 992px and up) */
@media (max-width: 992px) {
}
/* Medium devices (tablets, 768px and up) */
@media (max-width: 768px) {
	.footer_menu {
		display: block;
		position: fixed;
	}
}
/* Small devices (landscape phones, 576px and up) */
@media (max-width: 576px) {
}




/* ===================================================================
	共通CSS
=================================================================== */
h1, h2, h3, h4 {
	letter-spacing: 0.075em;
}

.page {}
.container {
	display: flex;
/*	display: flex;
	justify-content: space-between;
	gap: var(--def-margin-side);*/
}




main {
/*	min-height: calc(100% - 20px );*/
/*	padding: var(--def-margin-side);*/
/*	margin-top: 20px;
	padding: 20px 0 120px;*/

	width: calc(100% - 200px);
	padding: var(--def-margin-side) var(--def-margin-side) var(--def-margin-side) 0;
	position: relative;
	z-index: 1;
}

.mainarea {
/*	width: var(--def-width);
	margin: 0 auto;
	padding: 0;*/
	position: relative;
}


/* サイドメニュー */
.side_menu_wrap {
	width: 300px;
	height: 100lvh;
	padding: var(--def-margin-side);
/*	position: fixed;
	left: var(--def-margin-side);
	top: var(--def-margin-side);
	bottom: var(--def-margin-side);*/

	position: sticky;
	left: 0;
	top: 0;
	z-index: 100;
}

.side_menu {
	height: 100%;
	background: var(--bs-white-transparent);
	border-radius: var(--bs-radius);
	backdrop-filter: var(--bs-blur);
	border: var(--bs-glass-border);
	filter: var(--bs-filter02);
}

.m_header {
	margin: 1.25rem 0.5rem;
	font-family: var(--def-font-family-en);
	font-size: var(--font-size--lg);
	font-weight: 900;
	text-align: center;
}
.m_header a {
	text-decoration: none;
}

.pc_navbar {
	padding: 0;
	margin: 0 1rem;
}
.pc_navbar li {
	margin: 0.5rem 0;
}
.pc_navbar li.menu_logout {
	padding-top: 0.5rem;
	border-top:  var(--bs-glass-border);
}
.pc_navbar li a {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.75rem 1rem;
	text-decoration: none;
/*	background: #eee;*/
	border-radius: 1.5rem;
	font-size: var(--font-size--bs);
	font-weight: 500;
	border: 1px solid transparent;
}
.navbar_icon {
	width: 1.4em;
	flex-shrink: 0;
	flex-grow: 0;
	text-align: center;
/*	color: var(--bs-primary-light);*/
}

.pc_navbar li.current a {
	background: var(--gradation-primary-glass);
	color: var(--bs-primary-dark);
	filter: var(--bs-filter02);
	border: var(--bs-glass-border);
	
}
.pc_navbar li a:hover {
	background: var(--gradation-primary-glass);
	color: var(--bs-primary-dark);
	filter: var(--bs-filter02);
	border: var(--bs-glass-border);
}


/* メインのヘッダー */
.main_header {
	position: sticky;
	top: var(--def-margin-side);
	left: 0;
	right: 0;
	margin-bottom: var(--def-margin-side);
	padding: 1rem;
	background: var(--bs-white-transparent);
	border-radius: var(--bs-radius);
	backdrop-filter: var(--bs-blur);
	border: var(--bs-glass-border);
	filter: var(--bs-filter02);
	z-index: 100;

	display: flex;
	align-items: center;
	justify-content: space-between;
}

.main_header_menu {
	display: flex;
	align-items: center;
	gap: 1rem;
}


.header_prof {
	display: flex;
	align-items: center;
	gap: 10px;
	text-decoration: none;
	color: inherit;
}
a.header_prof:hover .prof_name,
a.header_prof:focus-visible .prof_name {
	text-decoration: underline;
}
a.header_prof:focus-visible {
	outline: 2px solid var(--main-color, #2563eb);
	outline-offset: 2px;
	border-radius: 4px;
}
.header_bell {
	font-size: var(--font-size--md);
}
.header_prof .prof_icon {
	flex-shrink: 0;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	overflow: hidden;
}
.header_prof .prof_icon img {
}
.header_prof .prof_name {
	white-space: nowrap;
}
.header_prof .prof_arrow {
	display: flex;
	align-items: center;
	font-size: 0.7rem;
	color: var(--main-txt-color-light);
	margin-left: 2px;
}
.header_logout i {
	margin-right: 0.2em;
}

/* Large devices (desktops, 992px and up) */
@media (max-width: 992px) {
}
/* Medium devices (tablets, 768px and up) */
@media (max-width: 768px) {

	.side_menu_wrap {
		display: none;
	}
	main {
		width: 100%;
		padding: var(--def-margin-side);
	}
}
/* Small devices (landscape phones, 576px and up) */
@media (max-width: 576px) {
}


/*	パンくずリスト ------------------------- */
#pankuzu_list {
	display: flex;
	flex-wrap: wrap;
	margin:0 0 20px 0;
}
#pankuzu_list li {
	font-size: var(--font-size--sm);
}
#pankuzu_list li::after {
	font-family: 'Font Awesome 5 Free';
    font-weight: 900;
	content: '\f0da';
	padding: 0 0.8em;
	color: var(--bs-gray-dark);
}
#pankuzu_list li:last-child::after {
	display: none;
}
#pankuzu_list li a {
	color: var(--bs-link);
}




/*	タイトル
----------------------------------------------------------------- */


.intro_txt {
	margin: 1em 0;
}
.intro_live {
	text-align: center;
}

.title_h2 {
	margin: 2.5rem 0 0.75rem;
	font-size: var(--font-size--md);
	font-weight: 700;
/*	color: var(--bs-primary);*/
}
.title_h2_center {
	text-align: center;
}


/*	ぱんくず
----------------------------------------------------------------- */
#breadcrumb {
	font-size: 0.9rem;
}
#breadcrumb ul li {
	display: inline-block;
}
#breadcrumb ul li:after {
	content: ">";
	margin: 0 0.5em;
}
#breadcrumb ul li:last-child:after {
	display: none;
}

/*	共通設定
----------------------------------------------------------------- */
.btn_area {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}
.btn_area_mono {
	display: block;
}

.btn_area > .submit {
	width: 48%;
	margin: 0.5em 1%;
	text-align: center;
}
.btn_area_mono > .submit {
	width: 100%;
	margin: 0.5em 0;
	text-align: center;
}
/* ボタン */
.btn,
a.btn,
button.btn  {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 3.6em;
	padding: 0 1em;
	background: var(--bs-primary);
	color: var(--bs-white);
	font-size: var(--font-size--bs);
	font-weight: 700;
	font-family: var(--def-font-family);

	text-decoration: none;
	text-align: center;
	border: none;
	border-radius: 0.5rem;
	cursor: pointer;
}
.btn_area > .btn {
	width: 48%;
	max-width: 250px;
	margin: 0.5em 1%;
}
.btn .disable,
a.btn .disable,
button.btn .disable  {
	display: inline-block;
/*	width: 48%;*/
	height: 3em;
/*	margin: 0.5em 1%;*/
	padding: 0 1em;
	background: #CCC!important;
	color: var(--bs-white);
	font-size: var(--font-size--bs);
	font-weight: 700;
	font-family: var(--def-font-family);
	line-height: 2.8em;
	text-decoration: none;
	text-align: center;
	border: none;
	border-radius: 3px;
	cursor: pointer;
}


.btn i {
	margin-right: 0.5em;
}

.btn_primary,
a.btn_primary,
button.btn_primary {
	background: var(--gradation-primary);
	color: var(--bs-white);
}
.btn_primary_outline,
a.btn_primary_outline,
button.btn_primary_outline {
	border: 1px solid var(--bs-primary);
	background: var(--bs-white);
	color: var(--bs-primary);
}

.btn_secondary,
a.btn_secondary,
button.btn_secondary {
	background: var(--bs-secondary);
	color: var(--bs-white);
}


a.btn_outline_back,
button.btn_outline_back {
	background: #fff;
	border: 1px solid var(--main-txt-color);
	color: var(--main-txt-color);
}
.btn_full {
	width: 100%!important;
	margin: 0.5em 0!important;
}

.btn_login {
	background: var(--bs-white)!important;
	color: var(--bs-primary)!important;
}
a.btn_login_entry,
.btn_login_entry  {
	border: 1px solid var(--bs-primary);
	color: var(--bs-primary);
	background: none;
}

a.btn_login_google,
.btn_login_google {
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--bs-white);
	color: var(--main-txt-color);
	border: 1px solid var(--bs-gray);
}
.gsi-material-button-icon {
	height: 20px;
	margin-right: 12px;
	min-width: 20px;
	width: 20px;
}
a.btn_login_line,
.btn_login_line {
	background: #06c755;
}

.btn_mini,
a.btn_mini,
button.btn_mini {
	width: auto;
	font-size: var(--font-size--sm);
}

.btn_cancel,
a.btn_cancel,
button.btn_cancel {
	background: var(--bs-white);
	border: 1px solid var(--bs-gray-dark);
	color: var(--bs-gray-dark);
}

.btn_danger,
a.btn_danger,
button.btn_danger {
	background: var(--bs-danger);
	color: var(--bs-white);
}
.btn_danger_outline,
a.btn_danger_outline,
button.btn_danger_outline {
	background: var(--bs-white);
	border: 1px solid var(--bs-danger);
	color: var(--bs-danger);
}

.btn_sm,
a.btn_sm,
button.btn_sm {
	width: auto;
    min-width: inherit;
	height: auto;
    margin: 0.2em 0.2em;
    padding: .3em 0.75em;
    border-radius: 0.3em;	
	font-weight: 500;
	font-size: var(--font-size--bs);
}



/* フォーム -------------------- */
.fields {
	margin: 1.25rem 0;
}
.fields_live {
	width: fit-content;
	margin: 1.25rem auto;
	background: var(--main-bg-color);
	padding: 1em 2em;
}
.field_label {
	margin-bottom: 0.5em;
	font-weight: 700;
	position: relative;
}
.field {
	flex-shrink: 1;
	flex-grow: 1;
}

.fields_inline {
	display: block;
	margin: 1rem 0;
}
.fields_inline .field_label {
	width: auto;
	margin-right: 0;
	margin-bottom: .5rem;
}
.icon_hissu,
.icon_nini {
	display: inline-block;
	margin-left: 0.5em;
	padding: .1em .8em;
	border-radius: 1em;
	color: var(--bs-white);
	text-align: center;
	font-size: var(--font-size--sm);
}
.icon_hissu {
	background: var(--bs-danger);
}
.icon_nini {
	background: var(--bs-gray);	
}


.input_hogosya {
	
	margin-top: 0.5em;
}
.input_hogosya .input {
	display: flex;
	align-items: center;
}
.input_hogosya label {
	display: block;
	width: 7em;
	font-weight: 700;
}

input,button,textarea,select {
	outline: none;
	font-size:var(--font-size--bs);
	font-family: var(--def-font-family);
	font-weight: 400;
}

.form_control {
	display: block;
	width: 100%;
	padding: 0.5em 0.5em;
	font-weight: 400;
	line-height: 1.5;
	color: var(--main-txt-color);
/*	background-color: var(--bs-white);*/
	background-color: var(--bs-white-transparent);
	background-clip: padding-box;
	border: 1px solid var(--bs-gray);
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	border-radius: 0.25em;
}
.required .form_control {
	border: 1px solid var(--bs-danger-light);
}
.form_control:focus {
	border: 1px solid rgba(var(--bs-primary-rgb),0.5);
	box-shadow:0px 0px 5px rgba(var(--bs-primary-rgb),0.4);
}
textarea.form_control {
	height: 10em;
}
.form_control_inline {
	display: inline-block;
}

.form_select {
	display: block;
	width: 100%;
	padding: 0.5em 2em 0.5em 0.75em;
	line-height: 1.5;
	background-color: var(--bs-white);
	background-image: url(../img/arrow_select.svg);
	background-repeat: no-repeat;
	background-position: right 0.5em center;
	background-size: auto .5em;
	border: 1px solid var(--bs-gray-light);
	border-radius: 0.25em;
	transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}
.required .form_select {
	border: 1px solid var(--bs-danger-light);
}
.form_select:focus {
	border: 1px solid rgba(var(--bs-primary-rgb),0.5);
	box-shadow:0px 0px 5px rgba(var(--bs-primary-rgb),0.4);
}

.input_inline {
	display: flex;
	align-items: center;
}
.form_num {
	width: 5em;
}

/* checkbox チェックボックス */
.checkbox {
	margin: .2em 0;
	line-height: 1.5;
}
.checkbox label {
/*	background: #eee;*/
	cursor: pointer;
	line-height: 1.5;
}
input[type="checkbox"] {
	position: relative;
/*	width: 1.2em;
	height: 1.2em;
	border:none;*/
	margin: -0.1em 1em 0 0;
	line-height: 1.5;
}
input[type="checkbox"]::before,
input[type="checkbox"]::after {
	content: "";
	display: block; 
	position: absolute;
	cursor: pointer;
}
input[type="checkbox"]::before {
	background-color: var(--bs-white);
	border-radius: 5px;
	border: 1px solid var(--bs-gray);
	width: 1.4em;
	height: 1.4em;
	transform: translateY(-50%);
	top: 50%;
	left: 0;
}
input[type="checkbox"]::after {
	border-bottom: 3px solid var(--bs-white);
	border-left: 3px solid var(--bs-white);
	opacity: 0;
	height: .5em;
	width: .8em;
	transform: rotate(-45deg);
	top: 0em;
	left: .3em;
}
input[type="checkbox"]:checked::before {
	background: var(--bs-primary);
}
input[type="checkbox"]:checked::after {
	opacity: 1;
}


/* radio ラジオボタン */
.radio-group label {
	cursor: pointer;
	line-height: 1.5;
	margin-right: 1em;
}
input[type="radio"] {
	position: relative;
	margin: 0 1em 0 0;
	line-height: 1.5;
}
input[type="radio"]::before,
input[type="radio"]::after {
	content: "";
	display: block; 
	position: absolute;
}
input[type="radio"]::before {
	background-color: var(--bs-white);
	border-radius: 0.6em;
	border: 1px solid var(--bs-gray-light);
	width: 1.2em;
	height: 1.2em;
	transform: translateY(-50%);
	top: 50%;
	left: 0;
}
input[type="radio"]::after {
	background-color: var(--bs-primary);
	border-radius: 0.4em;
	width: 0.8em;
	height: 0.8em;
	top: calc(50% - 0.4em);
	left: 0.2em;
	opacity: 0;
}
input[type="radio"]:checked::after {
	opacity: 1;
}


/* エラー */
.form_control.error {
	background: rgba(var(--bs-danger-rgb),0.1);
}
label.error {
	display: block;
	margin-top: 0.5em;
	padding: 0.2em;
	color: var(--bs-danger);
	background: rgba(var(--bs-danger-rgb),0.2);
}



/* 各ベンダープレフィックスが取れた標準版！！(http://caniuse.com/#search=placeholder-shown) */
:placeholder-shown,
::-webkit-input-placeholder {
	color: #949DA6;
}
:-moz-placeholder ,
::-moz-placeholder {
	color: #949DA6; opacity: 1;
}
:-ms-input-placeholder {
	color: #949DA6; }
::-ms-input-placeholder {
	color: #949DA6;
}
::placeholder{
	color:#949DA6;
}


select {
	/*
	display: block;
	width: 100%;
	height: 2.8em;
	padding: 0 0.2em;
	background-color: #fff;
	background-clip: padding-box;
	border: 1px solid #c5cece;
	font-family: 'Noto Sans JP',-apple-system, BlinkMacSystemFont, "Helvetica Neue", "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial,  sans-serif;*/
	display: block;
	width: 100%;
	padding: 0.5em 2em 0.5em 0.75em;
	line-height: 1.5;
	background-color: var(--bs-white);
	background-image: url(../img/arrow_select.svg);
	background-repeat: no-repeat;
	background-position: right 0.5em center;
	background-size: auto .5em;
	border: 1px solid var(--bs-gray-light);
	border-radius: 0.25em;
	transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	font-family:var(--def-font-family);
}

textarea {
	width: 100%;
	height: 150px;
	border: 1px solid #CAD3DA;
	padding: 0.5em;
	font-family: 'Noto Sans JP',-apple-system, BlinkMacSystemFont, "Helvetica Neue", "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial,  sans-serif;
}

/*
.select_box {
	width: auto;
	display: inline-block;
	background: #ffffff;
	position: relative;
}
.select_box select {
	width: 100%;
	height: 2.4em;
	padding: 0 30px 0 0.6em;
	border: 1px solid #CAD3DA;
	background: transparent;
	position: relative;
	z-index: 1;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}
.select_box select::-ms-expand {
	display: none;
}
.select_box::before{
	content: '\f107';
	position: absolute;
	z-index: 0;
	top: 0;
	right: 0;
	background: #fff;
	border: 1px solid #CAD3DA;
	border-left: none;
	height: 100%;
	line-height: 2.2em;
	width: 2em;
	text-align: center;
	font-family: 'Font Awesome 5 Free';
	color: #949DA6;
	font-weight: 900;
	font-size: 1rem;
}*/


/* フォームグループ */
.input_group {
	display: flex;
}
.input_group input[type="text"] {
	width: auto;
	min-width: 0;
	flex: 1 1 30%;
}
.input_group_append {
	flex-shrink: 0;
	flex-grow: 0;
}
.input_group_append button {
	display: inline-block;
	height: 2.8em;
	margin: 0;
	padding: 0 1em;
	background: #19A78E;
	color: #fff;
	font-weight: 600;
	line-height: 2.8em;
	border: none;
	border-radius: 0 4px 4px 0;
	cursor: pointer;
	font-family: 'Noto Sans JP',-apple-system, BlinkMacSystemFont, "Helvetica Neue", "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial,  sans-serif;
}


/* ログインのとこ用 */
.login_area .form_control {
/*	border-radius: 0;
	border: none;
	border-bottom: 1px solid var(--bs-gray-dark);*/
	transition: all .3s ease;
}
.login_area .form_control:focus {
	border-bottom: 1px solid var(--bs-primary);
}
.fields_login {
	position: relative;
}
.login_area .field_label {
/*	color: var(--bs-gray-dark);*/
	font-size: var(--font-size--bs);
}



/* エラーメッセージ系
===================================================== */

/* 大元になるもの ------------------- */
#flashMessage,
.message {
	font-size:120%;
	font-weight:600;
	width: var(--def-width);
	max-width: var(--def-max-width);
	padding:5px;
	margin:10px auto;
}
/* 追加（緑） ------------------- */
.add-message {
	color:var(--bs-success);
	border: 1px dashed var(--bs-success);
}
/* 編集（青） ------------------- */
.update-message {
	color:#0099FF;
	border: 1px dashed #0099FF;
}
/* 削除（赤） ------------------- */
.delete-message {
	color:#FF0000;
	border: 1px dashed #FF0000;
}

/* エラー（赤） ------------------- */
.error-message,
.message.error {
	color:var(--bs-danger);
	border: 1px dashed var(--bs-danger);
}




/* タブレット */
@media ( max-width : 960px ){
	
}
/* スマホ（横） */
@media screen and (max-width: 600px) {
	input[type="text"].form_tel,
	input[type="text"].form_school,
	input[type="text"].form_mail {
		width: 100%;
	}

}
/* スマホ用（縦） */
@media screen and (max-width: 480px) {
	
}




/*	card
----------------------------------------------------------------- */
.card {
	padding: 1rem;
	background: var(--bs-white-transparent);
	border-radius: var(--bs-radius);
	backdrop-filter: var(--bs-blur);
	border: var(--bs-glass-border);
	filter: var(--bs-filter02);
}
.card_header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--def-margin-side);
	margin-bottom: var(--def-margin-side);
}

.card_header_actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: 0.5rem 0.75rem;
}
.card_title {
	margin:0;
	font-size: var(--font-size--md);
	font-weight: 700;
}


.btn_card,
a.btn_card,
button.btn_card {
	width: auto;
	height: 3em;
	font-size: var(--font-size--sm);
}


.card_body {

}


/* ページ用 */
.card_page {
	padding: 1.5rem;
}
.page_title {
	margin: 0;
	font-size: var(--font-size--lg);
	font-weight: 700;
	text-align: center;
}
.page_title i {
	margin-right: 0.4em;
	color: var(--main-txt-color-light );
}


/* カード内タブ */
.card_tab {
	display: flex;
	margin: 0 0 20px;
	padding: 0;
	border-bottom: 1px solid var(--bs-gray);
	overflow-x: auto;
	overflow-y: hidden;
	white-space: nowrap;
}
/*
.card_tab::-webkit-scrollbar {
	height: 3px;
}
.card_tab::-webkit-scrollbar-track {
	border-radius: 3px;
	background: #F5F6F6;
}
.card_tab::-webkit-scrollbar-thumb {
	border-radius: 3px;
	background: #c5c6c6;
}*/
.card_tab li a {
	display: block;
	padding: 0.5em 1em;
	text-decoration: none;
	font-weight: 500;
	border-bottom: 2px solid transparent;
}
.card_tab li a:hover {
	color: var(--bs-primary-dark);
	border-bottom: 2px solid var(--bs-primary-dark);
}
.card_tab li.current a {
	color: var(--bs-primary-dark);
	border-bottom: 2px solid var(--bs-primary-dark);
}
.card_tab li a i {
	margin-right: 0.25em;
}
/*
.card_tab {
	display: flex;
	gap: 0.5em;
	margin: 0 0 ;
	padding: 0;
}
.card_tab li a {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.5em 1.25em;
	text-decoration: none;
	border-radius: 1.5rem;
	font-weight: 500;
	background: rgba(255, 255, 255, 0.15);
	filter: var(--bs-filter02);
    border: var(--bs-glass-border);
}
.card_tab li a:hover {
	background: var(--gradation-primary-glass);
    color: var(--bs-primary-dark);
    filter: var(--bs-filter02);
    border: var(--bs-glass-border);
}
.card_tab li.current a {
	background: var(--gradation-primary-glass);
    color: var(--bs-primary-dark);
    filter: var(--bs-filter02);
    border: var(--bs-glass-border);
}*/


/* ===================================================================
	ログイン login
=================================================================== */
main.login {
	width: auto;
	padding-top: 60px;
}
main.login .mainarea {
	max-width: 576px;
	margin: 0 auto;
}

.login_title {
	margin: 0 0 2rem;
	font-family: var(--def-font-family-en);
	font-size: var(--font-size--xxl);
	font-weight: 900;
	text-align: center;
	color: var(--bs-white);
	filter: var(--bs-filter02);
}

.login_area {
	margin: 0 auto;
	padding: 3rem;
	background: var(--bs-white-transparent);
	border-radius: var(--bs-radius);
	backdrop-filter: var(--bs-blur);
	border: var(--bs-glass-border);
	filter: var(--bs-filter02);
/*	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);*/
}
.login_h_title {
	margin: 0 0 2rem;
	text-align: center;
	color: var(--bs-primary);
}

.entry_message {
	max-width: 600px;
	margin: 0 auto;
}
.login_pass_forget {
	margin: 10px 0 40px;
	text-align: center;
}
.login_pass_forget a {
}
.login_entry_title {
	margin: 0 0 1rem;
	font-size: var(--font-size--md);
	font-weight: 900;
	text-align: center;
}


/* Large devices (desktops, 992px and up) */
@media (max-width: 992px) {
}
/* Medium devices (tablets, 768px and up) */
@media (max-width: 768px) {
}
/* Small devices (landscape phones, 576px and up) */
@media (max-width: 576px) {
}




/* ===================================================================
	ダッシュボード dashbord
=================================================================== */



.dashboard_impression {
	display: flex;
	gap: 10px;
	margin-bottom: var(--def-margin-side);
}
.dashboard_impression > .card {
	flex:1;
	background: rgba(255,255,255,0.15);
	color: var(--bs-white);
	position: relative;
}

.imp_icon {
	height: auto;
	position: absolute;
	color: rgba(255,255,255,0.3);
	top: 10px;
	right: 10px;
	font-size: 50px;
	align-self: flex-start;
	line-height: 1;
}


.dashboard_impression_num {
	font-size: var(--font-size--xxl);
}
.dashboard_impression_num .unit {
	font-size: var(--font-size--bs);
}

.item_title {
	margin: 0 0 0.5rem;
	font-size: var(--font-size--bs);
	font-weight: 600;
}
.item_title i {
	margin-right: 0.2rem;
}

.monthly_change {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: var(--font-size--sm);
}

.monthly_change_up,
.monthly_change_down {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 1.2rem;
	height: 1.2rem;
	border-radius: 50%;
}

.monthly_change_up {
	background: var(--bs-success);
}
.monthly_change_down {
	background: var(--bs-danger);
}


/* グラフエリア */
.dashboard_graph_area {}

.koukasokutei_graph {
	padding: 1rem;
/*	background: rgba(255,255,255,0.5);
	border-radius: calc(var(--bs-radius) - 2px );*/
}

.select_date_area {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
}
.select_date {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}
.select_date_title {
	margin: 0 0 0 0.5rem;
	font-weight: 600;
	font-size: var(--font-size--bs);
}

.select_date_area button {
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 0.6em 0.75em;
	background: var(--bs-white-transparent);
	color: var(--bs-primary-dark);
	border: var(--bs-glass-border);
	border-radius: 8px;
	font-size: var(--font-size--sm);
}



.dashbord_menu_area {
	margin: 2rem auto 1rem;
	padding: 1rem;
	background: var(--bs-white-transparent);
    border-radius: var(--bs-radius);
    backdrop-filter: var(--bs-blur);
    border: var(--bs-glass-border);
    filter: var(--bs-filter02);
}
.dashbord_menu {
	display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
	margin: 0;
	padding: 0;
}
.dashbord_menu li {
	margin: 0;
	
}
.dashbord_menu li a {
	display: flex;
	flex-direction: column;
	align-items: center;
	height: 100%;
	padding: 1em 0;
/*	border-radius: 1rem;*/
	text-decoration: none;
/*	color: var(--main-txt-color);
	background: var(--bs-white);
	filter: var(--bs-filter);*/

background: var(--bs-white-transparent);
    border-radius: var(--bs-radius);
    backdrop-filter: var(--bs-blur);
    border: var(--bs-glass-border);
    filter: var(--bs-filter02);
}
.dashbord_menu li a:hover {
	transform:translateY(-2px)
}
.dashbord_menu_icon {
	font-size: var(--font-size--xxl);
	color: var(--bs-primary);
}
.dashbord_menu_txt {
	margin-top: 10px;
	font-weight: 700;
}
.dashbord_menu li.dashbord_menu_cancellation {
	width: 100%;
}
.dashbord_menu li.dashbord_menu_cancellation a {
	flex-direction: row;
	align-items: center;
	justify-content: center;
	padding: 0.5em 0;
	color: var(--bs-danger);
	font-size: var(--font-size--bs);
}
.dashbord_menu li.dashbord_menu_cancellation a .dashbord_menu_icon {
	font-size: var(--font-size--bs);
	margin-right: 0.3em;
}
.dashbord_menu li.dashbord_menu_cancellation a .dashbord_menu_txt {
	font-weight: 700;
}


/* Large devices (desktops, 992px and up) */
@media (max-width: 992px) {
}
/* Medium devices (tablets, 768px and up) */
@media (max-width: 768px) {
	.dashbord_menu {
		grid-template-columns: repeat(3, 1fr);
	}

	.dashboard_impression {
		flex-wrap: wrap;
	}
	.dashboard_impression > .card {
		flex: auto;
		width: calc(50% - 5px);
	}
}
/* Small devices (landscape phones, 576px and up) */
@media (max-width: 576px) {
	.dashbord_menu {
		grid-template-columns: repeat(2, 1fr);
	}
}




/* ===================================================================
	一覧
=================================================================== */

/* 検索パネル */
/*	検索パネル
------------------------------------------------------------------ */
.search{
	margin:0 0 30px 0;
	border-radius: 1rem;
	background:var(--bs-white-transparent-light);
	overflow: hidden;
	filter: drop-shadow(var(--bs-filter-light));
}

.search > dt {
	background: rgba(var(--bs-primary-rgb),0.2);
/*	color:var(--bs-white);*/
	font-weight:700;
	padding: 0.4em 1em;
}

.search > dt i {
	margin-right:5px;
	font-weight:normal;
}
.search .open i {
	display:inline-block;
}

.search .close i {
	display:inline-block;
}

.search #search_area {
/*	background:var(--bs-white);*/
	padding:0.5em 1em;
}
.search_item_box {
	display: flex;
	flex-wrap: wrap;
}
.search_item {
	margin: 0 1em 1em 0;
}
.search_item_name {
	margin-bottom: 0.2em;
	font-weight: 500;
}
.search_item_form .checkbox {
	display: inline-block;
}

.search_item_set {
	display: flex;
}


.btn_kensaku {
	text-align:center;
}

/* 絞り込みモーダル（一覧共通） */
.list-modal {
	display: none;
	position: fixed;
	inset: 0;
	z-index: 1050;
	align-items: center;
	justify-content: center;
	padding: 1rem;
}

.list-modal.is-open {
	display: flex;
}

.list-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 20, 45, 0.55);
}

.list-modal__dialog {
	position: relative;
	width: 100%;
	max-width: 720px;
	max-height: calc(100vh - 2rem);
	overflow: auto;
	background: #fff;
	border-radius: 0.75rem;
	box-shadow: 0 12px 40px rgba(0, 30, 67, 0.2);
}

.list-modal__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	padding: 1rem 1.25rem;
	border-bottom: 1px solid var(--bs-gray-light);
}

.list-modal__title {
	margin: 0;
	font-size: 1.0625rem;
	font-weight: 700;
}

.list-modal__close {
	padding: 0.25rem 0.5rem;
	border: none;
	background: none;
	color: var(--main-txt-color-light);
	font-size: 1.25rem;
	cursor: pointer;
	line-height: 1;
}

.list-modal__close:hover {
	color: var(--main-txt-color);
}

.list-modal__body {
	padding: 1.25rem;
}

/* 検索フォーム：検索・条件クリア（ai-search / img-search 共通） */
.ai-search__actions,
.img-search__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: 0.5rem 0.75rem;
	margin-top: 1.25rem;
	padding-top: 1.25rem;
	border-top: 1px dashed rgba(var(--bs-primary-rgb), 0.2);
}

.ai-search__actions .btn,
.img-search__actions .btn {
	width: auto;
	margin: 0;
}

.ai-search__actions .btn_primary,
.img-search__actions .btn_primary {
	min-width: 10em;
	height: 3em;
	padding: 0 1.5em;
}

.ai-search__actions .btn_clear,
.img-search__actions .btn_clear {
	height: auto;
	min-height: 2.25rem;
	padding: 0.4em 1.1em;
	font-size: var(--font-size--sm);
	font-weight: 600;
	border-radius: 999px;
}


/* ページャーとか 
------------------------------------------------------- */
.list_ope {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
}
.list_ope_btm {
	justify-content: flex-end;
}
.list_ope_num {
	display: flex;
	align-items: center;
	margin-right: 1em;
}
.list_num {
	margin-right: 1em;
}
.list_num span {
	margin-right: 0.1em;
	color: var(--bs-danger);
	font-size: 150%;
	font-weight: 700;
}
.list_ope_settings form {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}
.list_ope_settings label {
	flex-shrink: 0;
	flex-grow: 0;
}

/*---- ページャー ----*/
.paginator {
}
.pagination {
	display: flex;
	justify-content: center;
	gap: 2px;
}
.pagination li {
	margin: 0;
}/*
.pagination li:not(:first-child) {
	margin-left: -1px;
}*/
.pagination a {
	display: block;
	min-width: 2em;
	padding: 0.4em 0.5em;
	font-weight: 700;
	background: var(--main-bg-color);
	background: rgba(var(--bs-gray-rgb),0.2);
	text-align: center;
	text-decoration: none;
	color: var(--main-txt-color)!important;
}
.pagination a:hover {
	background: rgba(var(--bs-primary-rgb),0.4);
}
.pagination li:first-of-type a {
}
.pagination li:last-of-type a {
}

.pagination .active a {
	color: var(--bs-white)!important;
	background: var(--bs-primary);
}
.pagination .prev a {
}
.pagination .prev.disabled a {
}
.pagination .next a {
}
.pagination .next.disabled a {
}



/* テーブル */
.table_data {
	width: 100%;
	border-collapse: collapse;
    background-color: transparent;
}
.table_data th,
.table_data td {
	padding: 0.7em 0.75em;
	border-bottom: 1px solid var(--bs-white);
}
.table_data th {
/*	background: var(--bs-white-transparent);*/
	font-weight: 700;
	border-bottom: 2px solid var(--bs-white);
}
.table_data tr:nth-of-type(odd) td {
	background: var(--bs-white-transparent-light);
}
.btn_actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em;
}






/* ===================================================================
	お知らせ info
=================================================================== */

/* 次回予約 */
.info_list_link {
	margin-bottom: 10px;
}
.info_list_link a {
	display: block;
	padding: 20px;
	background: var(--bs-white);
	border-radius: 0.5rem;
	filter: var(--bs-filter02);
	text-decoration: none;
	color: var(--main-txt-color);
	font-weight: 600;
}
.info_list_date {
	display: block;
	color: var(--bs-gray-dark);
	font-size: var(--font-size--sm);
}

.info_new_icon {
	display: inline-block;
	margin-right: 0.5em;
	padding: 0.2em 0.5em;
	border-radius:5px;
	background: var(--bs-danger);
	color: var(--bs-white);
	font-size: var(--font-size--sm);
}


.info_detail h2 {
	margin-bottom: 20px;
	padding: 1em 0.5em;
	font-size: var(--font-size--md);
	background: var(--bs-primary);
	color: var(--bs-white);
}
.info_detail_date {
	color: var(--bs-gray-dark);
	font-weight: 500;
	text-align: right;
}
.info_detail_txt {
	margin: 20px auto 40px;
}








ol.list_num {
	margin: 0;
	padding-left: 1em;
}
ol.list_num li {
	margin-bottom: 0.5em;
}

ol.list_num,
ol.list_num > li {
	list-style-type: decimal;
}
