@charset "utf-8";

/* css記載順序
A. reset.css
B. style.css
C. pc.css
D. tablet.css
E. smart.css

B-01. 枠組共通
B-02. header
B-03. nav
B-04. main共通
B-05. h1,h2見出し
B-06. breadcrumb
B-07. pager
B-08. aside
B-09. footer
B-10. toppage
B-11. form
B-12. レギュレーション
B-13. 検索結果
B-14. 内部ページ
end css記載順序*/


/*************************** B-01. 枠組共通 ***********************/
html {
	font-size: 62.5%;
	height: 100%;
}

body {
	font-size: 1.6rem;
	font-family: 'Zen Kaku Gothic Antique', sans-serif;
	height: 100%;
}

@media screen and (max-width:1279px) {}

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

#wrapper {
	margin: 0 auto;
	overflow: clip;
}

.fixbox {
	max-width: 834px;
	width: 100%;
	margin-left: auto;
	margin-right: auto;
}

main {
	display: flex;
}

main article {
	margin-top: 9.0rem;
	width: calc(100% - 220px);
	flex-grow: 1;
}

main article#top {
	margin-top: 0;
}

main article section {
	/*h2*/
	margin-top: 150px;
}

main article section section {
	/*h3*/
	margin-top: 60px;
}

main article section section section {
	/*h4*/
	margin-top: 40px;
}

main article section section section section {
	/*h5 h6*/
	margin-top: 30px;
}

/*************************** B-02. header ************************/
header .logo {
	position: absolute;
	top: 40px;
	left: 16.7vw;
	z-index: 99;
}

header h1 {
	font-size: 0;
	margin: 0;
	line-height: 0;
}

.header-container img {
	width: 9.7rem;
	height: auto;
}

.header-contact {
	position: absolute;
	top: 30px;
	right: 16.7vw;
	z-index: 99;
}

.header-contact a {
	display: inline-block;
	text-align: center;
	width: 140px;
	font-size: 1.4rem;
	font-weight: 500;
	padding: 14px 10px 13px;
	border: 1px solid #405356;
	border-radius: 10px;
	transition: .3s;
}

.header-contact a:hover {
	background: #405356;
	color: #fff;
	transition: .3s;
}

/*************************** B-03. nav ***************************/
/*************************** B-04. main共通 ***********************/
.tablet {
	display: none;
}

.sp {
	display: none;
}

a {
	text-decoration: none;
	color: #393939;
	transition: color .3s, background .3s, opacity .3s, border .3s;
}


.more {
	text-align: center;
	margin-top: 10px;
}

.more a {
	display: inline-block;
	width: 300px;
	font-size: 1.4rem;
	font-weight: 500;
	padding: 16px 10px 14px;
	border: 1px solid #405356;
	border-radius: 15px;
	transition: .3s;
}

.more a:hover {
	background: #405356;
	color: #fff;
	transition: .3s;
}

a.pdf {}

a.pdf::after {
	content: "\f1c1";
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	padding-left: 6px;
}

main p {
	font-size: 1.6rem;
	line-height: 3.6rem;
	margin-bottom: 1.8rem;
}

main p strong {
	color: #000;
}

main p.lead {
	font-size: 2.2rem;
}

