@charset "utf-8";

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	position: relative;
}

@media (prefers-reduced-motion:reduce) {

	*,
	::after,
	::before {
		animation-duration: 0s !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0s !important;
		scroll-behavior: auto !important;
	}
}

html {
	font-size: 62.5%;
	overflow-y: scroll;
	min-width: 360px;
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
}

a[data-type=external]::after,
a[href$=".doc"]::after,
a[href$=".docx"]::after,
a[href$=".pdf"]::after,
a[href$=".xls"]::after,
a[href$=".xlsx"]::after {
	content: "";
	display: inline-block;
	width: 1em;
	height: 1em;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center center;
	vertical-align: middle;
	margin-left: .5em;
	flex-shrink: 0;
}

a[href$=".pdf"]::after {
	background-image: url(../img/format/ico_pdf.svg);
}

a[href$=".doc"]::after,
a[href$=".docx"]::after {
	background-image: url(../img/format/ico_doc.svg);
}

a[href$=".xls"]::after,
a[href$=".xlsx"]::after {
	background-image: url(../img/format/ico_xls.svg);
}

a[data-type=external]::after {
	background-image: url(../img/format/ico_ext.svg);
}

a[href$=".doc"]:has(img)::after,
a[href$=".docx"]:has(img)::after,
a[href$=".pdf"]:has(img)::after,
a[href$=".xls"]:has(img)::after,
a[href$=".xlsx"]:has(img)::after {
	content: none;
	background-image: none;
	padding-right: 0;
	margin-right: 0;
}

dl,
figure,
h1,
h2,
h3,
h4,
h5,
h6,
ol,
p,
picture,
table,
ul {
	display: block;
	margin-bottom: 1em;
}

li {
	margin-bottom: .5em;
}

li:last-child {
	margin-bottom: 0;
}

ul {
	margin-left: 1.5em;
	list-style-position: outside;
}

ol {
	margin-left: 1.5em;
	list-style-position: outside;
}

li>ol {
	margin-top: .5em;
	font-size: 90%;
}

canvas,
embed,
img,
svg,
video {
	max-width: 100%;
	height: auto;
	vertical-align: middle;
	border: 0;
}

img[src$=".svg"] {
	width: 100%;
}

iframe {
	border: none;
	display: inline;
}

input,
textarea {
	font-family: inherit;
	vertical-align: middle;
}

input[type=button],
input[type=reset],
input[type=submit] {
	border-radius: 0;
	-webkit-box-sizing: content-box;
	-webkit-appearance: button;
	appearance: button;
	border: none;
	box-sizing: border-box;
	cursor: pointer;
}

input[type=button]::-webkit-search-decoration,
input[type=reset]::-webkit-search-decoration,
input[type=submit]::-webkit-search-decoration {
	display: none;
}

input[type=button]:focus,
input[type=reset]:focus,
input[type=submit]:focus {
	outline-offset: -2px;
}

button,
input,
select,
textarea {
	font: inherit;
	color: inherit;
}

textarea {
	resize: vertical;
}

a {
	text-decoration: underline;
	color: #004696;
	-webkit-transition: all .2s;
	-moz-transition: all .2s;
	-o-transition: all .2s;
	transition: all .2s;
}

a:hover {
	color: #ec0003;
}

a img {
	transition: all .25s;
}

a:hover img {
	opacity: .75;
}

aside *,
footer *,
header *,
nav * {
	margin: 0;
}

article> :last-child,
div> :last-child,
section> :last-child {
	margin-bottom: 0;
}

#index_aside,
#index_body,
#index_container,
#index_content,
#index_copyright,
#index_footer,
#index_header,
.wfix {
	display: block;
	width: 100%;
	margin-inline: auto;
}

.fs {
	font-size: 80%;
}

body#index {
	font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
	width: 100%;
	color: #444;
	font-size: 15px;
	font-size: 1.5rem;
	line-height: 1.5;
	background-color: #fff;
}

/*--------------------------------------*/

#index .wfix {
	width: 96%;
	max-width: 1400px;
	margin-inline: auto;
}

@media screen and (max-width: 959px) {
	#index_header {
		z-index: 10;
		top: 0;
		left: 0;
		position: sticky;
	}
	#index .wfix {
		width: calc(100% - 40px);
	}
	#index_header .wfix {
		width: calc(100% - 20px);
	}
}

#index #index_container {
	display: block;
	width: 100%;
}

#index #index_header {
	background-color: #fff;
}

#index #header_content {
	padding-block: 10px 17px;
}

#index #header_content>div {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1em;
}

#index #namelogo {
	display: flex;
	align-items: center;
	max-width: 350px;
	padding: inherit;
	width: inherit;
	margin-inline: 0 auto;
}

#index #header_btns {
	display: flex;
	align-items: center;
	list-style-type: none;
	max-width: 350px;
	margin-inline: auto 0;
}

#index #header_btns a {
	display: block;
}

#index #header_btns a:hover {
	background-color: rgba(0, 0, 0, .1);
}


#index #index_search {
	display: flex;
	align-items: center;
	margin-inline: 0;
}

#index #index_search form {
	display: flex;
	align-items: stretch;
	gap: 0;
	font-size: 90%;
	width: 100%;
}

#index #index_search input[type="text"] {
	padding: 0.5em;
	max-width: 20em;
}

#index #index_search input[type="submit"] {
	padding: 0.25em;
	border: 1px solid rgba(0, 0, 0, 0.5);
	border-left: none;
	border-radius: 0 3px 3px 0;
}

/*--------------------------------------*/