mark {
	background: linear-gradient(transparent 80%, #6cf 80%);
	font-weight: bold;
}

.const {
	padding: 100px 0;
	text-align: center;
	background: #f0f0f0;
	border: 10px solid #ddd;
	font-size: 2.4rem;
}

.chat {
	margin-bottom: 20px;
	position: relative;
}

.chat:before,
.chat:after {
	clear: both;
	content: "";
	display: block;
}

.chat.left p.img {
	float: left;
	margin-right: 20px;
	width: 60px;
	height: 60px;
}

.chat.right p.img {
	float: right;
	margin-left: 20px;
	width: 60px;
	height: 60px;
}

.chat p.img img {
	width: 100%;
	height: 100%;
	border: 1px solid #aaa;
	border-radius: 50%;
	margin: 0;
}

.chat p.img span {
	margin-top: -4px;
	font-size: 1.1rem;
	text-align: center;
	display: block;
}

.chat div.txt {
	position: relative;
	padding: 10px;
	border: 1px solid;
	border-radius: 10px;
	max-width: -webkit-calc(100% - 120px);
	max-width: calc(100% - 120px);
	display: inline-block;
}

.chat.left div.txt {
	float: left;
	border-color: #aaa;
	background: #f0f2f4;
}

.chat.right div.txt {
	border-color: #aaa;
	background: #c3f69d;
	float: right;
}

main .chat p {
	margin: 0 0 10px;
	line-height: 1.8;
}

.chat p:last-child {
	margin-bottom: 0;
}

.chat div.txt::before,
.chat div.txt::after {
	position: absolute;
	content: '';
	border: 10px solid transparent;
	top: 15px;
}

.chat.left div.txt::before {
	border-right: 10px solid #aaa;
	left: -20px;
}

.chat.left div.txt::after {
	border-right: 10px solid #f0f2f4;
	left: -19px;
}

.chat.right div.txt::before {
	border-left: 10px solid #aaa;
	right: -20px;
}

.chat.right div.txt::after {
	border-left: 10px solid #c3f69d;
	right: -19px;
}

.related-article-container {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	margin: 5rem 0;
}

.related-article-box {
	border: 1px solid #ccc;
	padding: 2rem 2rem 1rem;
	margin: 0 0 4rem;
	position: relative;
	width: 49%;
}

.related-article-box::after {
	position: absolute;
	content: "関連ページ";
	background: #eee;
	color: #111;
	width: 12rem;
	text-align: center;
	padding: 0.8rem 0;
	top: -1.5rem;
	left: 1rem;
}

.related-article-box a {
	display: block;
	text-decoration: none;
	color: #333;
	display: flex;
}

.related-article-box a:hover {
	opacity: 0.5;
}

.related-article-box div.img img {
	transition: opacity 0.3s;
	width: 20rem;
	height: 14rem;
	margin-right: 1rem;
	object-fit: cover;
}

.related-article-box a:hover div.img img {
	opacity: 0.5;
}

.related-article-box div.txt {
	width: calc(100% - 21rem);
	font-size: 2rem;
	margin-bottom: 1.2rem;
}

dl.faq dt {
	font-size: 2.2rem;
	line-height: 1.6;
	padding: 0 3px;
	display: flex;
	margin-bottom: 3px;
}

dl.faq dt span {
	border-radius: 10px;
	padding: 10px;
	position: relative;
	background: #f0f2f4;
	width: 80%;
}

dl.faq dt span::before {
	position: absolute;
	content: '';
	border-right: 15px solid #f0f2f4;
	border-top: 15px solid transparent;
	border-bottom: 15px solid transparent;
	top: 30px;
	left: -15px;
	transform: translateY(-50%);
}

dl.faq dt::before {
	content: "Q";
	font-size: 3.6rem;
	background: #171d63;
	color: #fff;
	border-radius: 50%;
	width: 60px;
	height: 60px;
	display: flex;
	justify-content: center;
	margin-right: 10px;
}

dl.faq dd {
	margin-bottom: 5rem;
	line-height: 1.4;
	padding: 0 3px;
	display: flex;
	justify-content: flex-end;
}

dl.faq dd span {
	border-radius: 10px;
	padding: 10px;
	position: relative;
	background: #eee;
	width: 80%;
}

dl.faq dd span::before {
	position: absolute;
	content: '';
	border-left: 15px solid #eee;
	border-top: 15px solid transparent;
	border-bottom: 15px solid transparent;
	top: 30px;
	right: -15px;
	transform: translateY(-50%);
}

dl.faq dd::after {
	content: "A";
	font-size: 3.6rem;
	background: #999;
	color: #fff;
	border-radius: 50%;
	width: 60px;
	height: 60px;
	display: flex;
	justify-content: center;
	align-items: center;
	margin-left: 10px;
}

dl.faq img {
	display: block;
}

blockquote {
	padding: 30px 40px 20px;
	background: #f9f9f9;
	color: #666;
	position: relative;
}

blockquote::before {
	content: "\f10d";
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	position: absolute;
	top: 10px;
	left: 10px;
}

blockquote::after {
	content: "\f10e";
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	position: absolute;
	bottom: 10px;
	right: 10px;
}

blockquote p.cite {
	text-align: right;
}

.conversion {
	margin: 25px auto;
	width: 100%;
	text-align: center;
}

.conversion a {
	background: #f3981c;
	color: #fff;
	padding: 3.6rem;
	font-size: 3.6rem;
	display: block;
	text-decoration: none;
}

.miniConversion {
	margin: 25px auto;
	width: 80%;
	max-width: 500px;
	text-align: center;
}

.miniConversion a {
	background: #ddd;
	color: #333;
	padding: 2.4rem;
	font-size: 2.4rem;
	display: block;
	text-decoration: none;
}

a.blank::after {
	content: "\f24d";
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	padding-left: 6px;
}

p.annotation {
	font-size: 1.4rem;
	line-height: 1.6;
	color: #999;
}

ul.listing {
	margin-left: 30px;
	margin-bottom: 26px;
}

ul.listing li {
	font-size: 1.8rem;
	line-height: 1.6;
	margin-bottom: 10px;
}

ol.listing {
	margin-left: 30px;
	margin-bottom: 26px;
}

ol.listing li {
	font-size: 1.8rem;
	line-height: 1.6;
	margin-bottom: 10px;
}

ul.twoColumns,
ul.threeColumns,
ul.fourColumns,
ul.fiveColumns,
ul.sixColumns {
	display: flex;
	flex-wrap: wrap;
	margin: 0 -1%;
	list-style: none;
}

ul.twoColumns.center li,
ul.threeColumns.center li,
ul.fourColumns.center li,
ul.fiveColumns.center li,
ul.sixColumns.center li {
	text-align: center;
}

ul.twoColumns li {
	width: 48%;
	margin: 1%;
}

ul.threeColumns li {
	width: 31.3333%;
	margin: 1%;
}

ul.fourColumns li {
	width: 23%;
	margin: 1%;
}

ul.fiveColumns li {
	width: 18%;
	margin: 1%;
}

ul.sixColumns li {
	width: 14.6666%;
	margin: 1%;
}

ul.twoColumns li img,
ul.threeColumns li img,
ul.fourColumns li img,
ul.fiveColumns li img,
ul.sixColumns li img {
	width: 100%;
	height: auto;
	display: block;
}

.flex-container-two,
.flex-container-three,
.flex-container-four {
	display: flex;
	flex-wrap: wrap;
	margin: 0 -1%;
}

.flex-container-two>* {
	width: 48%;
	margin: 0 1% 3%;
}

.flex-container-three>* {
	width: 31.3333%;
	margin: 0 1% 3%;
}

.flex-container-four>* {
	width: 23%;
	margin: 0 1% 3%;
}

.flex-container-three p,
.flex-container-four p {
	font-size: 1.6rem;
	line-height: 2.8rem;
}

.max30percent {
	width: 30%;
}

.max40percent {
	width: 40%;
}

.max50percent {
	width: 50%;
}

.max60percent {
	width: 60%;
}

.max70percent {
	width: 70%;
}

.max80percent {
	width: 80%;
}

.max30percent img,
.max40percent img,
.max50percent img,
.max60percent img,
.max70percent img,
.max80percent img {
	width: 100%;
	height: auto;
}

td,
th {
	line-height: 1.4;
}

div.data {
	overflow: auto;
	white-space: nowrap;
}

div.data::-webkit-scrollbar {
	height: 5px;
}

div.data::-webkit-scrollbar-track {
	background: #F1F1F1;
}

div.data::-webkit-scrollbar-thumb {
	background: #BCBCBC;
}

div.data table {
	width: 100%;
	margin-bottom: 10px;
}

div.data table caption {
	margin-bottom: 5px;
	font-size: 80%;
	color: #666;
}

div.data table thead th {
	padding: 15px 5px;
	background: #f0f2f4;
	font-weight: bold;
	border-bottom: 1px solid #ccc;
	border-right: 1px solid #fff;
	border-left: 1px solid #fff;
}

div.data table tbody th {
	white-space: nowrap;
}

div.data table tbody td {
	padding: 12px 5px;
	text-align: center;
}

div.data table tbody tr {
	background: #f7f7f7;
}

div.data table tbody tr:nth-child(2n+1) {
	background: #fff;
}

div.data table tr:hover {
	background: #eee;
}

.chart table {
	border-spacing: 0;
	width: auto;
	min-width: 400px;
	table-layout: fixed;
	margin-bottom: 10px;
}

.chart table caption {
	margin-bottom: 5px;
}

.chart table thead th {
	background: #f0f2f4;
	border-bottom: 1px solid #ccc;
	padding: 15px 5px;
	text-align: left;
}

.chart table tbody th {
	padding: 12px 5px;
	text-align: left;
}

.chart table tbody td {
	padding: 12px 5px;
}

.chart table tbody tr {
	background: #f7f7f7;
}

.chart table tbody tr:nth-child(2n+1) {
	background: #fff;
}

.chart table tbody tr:hover {
	background: #eee;
}


div.scroll table {
	word-break: break-all;
	table-layout: fixed;
	display: block;
	max-height: 80vh;
	margin-bottom: 10px;
}

div.scroll table caption {
	margin-bottom: 5px;
}

div.scroll thead th {
	position: -webkit-sticky;
	position: sticky;
	top: 0;
	z-index: 1;
	padding: 15px 5px;
	background: #f0f2f4;
}

div.scroll thead th:first-child {
	position: -webkit-sticky;
	position: sticky;
	top: 0;
	left: 0;
	z-index: 3;
	background: #f0f2f4;
}

div.scroll tbody tr {
	background: #f7f7f7;
}

div.scroll tbody tr:nth-child(2n+1) {
	background: #fff;
}

div.scroll tbody tr:hover {
	background: #eee;
}

div.scroll tbody th {
	position: -webkit-sticky;
	position: sticky;
	left: 0;
	z-index: 2;
	border: none;
	white-space: normal;
	min-width: 80px;
	padding: 12px 5px;
	text-align: left;
}

div.scroll tbody td {
	padding: 12px 5px;
	text-align: center;
}

div.scroll th,
div.scroll td {
	position: relative;
	border: none;
	z-index: 0;
	vertical-align: middle;
	line-height: 1.2;
	white-space: nowrap;
}

div.scroll th::before,
div.scroll td::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	box-sizing: border-box;
	border-right: 1px solid #dedede;
	border-bottom: 1px solid #dedede;
	z-index: -1;
}