@media screen and (min-width: 960px) {
	#fontguide {
		position: fixed;
		top: 1em;
		right: 1em;
		background-color: rgba(0, 0, 0, 0.80);
		color: rgba(255, 255, 255, 1.00);
		padding: 2em;
		box-shadow: 0px 8px 6px -2px rgba(0, 0, 0, 0.3);
		cursor: pointer;
		z-index: 10;
	}

	#index #btn_navopen {
		display: none;
	}

	#index #index_gn {
		/* background: linear-gradient(90deg, rgb(197, 243, 255) 0%, rgb(200, 231, 249) 35%,rgb(200, 231, 249) 65%, rgb(197, 243, 255) 100%); */
		background-color: rgb(172, 221, 240);
		color: rgba(255, 255, 255, 1.00);
	}

	#index #index_gn #index_search {
		display: none;
	}

	#index #index_gn a {
		color: rgba(255, 255, 255, 1.00);
	}

	#index #index_gn ul {
		list-style-type: none;
	}

	#index #gn_category {
		padding-block: 6px;
	}

	#index #gn_category {
		display: flex;
		gap: 5px;
		justify-content: space-between;
	}

	#index #gn_category::before,
	#index #gn_category::after {
		content: "";
		display: block;
		width: calc(100% - 15px * 2);
		height: 7px;
		position: absolute;
		left: 15px;
		/* background: linear-gradient(90deg, rgb(143, 231, 219) 0%, rgb(145, 204, 255) 50%, rgb(143, 231, 219) 100%); */
		background-color: rgb(130, 200, 212);
		z-index: 1;
	}

	#index #gn_category::before {
		top: -7px;
		border-radius: 4px 4px 0 0;
	}

	#index #gn_category::after {
		bottom: -7px;
		border-radius: 0 0 4px 4px;
	}

	#index #gn_category .category_main>a {
		font-size: 120%;
		line-height: 1;
	}

	#index #gn_category>li {
		background-color: rgb(62, 135, 178);
		width: calc((100% - 0px) / 4);
		text-align: center;
		z-index: 2;
		border-radius: 3px;
	}

	#index #gn_category .category_main a {
		display: block;
		padding: 1.5em;
		text-decoration: none;
		z-index: 1;
		transition: 0.25s all;
	}

	#index #gn_category .category_main .btn_subopen {
		display: none;
	}

	#index #gn_category>li::before {
		content: "";
		display: block;
		width: 0%;
		height: 100%;
		position: absolute;
		top: 0;
		left: 0;
		background-image: url("../img/format/m.webp");
		background-repeat: no-repeat;
		background-position: 10px center;
		background-size: auto 100%;
		transition: 0.5s all;
		background-color: rgb(53, 89, 127);
		z-index: 0;
	}

	#index #gn_category>li:hover::before {
		width: 100%;
		border-radius: 3px;
	}

	#index #index_gn .category_sub {
		padding: 40px 10px 10px 10px;
		display: none;
		position: absolute;
		top: 100%;
		left: 50%;
		width: fit-content;
		transform: translateX(-50%) translateY(-10px);
		z-index: 1;
		white-space: nowrap;
		min-width: 14em;
	}

	#index #gn_category>li:hover .category_sub {
		display: block;
	}

	#index #index_gn .sub_gr {
		padding: 0;
		background-color: rgba(255, 255, 255, 0.9);
		backdrop-filter: blur(5px);
		border-radius: 3px;
	}

	#index #index_gn .sub_gr+.sub_gr {
		margin-top: 10px;
	}

	#index #index_gn .sub_gr_label {
		text-align: center;
		display: block;
		margin: 0 auto 1em auto;
		padding: 1em 2em;
		font-size: 75%;
		letter-spacing: 0.2em;
		white-space: nowrap;
		color: #ca2c2c;
		font-weight: bold;
	}

	#index #index_gn .sub1 {
		text-align: left;
		font-size: 90%;
	}

	#index #index_gn .sub1 a {
		transition: none;
		color: initial;
	}

	#index #index_gn .sub1 a:hover {
		background-color: rgb(53, 89, 127);
		color: rgb(255, 255, 255);
	}

	.sub1>li+li,
	.sub_gr_label+.sub1>li:nth-of-type(1) {
		border-top: 1px solid rgba(0, 0, 0, 0.2);
	}

	#index #index_gn .sub1>li>a {
		display: flex;
		align-items: center;
		gap: 0.5em;
		padding: 0.5em 1.0em 0.5em 0.5em;
		width: 100%;
		text-decoration: none;
	}

	#index #index_gn .sub1>li>a::before {
		content: "";
		display: block;
		width: auto;
		height: 1em;
		aspect-ratio: 1;
		background-image: url("../img/format/bk_r.png");
		background-repeat: no-repeat;
		background-position: center center;
		background-size: 60%;
	}

	#index #index_gn .sub1 li>a:hover::after {
		content: "";
		background-color: rgb(218, 32, 32);
		width: 5px;
		height: 100%;
		position: absolute;
		left: 0;
		top: 0;
		z-index: 0;
		display: block;
	}

	#index #index_gn .sub1>li>a:hover::before {
		background-image: url("../img/format/wh_r.png");
	}

	#index #index_gn .sub2 {
		text-align: left;
		margin-block: 0.5em 1.0em;
		font-size: 90%;
		margin-left: 2.0em;
	}

	#index #index_gn .sub2>li>a {
		display: flex;
		align-items: center;
		gap: 0.75em;
		padding: 0.25em 2em 0.25em 1.25em;
		width: 100%;
		text-decoration: none;
	}

	#index #index_gn .sub2>li>a::before {
		content: "∟";
		display: block;
		font-size: 65%;
	}

	#index #index_gn .category_sub::before {
		content: "▲";
		font-size: 20px;
		line-height: 10px;
		height: 10px;
		position: absolute;
		left: 50%;
		top: 22px;
		color: rgb(90, 127, 165);
		z-index: 1;
		transform: translateX(-50%) scaleX(1.5);
		opacity: 0.9;
	}

	#index #index_gn .category_sub::after {
		content: "";
		width: 100%;
		height: calc(100% - 30px);
		position: absolute;
		left: 0;
		top: 30px;
		background-color: rgba(45, 142, 225, 0.7);
		background: linear-gradient(0deg, rgba(123, 183, 206, 0.5) 0%, rgba(90, 127, 165, 1.0) 100%);
		border-radius: 4px;
		z-index: -1;
		box-shadow: 0px 10px 10px 0px rgba(0, 0, 0, 0.5);
		backdrop-filter: blur(5px);
	}

	#index #index_gn #btn_navclose {
		display: none;
	}

}