div.scroll thead th::before {
	border-top: 1px solid #dedede;
	z-index: -1;
}

div.scroll thead tr th:first-child::before,
div.scroll tbody tr th:first-child::before {
	border-left: 1px solid #dedede;
	z-index: -1;
}

div.scroll tbody tr th {
	background: #f7f7f7;
}

div.scroll tbody tr:nth-child(2n+1) th {
	background: #fff;
}

div.largeT table {
	margin-bottom: 10px;
}

div.largeT table caption {
	margin-bottom: 5px;
}

div.largeT thead th {
	padding: 15px 5px;
	background: #f0f2f4;
	border: 1px solid #dedede;
}

div.largeT tbody tr {
	background: #f7f7f7;
}

div.largeT tbody tr:nth-child(2n+1) {
	background: #fff;
}

div.largeT tbody tr:hover th,
div.largeT tbody tr:hover td,
div.largeT tbody tr:hover:nth-child(2n+1) th {
	background: #eee;
}

div.largeT tbody th {
	padding: 12px 5px;
	text-align: left;
	border: 1px solid #dedede;
	vertical-align: middle;
	line-height: 1.2;
	white-space: nowrap;
}

div.largeT tbody td {
	vertical-align: middle;
	line-height: 1.2;
	border: 1px solid #dedede;
	padding: 12px 5px;
}