/*--------------------------------------*/

@media screen and (max-width: 959px) {

	#index #index_header {
		/* border-bottom: 1px solid rgba(0, 0, 0, 0.25); */
		filter: drop-shadow(0 0px 2px rgba(0, 0, 0, 0.3));
	}

	#index #header_content {
		padding-block: 5px;
	}

	#index #header_content>div {
		gap: 5px;
	}

	#index #namelogo {
		width: 50%;
	}

	#index #btn_fontsize {
		display: none;
	}

	#index #index_search {
		display: none;
	}

	#index #header_btns {
		width: 45%;
	}

	#index #btn_navopen {
		background: rgba(255, 255, 255, 1);
		color: rgba(30, 30, 30, 1.00);
		cursor: pointer;
		width: 40px;
		height: 40px;
		z-index: 100;
		opacity: 0.9;
		aspect-ratio: 1;
		font-family: Verdana, Geneva, 'sans-serif';
		font-size: 50%;
		letter-spacing: 0.1em;
		font-weight: bold;
		line-height: 1;
		text-align: center;
		border: 1px solid rgba(30, 30, 30, 1.00);
		border-radius: 3px;
		position: relative;
	}

	#index #btn_navopen span:not(:last-child) {
		display: block;
		position: absolute;
		left: 15%;
		height: 3px;
		background-color: rgba(30, 30, 30, 1.00);
		width: 70%;
		margin: 4px auto 0 auto;
		transition: all 0.25s;
		border-radius: 10px;
	}

	#index #btn_navopen span:nth-of-type(1) {
		top: 2px;
	}

	#index #btn_navopen span:nth-of-type(2) {
		top: 8px;
	}

	#index #btn_navopen span:nth-of-type(3) {
		top: 14px;
	}

	#index #btn_navopen span:last-child {
		display: block;
		width: 70%;
		position: absolute;
		left: 15%;
		bottom: 5px;
		text-align: center;
		transition: all 0.4s;
	}

	#index #btn_navopen.active {
		background-color: rgba(30, 30, 30, 1.00);
	}

	#index #btn_navopen.active span {
		background-color: rgba(255, 255, 255, 1.00);
	}

	#index #btn_navopen.active span:nth-of-type(1) {
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translateX(-50%) translateY(-150%) rotate(45deg);
		width: 70%;
	}

	#index #btn_navopen.active span:nth-of-type(2) {
		opacity: 0;
	}

	#index #btn_navopen.active span:nth-of-type(3) {
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translateX(-50%) translateY(-150%) rotate(-45deg);
		width: 70%;
	}

	#index #btn_navopen.active span:last-child {
		opacity: 0;
	}

	#index #index_gn {
		background-color: rgb(90, 167, 207);
		color: rgba(255, 255, 255, 1.00);
		padding-bottom: 1px;
		display: none;
	}

	#index #index_gn.open {
		display: block;
		filter: drop-shadow(0 10px 8px rgba(0, 0, 0, 0.4));
		overflow-y: scroll;
		max-height: 93dvh;
	}

	#index #index_gn .wfix {
		width: 100%;
	}

	#index #index_gn a {
		color: rgba(255, 255, 255, 1.00);
	}

	#index #index_gn ul {
		list-style-type: none;
	}


	#index #gn_category>li {
		background-color: rgb(90, 167, 207);
		text-align: left;
	}

	#index #gn_category>li+li {
		border-top: 1px solid rgba(255, 255, 255, 0.2);
	}


	#index #gn_category .category_main {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 10px;
	}

	#index #gn_category .category_main a {
		display: block;
		flex-grow: 1;
		padding: 1.5em;
		text-decoration: none;
		z-index: 1;
		transition: 0.25s all;
	}

	#index #gn_category .category_main .btn_subopen {
		display: block;
		margin-right: 10px;
		padding: 0.5em;
		font-size: 18px;
		cursor: pointer;
	}
	#index #gn_category .category_main .btn_subopen span {
		display: block;
		transition: 0.25s all;
	}
	#index #gn_category .category_main .btn_subopen.open span {
		transform: rotate(-135deg);
	}
	#index #index_gn .category_sub {
		display: none;
	}

	#index #index_gn .sub_gr {
		margin: 0px 10px 10px 10px;
		background-color: rgba(0, 0, 0, 0.2);
	}

	#index #index_gn .sub_gr_label {
		text-align: center;
		display: block;
		padding: 2em 2em;
		font-size: 75%;
		letter-spacing: 0.2em;
		white-space: nowrap;
	}

	#index #index_gn .sub1 {
		text-align: left;
		font-size: 90%;
	}

	#index #gn_category .sub1>li {
		border-top: 1px solid rgba(255, 255, 255, 0.2);
	}

	#index #index_gn .sub1 a {
		transition: none;
	}

	#index #index_gn .sub1 a:hover {
		background-color: rgba(0, 0, 0, 0.20);
	}

	#index #index_gn .sub1>li>a {
		display: flex;
		align-items: center;
		gap: 0.5em;
		padding: 1em;
		width: 100%;
		text-decoration: none;
	}

	#index #index_gn .sub1>li>a::after {
		content: "";
		display: block;
		width: auto;
		height: 1em;
		aspect-ratio: 1;
		background-image: url("../img/format/wh_r.png");
		background-repeat: no-repeat;
		background-position: center center;
		background-size: 80%;
		margin-inline: auto 0;
		transform: translateY(-1px);
	}

	#index #index_gn .sub2 {
		text-align: left;
		font-size: 90%;
		margin-left: 3.0em;
	}

	#index #index_gn .sub2>li {
		border-top: 1px dotted rgba(255, 255, 255, 0.2);
	}

	#index #index_gn .sub2>li:last-child {
		margin-bottom: 0.5em;
	}

	#index #index_gn .sub2>li>a {
		display: flex;
		align-items: center;
		gap: 0.75em;
		padding: 1em 1.2em 1em 0;
		width: 100%;
		text-decoration: none;
	}

	#index #index_gn .sub2>li>a::before {
		content: "∟";
		display: block;
		font-size: 65%;
	}

	#index #index_gn .sub2>li>a::after {
		content: "";
		display: block;
		width: auto;
		height: 1em;
		aspect-ratio: 1;
		background-image: url("../img/format/wh_r.png");
		background-repeat: no-repeat;
		background-position: center center;
		background-size: 80%;
		margin-inline: auto 0;
		transform: translateY(-1px);
	}

	#index #index_gn #index_search {
		padding: 1.5em;
		background-color: rgba(0, 0, 0, 0.20);
		text-align: center;
		display: block;
	}

	#index #index_gn #index_search input[type="text"] {
		max-width: inherit;
		flex-grow: 1;
	}

	#index #index_gn #index_search input[type="submit"] {
		padding: 0.25em 1.25em;
		color: initial;
	}

	#index #index_gn #btn_navclose {
		padding: 1em;
		text-align: center;
		display: block;
		cursor: pointer;
	}

	#index #index_gn #btn_navclose span {
		font-size: 70%;
		line-height: 1.2;
		background-color: rgba(255, 255, 255, 0.20);
		border: 1px solid rgba(0, 0, 0, 0.5);
		padding: 1em;
		display: inline-block;
	}

}