dl.table {
	margin: 0px 0 15px;
	list-style: none;
	overflow: auto;
}

dl.table dt {
	clear: both;
	width: 200px;
	float: left;
	padding: 15px 0;
	line-height: 1.6;
}

dl.table dd {
	border-bottom: 1px solid #ddd;
	padding: 15px 0 15px 200px;
	line-height: 1.6;
}

dl.table dd ul {
	margin-left: 20px;
}

dl.table dd ul li {
	margin-bottom: 5px;
}

div.flow-ol-container ol {
	display: flex;
	flex-wrap: wrap;
	width: 100%;
	background: linear-gradient(to right, #f0f2f4, #999);
	counter-reset: flow-list;
}

div.flow-ol-container ol li {
	list-style: none;
	width: calc(100% / 6);
	text-align: center;
	padding: 100px 0;
	background: url(../images/icons/flow-start.svg) no-repeat right center, url(../images/icons/flow-right-end.svg) no-repeat left center;
	background-size: auto 60%;
}

div.flow-ol-container ol li:last-child {
	background: url(../images/icons/flow-right-end.svg) no-repeat left center;
	background-size: auto 60%;
}

div.flow-ol-container ol li:first-child {
	background: url(../images/icons/flow-right-start.svg) no-repeat right center;
	background-size: auto 60%;
}

div.flow-ol-container ol li::before {
	counter-increment: flow-list;
	content: counter(flow-list);
	display: block;
	font-size: 4.8rem;
	padding-bottom: 1rem;
}

.flow-section-container {
	counter-reset: flow-section;
	background: url(/images/bg/border.svg) no-repeat center 15rem;
	background-size: contain;
}

.flow-section-container section {
	display: flex;
	width: calc(50% + 8rem);
}

.flow-section-container section:nth-child(odd) {
	flex-direction: row-reverse;
	margin-left: calc(50% - 8rem);
}

.flow-section-container h3 {
	border: none;
	padding: 0 0 0.4rem;
	margin: 0;
	border-bottom: 1px dotted #ccc;
}

.flow-section-container h3::before {
	counter-increment: flow-section;
	content: counter(flow-section);
	font-size: 100%;
	font-weight: normal;
	background: #333e48;
	display: inline-block;
	text-align: center;
	width: 4rem;
	padding: 0.4rem 0;
	color: #fff;
	margin-right: 0.4rem;
}

.flow-section-container div.img {
	width: 16rem;
	margin: 0 0 0 2rem;
	flex-shrink: 0;
}

.flow-section-container section:nth-child(odd) div.img {
	margin: 0 2rem 0 0;
}

.flow-section-container div.img img {
	border-radius: 50%;
	height: auto;
	width: 100%;
}

.iframe-content {
	position: relative;
	width: 100%;
	padding: 56.25% 0 0 0;
}

.iframe-content iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

div.leftImg .img {
	float: left;
	margin-right: 30px;
	width: 35%;
}

div.leftImg img {
	width: 100%;
	height: auto;
}

div.rightImg .img {
	float: right;
	margin-left: 30px;
	width: 35%;
}

div.rightImg img {
	width: 100%;
	height: auto;
}

video {
	width: 100%;
}

.screenshot {
	text-align: center;
}

.screenshot img {
	max-width: calc(100% - 12px);
	height: auto;
	margin: 1rem auto 2rem;
	box-shadow: 0 0 6px #333;
}

ul.updateDate li {
	list-style: none;
	margin-bottom: 10px;
}

ul.updateDate li span {
	background: #FF0;
	font-size: 1rem;
	padding: 1px 4px;
	border: 1px solid #ccc;
	margin-right: 5px;
}

.page-parent {
	display: flex;
	margin: 0 -1%;
	flex-wrap: wrap;
}

.page-parent li {
	width: 48%;
	margin: 1%;
	list-style: none;
	background: #f0f2f4;
	min-height: 20.0rem;
}

.page-parent li a {
	display: flex;
	align-items: center;
	padding: 0 1.0rem 0 2.4rem;
	font-size: 2.4rem;
	line-height: 1.4;
	color: #333;
	position: relative;
	width: 100%;
	height: 100%;
}

.page-parent li a::before {
	content: "\f0da";
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	position: absolute;
	top: 51%;
	left: 1.2rem;
	transform: translateY(-50%);
}

.lazyload-box img {
	opacity: 0;
	transform: translate(0, 50px);
	transition: 2s;
}

.lazyload-box img.lazyloaded {
	transform: translate(0, 0);
	opacity: 1;
}

/* Datepicker */
/* 日曜日のカラー設定 */
td.ui-datepicker-week-end:first-child a.ui-state-default {
	background-color: #ffecec;
	color: #f00 !important;
}

/* 土曜日のカラー設定 */
td.ui-datepicker-week-end:last-child a.ui-state-default {
	background-color: #eaeaff;
	color: #00f !important;
}

/* ホバー時の動作 */
td.ui-datepicker-week-end a.ui-state-hover {
	opacity: 0.8;
}

/* 当日を示す色はそのまま */
td.ui-datepicker-week-end a.ui-state-highlight {
	background-color: #fffa90 !important;
}

/*************************** B-05. h1,h2見出し *******************/
h1 {
	font-size: 4.0rem;
	margin-bottom: 4.0rem;
	line-height: 5.4rem;
}

h1 span {
	font-size: 1.8rem;
	display: block;
	font-weight: normal;
	line-height: 3;
}

h2 {
	font-family: 'Chakra Petch', sans-serif;
	font-style: italic;
	font-size: 3.5rem;
	padding: 0 0 10px;
	margin: 0 0 3.0rem;
}

h3 {
	font-family: 'Chakra Petch', sans-serif;
	font-size: 2.5rem;
	font-weight: bold;

}

h4 {
	font-size: 2.2rem;
	margin-bottom: 2.2rem;
	padding-left: 5.6rem;
	position: relative;
	font-weight: bold;
	border-left: 0.8rem solid #aaa;
	padding-left: 0.8rem;
	margin-bottom: 1.0rem;
}

h5 {
	font-size: 2.0rem;
	margin-bottom: 2.0rem;
	border-left: 6px solid #bbb;
	padding-left: 6px;
	margin-bottom: 10px;
}

h6 {
	font-size: 1.8rem;
	margin-bottom: 1.8rem;
	border-left: 0.4rem solid #ccc;
	padding-left: 0.4rem;
	margin-bottom: 1.0rem;
}

#top h2 {
	font-family: 'Chakra Petch', sans-serif;
	font-style: italic;
	font-size: 3.5rem;
	margin-bottom: 40px;
	text-align: center;
}

#top h2 span {
	display: block;
	font-weight: normal;
	font-size: 1.8rem;
	margin-top: 16px;
}

/*目次*/
main.column {
	counter-reset: h1;
}

main.column h2 {
	counter-reset: h2;
}

main.column h2::before {
	counter-increment: h1;
	content: counter(h1) ". ";
	font-size: 70%;
	opacity: .8;
	font-weight: normal;
}

main.column h3 {
	counter-reset: h3;
}

main.column h3::before {
	counter-increment: h2;
	content: counter(h1) "-" counter(h2) ". ";
	font-size: 70%;
	opacity: .8;
	font-weight: normal;
}

main.column h4 {
	counter-reset: h4;
}

main.column h4::before {
	counter-increment: h3;
	content: counter(h1) "-" counter(h2) "-" counter(h3) ". ";
	font-size: 70%;
	opacity: .8;
	font-weight: normal;
}

main.column h4::after {
	content: none;
}

main.column h5 {
	counter-reset: h5;
}

main.column h5::before {
	counter-increment: h4;
	content: counter(h1) "-" counter(h2) "-" counter(h3) "-" counter(h4) ". ";
	font-size: 70%;
	opacity: .8;
	font-weight: normal;
}

main.column h6 {
	counter-reset: h6;
}

main.column h6::before {
	counter-increment: h5;
	content: counter(h1) "-" counter(h2) "-" counter(h3) "-" counter(h4) "-" counter(h5) ". ";
	font-size: 70%;
	opacity: .8;
	font-weight: normal;
}

main.column h2 a,
main.column h3 a,
main.column h4 a,
main.column h5 a,
main.column h6 a {
	color: #333;
}

div.page-index {
	background: #f0f2f4;
	width: 80%;
	max-width: 800px;
	margin: 0px auto 50px;
	padding: 2%;
	box-sizing: border-box;
}

div.page-index p {
	text-align: center;
	border-bottom: 1px dotted #ccc;
}

div.page-index>ol {
	margin-left: 0;
}

div.page-index>ol ol {
	padding-left: 20px;
}

div.page-index ol {
	counter-reset: section;
	margin-bottom: 10px;
}

div.page-index ol li {
	line-height: 1.6;
	list-style: none;
}

div.page-index ol a {
	font-size: 1.4rem;
	color: #333;
	text-decoration: none;
	transition: 0.5s;
}

div.page-index ol a:hover {
	text-decoration: underline;
}

div.page-index ol>li:before {
	content: counters(section, '-') '. ';
	counter-increment: section;
	font-size: 1.4rem;
	color: #333;
}