/*-----------------------------
#index_visual
------------------------------*/

#index_emergency {
	margin-block: 2em;
}

#index_emergency::before {
	content: "";
	display: block;
	width: 100%;
	height: 2px;
	position: absolute;
	left: 0;
	top: 1.8em;
	background-color: rgb(187, 231, 203);
	z-index: 0;
}

#index_emergency.disaster::before {
	background-color: rgb(246, 180, 180);
}

#index_emergency .wfix {
	border-radius: 6px;
}

#index_emergency .wfix::before,
#index_emergency .wfix::after {
	content: "";
	display: block;
	width: calc(100% - 15px * 2);
	height: 7px;
	position: absolute;
	left: 15px;
	background-color: rgb(138, 213, 178);
	z-index: 1;
}

#index_emergency.disaster .wfix::before,
#index_emergency.disaster .wfix::after {
	background-color: rgb(246, 180, 180);
}

#index_emergency .wfix::before {
	top: -7px;
	border-radius: 4px 4px 0 0;
}

#index_emergency .wfix::after {
	bottom: -7px;
	border-radius: 0 0 4px 4px;
}

#index_emergency.normal .wfix {
	background-color: rgb(187, 231, 203);
	color: rgb(32, 32, 32);
}

#index_emergency.disaster .wfix {
	background-color: rgb(176, 13, 13);
	color: rgba(255, 255, 255, 1.00);
}

#index_emergency .indexHeadline {
	margin: 0;
	padding: 1em;
}

#index_emergency.normal .indexHeadline {
	display: flex;
	align-items: center;
	flex-direction: row;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 1em;
}

#index_emergency h2 {
	flex-grow: 1;
	flex-wrap: wrap;
}

#index_emergency h2 {
	font-weight: 400;
	font-size: 100%;
	line-height: 1.5;
	margin: 0;
	display: flex;
	align-items: center;
	gap: 1em;
}

#emergencyLabel {
	display: flex;
	align-items: center;
	gap: 1em;
}

#index_emergency h2 img {
	max-width: 2em;
}

#emergencyDef_title_txt {
	padding: 0.25em 1.0em;
	background-color: rgb(37, 161, 103);
	border-radius: 4px;
	font-size: 85%;
	color: rgb(255, 255, 255);
}

#index_emergency #emergencyLabel_disaster {
	display: none;
}

#index_emergency.disaster #emergencyLabel_normal {
	display: none;
}

#index_emergency.disaster #emergencyLabel_disaster {
	display: block;
	font-size: 150%;
}

#index_emergency.disaster #emergencyLabel {
	animation: blink .75s ease-in-out infinite alternate;
}

@keyframes blink {
	0% {
		opacity: .2;
	}

	100% {
		opacity: 1;
	}
}

#nowTime {
	font-size: 80%;
}

#emergencyDef {
	font-size: 90%;
}

#index_emergency.disaster #emergencyDef a {
	color: #fff;
}

#emergencyDef a:hover {
	color: #ff0004;
}

#index_emergency .detail {
	font-size: 90%;
	display: none;
}

#index_emergency .detail article {
	padding: 1em;
	background-color: rgba(0, 0, 0, 0.25);
	border-bottom: 1px solid rgb(176, 13, 13);
}

#index_emergency .emergencyTime {
	margin-bottom: 0;
	font-size: 80%;
}

#index_emergency .emergencyComment {
	padding: .15em 0;
}

#index_emergency .emergencyComment a {
	color: inherit;
	text-decoration: none;
}

#index_emergency .emergencyComment a:hover {
	color: #0b9fe7;
}

#index_emergency .detail article:last-child {
	border-bottom: 0;
}

@media screen and (max-width: 959px) {
	#emergencyDef_title_txt {
		width: 100%;
	}

	#index_emergency h2 {
		padding-bottom: 1em;
		border-bottom: 1px solid rgba(0, 0, 0, 0.25);
	}

	#index_emergency.disaster h2 {
		padding-bottom: 0;
		border-bottom: none;
		gap: inherit;
	}

	#emergencyDef {
		width: 100%;
		font-size: 80%;
		text-align: left;
		word-break: break-all;
	}

	#emergencyDef * {
		display: inline;
		word-break: break-all;
	}

	#index_emergency.disaster #emergencyLabel_disaster {
		display: block;
		font-size: 100%;
		margin-right: 1em;
	}
}

/*-----------------------------
#index_visual
------------------------------*/

#index_visual .flickity-viewport {
	display: block;
	width: 100%;
	aspect-ratio: 2;
	overflow: hidden;
	border-radius: 6px;
}

#index_visual .visual_content {
	margin: 0;
	width: 100%;
	height: auto;
}

#index_visual .visual_content img {
	display: block;
	width: 100%;
	max-width: inherit;
}

#index_visual .flickity-prev-next-button {
	top: 50%;
	transform: translateY(-50%);
	border-radius: 0;
	border-radius: 4px;
}

#index_visual .flickity-prev-next-button:hover {
	opacity: 0.5;
}

#index_visual .flickity-page-dots {
	position: absolute;
	bottom: -40px;
}

#index_visual .flickity-page-dots .dot {
	width: 18px;
	height: 18px;
	margin: 0 10px;
}

#index_visual .flickity-prev-next-button {
	top: 95%;
}

#index_visual .flickity-page-dots {
	bottom: 15px;
}

#index_visual .flickity-page-dots .dot {
	background: rgb(30, 30, 30);
	border: 3px solid rgb(255, 255, 255);
	mix-blend-mode: revert;
	opacity: 0.5;
}

#index_visual .flickity-page-dots .dot.is-selected {
	background: rgb(255, 255, 255);
	opacity: 1;
}

/*-----------------------*/

@media screen and (min-width: 960px) {
	#index_visual {
		margin-block: 4em;
	}

	#visualLoader {
		z-index: 0;
		margin-inline: 25% 0;
		width: 75%;
	}

	#index_visual .visual_content {
		overflow: hidden;
		/* aspect-ratio: 1.75; */
	}

	#visualCatch {
		position: absolute;
		z-index: 1;
		top: 50%;
		left: 0;
		transform: translateY(-60%);
		width: 50%;
		font-weight: bold;
	}

	#catch_main {
		font-size: 2.5em;
		letter-spacing: 0.2em;
	}

	#catch_main span {
		display: block;
		padding: 0.5em 0.5em 0.5em 0;
		background-color: rgba(255, 255, 255, 0.95);
		margin-top: 0.25em;
		width: fit-content;
		border-radius: 4px;
	}
}

@media screen and (max-width: 959px) {
	#index_visual {
		margin-block: 10px;
	}

	#visualCatch {
		text-align: center;
	}

	#visualCatch p {
		margin-bottom: 0.5em;
	}

	#catch_main {
		font-size: 140%;
		font-weight: bold;
	}

	#catch_main span {
		display: block;
	}

	#catch_main span:nth-of-type(1) {
		margin-left: -2em;
	}

	#catch_main span:nth-of-type(2) {
		margin-left: 2em;
	}

	#index_visual .flickity-prev-next-button {
		display: none;
	}
}

/*-----------------------------
#index_news
------------------------------*/

#index_news {
	padding-block: 2em;
}

#index_news .body {
	padding-block: 2em;
}

#index_news .news:nth-of-type(odd) {
	background-color: rgb(239, 248, 255);
}

.news_type {
	width: auto;
	min-width: 6em;
	padding: 0.5em 1em;
	white-space: nowrap;
	text-align: center;
	background-color: #848484;
	color: #fff;
	font-size: 80%;
	line-height: 1.2;
	border-radius: 2em;
	display: inline-block;
}

.news_type.work {
	background-color: #ec7a1c;
}

.news_type.info {
	background-color: #406bce;
}

.news_type.topics {
	background-color: #d370a8;
}

.news_type.press {
	background-color: #78cb34;
}

.news_date {
	font-size: 80%;
	font-weight: bold;
	display: block;
	margin-bottom: 0.5em;
}

.news_detail {
	display: grid;
	grid-template-rows: auto 1fr;
	gap: 0.5em;
}

.news_detail>* {
	margin: 0;
}

.newTitile {
	color: rgb(204, 16, 19);
	font-weight: bold;
	margin-left: 1em;
}

#index_news .news a {
	text-decoration: none;
}

@media screen and (min-width: 960px) {
	#index_news {
		padding-bottom: 6em;
	}

	#index_news .indexHeadline {
		padding-block: 2em;
	}

	#index_news .body {
		display: grid;
		grid-template-columns: 3fr 1fr;
		gap: 2em;
	}

	#index_news .news {
		display: grid;
		grid-template-columns: 8em 1fr;
		gap: 1.5em;
		align-items: center;
		padding: 0.5em 1em;
		border-radius: 0.25em;
	}

	.news_var {
		padding-right: 1em;
	}
}

@media screen and (max-width: 959px) {
	.news_type {
		font-size: 70%;
		position: absolute;
		top: 1.75em;
		right: 1.0em;
		width: 10em;
	}

	.news_date {
		margin-block: 0.75em 1em;
	}

	#index_news .news {
		padding: 1em;
	}
}

/*-----------------------*/

#guideInfo {
	display: flex;
	flex-direction: column;
	gap: 1em;
	color: rgb(255, 255, 255);
	padding: 1em;
	border-radius: 4px;
}

#guideInfo>* {
	border-radius: 3px;
	overflow: hidden;
}

#guideInfo a:hover {
	opacity: 0.75;
}

#guideInfo::before {
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 0;
	background-image: url("../img/format/stripe_wh.png");
	background-size: 5px;
	mix-blend-mode: difference;
	opacity: 0.1;
}

#to_meikoku {
	text-align: center;
	color: initial;
	font-size: 140%;
	line-height: 2;
	white-space: nowrap;
	flex-grow: 1;
}

#to_meikoku a {
	display: grid;
	grid-template-rows: auto;
	text-align: center;
	background-color: rgb(241, 115, 121);
	/* background: linear-gradient(180deg, rgb(255, 172, 100) 0%, rgb(255, 160, 38) 50%, rgb(250, 97, 72) 100%); */
	width: 100%;
	color: rgb(255, 255, 255);
	text-decoration: none;
	height: 100%;
	animation: to_meikoku 30s linear infinite normal;
}