p.hundred img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/*************************** B-06. breadcrumb ********************/
.breadcrumb {
	font-size: 1.4rem;
	margin: 20px auto 0;
	color: #999;
}

.breadcrumb ol {
	display: flex;
	list-style: none;
}

.breadcrumb li::after {
	padding: 0 8px;
	color: #ccc;
}

.breadcrumb li:not(:last-child)::after {
	content: '>';
}

.breadcrumb a {
	color: #999;
	text-decoration: none;
}

.breadcrumb a:hover {
	color: #06F;
	opacity: 1;
}

.breadcrumb li:first-child a::before {
	content: "\f015";
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	padding-right: 3px;
}

.breadcrumb.view {
	margin: 5px 10px 0 0;
}

/*************************** B-07. pager backnumber等 *************/
.pager {
	clear: both;
	border-top: 3px dotted #ddd;
	margin: 30px 0;
	padding: 30px 0;
}

.pager ul.order {
	list-style: none;
}

.pager ul.order li {
	border: 1px solid #ddd;
	text-align: center;
	width: 100px;
	padding: 10px 0;
}

.pager ul.order li.prev {
	float: left;
}

.pager ul.order li.next {
	float: right;
}

.pager ul.order li a {
	background: #ddd;
	color: #333;
	display: block;
	padding: 10px 0;
	margin: -10px 0;
	text-decoration: none;
	width: 101%;
}

.pager ul.direct {
	margin: 0 auto;
	display: flex;
	justify-content: center;
}

.pager ul.direct li {
	width: 40px;
	border: 1px solid #ddd;
	text-align: center;
	padding: 10px 0;
	margin: 0 8px;
	list-style: none;
}

.pager ul.direct li a {
	padding: 11px 0;
	display: block;
	margin: -11px 0;
	color: #333;
	background: #ddd;
	width: 101%;
}

/*************************** B-08. aside *************************/
aside {
	width: 200px;
	height: 100%;
	margin-top: 60px;
	margin-left: 20px;
	position: sticky;
	top: 0;
	display: table;
}

aside .tit {
	margin-bottom: 1.0rem;
	background: #171d63;
	color: #fff;
	padding: 15px 8px;
}

aside .tit a {
	display: block;
	color: #fff;
}

aside nav ul li {
	margin-bottom: 1px;
}

aside nav ul li ul {
	margin-left: 10px;
	padding-left: 10px;
	border-left: 1px solid #ccc;
}

aside nav ul li.here>a {
	color: #009bde;
	font-weight: bold;
}

aside nav ul li.here>a::before {
	content: "\f0da";
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	padding-right: 4px;
	color: #009bde;
}

aside nav ul li a {
	display: block;
	color: #333;
	font-size: 1.4rem;
}

aside nav ul li a:hover {
	background-color: #f0f2f4;
	opacity: 1;
}

aside nav>ul>li {
	margin-bottom: 1px;
}

aside nav>ul>li>a {
	font-size: 1.8rem;
	font-weight: bold;
	padding: 10px 5px;
}

aside nav>ul>li>ul>li a {
	padding: 6px 4px;
}

/*search*/
aside form dl {
	padding: 0;
	background: none;
	margin-bottom: 20px;
}

aside form dl dt {
	float: inherit;
	width: inherit;
	padding: 6px 0 0px;
	min-height: 40px;
	font-size: 16px;
}

aside form dl dd {
	padding: 0 0 6px 0;
	font-size: 16px;
	border-bottom: 3px solid #fff;
}

aside form dl dd input[type="text"] {
	padding: 12px;
	width: 100%;
	border: none;
	background-color: #f0f2f4;
	position: relative;
	display: inline-block;
	outline: none;
	transition: background-color .3s, border .3s;
	font-size: 16px;
}

aside form dl dd input::placeholder {
	color: #aaa;
}

aside form dl dd input[type="text"]:focus {
	background: rgb(220, 220, 220);
}

aside form dl ul li {
	list-style: none;
}

/*************************** B-09. footer ************************/
footer {
	background-color: #405356;
	color: #fff;
	text-align: center;
}

footer .logo img {
	margin-top: 30px;
	max-width: 97px;
}
footer ul.nav{
	margin-top:1rem;
	display: flex;
	justify-content: center;
	list-style: none;
}
footer ul.nav li{
	margin:0 2rem;
}
footer ul.nav li a{
	color:#ccc;
	font-size: 1.2rem;
}
footer ul.nav li a:hover{
	color:#fff;
}

footer a:hover {
	background: none;
}

small {
	display: block;
	padding: 20px 0;
	font-size: 1.1rem;
}

ul.edit-link li{
	position: fixed;
	bottom:4px;
	right:4px;
	list-style:none;
	z-index: 9999;
}
ul.edit-link li img{
	width:30px;
	height: auto;
}

#pageTop {
	position: fixed;
	bottom: 1%;
	right: 2%;
}

#pageTop a {
	z-index: 999;
	color: #333;
	text-decoration: none;
	font-size: 0.8rem;
	display: flex;
	flex-direction: column;
	align-items: center;
}

#pageTop a::before {
	content: "\f35b";
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	font-size: 3.6rem;
	padding-bottom: 6px;
	text-shadow: 0px 0px 5px #fff;
}

#pageTop a:hover {
	text-decoration: none;
	opacity: 0.7;
}

.contigo{
	text-align: center;
	padding:1rem 0 2rem;
}
.contigo a{
	color:rgba(255,255,255,0.5);
	font-size: 1.2rem;
}
.contigo img{
	max-width: 20rem;
	height: auto;
	display: block;
	margin: 0 auto 0.4rem;
}
/*************************** B-10. toppage ***********************/
.top-01 {
	position: relative;
	width: 100%;
	height: 100vh;
}

.scrolldown {
	z-index: 99;
	text-align: center;
	position: absolute;
	top: 70%;
	right: 50%;
	animation: arrowmove 2s ease-in-out infinite;
}

@keyframes arrowmove {
	0% {
		top: 70%;
	}

	50% {
		top: 73%;
	}

	100% {
		top: 70%;
	}
}

.scrolldown span {
	position: absolute;
	left: -26px;
	bottom: -63px;
	color: #405356;
	font-weight: 600;
	font-size: 1.4rem;
	line-height: 1.5;
}

.scrolldown:before {
	content: "";
	position: absolute;
	bottom: 0;
	width: 0;
	height: 0;
	border: none;
	border-right: solid 15px transparent;
	border-top: solid 30px #405356;
}

.scrolldown:after {
	content: "";
	position: absolute;
	bottom: 0;
	right: 0;
	width: 1px;
	height: 150px;
	background: #405356;
}

.top-01-container {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 0;
	width: 100%;
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
	background-image: url(../images/header/top.jpg);
	height: 100vh;
}

.top-02 {
	margin-top: 90px;
}