#to_meikoku_info:after {
	content: "▼";
	font-size: 120%;
	line-height: 1;
	color: rgb(241, 115, 121);
	display: block;
	position: absolute;
	left: 50%;
	bottom: -0.8em;
	transform: scaleX(1.5) translateX(-50%);
	z-index: 1;
	animation: to_meikoku_c 30s linear infinite normal;
}

@keyframes to_meikoku {
	0% {
		background-color: #df608a;
	}

	25% {
		background-color: #ad6bd3;
	}

	50% {
		background-color: #31a2d6;
	}

	75% {
		background-color: #64b31b;
	}

	100% {
		background-color: #df608a;
	}
}

@keyframes to_meikoku_c {
	0% {
		color: #df608a;
	}

	25% {
		color: #ad6bd3;
	}

	50% {
		color: #31a2d6;
	}

	75% {
		color: #64b31b;
	}

	100% {
		color: #df608a;
	}
}

#to_meikoku_info {
	display: grid;
	grid-template-rows: auto;
	place-content: center;
	text-align: center;
	padding: 1em 1.5em;
}

#to_meikoku_info>*:nth-of-type(1) {
	font-size: 130%;
	font-weight: bold;
	letter-spacing: 0.4em;
}

#to_meikoku_info>*:nth-of-type(2) {
	font-size: 60%;
	letter-spacing: 0.2em;
}

#to_meikoku_info>*:nth-of-type(3) {
	margin-top: 0.5em;
}

#to_meikoku_tel {
	background-color: rgba(0, 0, 0, 0.2);
	padding: 1em 1.5em;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.25em;
	letter-spacing: -0.025em;
}

#to_meikoku_tel .tel {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.25em;
}

#to_meikoku_tel .label {
	font-size: 55%;
	font-weight: bold;
}

#to_meikoku_tel .number {
	font-size: 110%;
}

#to_faq {
	flex-grow: 1;
	background-color: rgb(130, 200, 212);
	text-align: center;
	display: flex;
	justify-content: center;
	align-items: center;
}

#to_faq a {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 100%;
}

#to_faq span:has(img) {
	display: block;
	max-width: 100px;
}

/*-----------------------*/

@media screen and (max-width: 959px) {
	#guideInfo {
		font-size: 80%;
		margin-top: 4em;
		margin-inline: auto;
		width: fit-content;
	}
}

/*-----------------------------
#index_works
------------------------------*/

#index_works {
	background-color: rgb(233, 241, 235);
	background: linear-gradient(180deg, rgb(201, 241, 216) 0%, rgb(210, 238, 255) 100%);
	padding-block: 4em;
}

#index_works::before,
#index_works::after {
	content: "";
	display: block;
	width: 100%;
	height: 22px;
	position: absolute;
	left: 0;
	z-index: 0;
	background-image: url("../img/format/stripe_wh.png");
	background-size: 36px;
	mix-blend-mode: plus-lighter;
}

#index_works::before {
	top: 0;
}

#index_works::after {
	bottom: 0;
}

#index_works .indexHeadline {
	padding-block: 2em;
}

#index_works .body {
	padding-block: 2em;
	display: grid;
	grid-template-rows: auto auto;
}

#index_works_links ul {
	list-style-type: none;
	margin: 0;
}

#index_works_links li {
	list-style-type: none;
	background-color: rgb(119, 177, 219);
	color: rgb(255, 255, 255);
	display: flex;
	align-items: stretch;
	width: 100%;
	margin-bottom: 0;
	border-radius: 4px;
	white-space: nowrap;
}

#index_works_links li+li {
	margin-top: 0.25em;
}

#index_works_links li::before {
	content: "";
	display: block;
	width: 2em;
	background-image: url(../img/format/wh_r.png);
	background-repeat: no-repeat;
	background-position: center center;
	background-size: 40% auto;
}

#index_works_links a {
	flex-grow: 1;
	width: 100%;
	padding: 1em 2em 1em 1em;
	display: block;
	background-color: rgba(0, 0, 0, 0.1);
	border-left: 1px solid rgba(255, 255, 255, 0.5);
	text-decoration: none;
	color: inherit;
}

#index_works_links a:hover {
	background-color: rgba(0, 0, 0, 0.4);
}

@media screen and (min-width: 960px) {
	#index_works .body {
		grid-template-columns: 50% 1fr;
		gap: 4em;
	}

	#index_works_mission {
		grid-column: 2/3;
		grid-row: 1/2;
		justify-self: start;
		align-self: end;
	}

	#index_works_map {
		grid-column: 1/2;
		grid-row: 1/3;
	}

	#index_works_links {
		grid-column: 2/3;
		grid-row: 2/3;
		justify-self: start;
		align-self: start;
	}

	#index_works_progress {
		grid-column: 1/3;
		grid-row: 3/4;
		justify-self: start;
		align-self: center;
	}
}

@media screen and (max-width: 959px) {
	#index_works .body {
		gap: 2em;
	}

	#index_works_mission {
		grid-row: 1;
	}

	#index_works_map {
		grid-row: 2;
	}

	#index_works_links {
		grid-row: 3;
	}

	#index_works_progress {
		grid-row: 4;
	}

	#index_works_links ul {
		width: 100%;
		font-size: 90%;
		max-width: fit-content;
		margin-inline: auto;
	}
}

/*-----------------------------*/

#index_works_progress ul {
	list-style-type: none;
	margin: 0;
	padding: 0;
	display: flex;
	justify-content: center;
	gap: 1em;
	flex-wrap: wrap;
}

#index_works_progress li {
	margin: 0;
	text-align: center;
	color: rgb(255, 255, 255);
	border-radius: 4px;
	overflow: hidden;
	transition: all .2s;
	max-width: 300px;
}

@media screen and (min-width: 1200px) {
	#index_works_progress li {
		width: calc((100% - 4em) / 5);
	}
}

@media screen and (max-width: 1199px) {
	#index_works_progress li {
		width: calc((100% - 3em) / 4);
	}
}

@media screen and (max-width: 999px) {
	#index_works_progress li {
		width: calc((100% - 2em) / 3);
	}
}

@media screen and (max-width: 799px) {
	#index_works_progress li {
		width: calc((100% - 1em) / 2);
	}
}

#index_works_progress li:hover {
	filter: drop-shadow(0 10px 8px rgba(0, 0, 0, 0.4));
}

#index_works_progress li a {
	display: flex;
	justify-content: center;
	align-items: stretch;
	width: 100%;
	height: 100%;
	text-decoration: none;
	color: rgb(255, 255, 255);
	border-radius: 4px;
	overflow: hidden;
}

#index_works_progress li:nth-of-type(1) a {
	background-color: rgb(217, 159, 47);
}

#index_works_progress li:nth-of-type(2) a {
	background-color: rgb(102, 177, 75);
}

#index_works_progress li:nth-of-type(3) a {
	background-color: rgb(55, 168, 175);
}

#index_works_progress li:nth-of-type(4) a {
	background-color: rgb(88, 121, 200);
}

#index_works_progress li:nth-of-type(5) a {
	background-color: rgb(196, 118, 193);
}

#index_works_progress figure {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	text-decoration: none;
	margin: 0;
}

#index_works_progress figure>span {
	display: block;
	aspect-ratio: 1.333;
	flex-grow: 1;
	overflow: hidden;
}

#index_works_progress figure>span::after {
	content: "";
	display: block;
	width: 3em;
	height: 3em;
	position: absolute;
	top: 0.5em;
	left: 0.5em;
	background-image: url(../img/format/m.webp);
	background-repeat: no-repeat;
	background-position: center center;
	background-size: contain;
}

#index_works_progress figure img {
	display: block;
	height: 100%;
	width: 100%;
	aspect-ratio: 1.333;
	object-fit: cover;
	transition: all .2s;
}

#index_works_progress figure:hover img {
	transform: scale(1.1);
}

#index_works_progress figcaption {
	display: block;
}

#index_works_progress figcaption span {
	padding: 1em;
	display: block;
}

#index_works_progress figcaption .rnum {
	background-color: rgba(0, 0, 0, 0.2);
	font-size: 75%;
}

#index_works_progress figcaption .rnum::after {
	content: "▼";
	font-size: 100%;
	line-height: 1;
	color: rgba(0, 0, 0, 0.2);
	display: block;
	position: absolute;
	left: 50%;
	bottom: -0.8em;
	transform: scaleX(1.5) translateX(-50%);
}

#index_works_progress figcaption .rname {
	padding-block: 1.5em;
	font-size: 120%;
}

/*-----------------------*/

@media screen and (max-width: 959px) {
	#index_works_progress figcaption .rname {
		font-size: 100%;
	}
}

/*-----------------------*/

#index_main .indexHeadline {
	text-align: center;
}

@media screen and (min-width: 960px) {

	#index_news .indexHeadline h2,
	#index_works .indexHeadline h2,
	#index_progress .indexHeadline h2 {
		font-size: 200%;
		margin-bottom: 0.5em;
	}

}

@media screen and (max-width: 959px) {

	#index_news .indexHeadline h2,
	#index_works .indexHeadline h2,
	#index_progress .indexHeadline h2 {
		font-size: 140%;
		margin-bottom: 0.5em;
	}
}

/*----------------------------
aside
---------------------------*/

aside {
	padding-block: 4em;
}

#linkbanners ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 5px;
	list-style-type: none;
	margin: 0 auto 4em auto;
	padding: 0;
}

#linkbanners ul li {
	width: calc((100% - 25px) / 6);
	max-width: 200px;
	margin: 0;
	padding: 0;
}

@media screen and (max-width: 999px) {
	#linkbanners ul li {
		width: calc((100% - 20px) / 5);
	}
}

@media screen and (max-width: 799px) {
	#linkbanners ul li {
		width: calc((100% - 15px) / 4);
	}
}

@media screen and (max-width: 649px) {
	#linkbanners ul li {
		width: calc((100% - 10px) / 3);
	}
}

@media screen and (max-width: 499px) {
	#linkbanners ul li {
		width: calc((100% - 5px) / 2);
	}
}

#linkbanners ul li a {
	display: block;
}

#linkbanners ul li img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4;
}

/*----------------------------
.up
---------------------------*/

.up {
	display: block;
	text-align: center;
	margin: 4em auto 2em auto;
	width: fit-content;
}

.up a,
.up span {
	display: block;
	width: 3em;
	height: auto;
	aspect-ratio: 1;
	padding: 4px;
	border-radius: 50%;
	background-color: rgba(0, 0, 0, 0.5);
	opacity: 0.25;
	cursor: pointer;
}

.up a:hover,
.up span:hover {
	-webkit-box-shadow: inset 0 0 0 5px rgba(255, 255, 255, 0.5);
	-moz-box-shadow: inset 0 0 0 5px rgba(255, 255, 255, 0.5);
	box-shadow: inset 0 0 0 5px rgba(255, 255, 255, 0.5);
	opacity: 1;
}

/*----------------------------
#index_footer
---------------------------*/

#index_footer {
	color: initial;
	padding-top: 4em;
	white-space: nowrap;
}

#index_footer .wfix {
	padding-block: 7em 4em;
}

#index_footer .wfix::before {
	content: "";
	display: block;
	width: 100%;
	height: 2px;
	position: absolute;
	top: -1em;
	left: 0;
	z-index: 0;
	background-color: rgb(203, 222, 233);
	border-radius: 2px;
	box-shadow: 0 1px 0 0 rgb(255, 255, 255);
}