.top-02-container {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.top-02-container div {
	margin-right: 3.6%;
}

.top-02-container div:last-child {
	margin-right: 0;
}

.top-02 p {
	max-width: 520px;
	margin: 0 auto 60px;
	line-height: 2.1875;
}

.top-02-bg01 {
	position: absolute;
	background-position-y: 415px;
	background-repeat: no-repeat;
	background-image: url(../images/img/top_img04.png);
	width: 100%;
	height: 1000px;
	z-index: -1;
}

.top-02-bg02 {
	position: absolute;
	background-position: right 230px;
	background-repeat: no-repeat;
	background-image: url(../images/img/top_img05.png);
	width: 100%;
	height: 1000px;
	z-index: -1;
}

.top-03-container {
	display: flex;
	flex-wrap: wrap;
	margin: 0 -1%;
	justify-content: space-around;
}

.top-03-container section {
	width: 23%;
	margin: 0 1% 1%;
}

.time {
	font-size: clamp(1.4rem, 2vw, 1.2rem);
	margin: 0.5rem 0;
	display: flex;
	align-items: center;
}

.time span {
	border: 1px solid #a6acb2;
	padding: 3px 6px;
	font-size: 1.1rem;
	line-height: 100%;
	margin-left: 1.0rem;
	background: #fff799;
}

.top-03-container ul {
	display: flex;
	margin-top: -16px;
}

.top-03-container ul li {
	list-style: none;
	border: 1px solid #a6acb2;
	font-size: 1.1rem;
	line-height: 100%;
	margin-right: 1.0rem;
}

.top-03-container ul li a {
	color: #333;
	display: block;
	padding: 3px 6px 4px;
}

.top-03-container ul li a:hover {
	background: #ddd;
	opacity: 1;
}

.top-03-container h2,
.top-03-container h3 {
	font-weight: normal;
	font-size: clamp(1.4rem, 2.33vw, 1.6rem);
	line-height: 2.4rem;
	margin-top: 0px;
	margin-bottom: 1.0rem;
	border-left: 0;
	border: none;
	padding-left: 0;
}

.top-03-container h3 {
	margin-bottom: 2.0rem;
}

.top-03-container h2::after {
	content: none;
}

.top-03-container h2 a,
.top-03-container h3 a {
	color: #333;
}

.top-03-container section div.img {
	margin-bottom: 0;
}

.top-03-container section img {
	width: 100%;
	height: auto;
}

.top-04 dl {
	max-width: 556px;
	margin: 0 auto;
}

.top-04 div {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 20px;
}

.top-04 div:last-child {
	margin-bottom: 0;
}

.top-04 dt {
	width: 20.5%;
}

.top-04 dd {
	width: 76.8%;
}

.top-05 {
	position: relative;
}

.top-05-container section {
	max-width: 718px;
	margin: 0 auto 70px;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.top-05-bg01 {
	position: absolute;
	background-position: 0 532px;
	background-repeat: no-repeat;
	background-image: url(../images/img/top_img06.png);
	width: 100%;
	height: 2000px;
	z-index: -1;
}

.top-05-bg02 {
	position: absolute;
	background-position: right 478px;
	background-repeat: no-repeat;
	background-image: url(../images/img/top_img07.png);
	width: 100%;
	height: 2000px;
	z-index: -1;
}

.top-05-bg03 {
	position: absolute;
	background-position: right 576px;
	background-repeat: no-repeat;
	background-image: url(../images/img/top_img08.png);
	width: 100%;
	height: 2000px;
	z-index: -2;
}

.top-05 h3 {
	position: relative;
	color: #fff;
	width: 180px;
	text-align: end;
	padding-top: 30px;
	transform: rotate(-45deg);
}

.top-05 h3::before {

	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: #405356;
	transform: skew(45deg);
	content: '';
	z-index: -1;
}

.top-05 ul {
	max-width: 470px;
	width: 100%;
}

.top-05 li {
	list-style-position: inside;
	text-indent: -1em;
	padding-left: 1em;
	margin-bottom: 20px;
}

.top-05 li:last-child {

	margin-bottom: 0;
}

.top-06 {
	position: relative;
	text-align: center;
	margin-bottom: 150px;
	height: 100%;
}

/*************************** B-11. form **************************/
main#form {
	max-width: 800px;
	margin: 0 auto 60px;
}

form dl {
	padding: 0 10px;
	background: #f0f2f4;
	margin-bottom: 50px;
}

form dl dt {
	float: left;
	width: 260px;
	padding: 10px 0 10px;
	min-height: 60px;
	line-height: 1.6;
	font-size: 16px;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

form dl dd {
	padding: 10px 0 10px 260px;
	line-height: 1.6;
	font-size: 16px;
	border-bottom: 3px solid #fff;
}

form dl dd:last-child {
	border-bottom: none;
}

form span.required,
form span.will {
	float: right;
	margin-right: 15px;
	background: #009bde;
	color: #fff;
	padding: 1px 4px 2px;
	text-decoration: none;
	border-bottom: none;
	font-size: 1.4rem;
}

form span.will {
	background: #999;
	color: #fff;
}

form dl input,
form dl select,
form dl textarea {
	ime-mode: active;
	font-size: 16px;
	transition: .3s;
	border: 1px solid #ccc;
	width: 100%;
	padding: 10px;
}

form dl input:not([type="radio"]):focus,
form dl select:focus,
form dl textarea:focus {
	border: 1px solid #009bde;
	outline: none;
	box-shadow: 0 0 4px #009bde;
}

.width80 {
	max-width: 80px;
}

.width100 {
	max-width: 100px;
}

.width150 {
	max-width: 150px;
}

.width200 {
	max-width: 200px;
}

.width250 {
	max-width: 250px;
}

.width300 {
	max-width: 300px;
}

.width400 {
	max-width: 400px;
}

form dl textarea {
	height: 150px;
	line-height: 1.4;
}

/*checkbox*/
form dl label {
	cursor: pointer;
	display: block;
	padding: 4px 32px;
	position: relative;
	width: auto;
}

form dl input[type=checkbox] {
	display: none;
}

form dl label input[type=checkbox]+span::before {
	background: #fff;
	border: 1px solid #ccc;
	content: '';
	display: block;
	width: 24px;
	height: 24px;
	left: 0;
	margin-top: -13px;
	position: absolute;
	top: 50%;
}

form dl label input[type=checkbox]+span::after {
	border-right: 3px solid #237cd5;
	border-bottom: 3px solid #237cd5;
	content: '';
	display: block;
	height: 16px;
	left: 7px;
	margin-top: -13px;
	opacity: 0;
	position: absolute;
	top: 50%;
	transform: rotate(45deg);
	width: 8px;
	transition: opacity .3s;
}

form dl label input[type=checkbox]:checked+span::after {
	opacity: 1;
}

/*radio*/
form dl label input[type=radio] {
	position: absolute;
	top: 19px;
	left: 9px;
	width: 15px;
	z-index: -1;
}

.radio-01 {
	position: relative;
	padding: 4px 0;
	width: 100%;
	margin-left: 32px;
}

form dl label input[type=radio]+span {
	box-sizing: border-box;
	cursor: pointer;
	display: block;
	padding: 5px 30px;
	margin-left: -32px;
	position: relative;
	width: auto;
}

form dl label input[type=radio]+span::before {
	background: #fff;
	border: 1px solid #ccc;
	border-radius: 50%;
	content: '';
	display: block;
	height: 24px;
	width: 24px;
	left: 0;
	margin-top: -13px;
	position: absolute;
	top: 50%;
}

form dl label input[type=radio]+span::after {
	background: #237cd5;
	border-radius: 50%;
	content: '';
	display: block;
	width: 18px;
	height: 18px;
	left: 4px;
	margin-top: -9px;
	opacity: 0;
	position: absolute;
	top: 50%;
	transition: opacity .3s;
}

form dl label input[type=radio]:checked+span::after {
	opacity: 1;
}

form .submit {
	text-align: center;
}

form .submit input {
	font-size: 1.2rem;
	width: 100%;
	padding: 14px 0;
	background: #405356;
	color: #fff;
	border: none;
	cursor: pointer;
	transition: opacity .3s;
	max-width: 250px;
	border-radius: 5px;
}

.submit input:hover {
	opacity: .7;
}