@media screen and (min-width: 1200px) {

	#index_footer .wfix {
		display: flex;
		flex-direction: row-reverse;
		justify-content: space-between;
		gap: 0 5vw;
		align-items: center;
		padding-block: 7em 4em;
	}

	#footer_contact {
		flex-grow: 1;
		max-width: 50%;
	}

}

@media screen and (max-width: 1199px) {
	#footer_contact {
		max-width: inherit;
		width: fit-content;
		margin-inline: auto;
	}

	#footer_txtlink {
		margin-block: 4em;
	}

	#footer_profile {
		width: fit-content;
		margin-inline: auto;
	}
}


#index_footer ul {
	list-style-type: disclosure-closed;
}

#index_footer a {
	color: inherit;
}

#footer_btnlink {
	list-style-type: none;
	margin: 0 0 2em 0;
	padding: 0;
	display: flex;
	align-items: stretch;
	gap: 0.25em;
	flex-wrap: wrap;
}

#footer_btnlink li {
	background-color: rgb(119, 177, 219);
	color: rgb(255, 255, 255);
	display: flex;
	align-items: stretch;
	width: 100%;
	border-radius: 4px;
	line-height: 2.5;
	white-space: nowrap;
}

#footer_btnlink li::before {
	content: "";
	display: block;
	height: 100%;
	width: auto;
	aspect-ratio: 1;
	background-image: url(../img/format/wh_r.png);
	background-repeat: no-repeat;
	background-position: center center;
	background-size: 80% auto;
}

#footer_btnlink li:has(a[href*="faq/"])::before {
	background-image: url(../img/format/icon_btn_pc.png);
}

#footer_btnlink li:has(a[href*="nyusatsu/"])::before {
	background-image: url(../img/format/icon_btn_hammer.png);
}

#footer_btnlink a {
	flex-grow: 1;
	width: 100%;
	padding: 1em 2em 1em 1em;
	display: block;
	background-color: rgba(0, 0, 0, 0.1);
	border-left: 1px solid rgba(255, 255, 255, 0.5);
	text-decoration: none;
	color: inherit;
}

#footer_btnlink a:hover {
	background-color: rgba(0, 0, 0, 0.4);
}

#footer_txtlink {
	padding-left: 2em;
}

#footer_txtlink li+li {
	margin-top: 0.5em;
}

#footer_txtlink li a:hover {
	color: #ec0003;
}

#index_footer .label {
	display: inline;
	padding: 0;
	font-size: 70%;
	font-weight: normal;
	line-height: inherit;
	color: inherit;
	text-align: inherit;
	white-space: inherit;
	vertical-align: inherit;
	border-radius: inherit;
}

#author_detail {
	display: grid;
	grid-template-columns: auto 1fr;
	grid-template-rows: auto 1fr auto auto;
	gap: 1em 2em;
	align-items: end;
}

#index_footer h2 {
	display: block;
	width: clamp(300px, 80vw, 400px);
	grid-column: 1/3;
	grid-row: 1/2;
}

#index_footer #author_img {
	grid-column: 1/2;
	grid-row: 2/4;
}

#index_footer #author_img img {
	max-width: 200px;
	min-width: 150px;
}

#index_footer #author_address {
	grid-column: 2/3;
	grid-row: 2/3;
	display: grid;
	grid-template-columns: auto 1fr;
	grid-template-rows: auto 1fr;
	align-items: end;
}

#author_address .zip {
	grid-column: 1/2;
	grid-row: 1/2;
}

#author_address .address {
	grid-column: 1/2;
	grid-row: 2/3;
}

#author_address .gmaplink {
	grid-column: 2/3;
	grid-row: 1/3;
}

#index_footer #author_telfax {
	line-height: 1.2;
	grid-column: 2/3;
	grid-row: 3/4;
	align-self: start;
}

#index_footer #author_telfax .tel .number {
	font-size: 200%;
}

#index_footer .number {
	font-size: 120%;
}

#author_branch {
	display: flex;
	justify-content: space-between;
	gap: 2em;
	margin-top: 3em;
}

#index_copyright {
	background-color: rgba(169, 214, 231, 0.4);
	text-align: center;
	padding: 3em 0em;
	font-size: 70%;
	letter-spacing: 0.25em;
	color: rgba(0, 0, 0, 0.5);
}

/*---------------------------*/

.author_branch p {
	margin-bottom: 0.25em;
}

.author_branch .branch_name {
	border-bottom: 1px solid rgba(0, 0, 0, 0.75);
	padding-bottom: 0.25em;
	margin-bottom: 0.75em;
	font-size: 120%;
}

.gmaplink {
	width: 2em;
	display: inline-block;
	margin-left: 1em;
	vertical-align: bottom;
}

.author_branch .gmaplink {
	width: 1.25em;
	position: absolute;
	right: 0.5em;
	top: -0.5em;
	vertical-align: bottom;
}

.tel,
.fax,
.zip,
.address {
	display: inline-block;
}

.zip {
	font-size: 90%;
}

/*---------------------------*/

@media screen and (max-width: 959px) {
	#index_body {
		padding-block: 10px;
	}

	#index_footer {
		padding-top: 10px;
	}

	#index_footer .wfix {
		padding-block: 0;
	}

	#index_footer .wfix,
	#author_detail,
	#author_address,
	#author_branch {
		display: block;
	}

	#footer_profile>*,
	#author_detail>* {
		width: fit-content;
		margin-inline: auto;
	}

	#footer_contact {
		padding-block: 2em;
	}

	#author_detail>* {
		margin-bottom: 1em;
	}

	#footer_btnlink li {
		margin-bottom: 0.25em;
	}

	#footer_txtlink {
		margin-block: 3em;
	}

	#author_img {
		text-align: center;
		margin-block: 2em;
	}

	#author_branch>* {
		margin-bottom: 2em;
	}

	#index_footer .up {
		margin-block: 3em;
	}
}

/*---------------------------*/